Partiamo con una guida pratica e concisa che permetta di utilizzare Linux abbastanza rapidamente. Le guide saranno divise per macro-aree. Iniziamo con la gestione di sistema.
Conoscere il sistema operativo.
Talvolta è necessario avere una certezza sulla versione del sistema operativo, il più classico dei comandi è sicuramente
uname -a
che darà un risultato simile:
uname -a
Linux walter-Latitude-E6410 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
In questo caso, ma non è sempre così, si capisce che si tratta di una distribuzione Ubuntu a 64 bit. Alcune distribuzioni indicano qualcosa, altre mostrano solo che si tratta di un Linux e la versione del kernel. Solitamente sotto /etc è presente un file che indica la versione. Per Ubuntu e Debian è lsb-release
walter@walter-Latitude-E6410:~$ cat /etc/lsb-release
DISTRIB_ID=neon
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="KDE neon User Edition 5.9"
dove in questo caso è una Ubuntu 16.04 “moddata” da Kde.
Nel caso di CentOS o RedHat il file da interrogare con un cat è /etc/issue
Versione del Kernel.
Qui è più semplice, basterà fornire il comando:
uname -r
ovvero il comando che abbiamo visto in precedenza, con l’opzione -a, e che già dava l’indicazione della versione di kernel utilizzata. Questo comando è utile ad esempio nell’utilizzo di controlli preventivi in script bash, ad esempio se lanciare un certo comando solo se la versione di kernel è superiore ad una certa versione.
Conoscere l’uptime di una macchina
Anche qui il comando è semplice, dato che è appunto:
uptime
In questo caso viene fornita l’ora corrente della macchina (l’orologio) e quindi da quanto tempo è accesa, il numero di utenti collegati e lo stato del carico generale in uno, cinque e quindici minuti.
Ultimo riavvio effettuato
Anziché verificare l’uptime, possiamo voler conoscere la data dell’ultimo reboot.
last reboot
Il comando dovrebbe restituire l’elenco degli ultimi reboot, questa cosa però non è affidabile, ad esempio con l’installazione di nuovi kernel viene persa tale informazione, inoltre alcune distribuzioni non sembrano salvare l’elenco, ma solo l’ultimo reboot.
Nome della macchina e varianti.
Per conoscere il nome della macchina utilizzeremo il comando:
hostname
Questo comando in realtà è molto versatile, ad esempio con l’opzione -I è possibile conoscere l’IP della macchina, molto utile ad esempio per estrarre l’ip locale in comandi bash.
hostname -I
192.168.1.33
Altre opzioni di hostname sono:
-a, –alias alias names
-A, –all-fqdns all long host names (FQDNs)
-b, –boot set default hostname if none available
-d, –domain DNS domain name
-f, –fqdn, –long long host name (FQDN)
-F, –file read host name or NIS domain name from given file
-i, –ip-address addresses for the host name
-I, –all-ip-addresses all addresses for the host
-s, –short short host name
-y, –yp, –nis NIS/YP domain name
Conoscere la data
Prima con uptime abbiamo visto che è possibile consultare l’ora, se invece vogliamo conoscere anche la data nel modo più completo, daremo il comando:
date
anche qui sono presenti alcune opzioni, ad esempio se vogliamo conoscere l’orario in formato UTC daremo il comando;
date -u
ma date non si limita a questo, ad esempio se vogliamo sapere quale sarà il nostro orario rispetto ad un certo fuso, per esempio vogliamo sapere che orario sarà qui da noi, quando giovedì prossimo a Los Angeles saranno le 9 del mattino, daremo questo comando:
date --date='TZ="America/Los_Angeles" 09:00 next Fri'
Il risultato sarà:
ven 10 feb 2017, 18.00.00, CET. Molto utile per conoscere discrepanze, o non perdere un webminar!
Calendario
uno dei comandi più sconosciuti probabilmente è
cal
che vi tornerà un output con il calendario del mese corrente, e il giorno attuale in evidenza. Con l’opzione -m seguita dal numero, vi mostrerà il mese. Ad esempio
cal -m 3
vi mostrerà il mese di marzo.
Con la semplice opzione -3 invece vi mostrerà il mese precedente e quello successivo.
Con l’opzione -y verrà mostrato l’intero anno.
Possiamo anche consultare determinate date nel passato e nel futuro, ad esempio per vedere il mese del dicembre del 1999 daremo il comando:
cal 12 1999
una variante di cal è ncal che attraverso l’opzione -e sarà in grado di dirvi quando cade il giorno di pasqua nel corrente anno
ncal -e
16 aprile 2017
In definitiva anche questo comando, essendo in shell è molto utile ad esempio per estrapolare con sed e awk, determinate date.
Chi sono io?
Oramai tutte le shell scrivono l’utente davanti alla shell, tuttavia in talune situazioni è necessario sapere chi è l’utente in funzione su quella shell, in questo caso di usa il comando:
whoami
Chi è collegato?
Un po’ meno noto ma più importante il comando “w” che permette di conoscere chi è collegato, con che tipo di collegamento (console, ssh, ftp eccetera), quando è avvenuto il collegamento e da quanto tempo la connessione non ottiene comandi, ovvero è in stato “idle”. Qui un esempio:
w
00:05:39 up 10:21, 2 users, load average: 0,25, 0,11, 0,10
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
walter pts/0 :0 13:44 10:21m 0.00s 9.39s kded5
walter pts/1 :0 23:16 0.00s 0.20s 0.00s w
Una variante interessante è l’opzione -i che permette di conoscere l’IP dell’utente collegato, ovviamente se il collegamento è di tipo differente da PTS (console diretta)
Altre opzioni:
-h, --no-header
Don't print the header.
-u, --no-current
Ignores the username while figuring out the current process and cpu times. To demonstrate this, do a "su" and do a "w" and a "w -u".
-s, --short
Use the short format. Don't print the login time, JCPU or PCPU times.
-f, --from
Toggle printing the from (remote hostname) field. The default as released is for the from field to not be printed, although your system administrator or dis‐
tribution maintainer may have compiled a version in which the from field is shown by default.
--help Display help text and exit.
-i, --ip-addr
Display IP address instead of hostname for from field.
-V, --version
Display version information.
-o, --old-style
Old style output. Prints blank space for idle times less than one minute.
user Show information about the specified user only.
Un altra opzione, meno moderna rispetto a “w” è finger, che permette di avere più informazioni sull’utente collegato, ma sostanzialmente riporta grosso modo i dati di “w”.
In questo primo capitolo abbiamo visto come è possibile avere informazioni relative al sistema. Nel prossimo articolo vedremo come reperire informazioni relative all’hardware su cui gira il sistema operativo.