I comandi Unix generici

Il comandi in Unix sono numerosi, alcuni consentono di gestire il canale di comunicazione tra due processi (pipe) mentre altri sono dei veri e propri editor di testo

Alcuni comandi molto utilizzati in Unix sono:

  • | (pipe): si tratta di un canale di comunicazione a senso unico tra due processi. Si tratta della più vecchia e più usata forma di interprocess communication utilizzata in Unix. La comunicazione avviene solo in una direzione (half-duplex). La pipe viene utilizzata per legare più operazioni, nei comandi che utilizzano una pipe, lo standard output del primo comando funge da standard input del secondo comando, e così via.

        comando1 | comando2 | ...

    Per ordinare un file possiamo utilizzare cat indicando un solo parametro, il contenuto del file sarà riversato nello standard output che sarà passato come standard input del comando successivo e sarà ordinato con sort:

        $ cat file | sort

    Un esempio per elencare i file contenuti nella directory corrente e che sono stati modificati l’ultima volta nel 2010:

        $ ls | grep 2010

    Abbiamo utilizzato una pipeline grazie alla quale l’output del comando ls viene passato in input al comando grep, senza un file intermedio di appoggio.

  • echo: consente di visualizzare il contenuto di una variabile o stampare in un messaggio:

        $ echo $VARIABILE
        $ echo "stringa"

    Ad esempio:

        $ var=3
        $ echo $var
        3

    Per mostrare il contenuto della directory corrente (equivale ad ls):

        $ echo *

  • vi: consente di avviare l’editor vi:

        vi [opzioni] [file]

    Ad esempio per aprire l’editor vi (si esce con CTRL + Z):

        $ vi

    E’ possibile specificare il nome di un file da aprire con vi:

        $ vi myFile.txt

    Vi Unix

  • nano (Nano’s ANOther editor): si tratta di un editor che sopperisce alle limitazioni dell’editor Pico. Con nano è possibile utilizzare la funzione “Trova e sostituisci” o “Vai alla linea x

        nano [opzioni [[+LINE[,COLUMN]] FILE]...

    Per aprire un file con nano:

        $ nano myfile.txt

  • more: consente di impaginare un file testuale.

        more [opzioni] file

    Ad esempio:

        $ more myFile

  • less: si tratta di un’evoluzione di more, serve quindi per impaginare i file testuali.

        less [opzioni] file

    Ad esempio per mostra il contenuto di un file paginato sullo standard output, scriveremo:

        $ less myFile.txt

    Con il comando less abbiamo la possibilità di tornare sulle pagina visualizzate, impossibile con more.

  • head: consente di visualizzare le prime n righe di un file, se non specificato legge dallo standard input.

        head [opzioni]... [file]...

    Ad esempio mostrare le prime 10 linee di un file:

        $ head –10 myFile

  • tail: consente di visualizzare le ultime n righe del file, se non specificato legge dallo standard input.

        tail [opzioni]... [file]...

    Per mostrare le ultime righe di un file:

        $ tail myFile

    Per mostrare le ultime 10 righe di un file:

        $ tail -10 myFile

  • $(comando): consente di sostituire l’output del comando.

        $(comando)


    Ad esempio per inserire la lista dei file e directory in una variabile:

        $ a=$(ls)

  • sudo (superuser do)<: consente di avere i permessi come super utente per poter effettuare delle operazioni.

        sudo

    Di default il comando sudo richiede l’immissione della password del sistema.

  • sed (stream editor): si tratta di un editor a linea di comando che non richiede l’interazione con l’utente.

        [address[,address]]function[arguments]

    La sintassi di sed non definisce un output, quest’ultimo viene inviato direttamente allo standard output. L’editor sed è una macchina a registri:

    • Copia ogni linea di input in un pattern;
    • Applica tutti i comandi selezionati dal pattern;
    • Copia il pattern sullo standard output, aggiungendo ogni volta una nuova linea;
    • Infine cancella il pattern utilizzato.

    Ecco alcuni comandi che possono essere utilizzati con il comando sed:

    • a\ aggiunge il testo al di sotto della riga corrente;
    • c\ consente di modifica il testo della riga corrente;
    • d cancella il testo;
    • i\ inserisce del testo al di sopra della riga corrente;
    • p stampa del testo;
    • r consente di leggere un file;
    • s cerca e modifica del testo.

    Ad esempio per sostituire stringa1 con stringa2 in un nuovo file:

        $ sed "s/stringa1/stringa2/g" vecchio_file > myFile

  • awk (Aho, Kernighan and Weinberger): si tratta di un linguaggio per l’elaborazione di modelli orientato ai record. Ha molte cose in comune con sed come l’uso delle espressioni regolari, leggere l’input dallo standard input e inviare i risultati sullo standard output.

        awk/nawk [opzioni]

    Awk cerca su file linee o altre unità di testo che contengono il pattern, quando sono individuate effettua le operazioni effettuate.

Ecco l’indice degli articoli sui comandi Unix:

Lascia un commento

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