Tux Utilizzare il PC in modalità testuale con Linux

Sommario

Siccome questa pagina mi è venuta un po' lunga, ho pensato di inserire all'inizio questo indice, che consente di raggiungere rapidamente gli argomenti preferiti.

Perché utilizzare la modalità testuale
I principali comandi testuali
Dove scrivere i comandi
Navigare tra i files
Modificare i files
Modificare i permessi dei file
Memorizzare i comandi in un file
Eseguire lo script

Riquadri

Come facilitare le cose
Permessi ottali

Perché utilizzare la modalità testuale

Fino a pochi anni fa l'utilizzo del PC era molto poco accattivante.
Quando frequentavo il liceo, e durante gli anni dell'università, la grafica nei computer era completamente assente, o ridotta al minimo. Spesso i computer non disponevano nemmeno del mouse.
L'interazione con il computer avveniva quasi esclusivamente attraverso la tastiera, e spesso era necessario impartire dei comandi, da imparare a memoria, e da scrivere sullo sfondo scuro e desolato del un monitor che poi spesso non visualizzava nemmeno una messaggio per informare che l'operazione richiesta era stata eseguita.
Anche operazioni semplici come la navigazione tra i files registrati sul disco fisso, o la loro copia erano poco intuitive e richiedevano una certa dimestichezza.

Poi sono comparse le interfacce grafiche.
Da quando sono comparsi MAC OS, e MS-Windows si è potuto fare praticamente tutto con il mouse: avviare programmi, visualizzare e spostarsi tra i files visualizzati con strutture ad albero e con delle icone che consentono di identificarne il tipo, spostare i files trascinandoli, vedere sullo scheromo quello che si digita in un word processor, con un aspetto del tutto simile a quello che avrà una volta stampato.
Anche Linux attualmente dispone di varie interfaccie grafiche, efficienti, accattivanti nell'aspetto, e che consentono di eseguire praticamente ogni cosa utilizzando il mouse.
Perché allora qualcuno dovrebbe darsi la pena di utilizzare i comandi testuali e complicarsi inutilmente la vita?

Gli svantaggi delle interfacce grafiche:

I vantaggi dei comandi testuali:

Perfino MS Windows (che dalle versioni 9x in poi dispone di un interfaccia grafica integrata nel sistema operativo), per queste ragioni, ha mantenuto la possibilità di operare con comandi testuali: nelle finestre DOS, nei files.bat che spesso vengono lanciati all'avvio del computer, e consentendo di riavviare il computer in modalità DOS.

I sistemi Linux sono particolarmente adatti ad utilizzare i comandi testuali poiché il sistema operativo era stato progettato per funzionare con questa modalità. L'interfaccia grafica è un insieme di programmi che è stato aggiunto in un secondo momento e agisce impartendo comandi testuali al sistema operativo.
Usando Linux le interfaccie testuali offrono un'altro grande vantaggio:
Consentono di registrarsi con l'identità di amministratore di sistema quando l'interfaccia è già stata avviata con i privilegi di utente comune.
Permettono così di eseguire operazioni di configurazione del sistema (installare programmi, modificare files di configurazione, ecc.), senza dover continuamente chiudere l'interfaccia grafica, per riavviarla con l'identità di amministratore.

Un semplicissimo esempio:
Avete mai eseguito il backup dei vostri dati su CD-ROM?
Se poi avete ricopiato nuovamente i dati dal CD al disco fisso, probabilmente vi sarete accorti che i files possono essere aperti, ma le modifiche od il loro salvataggio vengono impedite.
Questo succede perché quando il files vengono registrati su CD, vengono contrassegnati con l'attributo "solo lettura" (scrittura vietata, perchè i CD consentono la sola lettura dei dati). Questo attributo rimane appiccicato ai vostri file anche dopo che sono stati riportati sul disco fisso.
Per modificare questo attributo in un'interfaccia grafica basta selezionare il file con il tasto destro del mouse e modificarlo.
Un'operazione semplice e rapida, ma che diventa estremamente antipatica se deve essere ripetuta sulle centinaia o migliaia di files contenuti sul CD del vostro backup.
Se poi per modificare i permessi di scrittura bisogna avere i privilegi di amministratore, è necessario riavviare l'interfaccia grafica o almeno il programma di navigazione tra i files.
Utilizzando i comandi testuali basta un semplice singolo velocissimo comando.

I principali comandi testuali

Dove scrivere i comandi

I comandi testuali in linux si possono scrivere nelle consolle o nelle finestre di terminale.
Le consolle sono delle schermate simili a quelle del vostro PC quando viene avviato in modalità DOS. Normalmente i sistemi linux aprono 7 consolle.
Se siete nell'interfaccia grafica e volete raggiungere la prima consolle premete la combinazione di tasti Ctrl+Alt+F1.
Per entrare in un'altra consolle si premono la combinazione di tasti Alt+F2, oppure Alt+F3, fino al tasto F6.
La settima consolle, è quella in cui funziona l'interfaccia grafica, perciò premendo Alt+F7 si ritorna all'interfaccia grafica.
Prima di poter utilizzare l'interfaccia testuale, normalmente è necessario presentarsi, cioè informare il sistema sulla propria identità inserendo il nome utente e la password di accesso. Queste informazioni sono necessarie al sistema per sapere cosa può e cosa non vi deve consentire di fare.
Le finestre di terminale sono simili alle finestre "prompt di MS-DOS" presenti in Windows: al'interno di una finestra grafica compare un emulatore di una consolle su cui si possono dare i comandi testuali.
All'apertura della finestra di terminale non viene richisto di identificarsi, poiché il sistema presume che si voglia operare con l'identità con cui si è avuto accesso all'interfaccia grafica.

È interessante che si possono aprire contemporaneamente più consolle o finestre di terminale con identità diverse, ed è anche possibile cambiare identità all'interno della stessa consolle o della stessa finestra di terminale.
Per questioni di sicurezza, soprattutto se non siete gli unici ad usare il computer, se il vostro PC è collegato in rete, o se vi collegate ad internet, è assolutamente opportuno digitando il comando exit.

L'interfaccia testuale (la più diffusa viene chiamata BASH che è un acronimo di Bourn Again SHell) si presenta con una schermta vuota che inizia con il prompt.
Il prompt è una serie di caratteri con un aspetto simile al seguente:
[aldo@localhost aldo]$
oppure
[aldo@localhost aldo]#
che informa che l'interfaccia è pronta a ricevere dei comandi, e fornisce alcune informazioni riguardo il computer, l'utente registrato, la directory attiva, ed i permessi dell'utente.
aldo è il nome dell'utente.
localhost è il nome del PC.
aldo è il nome della directory in cui si trova l'utente (il percorso completo è /home/aldo/).
$ indica che l'utente ha i permessi di utente comune.
# indica che l'utente ha i privilegi di amministratore di sistema.

Se serve solo lanciare un singolo comando si può anche utilizzare una micro-consolle cioè una finestra d terminale con una singola riga (si attiva con i tasti [Alt]+[F2]).

Navigare tra i files

pwd
Print Work Directory
Visualizza il percoro completo della directory attiva indicata nel prompt
Dando il comando pwd dalla mia home directory, il sistema risponde: "/home/aldo

ls -la
List
Elenca i files della directory attiva
-l è un parametro facoltativo che serve per far comparire nell'elenco dei files i loro permessi, il proprietario, le dimensioni, ecc.
-a è un parametro facoltativo che serve per far comparire nell'elenco anche i "files nascosti"

df -m /dev/hda1 disk free
Visualizza lo spazio libero disponibile su un disco riconosciuto da linux
-m (megabytes) è un parametro opzionale che consente di visualizzare lo spazio disponibile usando il MegaByte come unità di misura.
/dev/hda1 specifica il disco e la partizione di cui si vuole visualizzare lo spazio libero (anche questo è un parametro opzionale).

cd /percorso/nomedirectory
change directory
Rende attiva la directory "/percorso/nomedirectory"

Come semplificare le cose

I comandi testuali sono indubbiamnte ermetici, un po' criptici, e scomodi da memorizzare, e non bisogna commettere errori di battitura; ma fortunatamente esistono dei "trucchetti" per semplificare le cose.

Completamento automatico
Scrivere un comando come cd /mnt/cdrom/programmi/AbiWord/RPM può essere scomodo.
Usando il tasto TAB tutto diventa più semplice:

SCRIVENDO

LINUX COMPLETA CON...

cd /m[TAB]

cd /mnt/

c[TAB]

cd /mnt/cdrom/

p[TAB]

cd /mnt/cdrom/programmi/

A[TAB]

cd /mnt/cdrom/programmi/AbiWord/

R[TAB]

cd /mnt/cdrom/programmi/AbiWord/RPM/

Caratteri speciali
cd ~
si sposta immediatamente nella directory home dell'utente (nel mio caso /home/aldo/).
(per scrivere il carattere ~ bisogna premere contemporaneamente [AltGr]+ì)
cd ..
si sposta di 1 livello più in alto nella struttura ad albero delle directory
(ad esempio se il comando viene dato dalla directory /home/aldo/ il sistema si sposta nella directory /home/).
cd /
si sposta al livello più in alto (directory radice) nella struttura ad albero delle directory.
(ad esempio se il comando viene dato dalla directory /home/aldo/ il sistema si sposta nella directory /).

Copia e incolla
Nelle finestre di terminale si può copiare il testo semplicemente evidenziandolo con il mouse.
Per incollarlo basta premere il tasto centrale (se avete un mouse a 3 tasti), oppure premere assieme i 2 tasti laterali (se avete un mouse con solo 2 tasti), nel ponto in cui si vuole incollare il testo.

Richiamare i comandi precedenti
Utilizzando le frecce in alto ed in basso della tastiera, si possono inserire davanti al prompt i comandi impartiti in precedenza.

Trascinamento
Se utilizzate KDE potrete trascinare con il mouse un file dalla finestra di Konqueror o dal desktop su una finestra di terminale: comparirà un menù contenstuale che consente di selezionare il comando cd per spostarsi in un solo colpo nella directory prescelta.

less /percorso/nomefile
Visualizza il contenuto di nomefile.
Si può scorrere nel testo con i tasti [PgSù] e [PgGiù]
Per abbandonare less si preme q e si ritorna al prompt i BASH.

Modificare i files

cp -p /percorso_originale/nomefile_originale /percorso_nuovo/nomefile_nuovo
copy
Copia e/o rinomina un file.
-p è un parametro opzionale che indica di assegnare a nomefile_nuovo la data di nomefile_originale

mv /percorso_originale/nomefile_originale /percorso_modificato/nomefile_modificato
move
Sposta o rinomina un file (nomefile_originale viene cncellato).

rm /percorso/nomefile
remove
Cancella un file.

rmdir -r /percorso/nomedirectory
remove directory
Cancella una directory.
-r (sta per recursive) è un parametro opzionale che consente di cancellare directory che contengono dei files.

mkdir /percorso/nomedirectory
make directory
Crea una directory.

ln -sf /dev/usb/ttyUSB1 /dev/pilot
link
Crea un collegamento simbolico tra un file vero (/dev/usb/ttyUSB1) ed un nuovo file (/dev/pilot) che funziona come puntatore.
-s è un parametro che indica che si tratta di un link simbolico.
-f (force) è un parametro opzionale che consente di creare il link simbolico /dev/pilot anche nel caso fosse già presente un file con questo nome.

Modificare i permessi dei file

Per motivi di sicurezza ad ogni utente linux concede di eseguire solo alcune operazioni su determinati files.
Generalmente solo all'amministratore di sistema (l'utente root) è concesso di scrivere, modificare e/o cancellare i files di configurazione del computer. È l'unico che può anche installare programmi utilizzabili da tutti gli altri utenti.
Così si evita che qualcuno per malizia, o per errore possa compromettere il funzionamento del computer.
Tutti gli altri utenti generalmente possono modificare soltanto i dati della propria Home directory.
Questo impedisce ad altri utenti di "spiare" o modificare i files altrui.
Se più utenti devono poter modificare lo stesso file, basta creare dei gruppi ed assegnare agli utenti del gruppo gli appropriati permessi.
Per realizzare tutto questo, ogni file viene contraddistinto da una serie di permessi che indicano chi e che cosa può fare con quel file.
Per visualizzare i permessi in un'interfaccia grafica (ad esempio Konqueror di KDE) si può selezionare un file con un click destro del mouse, e selezionare la scheda permessi.
In una consolle basta dare il comando:

ls -l /percorso/nomefile che risponderà con una scritta simile alla seguente:
-rw-r--r-- 1 aldo aldo 348742 nov 16 16:40 nomefile

Il primo carattere indica il tipo di file (- = file normale; d = directory; l = link).
seguono 3 triplette di caratteri che indicano ognuna rispettivamente i permessi per l'utente proprietario del file, per il gruppo di appartenenza, e per tutti gli altri utenti:
[ - = nessun permesso; r = (read) permesso di leggere il file; w = (write) permesso di scrivere il file; x = (execute) permesso di eseguire il file]
1 è il numero i files contenuti (per una directory questo numero può essere diverso da 1)
aldo è il nome del proprietario. aldo (la seconda volta) è il nome del gruppo 348742 è la dimensione del file in bytes
nov 16 16:40 sono data ed ora di creazione del file
nomefile ovviamente è il nome del file di cui sono indicati i permessi

chmod u-w g+x o-rwx /percorso/nomefile
change modality
Modifica i permessi di /percorso/nomefile
u (user) indica che vengono modificati i permessi del proprietario del file
g (group) indica che vengono modificati i permessi del gruppo di appartenenza del file
o (other) indica che vengono modificati i permessi concessi a qualunque altro utente
- indica che il permesso che segue viene tolto
+ indica che il permesso indicato dopo viene aggiunto
r = (read) permesso di leggere il file
w = (write) permesso di scrivere il file
x = (execute) permesso di eseguire il file

Permessi ottali

C'è un altro modo molto più veloce per modificare i permessi di un file.
Non è indispensabile impararlo ma è molto potente.
Si usano 3 numeri che possono assumere 8 diversi valori (per questo si chiamano permessi ottali) compresi tra 0 e 7.
Il comando precedente si sarebbe potuto scrivere anche come segue:

chmod 710 /percorso/nomefile

La prima cifra (7) indica i permessi per il proprietario del file
la seconda cifra (1) indica i permessi del gruppo
la terza cifra (0) indica i permessi per gli altri utenti

Il valore di ognuna di queste cifre è il risultato della conversione decimale di un numero binario di 3 cifre (3 bit).
Ogni cifra del numero binario può avere valore 0 (permesso negato) o 1 (permesso concesso).
La prima cifra indica il permesso di lettura, la seconda il permesso di scrittura, la terza il permesso di esecuzione.

Calcolare il valore del permesso ottale
Il permeso di lettura (100 in numero binario) corrisponde a 4 (numero decimale)
Il permeso di scrittura (010 in numero binario) corrisponde a 2 (numero decimale)
Il permeso di esecuzione (001 in numero binario) corrisponde a 1 (numero decimale)
Il numero da utilizzare si calcola facendo la somma dei valori decimali corrispondenti ai permessi che si vogliono assegnare:

N. BINARIO N. DECIMALE PERMESSI
111 7 (4+2+1) lettura, scrittura, esecuzione
110 6 (4+2+0) lettura, scrittura
100 4 (4+0+0) lettura
010 2 (0+2+0) scrittura
001 1 (0+0+1) esecuzione

Vorrei infine segnalare 2 opzioni molto utili da utilizzare in associazione a chmod:
chmod -R -v 777 /percorso/nome_directory
-R (recursive) consente di applicare le modifiche dei permessi a tutti i files e le directory contenute in nome_directory
-v (verbose) visualizza sul video un messaggio che informa delle modifiche eseguite su ogni file.

chown vecchio_proprietario:nuovo_proprietario /percorso/nomefile
change owner
assegna /percorso/nomefile all'utente nuovo_proprietario

chgrp nome_nuovo_gruppo /percorso/nomefile
change group
assegna /percorso/nomefile al gruppo nome_nuovo_gruppo.

Memorizzare i comandi in un file

L'editor (Bluefish) che uso per scrivere queste pagine, ogni volta che salvo il lavoro, rinomina il file registrato prima delle modifiche con nomefile.htm~, e salva la versione aggiornata con nomefile.htm.
In questo modo nella directory in cui salvo le pagine sono presenti un sacco di file doppi con le copie non aggiornate delle pagine html.

È possibile buttare nel cestino tutte queste copie superflue se si memorizzano i comandi in un file di testo che viene chiamato script per la shell.
Per generare questo script basta un semplice editor di testo su cui vanno scritti i comandi da utilizzare (uno per riga), come se si fosse in una finestra di terminale:

script della shell
Lo script utilizzato per cancellare i file superflui.

La prima riga serve per specificare al sistema operativo l'interprete da utilizzare per eseguire lo script.
Serve cioè ad informare Linux che per interpretare il significato del contenuto del file deve utilizzare la shell BASH che si trova in /bin/bash
La seconda riga è un commento per rendere chiaro a chi legge cosa c'è nel file. Questa riga verrà ignorata durante l'esecuzione del file.
La terza riga è quella che effettivamente esegue il comando con cui tutti i file con estensione .htm~ vengono spostati nel cestino dei rifiuti di KDE (così in caso di ripensamento posso recuperarli).
Al termine salvare il file con il nome del comando che volete utilizzare per eseguire le operazioni: nel mio caso ho nominato il file "delhtm".
Consiglio di salvare i vostri script nella vostra home directory.

Eseguire lo script


Prima di eseguire lo script cambiarne i permessi per consentire l'esecuzione a chi volete. Basta il comando:
chmod u+x delhtm
Oppure potete utilizzare l'interfaccia grafica:

chmod u+x delhtm
Viene consentito di eseguire lo script al proprietario del file

A questo punto potete aprire una mini consolle (con i tasti [Alt]+[F2]), o una finestra di terminale, e digitare "./delhtm":
Tutti i files .htm~ saranno istantaneamente buttati nel cestino.
Lo stesso effetto si può ottenere cliccando sul file delhtm in una finestra di konqueror.



Inizio pagina
Indice guide Linux
Homepage