Capire le basi della riga di comando

()

 

Capire le basi della riga di comando

Unix è iniziato come un sistema operativo basato su testo (OS).

Unix e Linux mantengono gran parte di questo patrimonio, il che significa che per capire come usare e, soprattutto, come amministrare Unix/Linux, è necessario comprendere almeno le basi dei suoi strumenti da riga di comando.

Pertanto, questa guida  inizia con un’introduzione alle shell Linux ovvero:  La shell (detta in italiano interprete dei comandi), in informatica, è la componente fondamentale di un sistema operativo che permette all’utente il più alto livello di interazione con lo stesso. Tramite la shell  è possibile impartire comandi e richiede l’avvio di altri programmi. Si  inizia con le informazioni di base sulla shell, comprese le opzioni della shell e le procedure per usarle.

Si trattera’ poi delle  stream, delle pipe e del reindirizzamento, che tu può usare per deviare l’input e l’output tra programmi o tra file e programmi. Queste tecniche sono spesso combinate con l’elaborazione del testo mediante i filtri: comandi che è possibile utilizzare per manipolare il testo senza l’aiuto di un editor di testo convenzionale. A volte devi manipolare il testo in modo astratto, usando i codici per rappresentare diversi tipi di testo.

Prima di fare qualsiasi altra cosa con Linux, dovresti capire come usare una shell Linux.

Sono disponibili diverse shell, ma la maggior parte offre funzionalità simili. Comprendere alcune nozioni di base ti aiuterà molto nel tuo uso di Linux, quindi descrivo alcune di queste tecniche e comandi.

Esplorazione delle opzioni della shell di Linux

Come con molti componenti software chiave, Linux offre una gamma di opzioni per le shell. Un elenco completo sarebbe piuttosto lungo, ma le scelte più comuni includono quanto segue:

bash

La GNU Bourne Again Shell (bash) si basa sulla precedente shell Bourne per Unix ma la estende in diversi modi. In Linux, bash è la shell predefinita più comune per gli account utente ed è quella enfatizzata in questo libro e sull’esame. bsh La shell Bourne su cui si basa bash prende anche il nome bsh. Non è spesso usato in Linux, sebbene il comando bsh sia talvolta un collegamento simbolico a bash.

tcsh

Questa shell si basa sulla precedente shell C (csh). È una shell abbastanza popolare in alcuni ambienti, ma nessuna delle principali distribuzioni Linux la rende la shell predefinita. Sebbene sia simile a bash per molti aspetti, alcuni dettagli operativi differiscono. Ad esempio, non si assegnano le variabili di ambiente nello stesso modo in tcsh che in bash. csh La shell C originale non è molto usata su Linux, ma se un utente ha familiarità con csh, tcsh fa un buon sostituto. ksh La shell Korn (ksh) è stata progettata per sfruttare le migliori funzionalità della shell Bourne e della shell C ed estenderle. Ha un piccolo ma dedicato seguito tra gli utenti Linux.

zsh

La shell Z (zsh) prende l’evoluzione della shell oltre la shell Korn, incorporando le funzionalità delle shell precedenti e aggiungendone ancora di più.

Oltre a queste shell, sono disponibili dozzine di altre shell più o meno conosciute.

In Linux, la maggior parte degli utenti esegue bash perché è l’impostazione predefinita. Alcuni altri sistemi operativi usano csh o tcsh come predefiniti, quindi se i tuoi utenti hanno sfondi su sistemi operativi Unix non Linux, potrebbero avere più familiarità con questi altre conchiglie. È possibile modificare la shell predefinita di un utente modificando l’account, come descritto in un capitolo precedente. Il file / bin / sh è un collegamento simbolico alla shell predefinita del sistema, normalmente / bin / bash per Linux. Questa pratica consente di indicare una shell (ad esempio all’inizio di un semplice script di shell.

Usando una Shell
L’uso della shell di Linux è abbastanza semplice per chiunque abbia già usato un sistema operativo in modalità testo: si digita un comando, possibilmente includendo opzioni, e il computer esegue il comando. Per la maggior parte, i comandi di Linux sono esterni, ovvero sono programmi separati dalla shell. Tuttavia, alcuni comandi sono interni alla shell e sono consapevoli la distinzione può essere importante. Dovresti anche conoscere alcuni dei trucchi che possono semplificare l’utilizzo della shell dei comandi: come fare in modo che il computer completi un comando o un nome file lungo, recuperi un comando che hai eseguito di recente o modifica un comando che hai usato di recente (o rifugio non è stato ancora inserito completamente).

Una classe di comandi, quelli per la gestione di base dei file, è molto importante ma non è descritta qui in dettaglio. Per ulteriori informazioni su questi comandi, consultare il capitolo 4, “Gestione dei file”.

Avvio di una shell
Se accedi a Linux usando una schermata di accesso in modalità testo, è probabile che verrai trascinato direttamente nella shell predefinita: la shell è ciò che presenta il prompt e accetta i comandi successivi.

Esplorazione della configurazione della shell

Le shell, come molti programmi Linux, sono configurate attraverso file che contengono opzioni di configurazione in formato testo normale. I file di configurazione bash sono in realtà script di shell bash, che sono descritti più dettagliatamente in un capitolo successivo.

Per ora, dovresti sapere che ~ / .bashrc e i file ~ / .profile sono i file di configurazione dell’utente principale per bash, e /etc/bash.bashrc e / etc / profile sono i principali file di configurazione globali.

Anche senza sapere molto sugli script di shell, puoi apportare semplici modifiche a questi file. Modificali nel tuo editor di testo preferito e cambia tutto ciò che deve essere modificato. Ad esempio, è possibile aggiungere directory alla variabile di ambiente $ PATH, che richiede a
elenco di directory delimitato da due punti.

Fai attenzione quando cambi la configurazione di bash, in particolare i file di configurazione di bash globali. Salvare un backup del file originale prima di apportare modifiche e testare immediatamente le modifiche effettuando l’accesso utilizzando un altro terminale virtuale. Se si riscontra un problema, ripristinare la copia salvata fino a quando non è possibile conoscere la causa e creare un file di lavoro.

Utilizzo delle variabili di ambiente

Le variabili d’ambiente sono come variabili nei linguaggi di programmazione: contengono dati a cui fare riferimento il nome della variabile.

Le variabili di ambiente differiscono dalle variabili interne dei programmi in quanto fanno parte dell’ambiente di un programma e altri programmi, come la shell, possono modificare questo ambiente.

I programmi possono fare affidamento su variabili di ambiente per impostare informazioni che possono essere applicate a molti programmi diversi.

Ad esempio, molti programmi basati su testo devono conoscere le capacità del programma terminale in uso.

Questa informazione viene trasmessa nella variabile d’ambiente $ TERM, che probabilmente avrà un valore come xterm o linux.

I programmi che devono posizionare il cursore, visualizzare il testo a colori o eseguire altre attività che dipendono dalle capacità specifiche del terminale possono personalizzare il loro output in base a queste informazioni.

Per il momento, dovresti sapere che puoi impostarli in bash usando un operatore di assegnazione (=) seguito dal comando export:

$ NNTPSERVER = news.abigisp.com
$ export NNTPSERVER

È possibile combinare questi due comandi in un unico modulo:
$ export NNTPSERVER = news.abigisp.com

Entrambi i metodi impostano la variabile di ambiente $ NNTPSERVER su news.abigisp.com.

Quando si imposta una variabile di ambiente, si omette il simbolo del dollaro, ma i riferimenti successivi includono un simbolo di dollaro per identificare la variabile di ambiente in quanto tale. Successivamente, i programmi che necessitano di queste informazioni possono fare riferimento alla variabile di ambiente.

In effetti, puoi farlo tu stesso dalla shell, usando il comando echo:

$ echo $ NNTPSERVER news.abigisp.com

Alcune variabili d’ambiente, inclusa la variabile d’ambiente $ TERM, vengono impostate automaticamente al momento dell’accesso.

Se un programma utilizza variabili d’ambiente, la sua documentazione dovrebbe dirlo.

La variabile $ NNTPSERVER è utilizzata da alcuni client di notizie Usenet, che consentono la partecipazione a un tipo di gruppo di discussione online che precede i forum Web.

È inoltre possibile visualizzare l’intero ambiente digitando env.

È probabile che il risultato siano diverse dozzine di righe di variabili d’ambiente e i loro valori.

Per eliminare una variabile di ambiente, utilizzare il comando unset, che accetta come opzione il nome di una variabile di ambiente (senza il simbolo $ iniziale).

Ad esempio, deselezionare NNTPSERVER rimuove la variabile di ambiente $ NNTPSERVER.

Ricevere aiuto
Linux fornisce un sistema di aiuto basato su testo noto come man.

Il nome di questo comando è l’abbreviazione di manuale e le sue voci (le sue pagine man) forniscono una sintesi sintetica di ciò che fa un comando, un file o un’altra funzione.

Ad esempio, per conoscere man, puoi digitare man . Il risultato è una descrizione del comando man.

Questo programma visualizza il testo una pagina alla volta.

Premi la barra spaziatrice per andare avanti di una pagina, Esc seguito da V per tornare indietro di una pagina, i tasti freccia per spostarti in alto o in basso di una riga alla volta, il tasto barra (/) per cercare testo e così via.

(Digita man less per conoscere tutti i dettagli o consulta la sezione “Ricerca per file con – .”)

Al termine, premi Q per uscire di meno e la pagina man che viene visualizzata.

A volte una singola parola chiave ha voci in più sezioni.

Nella maggior parte dei casi, man restituisce la voce nella sezione con il numero più basso, ma è possibile forzare il problema precedendo la parola chiave dal numero di sezione.

Ad esempio, digitando man 5 passwd vengono restituite informazioni sul formato file passwd anziché sul comando passwd.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?