Questo articolo spiega come utilizzare i comandi del terminale per fornire informazioni su alcuni comandi e capire a cosa servono.
Vengono inoltre forniti esempi per illustrare il processo.
Lo strumento della riga di comando è efficace. Esistono strumenti che convertono un processo laborioso all'interno di in un'interfaccia utente in un'attività che richiede solo pochi secondi. Rimuovere le ultime quattro linee in ogni riga di un file di grandi dimensioni rappresenta un processo dispendioso in termini di tempo in un'applicazione di interfaccia utente. Può tuttavia diventare automatico sulla riga di comando.
I modi più comuni per aprire una finestra di Terminale in Ubuntu Linux sono:
Ci sono molti comandi associati alla shell del terminale in Ubuntu Linux. L'articolo seguente elenca i più comuni nei gruppi interessati.
Sono tre i comandi principali che utilizziamo per fornire tutte le informazioni necessarie per l'utilizzo dei vari comandi del terminale.
Il comando man visualizza il manuale per qualsiasi comando utilizzato nel terminale.
La maggior parte dei comandi della shell accetta varie opzioni. Per ottenere informazioni su un comando e un elenco delle opzioni disponibili, utilizzare il comando man
, abbreviazione di "manual". Indicare come argomento il nome del comando di cui si desidera trovare ulteriori informazioni, ovvero il comando su cui funziona il comando man
.
Esempio: se si inserisce il comando man who
, viene visualizzato il seguente output.
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
Molti manuali sono estesi in varie schermate. Utilizzare i tasti cursore o ARROW
oppure PGSU e PGGIÙ per spostarsi nel testo. Il tasto BARRA SPAZIATRICE mostra la riga di testo successiva. Premendo il tasto q si esce dal manuale e si torna alla shell.
Come si può notare dalla man page è possibile utilizzare l'opzione -a
per visualizzare ulteriori informazioni sulle sessioni utente attive.
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
Legge anche i file della guida per i programmi e il comando man
può anche fornire informazioni su shell, funzioni e librerie.
Se non si è certi di saper usare un comando specifico, eseguire il comando con le opzioni -h
oppure –help
. Vengono visualizzate le informazioni sull'utilizzo, oltre a un elenco di opzioni utilizzabili con il comando.
Esempio: se si desidera sapere come utilizzare il comando wget
digitare wget –help
oppure wget -h
.
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
Spesso vengono visualizzate molte informazioni sul terminale e può risultare poco pratico scorrerle tutte. Per leggere più facilmente l'output, è possibile utilizzare pipe
tramite il comando less, che permette di scorrere il testo con i tasti cursore o FRECCIA sulla tastiera.
Esempio: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
Premere q per chiudere l'utilità less al termine dell'operazione.
Per trovare un'opzione specifica, è possibile utilizzare pipe
per l'output tramite il comando grep
. Ad esempio, utilizzare il seguente comando per cercare le opzioni contenenti la parola proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
Alcuni comandi sono documentati anche all'interno del sistema info
. Le informazioni qui riportate integrano quanto visualizzato dal comando man
.
Esempio: inserire il comando info ls,
per visualizzare il seguente output.
[support@support]$" info ls
È ora possibile visualizzare un manuale contenente informazioni importanti sul comando ls
.
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
È possibile scorrere verso il basso la pagina premendo il tasto BARRA SPAZIATRICE o utilizzando il cursore/tastiARROW
.
help
, premere Hquit
, premere Q
È possibile eseguire in un terminale praticamente qualsiasi operazione che verrebbe eseguita anche da un'interfaccia utente.
Come detto in precedenza, molti comandi sono stati progettati per funzionare prima nel terminale e successivamente è stata creata un'interfaccia utente. Questo è il motivo per cui alcune GUI potrebbero sembrare poco pratiche: inizialmente rappresentavano un ripiego, in quanto assenti nella maggior parte delle build dei server Linux.
La posizione predefinita per aprire il terminale dal menu è la cartella Home, nota come ~
È possibile trovare la directory corrente tramite l'operatore .
. La maggior parte dei comandi che agisce sulla selezione della cartella corrente opera su comandi, posizioni e file con distinzione tra maiuscole e minuscole. /home
non è uguale a /HOME
oppure /Home
.
Utilizzare TAB per completare i nomi dei file se il titolo del driver è lungo. driver-128947232jaseu.sh
Ad esempio, digitare dri
e il resto viene inserito automaticamente, fintanto che non sono presenti due nomi che iniziano con dri
e, in tal caso, aggiungete un altro carattere in modo che diventi driv
e riprovare. Assicurarsi che il completamento automatico corrisponda a quello che si desidera visualizzare.
È possibile leggere per intero quasi tutti i comandi utilizzando la man
page o digitando -h
oppure --help
dopo aver scritto il comando iniziale. La sintassi è man command_name
, command_name -h
oppure command_name --help
.
Per ottenere ulteriori informazioni, è possibile utilizzare info. È possibile eseguire la ricerca di un comando utilizzando info command_name
. Per la maggior parte dei comandi che fanno parte del pacchetto coreutils, È possibile trovare anche info
utilizzando la chiamata info coreutils command_name
in cui il comando ricercato sostituisce command_name
.
Praticamente qualsiasi comando può mostrare esattamente ciò che sta accadendo, passo dopo passo. Si tratta in genere di -v
oppure --verbose
.
Per ottenere ulteriori informazioni, è possibile specificare contemporaneamente più flag di comando per un comando. Consultare l'esempio ls -al
riportato di seguito.
I nomi dei comandi non sono sempre ovvi: a causa delle limitazioni di spazio ai tempi di Unix, sono stati abbreviati e le convenzioni sono rimaste applicate.
cd
- Reindirizza l'utente alla directory principale, come cd ~
cd..
- Reindirizza l'utente a una directory precedente. A partire da /home/user/Desktop
, cd..
reindirizza l'utente a /home/user
. Può essere espanso a cd ../../
che reindirizza l'utente due directory indietro, ovvero a /home
.
cd foldername/
- Spostare l'utente in avanti alla cartella specificata nella cartella corrente.
/
è un'omissione importante. Se ci si trova in /home/user
e si desidera accedere a Desktop
, è necessario digitare cd Desktop/
senza /
prima di Desktop
. Digitando /
l'utente passa alla root directory del file system, che non funzionerebbe.
cd /some/other/path
- Consente di accedere al percorso di cartella specificato, se il percorso è giusto. Tenere presente che è possibile utilizzare il tasto TAB
per completare l'operazione.
ls
- Elenca tutti i file nella cartella corrente.
ls -l
- Fornisce un elenco più lungo, che include proprietari, autorizzazioni, dimensioni e data di modifica.
ls -a
- Visualizza i file e le cartelle nascosti e l'elenco normale.
ls -al
- Combina due opzioni per visualizzare i file e le cartelle nascosti nel formato esteso.
ls -h
- Mostra le dimensioni file in formato leggibile in KB, MB, GB,
anziché byte. Viene spesso utilizzato con il flag -l
.
È anche possibile visualizzare i file nelle directory in cui non si è presenti. Se ci si trova in /home/user/Desktop
e si intende visualizzare un file in /home/user
, è possibile utilizzare il comando ls ../
per elencare i file di una directory indietro.
cp file /path/to/folder
- Copia il file specificato nel percorso specificato.
cp -r folder /path/to/folder
- Copia ripetutamente il contenuto della cartella in un'altra cartella.
cp *.extension /path/to/folder
- Copia i file corrispondenti all'estensione specificata nella nuova cartella. Per copiare tutti i file .doc, il comando è cp *.doc /path/to/folder
e la cartella deve essere stata creata in precedenza.
cp name* /path/to/folder
- Copia tutti i file che iniziano con name
nella cartella specificata. Per copiare tutti i file che iniziano con example
, il comando è cp example* /path/to/folder
e la cartella deve essere stata creata in precedenza.
La sintassi di mv
è simile a quella dell'esempio di cui sopra, senza cp
per l'esempio 2. mv
non utilizza il flag -r
, poiché lo spostamento di una cartella determina anche lo spostamento del relativo contenuto. La sintassi non è esatta in tutte le istanze, ma funziona con gli esempi riportati in precedenza. Per ulteriori informazioni, consultare le man page.
La rimozione dei file con rm
è permanente. I file non finiscono nel Cestino. Utilizzare questo comando con cautela e assicurarsi di eliminare i file corretti prima di premere il tasto Enter
. Non è opportuno complicare eccessivamente i comandi di eliminazione.
rm file
- Rimuove il file specifico dal computer.
rm -r folder
- Rimuove la cartella specifica dal computer.
rm -rf folder
- Rimuove forzatamente la cartella specifica dal computer. Questo comando può danneggiare la configurazione se utilizzato in modo errato.
È possibile modificare i file utilizzando nano
in un terminale per eseguire file rapidi e non elaborati o configurazioni complete. Può essere utile, ma gestisce file di testo normale e file di programmazione, quindi elementi come documenti di Microsoft Word non si aprono correttamente.
Se un file è di proprietà dell'utente root, un utente normale non può modificarlo. nano
deve essere preceduto da sudo
per poter salvare le modifiche. In caso contrario si apre in modalità read-only.
nano newfile.whatever
del nome specificato e lo apre per la modifica.
nano existing_file
- Apre il file esistente per la modifica.
Dall'interno di nano
Salvare il file premendo contemporaneamente i tasti CTRL+O
e modificare il nome o premere il tasto Enter
per mantenere lo stesso nome. In questo modo il file viene salvato.
Consente di uscire nano
utilizzando contemporaneamente i tasti CTRL+X
. Se sono presenti modifiche non salvate, viene richiesto se si desidera salvarle.
mkdir folder_name
- Crea la cartella con il nome specificato
mkdir -p /path/to/folder/name
- Crea ogni cartella in base alle esigenze. Per creare una cartella /home/user/1stfolder/2ndfolder
, se esiste solo /home/user
, l'utilizzo di mkdir -p
crea entrambe le directory 1stfolder,
e 2ndfolder
.
ps aux
- Elenca tutti i processi in dettaglio in esecuzione sul computer. Sono inclusi utente, ID del processo PID,
e nome del processo. In questo modo è possibile visualizzare l'elenco dei processi e, se necessario, è possibile terminare quelli non necessari o bloccati.
kill PID
- Il PID è un numero che fa riferimento al processo che determina un errore. È possibile ottenere il PID da un comando come ps aux
. Se un processo non si arresta, è inoltre possibile specificare kill -9 PID
che dovrebbe terminare definitivamente il processo.
killall program
- Killall
termina by name
tutte le istanze di listed program
. Se ad esempio sono aperte 3 sessioni del browser Internet Firefox, killall Firefox
le termina tutte. kill
individua il PID specificato del processo Firefox che determina l'errore e termina solo il processo in questione.
xkill
è un modo tramite interfaccia utente per selezionare e chiudere le finestre. Digitando xkill
viene visualizzata un'icona a forma di teschio e la successiva finestra selezionata viene chiusa.
Pipes
è il comando rappresentato da straight bar,
noto anche come tasto |
.
Si tratta di un tasto raramente utilizzato in Windows, ma si trova spesso sopra il tasto della barra rovesciata.
Questi vengono utilizzati per collegare insieme i comandi. Pipes
accetta l'output di un comando e lo instrada per essere utilizzato come input per un secondo comando in caso di concatenazione.
Consultare le risorse online per ulteriori informazioni su pipes
e sul relativo utilizzo, in quanto alcuni volumi scritti su pipe.
>
viene utilizzato per sovrascrivere tramite overwrite
il contenuto dei file esistenti sostituendolo con l'output del nuovo comando.
>>
viene utilizzato per aggiungere tramite append
informazioni ai file esistenti. Questo comando è utile per le azioni di registrazione.
Example:
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 sovrascrive il contenuto corrente del file.
tee
viene utilizzato insieme a |
per accettare l'output del comando e inviarlo altrove. Questo comando è utile in caso di errori non rilevati. In questo modo, tutto ciò che viene visualizzato sullo schermo viene anche acquisito in un file.
Esempio: dmesg
| tee boot.txt
esegue il comando dmesg
che mostra le informazioni di avvio iniziali. Il comando |
invia l'output di dmesg
su tee
, che quindi lo invia al terminale e al file di registro. boot.txt
.
È necessario eseguire un file nella directory corrente dopo che è stato contrassegnato come eseguibile? Il comando ./
può eseguire il file come utente normale, purché non siano necessari diritti di utente root. ./
significa letteralmente in the current directory
nella directory corrente e non funziona sui file esterni alla directory attuale.
Se si intende eseguire un file non nella directory corrente, passare il percorso al programma di esecuzione corretto. Ad esempio, se si tratta di un programma Python, è python /path/to/file
e, se si tratta di un file della shell, è sh /path/to/file
. Esistono anche altri programmi, ma questi sono i più comuni.
Se è necessario eseguire un file con diritti di utente root perché è stato ricevuto il messaggio operation not permitted?
, è necessario anteporre al comando sudo
. Come per l'esempio precedente, sudo python /path/to/file
esegue lo script con i diritti di utente root.
Per eseguire un programma di interfaccia utente direttamente dal terminale, è sufficiente digitare il nome del programma, case sensitive!
per avviarlo. Il terminale corrente diventa inutilizzabile. La chiusura del terminale mentre il programma è aperto termina anche il programma stesso. Un modo migliore è quello di spostare in background il programma, utilizzando program_name
e quindi digitando la parola exit
nel terminale per chiuderlo e mantenere in funzione il processo.
Se si intende eseguire un programma di interfaccia utente con diritti di utente root dal terminale, anteporvi gksudo
oppure gksu
e non sudo
. È opportuno evitare di utilizzare sudo
per avviare applicazioni di interfaccia utente.
Dunque, not
utilizzare sudo
solo perché viene visualizzato il messaggio Operation not permitted.
Tenere presente che è possibile destroy
i computer eseguendo comandi nella posizione sbagliata con diritti di utente root. Accertarsi che i file provengano da fonti affidabili.
Non si riesce a ricordare la directory in cui ci si trova? Tipo pwd
per visualizzare la directory di lavoro.
Si intende calcolare lo spazio su disco? df -h
può fornire un'indicazione rapida.
Si desidera calcolare le dimensioni di una cartella o di un file? du -cksh target_name
serve a questo. Si desidera calcolare le dimensioni della cartella corrente? du -cksh
.
Si intende contrassegnare un file come eseguibile? chmod +x filename
è il comando giusto.
È necessario eseguire il mounting di un'immagine ISO? Linux include questa funzionalità. Creare una directory in una posizione, ad esempio /home/user/isomount
, emettere il comando mount -o loop /path/to/myisofile.iso /home/user/isomount
e il contenuto viene sottoposto a mounting all'interno della cartella.
Dopo aver eseguito un comando, è necessario ripeterlo, ma non si ricorda esattamente quale fosse? Tipo history
nel terminale per visualizzare la cronologia dei comandi. Si intende cancellare la cronologia? history -c
elimina le informazioni.