Punto informatico Network
Canali
20080829210745

Primo incontro con la Shell Testuale

16/03/2011
- A cura di
Linux & Open Source - Prima di immergersi a fondo nel mondo Linux, è necessario conoscerne qualche comando testuale: vediamo i più importanti.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

linux (1) , ubuntu (1) , shell (1) , centos (1) .

Valutazione

  •  
Voto complessivo 5 calcolato su 584 voti

Parliamo un po' di File

cp (Copy)

Copiare un file è compito del comando cp, il quale si attende un file di partenza e un file di destinazione (che ovviamente non possono avere lo stesso nome, se nella stessa cartella).

Ad esempio:

[]$ cp Auguri Xerex/Copia_Auguri

Copia il File Auguri nella directory Xerex, assegnandgli il nome Copia_Auguri, a condizione che la cartella Xerex esista.

In caso Copia_Auguri sia un File già presente nella cartella, verrà chiesta conferma dell'operazione.

Con il Parametro -f, invece, il file verrà rimosso senza nulla chiedere (questa forzatura è utile se si vuole cancellare un alto numero di File).

Esempio:

[]$ cp -f file1 file2

[]$ cp /home/pino/file.odt ./docs

[]$ cp /etc/*.* /backup

mv (Move)

Il comando mv ha due funzioni:

  • Rinominare un file: ad esempio, per rinominare Testo in Text basta digitare: []$ mv Testo Text
  • Spostare un file: ad esempio, per spostare il file nella cartella "padre" (superiore) digitiamo: []$ mv Text ../Text

Ovviamente, le due funzioni di mv si possono combinare, senza far coincidere il nome di partenza con quello di arrivo.

rm (Remove)

Per cancellare un file, invece, si usa il comando []$ rm [nome_file].

Prima di rimuovere il file, verrà chiesta una conferma.

Se preferite che il file venga rimosso senza nulla chiedere, usate nuovamente il parametro -f.

Questa forzatura è utile se si vuole cancellare un alto numero di File.

Il comando rm si può usare anche per rimuovere delle cartelle anche non vuote. Prima di rimuoverle verrà chiesta una conferma.

[]$ rm Text

Se invece si desidera eliminare tutto il contenuto di una cartella (delete all), basta utilizzare il simbolo * (vedi sotto):

[]$ rm *

rmdir (Remove Directory)

Elimina una directory vuota. Se la directory non è vuota, bisognerà prima eliminarne tutti i file contenuti, oppure forzare il comando con i parametri -r e -f. Ad esempio:

[]$ rmdir Old

[]$ rmdir -rf Trashed

diff (Difference)

Mostra le differenze fra due file. Ad esempio:

[]$ diff fileA fileB

Wildcard

Le Wildcard sono dei caratteri Jolly che si sostituiscono ad altri caratteri normali all'interno dei comandi; un esempio chiarirà tutto:

  • []$ ls *.jpg manderà in output tutti i file con estensione .jpg
  • []$ ls ????.jpg tutti i file con un nome di quattro lettere (numero di ?) con estensione .jpg
  • []$ ls imm[12].jpg stamperà imm1.jpg imm2.jpg (se presenti)
  • []$ ls imm[1-6].jpg stamperà ogni file con estensione jpg il cui nome inizi con imm e finisca con una cifra compresa tra 1 e 6 compresi (ovvero imm1.jpg, imm2.jpg, ..., imm6.jpg).

Le Wildcard si possono combinare:

[]$ ls *a?.jpg stamperà l'elenco dei file con estensione .jpg e con un nome che ha come penultima lettera la "a".

Nota: le Wildcard * e ? sostituiscono qualunque stringa o carattere ad esclusione del punto.

Un altro carattere speciale è la pipe (|): le pipe servono per dirigere l'output di un programma o di un comando nell'input di un altro programma o di un altro comando. Per un approfondimento, si veda "Bash: pipe e redirezioni".

Nota: Il comando wc è un contatore di righe, bytes, ecc., a seconda dei parametri. Ad esempio, la seguente riga stampa il numero di file presenti nella cartella:

[]$ ls -1 | wc -l

I Permessi

Ogni file, nella sua descrizione, ha 9 bit che indicano all'utente le operazioni che le diverse classi di utenti del sistema possono compiere sul file.

Ci sono tre "classi di utente":

  • Il Proprietario: è il creatore del file e ha facoltà di cambiare i permessi ad ogni suo file.
  • Il Gruppo: è una cerchia di utenti che possono avere permessi speciali. Ogni utente può appartenere a più gruppi.
  • Gli Altri: sono utenti che hanno accesso al sistema, ma non fanno parte del gruppo a cui appartiene il file. I permessi esistenti sono lettura, scrittura ed esecuzione.

[Come detto sopra, applicando l'opzione -l al comando ls si possono leggere i permessi di ogni file e directory presente nella cartella corrente]

Ad esempio, la riga -rw-r--r-- 1 xerex xerex 25077 feb 2 00:00 imm.jpg indica che imm.jpg è un file con permessi in lettura e scrittura per il proprietario, nonché permessi di lettura per gruppo ed altri utenti (vedi spiegazione dettagliata sotto).

Per cambiare i permessi si usa il comando chmod.

Questo comando necessita di parametri che specifichino quali permessi modificare e per chi.

Ad esempio:

[]$ chmod +x [nome_file]

Aggiunge il permesso di esecuzione a tutti gli utenti del sistema.

Permessi.gif

Un altro modo di settare i permessi è "passando" a chmod un valore in notazione "ottale" che indica i permessi.

Questa tabella esemplificherà il prossimo esempio.

Ottale.gif

[]$ chmod 755 Text

Assegna al proprietario del file tutti i permessi, mentre al gruppo ed agli altri utenti permette solo la lettura e l'esecuzione del file.

Programmazione

La Shell può essere interpretata anche come un vero e proprio ambiente di sviluppo: "l'arte" Shell Programming permette di scrivere script che possono risolvere problemi di amministrazione di sistema.

Prendete, ad esempio, una rete con decine di computer e centinaia di utenti. L'amministratore del sistema, che ha permessi da superutente, può decidere di ricercare utenti che non accedano al sistema da uno specificato periodo di tempo e spedire una mail a questi, per domandare se l'account è ancora necessario e, in caso contrario, cancellarlo.

Pensate alla mole di lavoro che l'amministratore dovrebbe sobbarcarsi per controllare ogni utente su ogni macchina: non credo basterebbe una settimana. Grazie allo Shell Scripting, invece, è sufficiente scrivere un programma combinando vari comandi della shell simili a quelli appena visti, che eseguano il compito sopra descritto.

Come è facile intuire, i pochi comandi descritti in questo articolo non sono sufficienti per scrivere un programma così complesso, ma con un po' di pratica e molta volontà sarà possibile scrivere programmi utili anche dopo poche ore di esercizio.

Ah, dimenticavo... per tornare all'interfaccia grafica premete Alt+F7!

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!
Pagina precedente
Primo incontro con la Shell Testuale

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2020 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.42 sec.
    •  | Utenti conn.: 93
    •  | Revisione 2.0.1
    •  | Numero query: 55
    •  | Tempo totale query: 0.23