Crea sito
RSS

La shell: la potenza e flessibilità a portata di mano

3 Febbraio 2010

Varie

terminal-64

Quando si parla di Linux è impossibile non menzionare la shell, quel oscuro programma che fa rabbrividire chi proviene da Windows.

Ma non è sempre stato così. Chiunque abbia utilizzato il computer prima di Windows 95 è molto probabile che conoscesse il DOS, ovvero un antenato di quello che può fare una qualsiasi console di Linux.
Questo però non rappresentava un problema perche chi utilizzava il computer: a quel tempo il DOS lo conosceva perchè assieme al sistema operativo era allegato un manualone contenente tutti i comandi, con tanto di descrizione completa ed esempi.

Eseguire comandi in console era la norma: ovviamente c’erano anche i vari programmi di terze parti che potevano mascherare il DOS tramite una interfaccia grafica, come il Norton Commander delle Norton Utility, ma la conoscenza di quello che succedeva a livello di sistema era comunque nota a tutti.

Con l’avvento di Windows questo ha comportato un “impoverimento” della conoscenza del sistema da parte dell’utente (i manuale erano molto più scarni e oggi sono più che altro uno opuscolo): le operazioni sono più intuitive e potenzialmente alla portata di tutti, ma questo non significa che siano più veloci da realizzare rispetto ai vecchi tempi.

Il mondo Unix, invece, viveva (sempre ai tempi della nascita di Windows) tra le shell e l’interfaccia grafica coesistenti, così come oggi avviene in Linux. Si usa l’una o l’altra a seconda delle esigenza. E qui sta la potenza!

Voglio portarvi un semplice esempio che vi descrive come una banale operazione come la copia di backup di un vostro file su una nuova cartella, sia in realtà banale se eseguito in console, rispetto a quello effettuato da interfaccia grafica. Ma non lo dovete fare voi, esperti di computer, ma vostra nonna che si trova al telefono e che vi ha chiamato per mettere al sicuro il suo file con la ricetta della torta 🙂

Con l’interfaccia grafica comincerete a dargli questa serie di comandi:

  • Apri Gestione Risorse dal menù start, programmi
  • Naviga tra le directory fino a raggiungere il percorso dei documenti e poi delle ricette (detto così sembra semplicissimo, ma se il computer lo usa da poco, già a fargli capire dove si trova il percorso, soprattutto se il suo Gestione Risorse si apre in una modalità personalizzata dell’albero directory, dettagli file, ecc sarà una impresa).
  • Fai tasto destro sulla directory dei dolci, esegui Nuova cartella, inserisci il nome Backup
  • Clicca (ops, bisogna sempre specificare se col sinistro o il tasto destro, prima le ho detto di fare tasto destro, forse farà click con quello…) “col tasto sinistro sulla ricetta”, fai Tasto Destro, e scegli copia, oppure fai CTRL + C.
  • Ora spostati nella directory di backup che hai creato prima facendo doppio click sulla sua icona.
  • Ora fai CTRL + V (oppure tasto destro incolla).
  • Chiudi le finestre che il file è salvato

Qui ho semplificato, ma vi assicuro che a volte per chi utilizza il pc ogni giorno a lavoro e mi chiede assistenza, già a fargli aprire Gestione Risorse è un problema, perchè non usandolo mai (di solito cliccano sul collegamento alla loro directory che hanno posto sul desktop), non riescono nemmeno a trovarlo. Ma andiamo avanti.

Sul nostro netbook con Linux avremo semplicemente detto:

  • Fai CTRL + T (oppure Start, Sistema, Terminale)
  • Scrivi quanto ti detto:
  • mkdir /home/user/documenti/ricette/backup
    cp /home/user/documenti/ricette/torta.txt /home/user/documenti/ricette/backup/torta.txt
    exit

Molto più semplice da far eseguire al nostro interlocutore, non trovate?

Ovviamente se uno è esperto di computer vi bastava dire: “fatti una copia di backup del file”; se poi usava la console o l’interfaccia grafica era solo questione di gusti suoi personali.

Da utilizzatore di Linux il consiglio è sempre e solo uno: imparate ad usare la console. Troverete che certi compiti diventano banali se li eseguite in una shell e vi farà risparmiare un sacco di tempo 😉
15 minuti dedicati ad imparare i comandi della shell potranno in futuro farvi risparmiare ore per eseguire certi compiti ripetitivi.

Giusto perhè non pensiate che la shell sia quella finestra nera con caratteri bianchi (o bianca con caratteri neri), sappiate che oggi potete dargli la forma estetica che preferite:

  • semitrasparente
  • colori di sfondo e carattere personalizzato
  • sfondo con una testure
  • console multiple sulla stessa finestra
  • scelta font e dimensione caratteri

In effetti questa è la mia configurazione preferita:

Ben 9 console sempre attive (e le uso pressochè tutte) con uno sfondo personalizzato.

Un ultima annotazione: sebbene si parli sempre di Shell Linux, in realtà esistono moltissime diversi tipi di console possibili: esse differiscono per il set e la grammatica dei comandi utilizzati. Si tratta a tutti gli effetti di linguaggi di programmazione interpretati.

La shell per antonomasia è la Bash, spesso riferita anche come Sh, ma ce ne sono a bizzeffe:

  • /bin/bash (Bourne-again shell)
  • /bin/sh (solitamente punta alla bash)
  • /bin/zsh (Z shell)
  • /bin/ksh (Korn shell: un mix di C shell e Bash)
  • /bin/csh (sintassi più simile al C)
  • /bin/tcsh (estensione della C shell)

per non parlare che si potrebbero usare anche i linguaggi come Perl o Python come shell, anche se non sono nati per questo scopo…

Ovviamente il consiglio è di imparare la Bash (la più comune e la cui sintassi e comandi sono poi ricalcate dalle altre) ed eventualmente successivamente se volete crearvi degli script personalizzati da eseguire alla bisogna, orientarsi sulla shell che vi permette di realizzare quello che volete nel minor tempo possibile 😉

2 Responses to “La shell: la potenza e flessibilità a portata di mano”

  1. aleritty Says:

    Ho qualche appunto!

    In realtà Dos NON E’ un antenato della shell… Probabilmente lo hai detto in maniera semplificativa però non è corretto! Anche io sono passato da li a windows e poi a Linux, ma i sistemi informatici non hanno fatto questo percorso!

    Il consiglio che dai del terminale è buono, lo uso anche io spesso, ma devi sapere di preciso dove sta il file che vuole salvare la nonna altrimenti ti perdi ancora peggio mi sa…

    Ed ultimo ma non meno importante Bash ed sh non sono la stessa cosa!!

    Scusa per le puntualizzazioni!

  2. ice00 Says:

    Grazie, fai benissimo a puntualizzare.

    Bash è la controparte GNU di SH (Burne shell, una shell usata in Unix più di 30 anni fa) di qui il fatto che si fa puntare SH su Bash in molte attuali distribuzioni Linux.

Leave a Reply