Qual è la differenza tra shell interattiva e non interattiva ed altre domande

In tutti i sistemi Unix, GNU/Linux compreso, esistono due tipi di shell: interattiva e non interattiva. Nel primo caso si tratta di una shell in cui l'utente interagisce con essa: questo è quello che accade, ad esempio, quando eseguiamo qualche comando.

Al contrario, quella non interattiva non richiede interventi da parte dell'utente: questo è il caso, ad esempio, dell'esecuzione di uno script. Ma non finisce qui. Infatti, la shell interattiva si divide a sua volta in shell di login e shell normale.

La prima è quella che si ottiene quando si effettua il login, mentre l'altra è quella che, ad esempio, avviamo in un secondo momento per eseguire qualche programma. Ad esempio, premendo le combinazioni di tasti da Ctrl+Alt+ F1... Ctrl+Alt+F6 si accede ad altrettante shell di login, ovviamente, solo dopo essersi autenticati con nome utente e password.


Come si gestiscono le variabili d'ambiente?
Le variabili d'ambiente (environment variable), dette anche variabili di sistema, sono delle stringhe di testo contenenti indicazioni sulla configurazione del sistema, alle quali i programmi, ma anche lo stesso sistema operativo, si appoggiano per svolgere le loro funzioni.

All'interno dell'ambiente Unix, quindi GNU/Linux, sono identificate da un nome, preceduto dal simbolo $. Un esempio di variabile di ambiente è $PATH, la quale contiene i percorsi (cioè le directory a partire da quella radice) dove sono posizionati gli eseguibili presenti nel sistema. Il sistema operativo contiene diverse variabili d'ambiente predefinite, ma è sempre possibile modificarle o crearne altre.

Per visualizzare tutte le variabili d'ambiente presenti nel sistema bisogna utilizzare il comando printenv oppure set. Per ottenere il valore di una variabile in particolare basta eseguire il comando echo seguito dal nome della variabile, ad esempio: echo $PATH. Nel caso in cui, invece, è necessario crearne una nuova, il comando diventa export NOME_VARIABILE=valore. Ecco un esempio di utilizzo di export: export HOSTNAME="`cat /etc/hostname`".

In questo caso, la variabile d'ambiente $HOSTNAME sarà uguale al nome della macchina (hostname), valore ottenuto, nell'esempio, dal comando cat /etc/hostname. Ovviamente, il valore può essere espresso mediante un comando, come in questo caso (ricordate però, di racchiuderlo sempre tra due simboli `), da nomi, percorsi di directory, ecc.

A cosa serve la directory /etc/skel?
Ogni volta che si crea un nuovo utente, automaticamente viene creata, tra le altre cose, la sua directory personale, la quale può contenere cartelle e file predefiniti. La directory /etc/skel serve proprio a stabilire questo contenuto “extra” aggiunto di default. In pratica basta sistemare in questa particolare cartella tutto quello che si vuole aggiungere alla directory di ogni nuovo utente creato.

Nella directory /boot è presente il file initrd-x.x.xx.img. A cosa serve?
Il file initrd, o initial ramdisk (in italiano disco RAM iniziale) è un particolare tipo di file system, in genere contenuto all'interno di un file immagine .img, montato dal kernel Linux in RAM come RAM disk (ecco perché initial ramdisk). Tale file viene fornito al kernel dal bootloader come sistema minimale per svolgere alcune funzioni fondamentali prima del caricamento del file system vero e proprio.

Sostanzialmente, il file initrd contiene al suo interno i moduli necessari al supporto e all'attivazione del file system radice, più gli script necessari per caricarli. Concluse queste operazioni di base, il disco RAM iniziale passa il controllo al file system principale. Ovviamente, è anche possibile fare a meno del file initrd, purché i moduli necessari al caricamento iniziale del sistema siano stati compilati direttamente nel kernel.

Il vantaggio che ne consegue è ovvio. La presenza del file initrd permette alle distribuzioni GNU/Linux di usare un kernel precompilato con tutte le funzionalità attive come moduli, quindi molto più leggero. È anche possibile creare un file initrd utilizzando il comando mkinitrd integrato nel pacchetto initrd-tools. Nelle nuove distribuzioni questi tool sono stati sostituiti da initramfs e iniramfs-tools. Infine, nelle distribuzioni Debian GNU/Linux e derivate è presente il comando mkinitramfs-kpkg che automatizza la creazione di file initrd.



Ultimi post pubblicati


Vacanze                TUI.it

Universo Linux


Luca Soraci

Luca Soraci

Ubuntu giunge alle nostre orecchie solo perché è stato mutuato come nome per un sistema operativo di successo; lo abbiamo sentito nei discorsi di Mandela, del vescovo Tutu, ed è uno dei concetti fondanti di quel movimento di rinascimento che vuole far fiorire il continente africano al di sopra delle difficoltà attuali.

Nessun commento:

Posta un commento

Powered by Blogger.