La Potenza Della Console

La potenza della console di Linux

Una console (terminale, emulatore di terminale) ed una shell sono l'equivalente di quello che in Windows è comunemente conosciuto come "linea di comando". Per molti è soltanto un attrezzo misterioso ed inutile, riservato soltanto per il "1337". Per persone quali gli amministratori di sistemi è invece indispensabile. La console di Linux è estremamente potente e permette di eseguire virtualmente qualsiasi operazione sul sistema.

La combinazione di console e shell (es. Bash) permette di eseguire migliaia di operazioni; qua ci sono alcuni esempi:

- una dettagliata e completa configurazione ed amministrazione,
- installazione di software, aggiornamenti, eliminazioni,
- amministrazione e manipolazione di file e cartelle (es utilizzando Midnight Commander),
- condivisione, accesso, trasferimento dei dati fra macchine utilizzando SSH, NFS o Samba,
- gestione di e-mail (mutt, pine), navigazione web (linx, elinks), lettura di gruppi di discussione (slrn),
- ascoltare musica (mpd/mpc, mp3blaster, xmms-shell),
- masterizzazione CD (cdrecord, cdrdao) e DVD (growiofs),
- chattare tramite IRC o con altri popolari programmi di messaggistica istantanea come Jabber, ICQ, ecc!,
- controllo completo sul sistema e sulle eventuali problematiche (top, netstat, io, iptraf),

Cosa differenzia la console di Linux dalla linea di comando di Windows?

Semplice: la sua architettura e le sue possibilità.
Scaviamo un po' più a fondo… In primo luogo, in Linux, la shell è un sistema completamente indipendente: non è una semplice parte del Sistema Operativo. Grazie a questa semplice architettura possiamo utilizzare parecchie shell, per ogni genere di scopo. Da notare in particolare che, se è necessario, possiamo lanciare tantissime console differenti. E' la shell che controlla le funzionalità di alcuni eventi quali la cronologia dei comandi ed il completamento della linea di comando, ma anche ogni tipo di dichiarazione condizionale, di loop, e ogni altro programma che fa uso di script di shell. Le shell più popolari includono: bash, zsh, ksh.

L'emulatore di terminale è invece un programma (solitamente dotato di un'interfaccia grafica che include menù, ecc) che ci aiuta ad utilizzare la console. Gli emulatori più utilizzati sono: gnome-terminal, konsole, xterm, aterm, Eterm e multi-gnome-terminal. Molte di queste sono semplicemente chiamate "console" o "terminali". L'emulatore di terminale è responsabile di altre cose quali la trasparenza, avere diversi terminali aperti in più schede, scorciatoie, ecc.

Il terminale e l'emulatore di terminale

In molte distribuzioni Linux (specialmente quelle dedicate ai server) rappresentano l'interfaccia predefinita per l'utente. L'interfaccia grafica (X Window System) è facoltativa e può comunque essere utilizzata in modo indipendente. In diverse situazioni otteniamo l'accesso al terminale appena dopo che abbiamo effettuato il login, di modo che non dobbiamo usare un emulatore dalla GUI. Nella maggior parte dei casi tuttavia (in tutti i sistemi Linux desktop-oriented), la configurazione di default è quella di utilizzare l'interfaccia grafica. In tali sistemi possiamo comunque passare al terminale vero e proprio per mezzo di una scorciatoia (CTRL+ALT+F1 o F6).

Questa architettura, che non richiede un'interfaccia grafica per poter lavorare col sistema, è un enorme vantaggio dei sistemi GNU/Linux e di altri sistemi basati su UNIX. Pochi si rammentano che una simile separazione esisteva anche nelle vecchie versioni di Windows. MS Windows, fino alla versione 3.11, non era indipendente ma necessitava del DOS ("un terminale") per funzionare. Con Windows 95 questo metodo è stato abbandonato. L'interfaccia grafica è costantemente in funzione, sottraendo una consistente parte delle risorse ai sistemi server. Essere costretto ad utilizzare un'interfaccia grafica rappresenta anche una notevole restrizione nei casi di crash di sistema. Per esempio, nel caso di un problema col driver della scheda grafica, quando Windows non vuole saperne di avviarsi, non abbiamo praticamente alcun modo semplice per correggere l'errore (es. rimuovere il driver per sostituirlo con uno funzionante). Se la magia del "plug & play" finisce, non abbiamo altra scelta che chiamare il supporto tecnico o reinstallare il sistema.

Perché utilizzare la console se esiste la GUI?

Effettivamente… Perché diavolo dovreste usare la console (eccetto che per gestire i crash di sistema)? Non è più semplice e veloce cliccare sulle diverse icone? Linux è stato pensato per essere altrettanto facile che Windows mi direte! Ed ora ve ne venite fuori con questa roba da cervelloni…

Non preoccupatevi. Nessuno vi dice che dovete utilizzare la console. Potete configurare il vostro sistema ed eseguire tutte le operazioni standard tramite interfaccia grafica. Ma… Non sono sicuro che lo vogliate veramente. Utilizzare un'interfaccia grafica è semplice ma ricordatevi due cose: la console è più veloce ed è più efficiente.

Non mi credete? Eccovi alcuni esempi:

  • proviamo ad eliminare un file. Per esempio il file test.txt situato nella nostra cartella home

- Tramite terminale: rm ~/test.txt (il nome del file viene completato in automatico quando premete il tasto TAB)
- Tramite GUI: doppio clic sull'icona "Home" presente sul desktop. Quindi trovate il file corretto, selezionatelo e premete il pulsante destro del mouse per scegliere "Elimina".

  • proviamo a modificare qualche configurazione. Per esempio proviamo a configurare l'accesso internet da DHCP

- Tramite terminale: sudo dhclient eth0 (inserite la vostra password)
- Tramite interfaccia grafica: cliccate sull'icona rappresentante la Rete nella barra degli strumenti. Appare un'applet per la configurazione. Scegliete la scheda di rete rappresentata da eth0 e cliccate su "Attivare". Se non dovesse funzionare immettete la configurazione per questa scheda, digitate la vostra password da amministratore, configurate l'opzione DHCP (probabilmente dovrete precedentemente settare un IP statico), cliccate su OK, ri-cliccate su "Attivare" sulla corretta scheda di rete. Infine potete uscire dall'applet.

  • Proviamo ora ad utilizzare qualche comando amministrativo, eseguiamo il server web Apache2!

- Tramite terminale: sudo /etc/init.d/apache2 start (e inserite la vostra password)
- Tramite interfaccia grafica: scegliete dal menù di GNOME "Sistema; Amministrazione; Servizi". Quindi cercate il "server Apache2" e selezionatelo. Cliccare su "Applica" e chiudere l'applet.

  • Ok, l'ultimo esempio è il meno complicato. Guardiamo un film con MPlayer!

- Tramite terminale: mplayer /home/movies/Aviator/AviatorCD1.avi (ovviamente lo facciamo utilizzando la funzione del tasto TAB per completare automaticamente il nome del file!)
- Tramite interfaccia grafica: dal menù GNOME, scegliete "Applicazioni; Suoni & Video; MPlayer Movie Player". Quando si apre il programma scegliete "Apri" e navigate fra le cartelle per trovare /home/movies/Aviator. Quindi cliccate sul file (AviatorCD1.avi). In alternativa utilizzate il vostro file manager (tipo Nautilus) per trovare la corretta cartella e fate quindi un doppio clic sul file del film (oppure, se MPlayer non è il vostro visualizzatore di filmati predefinito, selezionate "Apri con" e scegliete dalla lista che appare "MPlayer").

Sono soltanto quattro esempi. Per ognuno di essi, effettuare la stessa identica operazione tramite terminale, è doppiamente più veloce rispetto a farla utilizzando una GUI. Naturalmente non è sempre così. Masterizzare un DVD da console è soltanto per veri esperti, dato che i relativi programmi richiedono l'immissione manuale di molti parametri, cosa ben più difficile dal cliccare semplicemente su "Masterizza DVD" in una qualche applicazione tipo K3B o GnomeBaker. Tuttavia, in genere, se ci teniamo al fatto che il nostro lavoro risulti efficiente, è un'ottima idea prendere confidenza col terminale. Occorrerà tempo per familiarizzare con i principali comandi ma, per degli utenti Amministratori di Windows come voi, la curva di apprendimento non dovrebbe essere lunga ed il vostro lavoro sarà veloce ed efficiente.

Una cosa che vale la pena accennare è che, dopo molti anni di ignoranza, i ragazzi della Microsoft hanno finalmente capito che una console efficiente risulta valida pure per loro. Stanno lavorando da un paio d'anni sulle nuove shell di Windows, chiamate MONAD o msh, sviluppate per rendere l'amministrazione del sistema più semplice.
La nuova shell, ora chiamata Windows PowerShell si presumeva fosse disponibile su Vista, ma il programma è stato modificato e non faranno parte di questa release. Quindi, in pratica, se siete un utente di Windows, dovete ancora utilizzare Cygwin, un'emulatore di shell UNIX per Windows, con tutti gli svantaggi che ciò comporta.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.