27.3. Comandi Linux importanti

In questa sezione sono riportati i comandi più importanti del sistema SUSE Linux. In questo capitolo sono elencati molti altri comandi. Insieme ai singoli comandi, sono elencati i parametri e, nel caso, viene presentata un'applicazione di esempio. Per ulteriori informazioni sui vari comandi, utilizzare le pagine man alle quali è possibile accedere conman seguito dal nome del comando, ad esempio, man ls.

All'interno delle pagine man, spostarsi verso l'alto e verso il basso con Pag su e Pag giù. Spostarsi tra l'inizio e la fine del documento con i tasti Home e Fine. Terminare questa modalità di visualizzazione premendoQ. È possibile ottenere ulteriori informazioni sul comando manconman man.

Nella panoramica riportata qui di seguito, gli elementi dei singoli comandi sono scritti con caratteri diversi. Il comando effettivo e le sue opzioni obbligatorie sono sempre stampati comecommand option. Le specifiche o i parametri che non sono necessari sono racchiusi tra [parentesi quadre].

Adattare le impostazioni in base alle proprie esigenze. Non ha senso scriverels file, se non esiste effettivamente nessun file chiamatofile. Generalmente è possibile combinare vari parametri, ad esempio, scrivendo ls -la anzichè ls -l -a.

27.3.1. Comandi per i file

Nella sezione riportata qui di seguito, sono elencati i comandi più importanti per la gestione dei file. Nella sezione viene trattato qualsiasi argomento, dall'amministrazione generale dei flie alla manipolazione di ACL di file system.

27.3.1.1. Amministrazione dei file

ls [options] [files]

Se si esegue ls senza nessun parametro aggiuntivo, il programma riporta un elenco dei contenuti della directory corrente in forma abbreviata.

-l

Lista dettagliata

-a

Visualizza i file nascosti

cp [options] source target

Copia source in target.

-i

Attende una conferma, se necessario, prima che venga sovrascritto un target esistente

-r

Copia in modo ricorsivo (include le sottodirectory)

mv [options] source target

Copia source in target poi cancella il filesource originale.

-b

Crea una copia di backup del source prima di spostarlo

-i

Attende una conferma, se necessario, prima che venga sovrascritto un targetfile esistente

ls [options] [files]

Rimuove i file indicati dal file system. Le directory non vengono rimosse dal comando rm a meno che non venga utilizzata l'opzione -r.

-r

Cancella qualsiasi sottodirectory esistente

-i

Attende conferma prima di cancellare file.

ln [options] source target

Crea un collegamento dasource a target. Normalmente, questo link punta direttamente a source sullo stesso file system. In ogni caso, se ln viene eseguito con l'opzione -s, crea un link simbolico che punta solo alla directory nella quale è posizionato source, abilitando il collegamento tramite file system.

-s

Crea un link simbolico

cd [options] [directory]

Modifica la directory corrente. cd senza parametri modifica la home directory dell'utente.

mkdir [options] directory

Crea una nuova directory.

rmdir [options] directory

Cancella la directory indicata se è già vuota.

chown [options] username[:[group]] files

Trasferisce la proprietà di un file all'utente con il nome utente indicato.

-R

Modifica i file e le directory in tutte le sottodirectory

chgrp [options] groupname files

Trasferisce la proprietà del gruppo di un dato file al gruppo con il nome gruppo indicato. Il proprietario del file può solo modificare la proprietà del gruppo se è membro sia del gruppo corrente, sia di quello nuovo.

chmod [options] mode files

Modifica i permessi di accesso.

Il parametro mode ha tre parti: group, access e access type. group accetta i seguenti caratteri:

u

user

g

group

o

others

Per access, grant access with + and deny it with -.

Il tipo di accesso è controllato dalle seguenti opzioni:

r

read

w

write

x

execute—esecuzione dei file o modifica alla directory

s

Setuid bit—l'applicazione o il programma viene avviato come se fosse avviato dal proprietario del file

Come alternativa, è possibile utilizzare un codice numerico. Le quattro cifre di questo codice sono composte dalla somma dei valori 4, 2 e 1—il risultato decimale di una maschera binaria. La prima cifra imposta la ID dell'utente impostato (SUID) (4), il gruppo impostato (2) e i bit permanenti (1). La seconda cifra definisce i permessi del proprietario del file. La terza cifra definisce i permessi dei membri del gruppo e l'ultima imposta i permessi per tutti gli altri utenti. Il permesso di lettura è impostato con 4, il permesso di scrittura con 2 e quello per l'esecuzione di un file è impostato con 1. Il proprietario di un file dovrebbe generalmente ricevere un 6 o un 7 per i file eseguibili.

gzip [parameters] files

Questo programma comprime i contenuti dei file utilizzando algoritmi matematici complessi. I file compressi in questo modo hanno estensione.gze devono essere decompressi prima di essere utilizzati. Per comprimere vari file o intere directory, utilizzare il comando tar.

-d

Decomprime i file gzip compressi in modo tale che tornino al formato originale e possano essere elaborati normalmente (come il comando gunzip)

tar options archive files

tar inserisce uno o più file in un archivio. La compressione è facoltativa. tar è un comando abbastanza complesso con molte opzioni disponibili. Le opzioni utilizzate con maggiore frequenza sono:

-f

Scrive l'output a un file e non sullo schermo come avviene di solito

-c

Crea un nuovo archivio tar

-r

Aggiunge file a un archivio esistente

-t

Emette i contenuti di un archivio

-u

Aggiunge file, ma solo se sono più recenti rispetto a quelli già contenuti nell'archivio

-x

Decomprime i file da un archivio (estrazione)

-z

Comprime l'archivio che ne risulta con gzip

-j

Comprime l'archivio che ne risulta con bzip2

-v

Elenca i file elaborati

I file di archivio creati da tar finiscono con .tar. Se l'archivio tar fosse stato solo compresso con gzip, la fine sarebbe.tgz o .tar.gz. Se fosse stato compresso con bzip2, la fine sarebbe .tar.bz2. Alcuni esempi di applicazione sono reperibili in Sezione 27.1.8, «Archivi e compressione dei dati».

locate patterns

Questo comando è disponibile solo se è stato installato il pacchetto findutils-locate. Il comandolocate è in grado di reperire in quale directory si trova un dato file. Se si vuole, è possibile utilizzare i caratteri jolly per indicare i nomi dei file. Il programma è molto veloce perchè utilizza un database appositamente creato per questo scopo (anzichè cercare nell'intero file system). Questo presenta anche un inconveniente: locate non è in grado di trovare i file creati dopo l'ultimo aggiornamento del suo database. Il database può essere generato da root con updatedb.

updatedb [options]

Questo comando esegue un aggiornamento del database utilizzato da locate. Per includere file in tutte le directory, eseguire il programma come root. È anche possibile metterlo in background aggiungendovi un simbolo (&), in modo tale da essere subito in grado di lavorare sulla stessa riga di comando (updatedb &). Questo comando, di solito, esegue un processo cron quotidiano (vedere cron.daily).

find [options]

Con find, è possibile cercare un file in una data directory. Il primo argomento indica la directory nella quale avviare la ricerca. L'opzione -name deve essere seguita da una stringa di ricerca, che può anche comprendere caratteri jolly. Al contrario, locate, che utilizza un database, find effettua la scansione della directory corrente.

27.3.1.2. Comandi per accedere ai contenuti di un file

cat [options] files

Il comando cat visualizza i contenuti di un file, stampando sullo schermo tutto il contenuto senza interruzione.

-n

Numera l'output sul margine sinistro

less [options] files

Questo comando può essere utilizzato per sfogliare i contenuti del file indicato. Scorrere fino a raggiungere metà schermo verso l'alto o verso il basso con Pag su e Pag giù o l'intera schermata con lo Spazio. Andare all'inizio o alla fine di un file con Home e Fine. Premere Q per uscire dal programma.

grep [options] searchstring files

Il comando grep trova una stringa di ricerca particolare nei file indicati. Se la stringa di ricerca viene trovata, il comando visualizza la riga nella quale la searchstring è stata trovata insieme al nome del file.

-i

Ignora maiuscole e minuscole

-H

Visualizza solo i nomi dei rispettivi file, ma non le righe di testo

-n

Visualizza inoltre i numeri delle righe nelle quali ha trovato un risultato

-l

Elenca solo i file nei quali lasearchstring non è presente

diff [options] file1 file2

Il comando diff confronta i contenuti di due file su uno. L'output prodotto dal programma elenca tutte le righe che non corrispondono. Questo comando è frequentemente utilizzato dai programmatori che devono inviare le modifiche dei programmi e non tutto il codice sorgente.

-q

Riporta solo se due file sono diversi

-u

Produce una«unified» diff, cche rende l'output più leggibile

27.3.1.3. File system

mount [options] [device] mountpoint

Questo comando può essere utilizzato per l'attivazione di supporti dati, come dischi rigidi, unità CD-ROM e altre unità in una directory del file system Linux.

-r

mount read-only

-t filesystem

Indica il file system, di solito ext2, per i dischi rigidi Linux, msdos per i supporti MS-DOS, vfat per il file system Windows eiso9660 per i CD

Per i dischi rigidi non definiti nel file /etc/fstab, si deve indicare anche il tipo di dispositivo. In questo caso solo l'utente root può effettuare l'attivazione. Se il file system deve essere anche attivato da altri utenti, immettere l'opzione user nella giusta riga nel file /etc/fstab (separata da virgole) e salvare questa modifica. Ulteriori informazioni sono disponibili alla pagina man mount(1).

umount [options] mountpoint

Questo comando disattiva un drive attivato dal file system. Per evitare perdite di dati, eseguire questo comando prima di rimuovere un supporto dati dalla sua unità. Di solito, solo l'utente root è autorizzato a eseguire i comandi mount e umount. Per abilitare altri utenti all'esecuzione di questi comandi, modificare il file /etc/fstab in modo tale da indicare l'opzioneuserper la rispettiva unità.

27.3.2. Comandi di sistema

La sezione riportata qui di seguito elenca alcuni dei più importanti comandi necessari a reperire le informazioni relative al sistema, al controllo dei processi e della rete.

27.3.2.1. Informazioni sul sistema

df [options] [directory]

Il comando df (disk free), quando utilizzato senza opzioni, visualizza le informazioni relative allo spazio totale su disco, allo spazio su disco attualmente in uso e allo spazio libero presente su tutte le unità attivate. Se viene indicata una directory, le informazioni sono limitate all'unità sulla quale è posizionata quella directory.

-h

Mostra il numero di blocchi occupati in gigabyte, megabyte o kilobyte—in formato leggibile

-T

Tipo di file system (ext2, nfs e così via.)

du [options] [path]

Questo comando, quando eseguito senza alcun parametro, mostra lo spazio totale su disco occupato dai file e dalle sottodirectory nella directory corrente.

-a

Visualizza la dimensione di ogni singolo file

-h

Output in formato leggibile

-s

Visualizza solo la dimensione totale calcolata

free [options]

Il comando free consente di visualizzare informazioni sulla RAM e l'utilizzo dello spazio di scambio, mostrando la quantità totale e quella utilizzata in entrambe le categorie. Vedere la Sezione 30.1.6, «Il comando free»per ulteriori informazioni.

-b

Output in byte

-k

Output in kilobyte

-m

Output in megabyte

date [options]

Questo semplice programma consente di visualizzare l'ora corrente del sistema. Se viene eseguito come root, questo programma può anche essere utilizzato per modificare l'ora del sistema. Ulteriori informazioni sul programma sono disponibili alla pagina man date(1).

27.3.2.2. Processi

top [options]

top consente di ottenere una panoramica rapida dei processi attualmente in esecuzione. Premere H per accedere a una pagina nella quale sono spiegate brevemente le opzioni principali per la personalizzazione del programma.

ps [options] [process ID]

Se eseguito senza opzioni, questo comando consente di visualizzare una tabella di tutti i programmi o i processi—avviati. Le opzioni per questo comando non sono precedute dal trattino.

aux

Consente di visualizzare un elenco dettagliato di tutti i processi, senza tener conto del proprietario

kill [options] process ID

Purtroppo, a volte, non è possibile terminare normalmente un programma. Nella maggior parte dei casi, dovrebbe essere ancora possibile fermare il programma eseguendo il comando kill, indicando la rispettiva ID del processo (vedere top e ps). kill consente di inviare un segnale TERM che invia un'istruzione di chiusura al programma. Se questo non è di aiuto, è possibile utilizzare il seguente parametro:

-9

Invia un segnale KILL anzichè un segnaleTERM che consente di terminare il programma in quasi tutti i casi

killall [options] processname

Questo comando è simile a kill, ma utilizza come argomento il nome di processo (anzichè l'ID), terminando tutti i processi con quel nome.

27.3.2.3. Rete

ping [options] hostname or IP address

Il comando ping è lo strumento standard per provare la funzionalità principale delle reti TCP/IP. Tramite questo comando viene inviato un piccolo pacchetto di dati all'host di destinazione con la richiesta di una risposta immediata. Se ping funziona, viene visualizzato un messaggio, a indicare che il collegamento di rete è in linea di massima funzionante.

-c number

Consente di definire il numero complessivo di pacchetti da inviare e terminare dopo la distribuzione (come impostazione predefinita, non è impostato alcun limite)

-f

flood ping: consente di inviare il maggior numero di pacchetti dati possibile; un mezzo comune, riservato agli utenti root, per provare le reti

-i value

Consente di indicare l'intervallo tra due pacchetti di dati in secondi (predefinito: un secondo)

nslookup

Il sistema del nome di dominio risolve i nomi di dominio agli indirizzi IP. Con questo strumento, è possibile inviare interrogazioni ai server dei nomi (server DNS).

telnet [options] hostname or IP address [port]

Telnet è un protocollo Internet che consente di lavorare su host remoti tramite una rete. telnet è anche il nome di un programma Linux che utilizza questo protocollo per abilitare le operazioni sui computer remoti.

[Warning]Avvertimento

Non utilizzare telnet su una rete dove è possibile l' «intercettazione» da parte di terzi. In particolare su Internet, utilizzare metodi di trasferimento cifrati come ssh, per evitare il rischio di un uso scorretto doloso di una parola d'ordine (vedere la pagina man di ssh).

27.3.2.4. Varie

passwd [options] [username]

Questo comando consente agli utenti di modificare la loro parola d'ordine in qualsiasi momento. L'amministratore root può utilizzare questo comando per modificare la parola d'ordine di qualsiasi utente sul sistema.

su [options] [username]

Il comando su cosente di eseguire il log in con un nome utente diverso da una sessione in esecuzione. Specificare un nome utente e la parola d'ordine corrispondente. All'utente root non è richiesta la parola d'ordine, perchè l'utente root è autorizzato ad assumere l'identità di qualsiasi utente. Quando si utilizza il comando senza specificare un nome utente, si è invitati a immettere la parola d'ordine dell'utente root e a passare a superutente (root).

-

Utilizzare il comando su - per avviare una shell di login per l'utente diverso.

halt [options]

Per evitare perdite di dati, si dovrebbe sempre utilizzare questo programma per spegnere il sistema.

reboot [options]

Come il comando halt con l'unica eccezione che consente di riavviare immediatamente il sistema.

cancella

Questo comando consente di ripulire l'area visibile della console. Non ha opzioni.

27.3.3. Per ulteriori informazioni

In questo capitolo sono elencati molti altri comandi. Per informazioni relative agli altri comandi o ulteriori dettagli, si consigli il testo di O'Reilly Linux guida di riferimento.