Linux: comandi essenziali

In questo arti­colo vor­rei pre­sentare un po’ di comandi utili per lavo­rare in Linux. Chi già è abit­u­ato a dis­tri­carsi con la shell non avrà cer­ta­mente bisogno di leg­gere questo arti­colo, in quanto tratta sem­plice­mente i comandi fon­da­men­tali per iniziare a muoversi.
Per­ché usare la shell? La risposta è sem­plice. Molti com­piti si svol­gono molto più effi­cien­te­mente e velo­ce­mente da linea di comando piut­tosto che da inter­fac­cia grafica. Questo non sig­nifica che dob­bi­ate abban­donare al suo des­tino il vostro ambi­ente desk­top, tutt’altro, ma il mio con­siglio è di tenere a por­tata di mano sem­pre una shell e di con­fig­u­rare al meglio, per le vostre esi­genze, l’ambiente di lavoro.

Da quando mi hanno fatto sco­prire {ln:Yakuake}, ad esem­pio, io non riesco a farne a meno, al punto da dispi­ac­ermi quando lavoro su un’altra macchina dove {ln:Yakuake} non è pre­sente… Si tratta di una shell comodis­sima, che si richiama con la pres­sione di un sin­golo tasto fun­zione (F12 per default), al suo interno è pos­si­bile aprire più shell per svol­gere com­piti dif­fer­enti in ognuna di esse… Insomma è un gio­cat­tolino inter­es­san­tis­simo.
Fac­ciamo così: scriverò una recen­sione a breve di questo mio amato gio­cat­tolino ed ora torno all’argomento dell’articolo…

OTTENERE INFORMAZIONI

Il comando fon­da­men­tale è: man
Ogni volta che non sapete come usare un comando, prima di sbat­tere la testa con­tro il muro o tele­fonare dis­per­ata­mente ad un amico, provate ad usare il comando man. Questo comando vi fornirà tutte le indi­cazioni di cui avete bisogno: dalla sin­tassi ad esempi di uti­lizzo concreti

    man nome_comando
visu­al­izza il man­uale det­tagliato del comando dig­i­tato
    man man
chiara­mente esiste una pag­ina di man­uale anche per il comando man :-)
    man –k parola
mostra i man­u­ali che con­tengono la parola indi­cata
    man –T nome_comando > nome_comando.ps
crea un file post­script del man­uale del comando pronto per la stampa.

Un altro comando per rice­vere infor­mazioni è chiara­mente: info
    info nome_comando: visu­al­izza l’help del comando dig­i­tato, è più det­tagliato di man, ma…
…non esiste per tutti i comandi.

Ancora un comando utile per avere infor­mazioni: whatis
whatis nome_comando: visu­al­izza una breve descrizione del comando.

MUOVERSI NEL FILESYSTEM:

Analoga­mente al DOS per muoversi tra le direc­tory si usa il comando cd (abbr. change direc­tory)
cd nome_directory : va nella sot­todi­rec­tory indi­cata
cd : riporta alla home
cd .. : torna alla direc­tory supe­ri­ore
cd / : va nella direc­tory root
cd – : torna alla direc­tory prece­den­te­mente visitata.

LISTA DEI FILE E DIRECTORY

Quello che in DOS era il comando dir per ottenere la lista dei file e delle direc­tory pre­senti nel punto del filesys­tem in cui ci tro­vi­amo, nei sis­temi Unix-like è il comando ls (abbr. list)
ls : fa la lista del con­tenuto della direc­tory cor­rente
ls –a : visu­al­izza anche i file nascosti (hanno un punto davanti al nome .file_nascosto)
ls –l : visu­al­izza per­me­ssi, pro­pri­etari e dimen­sioni dei file
la serie di infor­mazioni rel­a­tive ad ogni sin­golo file è una stringa così com­posta:
per­me­ssi n utente gruppo dimen­sione data_ultima_modifica nome
in par­ti­co­lare i per­me­ssi sono indi­cati dalle 10 let­tere iniziali, la prima let­tera indica:
un file (-)
una direc­tory (d)
un link (l)
la terna suc­ces­siva indica i diritti dell’utente, la sec­onda quelli del gruppo, e la terza quella degli altri utenti,
ad esem­pio –rwxr-xr-x indica: un file (-) che tutti pos­sono leg­gere ® ed eseguire (x), e solo il pro­pri­etario può mod­i­fi­care (w).

CAMBIARE I PERMESSI

Ora che abbi­amo visto velo­ce­mente cosa sono i per­me­ssi pos­si­amo anal­iz­zare un altro sem­plice ed utile comando. Il comando chmod (abbr. change mode) per­me­tte di cam­biare i per­me­ssi asso­ciati a file e direc­tory
La forma di uti­lizzo è : chmod {a, u, g, o} {+/-} {r, w, x} nome_file
Dove le let­tere rap­p­re­sen­tano:
“a” (all) rap­p­re­senta tutti gli utenti,
“u” (user) l’utente pro­pri­etario del file,
“g” (group) il gruppo pro­pri­etario,
“o” (other) altri utenti del sis­tema;
“r” (read) con­sente la let­tura,
“w” (write) con­sente la scrit­tura,
“x” (exe­cute) indica un file eseguibile.
Se i diritti (vedi ls –l) rel­a­tivi al file pippo sono: –rwxr-xr-x e vogliamo dare al gruppo la pos­si­bil­ità di scri­vere sul file, diamo il comando: chmod g+w pippo se vogliamo togliere agli utenti non del gruppo la pos­si­bil­ità di leg­gere il file, diamo il comando: chmod o-r pippo

COPIARE FILE E DIRECTORY

Si usa il comando cp (abbr. copy)
     cp nome_file_esistente nuovo_nome_file : crea una copia, preser­vando l’originale
     cp nome_file nome_directory/nome_file : copia il file nella direc­tory indi­cata
se in questa direc­tory esiste già un file con lo stesso nome, viene sovrascritto
cp –i nome_file nome_directory/nome_file : l’opzione –i attiva una modal­ità inter­at­tiva
che seg­nala casi par­ti­co­lari come quello descritto sopra.

CONOSCERE LO SPAZIO OCCUPATO

Si usa il comando du
du –h –s indica lo spazio occu­pato nella direc­tory corrente.

CERCARE STRINGHE

Quando ci si trova a dover cer­care una stringa all’interno di un file, di un lis­tato ottenuto tramite ls o all’interno di qualunque cosa vogli­ate è impor­tante usare il comando grep
grep “parola” file : cerca la parola indi­cata ” ” nel file
ps aux | grep fire­fox : per­me­tte di trovare la riga cor­rispon­dente a fire­fox tra i pro­cessi attivi
Occorre intro­durre però l’uso del comando | (chiam­ato pipe): questo comando per­me­tte di con­catenare un comando al suc­ces­sivo. Nell’esempio prece­dente abbi­amo invo­cato il comando ps aux che ci for­nisce il lis­tato di tutti i pro­cessi attivi nel sis­tema, ma poichè questi è di grandi dimen­sioni abbi­amo iso­lato la riga di nos­tro inter­esse pas­sando l’output del primo comando al comando grep

CREARE DIRECTORY

Per creare direc­tory si usa il comando mkdir.
mkdir nome_directory : crea una direc­tory chia­mata nome_directory nella posizione cor­rente
mkdir /home/user/nome_directory : crea una direc­tory all’interno del per­corso spec­i­fi­cato
Ovvi­a­mente si pos­sono creare direc­tory solo dove l’utente è autor­iz­zato a farlo. L’utente root (supe­ruser) potrà creare direc­tory ovunque nel filesys­tem, ma la stessa cosa non vale per utente nor­male. Non  stupitevi dunque se otter­rete un errore lan­ciando da utente nor­male il comando mkdir /directory_di_prova poichè state cer­cando di scri­vere all’interno della direc­tory radice (root) sulla quale non siete autor­iz­zati ad agire.

SPOSTARE E RINOMINARE FILE E DIRECORY

Per spostare o rinom­inare un file o una direc­tory si usa il comando mv (abbr. move)
    mv nome_file nuovo_nome_file rinom­ina il file;
mv nome_file directory/ sposta il file nella direc­tory indi­cata.
mv direc­tory directory2/directory sposta la direc­tory nella cartella directory2

ELIMINARE FILE E DIRECORY

Per elim­inare un file o una direc­tory si usa il comando rm (abbr. remove)
rm nome_file can­cella il file;
rm –i nome_file modal­ità inter­at­tiva, chiede con­ferma prima di can­cel­lare il file;
rm –f nome_file modal­ità forzata;
rm –fr nome_directory can­cella la direc­tory e tutti i file in essa con­tenuti, “r” (recur­sive)
Usare con molta prudenza.

COMPRIMERE E DECOMPRIMERE FILE E DIRECTORY

Il comando tar è prob­a­bil­mente il più uti­liz­zato per com­primere e decom­primere file in ambi­ente Linux. Quasi sem­pre gli archivi dei sor­genti di pro­grammi per Linux ven­gono dis­tribuiti com­pressi in for­mato tar.gz o tar.bz2
    tar –cvf nome_archivio.tar nome_directory/
archivia il con­tenuto della direc­tory indi­cata in un solo file;
tar –zcvf nome_archivio.tar.gz nome_directory/
il file archivio viene anche com­presso;
tar –tvf nome_archivio.tar
mostra il con­tenuto dell’archivio;
tar –ztvf nome_archivio.tar.gz
mostra il con­tenuto dell’archivio com­presso;
tar –xvf nome_archivio.tar
recu­pera i file archiviati;
tar –zxvf nome_archivio.tar.gz
recu­pera i file archiviati e compressi.

Il comando com­press
com­press nome_file il file com­presso viene rinom­i­nato con l’aggiunta del suff­isso .Z
com­press –d nome_file.Z con l’opzione –d decom­prime i file .Z;

Il comando gzip
gzip nome_file com­prime file;

Il comando gun­zip
gun­zip nome_file.gz decom­prime i file com­pressi con gzip;

Il comando bzip2
bzip2 nome_file com­prime file tramite un algo­ritmo più potente;

Il comando bunzip2
bunzip2 nome_file.bz2 decom­prime i file com­pressi con bzip2;

Il comando zip
zip nome_file.zip nome_file altro modo per com­primere file;

Il comando unzip
unzip nome_file.zip decom­prime i file com­pressi con zip (e Winzip).

STAMAPARE

Il comando lpr
lpr –P nome_stampante nome_file stampa il file indi­cato con la stam­pante scelta;
lpr –o sides=two-sided-long-edge nome_file stampa fronte-retro (foglio ver­ti­cale);
lpr –o sides=two-sided-short-edge nome_file stampa fronte-retro (foglio oriz­zon­tale);
lpr –o sides=one-sided nome_file stampa su sin­gola facciata.

Il comando lpq
lpq –a mostra lo stato di stampa.

Il comando lprm
lprm numero_processo can­cella la stampa indi­cata
il numero_processo si ottiene con il comando lpq

ALTRI COMANDI UTILI

Il comando clear
clear pulisce la shell.

Il comando kill
kill –9 id_processo è l’ultima risorsa per dis­trug­gere un pro­gramma sospeso,
per visu­al­iz­zare il codice iden­ti­fica­tivo di un processo si uti­lizza il comando ps aux | grep.

Il comando less
less nome_file mostra il con­tenuto del file (testo);
comando | less mostra il risul­tato del comando in un file di testo temporaneo.

MONTARE E SMONTARE DISPOSITIVI

Prima di poter accedere a file con­tenuti in un dis­pos­i­tivo (sia esso un floppy, un cd o un hard disk esterno) occorre mon­tarli, ovvero indi­care al sis­tema la pre­senza di un nuovo dis­pos­i­tivo e in che punto del filesys­tem “aggan­ciare” i file con­tenuti:
mount /mnt/floppy “monta” il dis­chetto;
mount /mnt/cdrom “monta” il cd-rom;
mount /dev/hdb1 /mnt/disco2 “monta” un sec­ondo hard disk nella direc­tory /mnt/disco2
Il comando mount neces­sita dei priv­i­legi di root poiché va a mod­i­fi­care con­fig­u­razioni di sis­tema
per accedere al con­tenuto i comandi sono:
cd /mnt/floppy ”apre” il dis­chetto;
cd /mnt/cdrom “apre” il cd-rom;
e poi per smon­tarli, al ter­mine del loro uti­lizzo, occorre usare il comando umount:
umount /mnt/floppy “smonta” il dis­chetto;
umount /mnt/cdrom “smonta” il cd-rom.
umount /mnt/disco2 “smonta” il sec­ondo hard disk.

DIVENTARE ROOT

Per diventare utente rootsi può pro­cedere in diversi modi:
– aut­en­ti­carsi diret­ta­mente come root all’avvio del sis­tema. E’ scon­sigliato aut­en­ti­carsi come root
in un sis­tema grafico.
– usare il comando su vi verrà chi­esta la pass­word di root dopodichè ver­rete aut­en­ti­cati
– in sis­temi {ln:Debian} e/o derivati come {ln:Ubunt} si può usare il comando sudo.
Il comando sudo è disponi­bile anche in altre dis­tribuzioni, ma le dis­tribuzioni derivate da Debian sono quelle che ne fanno un uso mag­giore. Il comando sudo per­me­tte di lan­ciare un comando con i priv­i­legi di root pur rima­nendo aut­en­ti­cati come utente nor­male.
sudo mount /mnt/cdrom
vi con­sen­tirà ad esem­pio di montare il cdrom pur essendo utenti normali

CONOSCERE I PROCESSI ATTIVI SUL SISTEMA

Il comando ps
ps visu­al­izza l’elenco dei pro­cessi in corso.
ps aux visualizza

CONOSCERE LA POSIZIONE ATTUALE

Il comando pwd (abbr. present work­ing direc­tory)
pwd indica la posizione attuale

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *