Micro corso Bash Unix/Linux – Parte 1


immagine terminale linux
Eccomi a proporre un corso di programmazione shell unix, che è valido anche per i più moderni sistemi Linux.
Prima di cominciare però è necessario fare una piccola introduzione alla struttura del file-system unix e ai diritti degli utenti perché alcuni di questi meccanismi potrebbero tornare sempre utili.

Cos’è la Shell Unix

La shell (o terminale), è la parte di un sistema operativo che permette agli utenti di interagire con il sistema stesso, impartendo comandi e richiedendo l’avvio di altri programmi. Insieme al kernel costituisce una delle componenti principali di un sistema operativo. Il suo nome (dall’inglese shell, guscio) deriva dal fatto che questa componente viene considerata l’involucro, la parte visibile del sistema ed è dunque definibile come l’interfaccia utente o il programma software che la rende possibile.

File System

Il nome di un file è identificato da una stringa, non può essere rinominato come ‘.’ oppure ‘..’.
Ad ogni file o cartella possono essere assegnati dei Link che possono referenziare un file in diversi punti del file system. Se al file non viene associato nessun link, allora il file viene rimosso definitivamente dall’hard disk.

Esistono diversi standard per muoversi nel file system, per la radice del file system:

/

La directory home dell’utente attualmente loggato nel sistema:

~/

Directory superiore (padre):

..

Directory corrente:

.

un path si dice assoluto se comincia per / , altrimenti è relativo.

Esempii:

sei nella cartella home ( ~/ ) e vuoi referenziare la cartella ‘documenti’

  • Path assoluto: /home/user/documenti/
  • Path relativo: documenti/

Diverse cose da tenere a mente:

  • il path è case-sensitive, quindi scrivere Documenti è diverso da scrivere documenti
  • su Unix non esistono le estensioni dei files e probabilmente il nome del file non deve contenete spazi.

Utenti e Gruppi

Gli utenti del sistema sono suddivisi in gruppi, un utente eredita tutti i diritti che ha il suo gruppo, inoltre può avere ulteriori diritti (assegnatigli dall’amministrazione del sistema).
Allo stesso modo alle cartelle e ai files sono associati dei diritti di accesso in lettura/scrittura/esecuzione. Ragion per cui ogni file vengono associati 9 bit di protezione:

  • 3 per i diritti che vanta utente che l’ha creato (leggi/scrivi/esegui);
  • 3 per i diritti che vanta il gruppo a cui appartiene l’utente che l’ha creato (leggi/scrivi/esegui);
  • 3 per i diritti che vantano tutti gli altri utenti del sistema (leggi/scrivi/esegui);

ce ne sono altri 3 per l’esecuzione, ma non sono molto importanti si chiamano SUID,SGID,STICKY bit.
Solo il proprietario del file può modificare i diritti sul file (e l’amministratore del sistema).

Esempi di modifica dei diritti su di un file:

chmod u+rwx readme

permette l’utente che ha creato il file di leggere/scrivere/eseguire;

chmod g–rx readme

nega l’accesso al gruppo al quale si appartiene in lettura ed esecuzione;

chmod o+r–w readme

permette l’accesso a tutti gli utenti in lettura, ma non in scrittura;

Introduzione ai comandi UNIX

La struttura basilare di un comando unix è

comando -opz1 -opz2 … -opzn arg1 arg2 … argn
  • opz: opzioni del comando;
  • arg: argomenti del comando;

A separare il comando, le opzioni e gli argomenti c’è sempre uno spazio, i comandi sono contenuti nella directory /usr/bin/ .

Vai alla seconda parte della guida: Piping e Redirect;
Vai alla terza parte 3: Costrutti IF-FOR-WHILE e riepilogo comandi.


Lascia un Commento!