Vademecum Linux
Iniziare
a lavorare con un sistema operativo come Linux spaventa anche chi non
è alle prime armi con l'informatica. Linux è un Sistema
Operativo like Unix, come tutti quelli appartenenti a questa famiglia
è un sistema potente, se usato bene fa risparmiare un sacco di
tempo in quei lavori delicati e spesso noiosi. Risolvere problemi
ripetitivi diventa difficile se usato senza conoscere i comandi, i
programmi e la programmazione di shell. Tutti i comandi sono
semplici, imparando ad utilizzarli si possono fare delle cose
insperate. Questi strumenti usati con cognizione fanno il lavoro al
posto nostro. Facciamo un esempio:
Problema
- fare un elenco di tutti i file del sistema ordinandoli per data e
prendere solo quelli creati nel mese di marzo
Soluzione
- usare i comandi ls, sort, e grep, provate a
farlo, se non ci riuscite subito provate a farlo con il solo comando
find.
La soluzione con i comandi incatenati la trovate qui
(link)
L'intenzione di questa rivisitazione dell'articolo è quella di
preparare un prontuario che possa essere utile sia agli utenti
inesperti che per quelli esperti ma con poca memoria come me.
Gli utenti esperti non troveranno niente di più di quanto già
sanno, ma potranno utilizzare questo Vademecum durante quei momenti
di vuoto di memoria che spesso si presenta nelle situazioni meno
opportuni. L'articolo è stato diviso in due sezioni, una che
elenca i comandi in ordine alfabetico e l’altra che presenta i
comandi in base al loro impiego.
Comandi di inizio lavori, comandi di
fine lavoro, comandi di rete, comandi di stampa ecc.. Questo perché
per esperienza personale non è difficile fare lavori di
routine, ma è difficile muoversi da principianti tra le varie
sfumature dei comandi Linux. Spesso ci si può chiedere quali
comandi si usano per la rete, per la posta elettronica oppure per
fare dei backup, ho cercato di dare una idea chiara sui comandi di
tutto il sistema dando un’organizzazione al diverso utilizzo
che si fa dei comandi a secondo del lavoro che bisogna effettuare. Un
comando può essere utilizzato per diversi scopi, ma di solito
rientra in una categoria ben precisa.
Quello
che ho raccolto in queste righe è solo la minima parte dei
comandi Linux, ce ne sono molti di più e non basta una riga o
due per spiegare cosa fanno. Non voglio scrivere un articolo noioso e
lungo, per avere informazioni dettagliate e precise sul funzionamento
del singolo comando bisogna affidarsi al manuale in linea, cioè
digitare man comando. Apparirà la
sintassi e la spiegazione del comando con esempi dettagliati. Una
cosa da tenere presente e che un buon sistema operativo si riconosce
anche da quanto risulta dettagliata la spiegazione in linea.
Quando
è stato scritto l'articolo per la prima volta non c'erano
ancora delle ottime traduzioni dei manuali dei comandi, esisteva però
un progetto del pluto ( www.pluto.linux.it
) che si occupava della traduzione dei comandi. Oggi rispetto
alla prima stesura dell'articolo abbiamo delle ottime traduzioni e
possiamo leggere dei manuali in linea anche in italiano. Un
grazie a tutti quelli che hanno partecipato a diffondere Linux.
Iniziare e Finire
login: Da
L’accesso al sistema
ssh: Da
L’accesso al sistema
telnet: Collega
ad un’altra macchina
logout: Si
disconnette dal sistema.
exit: Esce dalla
shell di sistema, spesso si usa per disconnettere in una sessione
telnet.
File Management
mkdir: Crea una
directory.
cd: Cambia
la directory di lavoro
ls: Come
il dir del dos, lista i file all'interno di una directory
cp: copia
i file
mv: Sposta
i file
rm: Rimuove
un file
chmod: Cambia
i permessi ai file. I permessi si usano in formato numerico o
simbolico, sono quei valori che si trovano a sinistra di ogni voce
che viene fuori digitando il comando ls –l.
cmp: Compara
due file
wc: Conta
le parole, i caratteri e le righe di un file
compress:
Comprime
un file
Comunicazioni
pine: Uno
dei primi programmi di posta elettronica, facile da usare e
abbastanza intuitivo.
talk: Serve per
comunicare in tempo reale con un altro utente, lo schermo si divide
in due, nella sezione superiore compare ciò che l’altro
scrive e viceversa.
write: Scrivere
un messaggio che compare a video ad un altro utente è
abbastanza semplice, basta indicare il nome utente e se si è
in una grossa rete anche il nome macchina: write root@enku.edu
ftp:
Programma
per il file trasfering, ha una sintassi tutta sua, per uscire per
esempio bisogna digitare quit.
fscp: Programma
per il file trasfering, ha una sintassi tutta sua, usare il man..
Informazioni
man: Serve per
cercare le informazioni sui comandi, l’uso più semplice
è quello visto sopra ed è quello più usato,
altri modi di utilizzo sono con i flag k e f, man –k
router ci da l’elenco dei comandi che contengono la parola
router.
quota -v: Da
informazioni sullo spazio disco disponibile
finger: Serve per cercare informazioni su un utente: finger
root@enku.edu,
da le informazioni sull’utente root che si trova definito sulla
macchina enku.edu.
passwd: Serve per cambiare la
password di un utente, la sintassi è semplice, basta digitare
il comando seguito dal nome utente. Bisogna stare attenti a non
dimenticarsi il nome utente quando si è root, poiché
cambieremmo la password di root involontariamente.
who: Da
l’elenco degli utenti loggati sul sistema.
w: Da l’elenco
degli utenti loggati sul sistema, aggiunge anche il programma in
esecuzione
Stampa
lpr:
Stampa
lprm:
Rimuove
un lavoro in coda di stampa
lpstat:
Ci da le informazioni sullo stato della coda di stampa.
Controllare il lavoro
ps: E’ il
comando più usato dai sistemisti, serve per cercare un
processo. Spesso si usa per individuare quel processo che rallenta il
sistema o quello che abbiamo lanciato in background e non sappiamo se
ha finito.
kill: Ammazza un
processo, dopo averlo individuato con ps si lancia il comando
kill –9 PID (PID sta per identificatore di processo,
cioè il numero che lo contraddistingue)
nohup:
Questo comando risolve il problema di dover aspettare che un processo
finisca per poter uscire dal sistema, nohup che precede qualsiasi
comando fa si che l’esecuzione del comando continui anche dopo
il logout.
nice: Cambia
la priorità di esecuzione di un processo.
&:
Come
far lavorare un processo in background? Semplice basta mettere la &
dopo il comando.
Cntrl-z: Interrompe
un processo in esecuzione.
fg: Riporta in
foreground un processo mandato in Background.
Salvare i dati di lavoro e di sistema
cpio:
Comando utilizzato per fare dei backup dei dati, si utilizza di
solito per fare dei salvataggi su nastro
tar:
E’ uguale al comando cpio, è più semplice da
utilizzare ed è portatile sui diversi sistemi unix.
compress:
E’ uno dei primi compressori di file per Unix, viene ancora
usato perché facile da usare e perché è ancora
un comando standard per Unix, sotto Linux si usa di solito gzip.
uncompress:
Decomprime i file compressi con compress.
Comandi di rete
netstat: Serve
per controllare lo stato della rete, con il flag –r ci da lo
stato della tabella di routing.
ifconfig: Per
sapere la configurazione di una scheda di rete basta digitare il suo
nome dopo il comando, ifconfig eth0 fornisce la configurazione
della scheda identificata dalla sigla eth0.
traceroute: Spesso
per risolvere un problema di comunicazione tra pc bisogna conoscere
dove si interrompe il flusso di dati, traceroute fornisce gli
indirizzi di rete attraversati per raggiungere la destinazione.
route:
Con le opzioni di add e delete permette di aggiungere o togliere
una riga dalla tabella di routing.
ping:
Usato per controllare la
raggiungibiliutà di un host, al ping risponde un pong.
A
alias
– Crea o rimuove uno pseudonimo per un comando.
apropos
- Trova i comandi contenuti nelle pagine del manuale in linea che
contengono una parola chiave.
ar
- Crea e archivia file, aggiunge o estrae da un file di archivio.
at,
batch - Esegue dei comandi ad
una specificata ora.
awk
- Potente programma per la manipolazione dei file di testo, ha un
suo linguaggio di programmazione.
arp
– Mostra gli indirizzi fisici collegati alla macchina, cioè
l’indirizzo hardware delle schede di rete.
B
banner
- Trasforma una stringa ascii in lettere grandi stampabili tipo
striscione pubblicitario.
biff
- Avverte che è arrivata posta.
bin-mail,
binmail - Facile programma per
processare messaggi di posta.
C
cat
- Concatena e fa vedere file.
cc
- Compilatore C.
cd
- Cambia la directory di lavoro. Se si digita cd e poi si da invio
porta nella propria home.
chgrp
- Serve per cambiare l'appartenenza di un file ad un gruppo.
chmod
- Serve per cambiare i permessi ad un file, si può usare la
notazione numerica e letterale, chmod 777 file è
uguale a chmod +ugo file.
chown
– Cambia il proprietario di un file.
clear
- Pulisce lo schermo.
cmp
- Compara due file byte per byte.
compress,
uncompress, zcat
- Comprime ed estrae file da file compressi.
cp
- Copia file.
cpio
- Comando per archiviare ed estrarre file, un po’ più
complicato di tar
cpp
- Preprocessore per compilatore C.
csh
- Una shell (interprete dei comandi) con una sintassi e modi di
utilizzo simile al Linguaggio C
D
date
- Setta l'orario e lo fa vedere.
dbx
- Debugger per programmi compilati.
df
- Riporta le statistiche di occupazione dei file systems, df –k
riporta le statistiche in Kilobytes.
diff
- Trova le differenze tra due file scrivendole riga per riga.
du
- Riporta la grandezza o la dimensione di un file.
E
echo
- Fa l'eco sullo standard output
ed,
red - Editor di linea, simile al
vi ma si può usare solo con una linea.
ex,
edit, e
- Editor di linea, simile al vi ma si può usare solo con una
linea.
exit
– Esce, se si è in connessione telnet abbandona la
connessione, in uno script esce dall’esecuzione.
exportfs
– Exporta file systems per poterli condividere con
altre macchine.
expr
- Calcola gli argomenti di una funzione logica, aritmetica o di una
stringa di testo.
F
fg
– Porta in foreground un processo.
file
- Determina il tipo di file analizzando il suo contenuto.
find
- Trova file per nome o per altre caratteristiche tipo la
dimensione.
finger
- Stampa informazioni sugli utenti.
ftp
- Programma per il trasferimento di file tra computer remoti.
G
grep
- Cerca nei file una stringa, viene usato tantissimo con le pipe ( |
).
groups
- Display di un utente il suo gruppo di appartenenza.
H
history
– Permette di riusare i comandi che sono stati digitati e che
il sistema memorizza in un file che si chiama anch’esso di
solito history
hostname
– Elenca il nome degli host definiti sulla macchina.
I
J
K
Kill
– Killing dei processi, manda dei segnali ad un processo, kill
–9 5160 uccide il processo 5160
Ksh
– Un’altra shell con dei comandi aggiuntivi
rispetto alla shell standard.
L
last
– Indica gli ultimi login a sistema.
less
– Opposto di more.
ln
– Fa dei link tra file hard o soft.
login
– Login al sistema.
Logout
– Esce dal sistema, il contrario di login.
lp,
cancel – Manda o cancella
richiesta ad una stampante.
lpq
– Fa vedere la coda di stampa.
lpr
– Manda un job ( lavoro ) ad una stampante.
lprm
- Remuove jobs ( lavori ) dalla coda di stampa.
lpstat
– Da le informazioni sullo stato di una
coda di stampa.
ls
– Lista i file della corrente directory.
M
mail,
Mail – Legge o manda
messaggi di Mail.
make
– Mantiene, rigenera e compila programmi, per ricompilare il
kernel si usa make.
man
– Stampa a video le pagine del manuale, trova i comandi che
contengono una parola chiave.
mesg
– Permette o nega che i messaggi arrivino a viddeo .
mkdir
– Crea una directory
more,
page – Fa vedere, impagina
un text file
mount
-
Monta
un file system. Tutti i file systems devono essere montati in una
directory vuota. Dopo l’avvio almeno un file systems è
montato, quello di root. I dispositivi come il floppy e il cdrom
devono essere montati prima di poterli usare. Mount –t
iso9660 /dev/cdrom /cdrom monta il cdrom nella directory /cdrom.
mt
– Controlla le cassette magnetiche che si
utilizzano per il backup.
mv
– Muove o rinomina un file.
N
nice
– Assegna ad un programma una priorità minore.
netstat
– Fa vedere lo stato della rete della macchina locale,
fornisce informazioni sulle connessioni TCP/IP.
nroff
– Formatta documenti per il display o per una line-printer.
P
passwd
– Cambia la password.
ping
– Manda una richiesta di echo ad un host, serve per
controllare se una macchina è raggiungibile.
pr
- prepara file(s) per stamparli, spesso in colonne multiple.
printenv
– Stampa a video le variabili settate.
ps
– Fa vedere lo stato dei processi del sistema.
pwd
– Mostra la directory corrente.
Q
R
rcp
– Copia file remoti, rientra in quei comandi che si possono
eseguire su macchine remote.
rev
– Cambia l’ordine di ogni carattere in ogni linea.
rlogin
- Login su macchine remote.
rm,
rmdir – Rimuove (unlink)
file o directory
route
– Comando per manipolare manualmente le tabelle di routing.
rsh
- Remote shell
rwall
– Scrive a tutti gli utenti in una rete.
rwho
– Chi è collegato ad una macchina.
S
sar
– Riporta l’attività del sistema, i dati si
possono utilizzare per fare dei grafici.
sed
– Editor di stringa.
set,
setenv
– Serve per settare o cambiare le variabili di sistema.
sh
- Shell, l’interprete standard dei comandi UNIX e del
linguaggio degli script.
size
– Calcola la misura di un file
sleep
– Sospende l’esecuzione di un programma per uno
specificato programma.
sort
– Ordina linee di testo.
spell,
hashmake, spellin,
hashcheck - Riporta errori di
spelling.
split
- Taglia un file in pezzi.
strings
– Cerca stringhe che si possono stampare in un file o oggetto
in formato binary.
stty
– Setta o altera le opzioni di un terminale.
su
- super-user, switch ad un utente con un ID diverso.
T
tail
– Stampa a video l’ultima parte di un file, al contrario
dio cat che fa vedere l’inizio
di u file.
talk
- Talk con un altro user.
tar
– Crea archivi su cassetta e su file, estrae e aggiunge file
ad un archivio.
tee
- Replica lo standard output.
telnet
– Interfaccia utente per un sistema remoto usando il
protocollo TELNET.
tftp
- trivial file transfer program, come l’ftp ma senza il
controllo di ritorno dell’avvenuta consegna dei dati.
touch
- Update e modifica del tempo di accesso di un file.
traceroute
– Determina il percorso tra un host e la
macchina remota.
troff
– Formatta un documento.
tty
– Indica il nome del terminale.
U
units
– Programma di conversione.
uptime
– Indica da quanto tempo il sistema è attivo, indica
quanto tempo è passato dall’ultimo reeboot.
users
– Stampa a video la lista degli users logged in, cioè
degli utenti che stanno lavorando sul sistema.
uuencode,
uudecode – Codifica un
file binario, or decodifica la sua rappresentazione ASCII.
uusend
- Manda un file ad un host remoto.
V
vi
– Editor di file standard.
view
– Come vi ma in
sola lettura, non si possono fare le modifiche ai file.
W
wait
– aspetta che un processo finisce.
wall
– Scrive ad un utente che è logged in.
wc
– Conta il numero di linee, parole e caratteri di u file.
whereis
– Localizza il posto, il sorgente e la pagina del manuale di
un comando.
who
– Chi è loggato in un sistema.
whoami
– Chi sono io?, mostra il corrente ID.
write
– Scrive un messaggio ad un altro utente.