Linux Shell - Il sistema

ilsistemashell

Continua la guida sulla Shell di Linux e questa settimana inizieremo ad esplorare più a fondo il nostro sistema operativo.
Abbiamo visto come usando il comando ls si possa elencare il contenuto della cartella corrente. In verità ls è in grado di fornirci informazioni più dettagliate sui file presenti e può essere impiegato anche su più cartelle differenti. Vediamo come:

user@allafinedelpalo:~$ ls
	Desktop Documents Downloads Music Videos 
user@allafinedelpalo:~$ ls -l
	drwxr-xr-x  2 user user  4096 ott 20 21:19 Desktop
	drwxr-xr-x  3 user user  4096 ott 20 23:18 Documents
	drwxr-xr-x  5 user user  4096 ott 23 16:59 Downloads
	drwxr-xr-x  2 user user  4096 ott 20 21:19 Music
	drwxr-xr-x  2 user user  4096 ott 20 21:19 Videos
user@allafinedelpalo:~$ ls /usr/local/
	bin  cuda  cuda-8.0  etc  games  include  lib  man  MATLAB  sbin  share  src
user@allafinedelpalo:~$ ls ~/Documents /usr/local/
	/home/user/Documents:
	MATLAB

	/usr/local/:
	bin  cuda  cuda-8.0  etc  games  include  lib  man  MATLAB  sbin  share  src

Come potete vedere dagli esempi possiamo specificare degli argomenti per il comando ls>. In particolare possiamo specificare il percorso di una o più cartelle da elencare ed inoltre utilizzando il flag -l possiamo cambiare il formato dell'output in modo da avere più informazioni. Così facendo ls ci mostrerà: i permessi applicati al file, il numero di link al file, il proprietario, il gruppo a cui appartiene il file, la dimensione in byte, la data dell'ultima modifica ed il nome del file.
I flag più comuni per il comando ls sono i seguenti:

  • -a: elenca tutti i file, compresi quelli nascosti.
  • -d: elenca solo la cartella corrente (utile in combinazione con -l).
  • -F: appende un carattere speciale dopo il nome di ogni file per indicarne il tipo.
  • -h: se usato con -l rende più leggibile la dimensione dei file.
  • -l: mostra i risultati in formato esteso.
  • -r: mostra i risultati in ordine inverso.
  • -S: ordina i risultati per dimensione.
  • -t: ordina i risultati per data di ultima modifica.

Ora che sappiamo elencare i file nelle varie cartelle, come facciamo a sapere il tipo di un file? In Linux le estensioni dei file non devono rispecchiarne necessariamente il contenuto (sebbene sia naturale aspettarselo) e questo potrebbe generare confusione. Per capire che tipo di file abbiamo davanti possiamo utilizzare il comando file:

user@allafinedelpalo:~$ file image.jpg
	image.jpg: JPEG image data, progressive, precision 8, 720x960, frames 3
user@allafinedelpalo:~$ file Documents/
	Documents/: directory
user@allafinedelpalo:~$ file Setup.exe
	Setup.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows

Notare come anche la cartella Documents sia trattata come un file. Infatti in Linux vige il paradigma secondo il quale "tutto è un file".

Detto questo vediamo come è strutturato il nostro sistema operativo e quali sono le cartelle che possiamo trovare al suo interno.

  • /: la "root directory".
  • /bin: contiene i binari di sistema.
  • /boot: continene il kernel Linux ed il boot loader
  • /dev: contiene una lista di dispositivi attaccati al computer.
  • /etc: contiene i file di configurazione del sistema.
  • /home: contiene una directory per ogni utente del sistema con permessi limitati all'utente in questione.
  • /lib: contiene le librerie condivise usate dai programmi di sistema.
  • /lost+found: viene usata in caso di recupero a seguito di problemi con il filesystem.
  • /media: contiene i punti di mount di dispositivi rimovibili come USB e CD-ROM.
  • /mnt: contiene i punti di mount per dispositivi montati manualmente.
  • /opt: contiene software opzionale, ad esempio software commerciale.
  • /proc: è un filesystem virtuale mantenuto dal kernel Linux e contiene tra le altre cose informazioni sui processi in esecuzione.
  • /root: è la cartella home per l'utente root.
  • /sbin: contiene i binari di sistema, solitamente riservati ai superuser.
  • /tmp: contiene file temporanei, il contenuto viene eliminato ad ogni riavvio.
  • /usr: contiene i programmi e file di supporto usati dagli utenti.
  • /usr/bin: contiene i programmi installati dal sistema.
  • /usr/lib: contiene le librerie condivise per i programmi in /usr/bin
  • /usr/local: contiene i programmi installati dagli utenti ma intesi per essere usati da tutto il sistema.
  • /usr/sbin: contiene ulteriori programmi di sistema.
  • /usr/share: contiene i dati condivisi usati dai programmi in /usr/bin
  • /usr/share/doc: contiene le documentazioni dei programmi installati.
  • /var: contiene dati che possono variare nel tempo.
  • /var/log: contiene file di log che registrano attività di sistema.
Federico Becattini

Dottorando in computer vision. Appassionato di informatica e elettronica fai da te, specialmente se per applicazioni futili. Tormenta i suoi amici e colleghi con idee geniali spesso non riconosciute come tali.

Linux Shell - Il sistema ultima modifica: 2016-10-25T11:48:32+01:00 da Federico Becattini


Advertisment ad adsense adlogger