GNU/Linux >> Linux Esercitazione >  >> Linux

Moreutils:una raccolta di utilità Unix più utili

Conosciamo tutti le utilità di base di GNU che viene preinstallato con tutti i sistemi operativi simili a Linux e Unix. Queste sono le utilità di base per la manipolazione di file, shell e testo del sistema operativo GNU. Le utilità di base di GNU contengono i comandi, come cat, ls, rm, mkdir, rmdir, touch, tail, wc e molti altri, per eseguire le operazioni quotidiane. Tra queste utilità, ci sono anche altre utili raccolte di utilità Unix che non sono incluse per impostazione predefinita nei sistemi operativi simili a Unix. Incontra moreutilis , una raccolta in crescita di utilità Unix più utili. Le moreutils possono essere installate su GNU/Linux e varie versioni di Unix come FreeBSD, openBSD e Mac OS.

Al momento della stesura di questa guida, Moreutils fornisce le seguenti utilità:

  • cronico - Esegue un comando in modo silenzioso a meno che non fallisca.
  • combina - Combina le linee in due file usando le operazioni booleane.
  • errno - Cerca nomi e descrizioni errno.
  • ifdata - Ottieni informazioni sull'interfaccia di rete senza analizzare l'output di ifconfig.
  • se possibile - Esegui un programma se lo standard input non è vuoto.
  • isutf8 - Controlla se un file o uno standard input è utf-8.
  • lckdo - Esegui un programma con un blocco tenuto.
  • errore di conduttura - Pipe due comandi, restituendo lo stato di uscita del primo.
  • parallelo - Esegui più lavori contemporaneamente.
  • fare pipì - ingresso standard a tee per tubi.
  • spugna - Assorbi lo standard input e scrivi su un file.
  • it - input standard timestamp.
  • vidire - Modifica una directory nel tuo editor di testo.
  • Vipe - Inserisci un editor di testo in una pipe.
  • zrun - Decomprimi automaticamente gli argomenti da comandare.

Installa moreutils su Linux

Il moreutils è incluso in molte distribuzioni Linux, quindi puoi installarlo utilizzando il gestore di pacchetti della distribuzione.

Su Arch Linux e derivati ​​come Antergos , Manjaro Linux , esegui il comando seguente per installare moreutils.

$ sudo pacman -S moreutils

Su Fedora :

$ sudo dnf install moreutils

Su RHEL , CentOS , Linux scientifico :

$ sudo yum install epel-release
$ sudo yum install moreutils

Su Debian ,Ubuntu , Linux Mint :

$ sudo apt-get install moreutils

Moreutils - Una raccolta di utilità Unix più utili

Vediamo i dettagli sull'utilizzo di alcuni strumenti moreutils.

L'utilità "Combina"

Come suggerisce il nome, Combina l'utilità combina gli insiemi di righe di due file utilizzando operazioni booleane come "and", "not", "or", "xor".

  • e - Emette le righe che sono in file1 se sono presenti anche in file2.
  • non - Emette le righe che sono in file1 ma non in file2.
  • o - Emette le righe che sono in file1 o file2.
  • xor - Emette righe che sono in file1 o file2, ma non in entrambi i file.

Lascia che ti mostri un esempio, così puoi capire cosa farà esattamente questa utility. Ho due file:file1 e file2 . Ecco il contenuto di quei due file.

$ cat file1
is
was
were
where
there
$ cat file2
is
were
there

Ora, lascia che li combini usando l'operazione booleana "e".

$ combine file1 and file2
is
were
there

Come si vede nell'esempio precedente, l'operatore booleano "e" restituisce le righe che sono in file1 se sono presenti anche in file2. Per dirla in modo più chiaro, mostra le righe comuni (es. è, erano, lì) che sono presenti in entrambi i file.

Usiamo ora l'operatore "non" e vediamo il risultato.

$ combine file1 not file2
was
where

Come puoi vedere nell'output sopra, l'operatore "not" mostra le righe che sono solo in file1, ma non in file2.

L'utilità "ifdata"

L'utilità "ifdata" può essere utilizzata per verificare l'esistenza di un'interfaccia di rete, per ottenere informazioni sull'interfaccia di rete, come il suo indirizzo IP. A differenza dei comandi integrati come "ifconfig" o "ip", ifdata ha un output semplice da analizzare progettato per essere facilmente utilizzato da uno script di shell.

Per visualizzare i dettagli dell'indirizzo IP di un'interfaccia di rete, ad esempio wlp9s0, esegui:

$ ifdata -p wlp9s0
192.168.43.192 255.255.255.0 192.168.43.255 1500

Per visualizzare solo la netmask, esegui:

$ ifdata -pn wlp9s0
255.255.255.0

Per controllare l'indirizzo hardware di una scheda di rete:

$ ifdata -ph wlp9s0
A0:15:46:90:12:3E

Per verificare se esiste o meno una scheda di rete, utilizza il flag "-pe".

$ ifdata -pe wlp9s0
yes

Il comando "Pipì"

È in qualche modo simile al comando "tee".

Vediamo un esempio di utilizzo del comando "tee".

$ echo "Welcome to OSTechNIx" | tee file1 file2
Welcome to OSTechNIx

Il comando precedente creerà due file:file1 e file2 . Quindi, aggiungi la riga "Welcome to OSTechNix" su entrambi i file. E infine stampa il messaggio "Benvenuto in OSTechNix"  nel tuo terminale.

Il comando "Pee" esegue una funzione simile, ma differisce leggermente dal comando "tee". Guarda il seguente comando:

$ echo "Welcome to OSTechNIx" | pee cat cat
Welcome to OSTechNIx
Welcome to OSTechNIx

Come puoi vedere nell'output sopra, le due istanze del comando "cat" ricevono l'output dal comando "echo" e le visualizza due volte nel Terminale.

L'utilità "Spugna"

Questa è un'altra utile utilità del pacchetto moreutils. Spugna legge lo standard input e lo scrive nel file specificato. A differenza di un reindirizzamento della shell, Sponge assorbe tutto il suo input prima di scrivere il file di output.

Dai un'occhiata al contenuto del seguente file di testo.

$ cat file1 
I
You
Me
We
Us

Come puoi vedere, il file contiene alcune righe casuali, in particolare "non" in ordine alfabetico. Si desidera ordinare i contenuti in ordine alfabetico. Cosa faresti?

$ sort file1 > file1_sorted

Corretto, non è vero? Ovviamente! Come vedi nel comando precedente, ho ordinato il contenuto del file1 in ordine alfabetico e li ho salvati in un nuovo file chiamato "file1_sorted" . Ma puoi fare lo stesso senza crearne uno nuovo (cioè file1_sorted) usando il comando "spugna" come mostrato di seguito.

$ sort file1 | sponge file1

Ora controlla se i contenuti sono ordinati in ordine alfabetico.

$ cat file1 
I
Me
Us
We
You

Vedere? non è necessario creare un nuovo file. È molto utile negli script. E la cosa buona è che la spugna conserva le autorizzazioni del file di output se esiste già.

L'utilità "ts"

L'utilità "ts" stampa il timestamp all'inizio di ogni riga nell'output di qualsiasi comando Linux.

Guarda l'output del comando seguente:

$ ping -c 2 localhost
PING localhost(localhost.localdomain (::1)) 56 data bytes
64 bytes from localhost.localdomain (::1): icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from localhost.localdomain (::1): icmp_seq=2 ttl=64 time=0.079 ms

--- localhost ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1018ms
rtt min/avg/max/mdev = 0.055/0.067/0.079/0.012 ms

Ora, esegui lo stesso comando con utilità "ts" come mostrato di seguito.

$ ping -c 2 localhost | ts
Aug 21 13:32:28 PING localhost(localhost (::1)) 56 data bytes
Aug 21 13:32:28 64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.063 ms
Aug 21 13:32:28 64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.113 ms
Aug 21 13:32:28 
Aug 21 13:32:28 --- localhost ping statistics ---
Aug 21 13:32:28 2 packets transmitted, 2 received, 0% packet loss, time 4ms
Aug 21 13:32:28 rtt min/avg/max/mdev = 0.063/0.088/0.113/0.025 ms

Come puoi vedere nell'output sopra, ts aggiunge un timestamp all'inizio di ogni riga. Ecco un altro esempio.

$ ls -l | ts
Aug 21 13:34:25 total 120
Aug 21 13:34:25 drwxr-xr-x  2 sk users 12288 Aug 20 20:05 Desktop
Aug 21 13:34:25 drwxr-xr-x  2 sk users  4096 Aug 10 18:44 Documents
Aug 21 13:34:25 drwxr-xr-x 24 sk users 12288 Aug 21 13:06 Downloads
[...]

L'utilità "Vidir"

L'utilità "Vidir" ti consente di modificare il contenuto di una directory specificata in vi editor (o qualunque cosa tu abbia in $EDITOR ). Se non viene specificata alcuna directory, verrà modificata la directory di lavoro corrente.

Il comando seguente modifica il contenuto della directory denominata "Desktop".

$ vidir Desktop/

Modifica il contenuto di una directory con vidar

Il comando precedente aprirà la directory specificata nel tuo vi editore. Ciascun elemento nella directory di modifica conterrà un numero. Ora puoi modificare i file come fai nell'editor vi. Supponiamo, ad esempio, di eliminare le righe per rimuovere i file dalla directory o di modificare i nomi dei file per rinominare i file.

Puoi anche modificare le sottodirectory. Il comando seguente modifica la directory di lavoro corrente insieme alle sue sottodirectory.

$ find | vidir -

Si prega di notare il "-" alla fine del comando. Se è specificato "-" come directory da modificare, legge un elenco di nomi di file da stdin e visualizza quelli per la modifica.

Se vuoi modificare solo i file nella directory di lavoro corrente, puoi usare il seguente comando:

$ find -type f | vidir -

Vuoi modificare un tipo di file specifico, ad esempio file .PNG? quindi useresti:

$ vidir *.png

Questo comando modifica solo i file .png nella directory corrente.

L'utilità "Vipe"

Il comando "vipe" ti consente di eseguire il tuo editor predefinito nel mezzo di una pipeline Unix e modificare i dati che vengono convogliati tra i programmi.

Il comando seguente apre l'editor vi (editor predefinito, ovviamente) e consente di modificare l'input del comando "echo" (ovvero Welcome To OSTechNix) e visualizza il risultato finale.

$ echo "Welcome to OSTechNIx" | vipe
Hello World

Come puoi vedere nell'output sopra, ho passato l'input "Benvenuto in OSTechNix" all'editor vi e li ho modificati come "Hello World" e ho visualizzato l'output finale.

Download consigliato - Ebook gratuito:"Impara Linux in 5 giorni"

E per ora è tutto. Ho coperto solo alcune utilità. Il "moreutils" ha utilità più utili. Ho già menzionato le utilità attualmente incluse nel pacchetto moreutils nella sezione introduttiva. Puoi leggere le pagine man per maggiori dettagli sui comandi precedenti. Ad esempio, per saperne di più sul comando "vidir", esegui:

$ man vidir

Spero che questo aiuti.


Linux
  1. Rendi l'output di du più utile con questo trucco accurato

  2. Linux:Linux è un Unix?

  3. Meno non è solo di più?

  4. 10 Esempi utili di Sar (Sysstat) per il monitoraggio delle prestazioni UNIX/Linux

  5. Tenere traccia del tempo impiegato da un comando in UNIX/LINUX?

Cercapersone terminali

50 Comando Linux Cut semplice e utile in Unix con esempi

Zorin OS 15 più bello e utile che mai

comando mkdir in Linux/Unix

Linux vs Unix

Comando Grep in Linux/UNIX