5 minuti per conoscere la Shell
1. Note preliminari
C'è un tempo in cui anche il più sprovveduto dei principianti viene a contatto con il terminale. Ha molti nomi: terminale, shell, console, "command prompt" per chi è abituato a Windows. La maggior parte degli utenti è impaurito da esso, per una ragione o per l'altra, quindi questo tutorial tenterà di fornirvi delle conoscenze basilari sui comandi per navigare all'interno del sistema e per intraprendere in esso le azioni basilari, usando il confort della vostra tastiera.
Non starò a indicarvi come lanciarlo, dato che presumo che sappiate come farlo. Comunque in Ubuntu si trova in:
Menù → Accessori → Terminale
mentre in Linux Mint si trova in:
Menù → Terminale
Una cosa è certa: Tutto quello che si può fare da interfaccia grafica, può essere fatto dal Terminale.
Quando aprite il Terminale, questo si apre predefinitamente nella vostra home, indicata dalla cediglia: ¸
I comandi, le collocazioni ed i files sono case sensitive, ovvero sono sensibili a maiuscole e minuscole, per cui /home non è la stessa cosa di /HOME o di /Home.
Usate il tasto Tab per completare il nome del file. Se avete il nome di un file driver molto lungo come driver-128947232jaseu.sh, digitate semplicemente dri e il tasto Tab farà il resto. Se avete due file che iniziano con dri, aggiungete un altra lettera per ottenere il risultato.
I comandi sono indicati in rosso
Praticamente ogni comando ha una sua spiegazione che può essere letta usando le pagine del manuale o digitando
-h o --help dopo il comando stesso. Quindi digitate:
man nome_comando
nome_comando -h
o
command_name --help
Per avere altre informazioni potete usare info. Un comando può essere cercato usando info nome_comando .
Praticamente tutti i comandi possono mostrare esplicitamente cosa vanno a fare. Questo può essere fatto aggiungendo al comando l'operatore -v o --verbose
2. Comandi
2.1 cd
cd è usato per navigare tra directories. Potete spostarvi in luoghi diversi indicando il percorso.
cd da solo vi sposta nella vostra directory home, ugualmente cd ¸
cd .. vi farà tornare indietro esattamente di una directory. Per esempio se sono in /home/borgio3/Linux_Guide
cd .. mi riporterà in /home/borgio3. Ciò può essere espanso, per cui se mi trovo nella directory /home/borgio3/Desktop, cd ../../ mi porterà direttamente alla /home.
cd nomecartella/ vi porterà verso la cartella indicata, contenuta nella vostra attuale directory.
Da notare che la mancanza del prefisso /, è una importante omissione. Se sono in /home/borgio3 e voglio recarmi in Desktop, devo digitare cd Desktop/ sena / prima di Desktop. Digitando / prima di esso, verrò inviato nella root del file system, che non va bene.
cd /altro/percorso vi porterà nella cartella specificata dal percorso, sempre che sia stata digitata bene o che esista. Non dimenticate di usare il tasto tab per il completamento!
2.2 ls
ls è usato per mostrare i contenuti di una cartella. Potete vedere molti tipi di attributi di file e cartelle.
ls da solo mostrerà semplicemente il contenuto di una cartella
ls -l fornisce un lungo elenco di informazioni come i proprietari dei file, i permessi, le dimensioni e la data di modifica
ls -a mostra i file nascosti e le cartelle nascoste e le altre voci in elenco
ls -al combinazione di opzioni che mostra sia i file nascosti che le informazioni in un ampio elenco
ls -h mostra le dimensioni dei file in modalità di lettura umana (K, M, Gbyte), invece di usare i soli bytes. Spesso usato in combinazione con il flag -l
È possibile vedere i file di una cartella nella quale non siete. Se sono in /home/borgio3/Desktop e voglio vedere i file in /home/borgio3, basta che dia il comando ls ../ per avere l'elenco dei file di una directory precedente (e senza dover tornare indietro).
2.3 cp
cp → copia i file
cp file /path/to/folder copia il file specificato nella cartella di cui è indicato il percorso.
cp -r folder /path/to/folder copia ricorsivamente i contenuti della cartella in un'altra cartella.
cp *.extension /path/to/folder copia i file con una specifica estensione, in una nuova cartella. Per copiare tutti i file .doc, occorrerà scrivere cp *.doc /path/to/folder e la cartella di destinazione deve già esistere.
cp name* /path/to/folder copia tutti file che iniziano con 'name', nella cartella indicata. Per copiare tutti i file che iniziano con esempio, si dovrà digitare cp example* /path/to/folder e la cartella deve già esistere.
2.4 mv
mv → sposta i file.
La sintassi del comando mv è molto simile agli esempi mostrati sopra con cp. mv non accetta l'operatore -r dato che se muove una cartella, muove anche il suo contenuto. La sintassi non è la medesima in ogni circostanza, ma funziona come negli esempi indicati. Consultate la pagina di manuale per maggiori dettagli.
2.5 rm
rm rimuove file.
Per tutte le intenzioni e gli impieghi, rimuovere file con rm è permanente. Non fa uso del cestino. usatelo con cautela e assicuratevi che stiate cancellando chiaramente quello che volete e non quello che credete. Se volete divertirvi con il comando di cancellazione, prima o poi potreste mordervi le mani.
rm file rimuove il file specificato dal sistema
rm -r folder rimuove la cartella specificata dal sistema
rm -rf folder rimuove forzatamente la cartella specificata dal sistema. Questo comando danneggia seriamente il sistema se usato non correttamente. Il rischio è la totale e irrimediabile cancellazione del sistema.
2.6 nano
nano → editor di testo totalmente a linea di comando.
È possibile usarlo per modificare dei file direttamente dalla linea di comando ed è particolarmente utile per la modifica di file di sistema e configurazione. È pratico, ma tenete presente che può modificare solo file di testo e file di programmazione, i documenti di Words non possono essere visualizzati correttamente!
Se un file è proprietà di root, non può essere modificato da un utente normale. nano deve essere lanciato con sudo in funzione di salvare i cambiamenti. Altrimenti può essere aperto solo in funzione di lettura.
nano newfile.qualsiasi Nano crea un nuovo file con il nome specificato e lo apre per la modifica
nano nome_file Nano apre il file già esistente per la modifica
Salvare il file usando la combinazione di tasti ctrl+o.
Uscite da Nano usando la combinazione di tasti ctrl+x. Se avete delle modifiche non salvate, vi verrà chiesto di salvarle.
2.7 mkdir
mkdir → Crea directories.
mkdir nome_cartella Crea la cartella con il nome specificato
mkdir -p /percorso/alla/cartella Crea tutte le cartelle indicate. Per creare la cartella /home/borgio3/appunti_linux/terminale, ma se esistono solo /home/borgio3, usando mkdir -p verranno create le cartelle appunti_linux e terminale
2.8 ps
ps → allestisce gli elenchi.
ps aux elenca tutti i processi in esecuzione nel sistema, compreso utente, Process ID (PID) ed il nome del processo. Usare questo comando è utile per controllare l'elenco dei processi in corso ed eventualmente stopparne di inutili o che sono in stallo.
2.9 kill / killall / xkill
kill / killall / xkill → arrestano processi in stallo o inutili.
kill PID Il PID è un numero che si riferisce al processo in atto. È possibile ottenere il PID da linea di comando come ps aux . Se un processo si rifiuta di chiudersi, è possibile specificare kill -9 PID .
killall program Killall chiude *in base al nome* tutte le istanze del programma nominato. Se per esempio ci sono tre istanze di Firefox aperte, usando il comando killall firefox le chiuderà tutte.
xkill è un modo grafico per cliccare e chiudere una finestra. Digitando xkill viene mostrata una icona a croce o a teschio e spostandola sulla finestra da chiudere, basta cliccare con il sinistro per chiuderla. Funziona anche se la si sposta sul pannello, il quale verrà chiuso repentinamente.
2.10 > e >>
> e >> redirectors → Inviano l'output ad un file invece che al terminale.
> è usato per "sovrascrivere" i contenuti di un file esistente e sostituirli con l'output generato dal nuovo comando.
>> è usato per "allegare" informazioni all'attuale file esistente. È utile per il logging.
Esempio: ps aux > processes.log invia l'output di ps aux al file processes.log per visualizzare l'output del comando in un editor di testo e sovrascrivere l'attuale contenuto del file.
2.11 Eseguibili
Esecuzione dei file → Quindi volete eseguire dei file o dei programmi da terminale? Assicuratevi che siano eseguibili. Se non lo sono, leggete i trucchi rapidi qui sotto.
Avete bisogno di eseguire un file nell'attuale directory dopo averlo reso eseguibile? L'operatore "./" può eseguire il file come utente normale, evitando di farlo con i privilegi di root. ./ significa letteralmente "nell'attuale directory" quindi non funziona su file all'esterno della attuale directory.
Avete bisogno di eseguire un file non inserito nell'attuale directory? Dovete passare il percorso apropriato per eseguire il programma. Se è un programma in Python, è python /percorso/al/file e se è un file di shell, è sh /percorso/al/file , come esempi. Naturalmente ci sono altri programmi, ma questi saranno i più comuni per i principianti.
Avete bisogno di eseguire un file con i privilegi di root, perchè avete ricevuto un messaggio di operazione non permessa? Precedete il comando con sudo . Pertanto, ripetendo l'esempio riportato dianzi, sudo python /path/to/file eseguirà lo script con privilegi di root.
Avete bisogno di eseguire un programma grafico da terminale? Digitate semplicemente il nome del programma (digitatelo bene con maiuscole e minuscole in modo esatto!) e verrà lanciato. Ciò renderà l'attuale terminale inusabile. Chiudere il terminale mentre il programma è in esecuzione, chiuderà repentinamente il programma. Un modo migliore è di mettere in background il programma, digitando nome_programma & exit per chiuderlo e mantenere il programma in esecuzione.
Avete bisogno di eseguire un programma grafico da terminale con privilegi di root? Precedete il comando con gksudo o gksu e non con sudo. Usare sudo per lanciare una applicazione grafica è una brutta abitudine e dovrebbe essere evitata.
Mai, MAI usare sudo solo perché si è avuto un avviso di operazione non consentita. Assicuratevi di sapere cosa state per fare, prima di distruggere l'intero sistema operativo, lanciando un file con privilegi di root. Questa avvertenza non verrà mai ripetuta a sufficienza. Assicuratevi che i file eseguibili provengano da fonti sicure.
3. Trucchi rapidi
- Vi siete persi in una directory? Non siete sicuri di dove siete? Digitate
pwd per vedere l'attuale directory.
- Volete sapere rapidamente il vostro spazio disco?
df -h vi fornirà un rapido checkup.
- Volete calcolare rapidamente le dimensioni di file e cartelle?
du -cksh nome_cartella vi darà la risposta. Volete calcolare le dimensioni dell'attuale directory? du -cksh .
- Dovete rendere eseguibile un file?
chmod +x nomefile può farlo. La prossima volta che vedrete un file che volete rendere eseguibile e non lo è, saprete cosa fare.
***
Indice | Torna in alto
|