La maggior parte degli utenti Linux spesso non è a conoscenza del funzionamento interno del sistema operativo. Potresti eseguire comandi Linux sulla shell per molto tempo, ma ti sei mai chiesto cosa sta succedendo dietro le quinte quando premi accedere?

Alla fine, avrai una breve comprensione di come la shell elabora il comando digitato in Linux.

Elaborazione del comando

Quando inserisci un comando, la prima cosa che fa la shell è suddividere l'intero comando in "token". La shell cercherà quindi un nome di programma appartenente al primo token nella riga di comando.

Se non lo trova in nessuna delle directory nel percorso di ricerca definito in la variabile d'ambiente $PATH o nella directory locale con il .\ operatore, o non è a alias di shell o funzione shell, la shell darà un errore. Se trova un comando valido, la shell esaminerà ciascuno degli altri token e deciderà se è una variabile, un parametro della shell o un argomento del comando.

Se la shell determina che è una variabile o un parametro come il

instagram viewer
~ operatore per la directory home, la shell li espanderà o li sostituirà con i loro valori originali nel comando.

Quando la shell ha espanso qualsiasi parametro o variabile, passerà la stringa di comando al comando, eseguendo il programma con i suoi argomenti. La shell non determina se gli argomenti sono validi. Questo è il compito del comando.

Esecuzione del comando

Quando la shell lancia un altro comando, come torna allo stesso prompt che stavi usando prima? La shell crea una copia di se stessa, un processo chiamato fork. Questa copia della shell si sostituisce con il comando, con tutti gli argomenti elaborati in precedenza. Questo è noto come "exec" e il processo combinato è noto come "fork-and-exec".

Ad esempio, quando corri il comando ls, il processo shell si biforcherà utilizzando il forchetta() metodo e creare un'altra istanza della shell. Dei due processi shell in esecuzione sul sistema, la shell aggiuntiva eseguirà ls utilizzando il comando exec() funzione, trasformandosi in un'istanza del comando ls.

Nel frattempo, la shell originale attende il completamento del comando. Questo è il motivo per cui è possibile utilizzare il controllo dei lavori per sospendere i lavori e fare in modo che i lavori vengano eseguiti in background nella shell.

Imparentato: Che cos'è un processo in Linux?

Segnalazione dello stato di uscita

I comandi Linux segnalano se sono stati eseguiti correttamente o meno attraverso il loro stato di uscita. Come suggerisce il nome, i programmi segnalano il loro stato di uscita al termine dell'esecuzione. Lo fanno attraverso il $? variabile di ambiente, che contiene lo stato di uscita dell'ultimo comando di esecuzione.

Per convenzione, uno stato di uscita pari a 0 indica un'esecuzione riuscita, mentre qualsiasi cosa diversa da 0 di solito indica un errore. La tua shell potrebbe anche indicare uno stato di uscita diverso da zero sulla riga di comando a seconda di come è configurato il tuo prompt.

Lo screenshot sopra è un esempio che mostra un prompt Zsh personalizzato che mostra uno stato di uscita di errore di 127 a causa di un comando che non esiste.

Ora sai come funzionano i comandi di Linux

Ora che sei a conoscenza di come la shell di Linux elabora un comando, esegue il fork e l'exec e come i programmi segnalano il loro stato di uscita, puoi utilizzare la riga di comando in modo più efficace.

Diverse shell Linux sono disponibili gratuitamente per gli utenti. Sebbene ciascuno di loro svolga più o meno lo stesso lavoro, sono diversi sotto molti aspetti. Puoi provare a installare alcune delle shell sul tuo sistema e decidere tu stesso quale ti si addice meglio.

CondividereTweetE-mail
Quale shell Linux è la migliore? 5 proiettili comuni a confronto

Cerchi un'alternativa alla shell bash di Linux? Ecco una carrellata di quale shell Linux è la migliore: tsch, fish, KornShell e Z Shell.

Leggi Avanti

Argomenti correlati
  • Linux
  • Comandi Linux
  • Linux Bash Shell
Circa l'autore
David Delony (57 articoli pubblicati)

David è uno scrittore freelance con sede nel nord-ovest del Pacifico, ma originario della Bay Area. Appassionato di tecnologia fin dall'infanzia. Gli interessi di David includono la lettura, la visione di programmi TV e film di qualità, i giochi retrò e il collezionismo di dischi.

Altro da David Delony

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti