I comandi di utilità Unix

I sistemi operativi Unix mettono a disposizione alcuni comandi utili in molte occasioni, alcuni di questi comandi sono: cat, sort, diff e grep

I comandi di utilità generale in Unix sono:

  • cat (concatenate): consente i concatenare i file indicati come argomento e li visualizza attraverso lo standard output.

        cat [opzioni] file

    Le opzioni per il comando cat sono:

    • -n consente di visualizzare un numero progressivo ad ogni riga del contenuto concatenato;
    • -b funziona come -n ma non assegna la numerazione alle linee vuote;
    • -v mostra anche i caratteri non stampabili (ad eccezione dei caratteri di tabulazione, interruzioni di linea e ritorno a capo).

    Ecco un esempio di come concatenare il contenuto di due file e di visualizzarlo (di default) sullo schermo:

        $ cat file1 file2

    Invece di visualizzare la concatenazione sullo schermo, è possibile inserirla in un file (che verrà creato se non esiste) in questo modo:

        $ cat file1 file2 > file3

    Se il comando cat riceve un unico file come argomento, stamperà il contenuto del file sullo standard output:

        $ cat file1

  • sort: ordina o unisce il contenuto dei file o dei dati passati in input.

        sort [opzioni] file

    Il comando tratta ogni linea come un insieme ordinato di campi, separati da opportuni caratteri (di default sono la tabulazione e lo spazio). L’ordinamento avviene in base al primo campo ed è alfabetico. Le opzioni che possono essere applicate al comando sort:

    • -f consente di ignorare le differenze tra le lettere minuscole e maiuscole (case insensitive);
    • -n per considera la chiave di ordinamento di tipo numerico anziché testuale ;
    • -r per ordinare in senso decrescente anziché crescente;
    • -o viene utilizzato per inviare l’output al fileout anziché sull’output standard;
    • -t s utiliza “em>s” come separatore di campo;
    • -k s1,s2 usa i campi specificati come chiavi di ordinamento.

    Ecco un esempio di come ordinare le linee del file in base al valore del tempo campo in /etc/passwd:

        $ sort -t: -k3,4 /etc/passwd

  • diff: verifica se dei file sono identici, in caso contrario mostra le differenze del primo file rispetto al secondo.

        diff [opzioni] [file...]

    Alcune opzioni:

    • -l fornisce maggiori informazioni;
    • s consente di visualizzare un messaggio se i due file sono identici (di default non viene mostrato nessun messaggio);
    • -b ignora i caratteri “bianchi” come tab e spazi;
    • -i rende il confronto case insensitive (maiuscole e minuscole identiche);
    • -r effettua il confronto anche su directory e sotto directory.

    Il risultato del confronto dei file viene emesso di default attraverso lo standard output:

        $ diff file1 file2

  • grep (get regular expression): esegue una ricerca all’interno dei file indicati, qualora nessun file venga specificato la ricerca, nel caso non sia specificato alcun file la ricerca verrà effettuato sullo standard input.

        grep [opzioni] pattern [nomefile]

    Il pattern è una espressione regolare, le righe che corrispondono al pattern saranno visualizzate. Ecco alcune opzioni del comando grep:

    • v restituisce le linee che non rispettano il pattern;
    • w restituisce solo le linee che rispettano il pattern come parola completa;
    • x restituisce solo le linee che coincidono rispettano il pattern;
    • c visualizza il numero della occorrenze delle stringhe che rispettano il pattern;
    • i rende il pattern case insensitive.

    Ecco una lista dei metacaratteri che possono essere utilizzati per la ricerca:

    • ^ viene utilizzato per indicare l’inizio della linea;
    • $ indica alla fine della linea;
    • \< serve per fare riferimento all’inizio di una parola;
    • \> serve per fare riferimento alla fine di una parola;
    • . indica un singolo carattere qualsiasi;
    • [stringa] viene utilizzato per indicare un qualunque carattere in stringa;
    • [~stringa] per indicare un qualunque carattere non presente nella stringa;
    • [c0-c1] inidica un qualunque carattere compreso tra il carattere c0 e il carattere c1 (ad esempio tra a e d);
    • \c0 inibisce l’interpretazione del carattere indicato.

    Per ricercare una parola all’interno di un file, ad esempio la parola datrevo nel file myFile, scriveremo:

        $ grep -w datrevo myFile

    Senza l’attributo w la parola verrà cercata anche come sottostringa:

        $ grep datrevo myFile

    Per cercare le righe che finiscono con la lettere a tramite il flag $:

        $ grep myFile a$

    Per cercare in tutti i file della directory corrente la stringa “datrevo”:

        $ grep datrevo *

  • Ecco l’indice degli articoli sui comandi Unix:

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *