Liberatoria
Il documento seguente è una copia gratuita, fornita così com'è, rivista e corretta, senza alcuna garanzia, né implicita, né esplicita di adeguatezza ad un uso particolare o di commerciabilità. Non mi assumo alcuna responsabilità per eventuali danni provocati da quanto segue: leggete, confrontate, scopiazzate, ma non cercatemi per portarmi in tribunale, che vi mando un virus che farà girare il vostro computer solo con Winzoz 3.1 !
=:o) BadPenguin vede e provvede!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Non sarebbe una cattiva idea stampare questa pagina........ anche xchè (in pagine normali) sono circa 74. Saluti e baci a tutti.
Index:
A-B-C-D-E-F-G-H-I-K-L-M-N-P-R-S-T-U-V-W-X-Z
Comandi da linea di comando (shell-bash)
10.2.1. adduser
Questo comando è necessario per aggiungere un utente al sistema ed è una operazione concessa unicamente all'utente
root, l'amministratore. Digitate:# adduser nome_scelto
dove
nome_scelto è il nostro utente da aggiungere. Per configurare una password a questo nuovo utente fate riferimento al comando passwd a pagina 127.10.2.2. apropos
Questo comando cerca all'interno degli elenchi
whatis tutte le corrispondenze relative alla parola indicata. Esempio:$ apropos keyboard
Verranno presentate tutte le stringhe di testo contenenti la parola "
keyboard".10.2.3. apt-cache
Questo comando è relativo alla distribuzione Debian GNU/Linux e permette di compiere determinate azioni sui pacchetti software. Tra quest'ultime segnaliamo:
$ apt-cache search rdate
rdate - Set the system's date from a remote host.
Per cercare informazioni sui pacchetti software con una specifica corrispondenza. Per ottenere maggiori informazioni su un determinato pacchetto:
$ apt-cache show rdate
Package: rdate
Priority: optional
Section: net
Installed-Size: 64
Maintainer: Herbert Xu <herbert@debian.org>
Architecture: i386
Version: 1.3-3
Replaces: netstd
Depends: libc6 (>= 2.1.2)
Filename: dists/potato/main/binary-i386/net/rdate_1.3-3.deb
Size: 7040
MD5sum: 322c5b2c859e32f342457e8e46559860
Description: Set the system's date from a remote host. Rdate displays and sets the local date and time from the host name or address given as the argument. It uses the RFC868 protocol which is usually implemented as a built-in service of inetd(1).
10.2.4. apt-get
Questo comando è relativo alla distribuzione Debian GNU/Linux. Ha funzionalità correlabili ai comandi
rpm (pagina 131) e dpkg (pagina 101) aggiungendo caratteristiche ulteriori e rendendo la procedura di gestione dei pacchetti software molto più semplice per un utente della distribuzione pocanzi citata. Per eseguire l'installazione di un pacchetto .deb è necessario digitare:# apt-get install nomefile
Se il pacchetto software è già installato nel sistema viene compiuto l'aggiornamento automatico di quest'ultimo con la nuova versione. Per procedere alla disinstallazione di un pacchetto software digitate:
# apt-get remove nomefile
Il comando è utile anche per aggiornare tutti i pacchetti software del proprio sistema sfruttando la connettività ad Internet. Questo è possibile inserendo un'apposita dicitura nel file
/etc/apt/sources.list come segue:deb ftp://ftp.debian.org/debian unstable main contrib non-free
e digitare al prompt:
# apt-get update
Quest'ultimo comando sfrutterà la connessione (se attiva) per aggiornare automaticamente la lista dei pacchetti software presenti e disponibili per l'installazione e l'aggiornamento di sistema. Una volta aggiornata quest'ultima lista è possibile aggiornare i pacchetti software presenti nel sistema con:
# apt-get upgrade
10.2.5. bzip2
Questo comando serve a comprimere un file tramite l'algoritmo bz2. Per comprimere un file è necessario digitare:
$ bzip2 nuovofile
Il file "
nuovofile" verrà compresso e verrà rinominato come "nuovofile.bz2". Per scompattare il file presente è necessario utilizzare il comando bunzip2:$ bunzip2 nuovofile.bz2
10.2.6. cal
Questo comando stampa un calendario per uno specifico mese e/o anno. Digitando il comando senza opzioni si otterrà il calendario del mese corrente:
$ cal
novembre 1999
do lu ma me gi ve sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Un ulteriore esempio che mostra il mese di giugno (6) del 1969:
$ cal 6 1969
giugno 1969
do lu ma me gi ve sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Per mostrare l'intero calendario di un anno:
$ cal 1999
10.2.7. cardctl
Questo comando è una utilità di controllo delle schede PCMCIA disponibili per computer portatili. Vediamo alcune opzioni:
# cardctl status
Mostra lo stato attuale della scheda presente.
# cardctl config
Mostra le configurazioni della scheda presente.
# cardctl ident
Visualizza le informazioni identificative della scheda.
# cardctl suspend
Interrompe la corrente che alimenta la scheda.
# cardctl eject
Disabilita la gestione e interrompe l'alimentazione della scheda.
# cardctl insert
Avvisa i driver di gestione che la carta è stata nuovamente inserita e deve essere attivata.
10.2.8. cat
Questo comando mostra il contenuto di un file di testo e può concatenare diversi file insieme. Per aggiungere il contenuto del fileuno in coda al filedue è necessario digitare la seguente sequenza di comandi:
$ cat fileuno >> filedue
Per consultare il contenuto di un file:
$ cat fileuno
Se il contenuto di un file è ampio, durante l'esecuzione del comando potreste non visualizzare la totalità delle informazioni presenti. A tale scopo è necessario utilizzare il comando
more successivamente descritto.10.2.9. cd
Questo comando permette di spostarvi nella struttura ad albero delle directory. Quando un utente si collega al sistema viene automaticamente posizionato nella sua directory "home", usualmente nella posizione "
/home/nome_utente/". Per spostarsi in una sottodirectory chiamata "Tesi" disposta nella corrente directory:$ cd Tesi/
Per spostarsi nella directory "
/home/darshan/Tesi/Cap06/" digitate:$ cd /home/darshan/Tesi/Cap06/
Per spostarsi dalla directory attuale a quella superiore, digitate:
$ cd ..
Per spostarvi nella directory "
root", digitate:$ cd /
Per ritornare nella vostra "
home" directory, digitate:$ cd
Per ritornare nella directory precedente alla posizione attuale:
$ cd -
10.2.10. cdrecord
L'applicazione maggiormente utilizzata per masterizzare con GNU/Linux è sicuramente
cdrecord, un'utility da console ben testata e potente. La prima utile operazione da compiere prima di agire è visualizzare le periferiche presenti come segue:# cdrecord -scanbus
Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
Linux sg driver version: 3.1.15
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SONY ' 'CD-RW CRX140E ' '1.0n' Removable CD-ROM
0,1,0 1) 'UTI ' 'CD_ROM ' 'V4.6' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
Come è possibile vedere, esiste un masterizzatore e un lettore CD. A questo punto il passo per masterizzare è semplice:
# cdrecord -v speed=4 dev=0,0,0 -data dati.iso
Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
TOC Type: 1 = CD-ROM
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.15
Using libscg version 'schily-0.1'
atapi: 1
Device type : Removable CD-ROM
Version : 0
Response Format: 1
Vendor_info : 'SONY '
Identifikation : 'CD-RW CRX140E '
Revision : '1.0n'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : SWABAUDIO
Drive buf size : 4183808 = 4085 KB
FIFO size : 4194304 = 4096 KB
Track 01: data 510 MB
Total size: 585 MB (58:01.78) = 261134 sectors
Lout start: 586 MB (58:03/59) = 261134 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 4
Is not unrestricted
Is not erasable
Disk sub type: Medium Type A, low Beta category (A-) (2)
ATIP start of lead in: -11318 (97:31/07)
ATIP start of lead out: 336225 (74:45/00)
Disk type: Short strategy type (Phthalocyanine or similar)
Manuf. index: 22
Manufacturer: Ritek Co.
Blocks total: 336225 Blocks current: 336225 Blocks remaining: 75091
Starting to write CD/DVD at speed 4 in write mode for single session.
Last chance to quit, starting real write in 1 seconds.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01: 510 of 510 MB written (fifo 100%).
Track 01: Total bytes read/written: 534798336/534798336 (261132 sectors).
Writing time: 876.092s
Fixating...
Fixating time: 61.167s
cdrecord: fifo had 8424 puts and 8424 gets.
cdrecord: fifo was 0 times empty and 8086 times full, min fill was 71%.
L'opzione "
-v" per avere il maggior numero di informazioni durante l'esecuzione del comando, "speed=4" per indicare che la velocità di masterizzazione dovrà essere di 4x, "dev=0,0,0" indica il dispositivo per masterizzare e "-data dati.iso" per utilizzare una ben determinata immagine iso dati. L'esempio era relativo alla masterizzazione dati; per quel che riguarda l'audio il comando adeguato cambia ben poco:# cdrecord dev=0,0,0 -audio traccia.cdr traccia1.cdr
La masterizzazione delle tracce audio è denominata TAO (Track At Once); sarà prodotto un cd audio dove tra una traccia e l'altra intercorrono 2 secondi di pausa. Alternativa a TAO, scelta discutibile sulla qualità finale del risultato, è DAO (Disk At Once), modalità che migliora il risultato finale ed evita la possibilità di fruscii e altri effetti indesiderati.
10.2.11. chattr
Questo comando cambia gli attributi di un file su un file system di tipo
ext2 e può essere particolarmente sotto aspetti di backupt di sistema e sicurezza. Gli obiettivi del comando possono essere alquanto oscuri per un utente alla prime armi ma verranno utilizzati alcuni esempi reali per semplificare l'apprendimento.$ chattr +i documento.txt
Il comando appena digitato rende "immutevole" il file
documento.txt da modifiche, aggiunte e non si potranno creare link a quest'ultimo. Se volessimo rendere "immutevole" una directory con tutti i file presenti al suo interno avremmo dovuto digitare:$ chattr -R +i documenti/
Ulteriori attributi da dare ad un file (o directory) sono i seguenti:
$ chattr +a documento.txt
L'attributo "
a" rende il file gestibile solo in modalità append ovvero è permesso solamente apportare aggiunte al file.$ chattr +c documento.txt
Un file con l'attributo "
c" viene automaticamente compresso sul disco dal kernel. La lettura del file restituisce i dati decompressi mentre in scrittura ogni informazione viene compressa e poi scritta sul disco.$ chattr +d documento.txt
L'attributo "
d" candida un file per il backup tramite il comando dump .$ chattr +s documento.txt
Per ulteriori informazioni si consiglia la guida in linea:
$ man chattr
Abbiamo visto che per aggiungere attributi è stato utilizzato il carattere "
+". Per toglierli dobbiamo alternativamente utilizzare il carattere "-" come nell'esempio seguente:$ chattr -i documento.txt
10.2.12. chmod
Questo comando cambia i permessi associati per ogni file presente nel vostro sistema. Di seguito viene mostrata la serie di informazioni relative ad un singolo file. Il comando in questione agisce sulla prima decade di lettere, quelle che specificano i "diritti".
-rw-r-r- 1 root root 133444 Sep 1 21:14 gsg.tex
La forma di utilizzo è la seguente:
chmod {a, u, g, o} {+/-} {r, w, x} <file>
dova "
a" rappresenta tutti gli utenti ("all"), "u" l'utente proprietario del file, "g" il gruppo proprietario, "o" gli altri utenti di sistema che non siano ne il proprietario ne il gruppo di riferimento. Il comando può essere anche espresso in forma ottale come in lettere come segue:$ chmod 700 gsg.tex
Il comando ha la stessa valenza della forma seguente:
$ chmod u+rwx,go-rwx gsg.tex
Il file considerato cambierà i permessi nel seguente modo:
-rwx--- 1 root root 133444 Sep 1 21:14 gsg.tex
Per capire come funzionano i permessi su un file consultare la tabella 8.1.
10.2.13. compress
E' un comando storico per la compressione dei dati per Unix. Esempio di compressione di un file:
$ compress nomefile
Ogni file viene compresso e rinominato con l'aggiunta del suffisso ".Z". Per decomprimere un file di questo tipo è necessario digitare:
$ compress -d nomefile.Z
E il file verrà rinominato senza l'estensione "
.Z".10.2.14. cp
Questo comando serve per copiare dei file, preservare gli originali e crearne una copia identica. Se già disponete di un file digitate:
$ cp gsg.tex Documenti/gsg.tex
Nel caso sopracitato ho copiato un file presente nella directory corrente nella sottodirectory "
Documenti/". Se nella directory dove ho copiato il file ci fosse stato già un documento con quel nome lo avrei sovrascritto. Per evitare questo aggiungo la seguente opzione:$ cp -i theGimp.tex Documenti/gsg.tex
L'opzione attiva una modalità interattiva che mi comunica particolari situazioni come quella descritta.
10.2.15. cpio
E' un archiviatore di file simile al comando
tar (pagina 135). Per lungo tempo tar e cpio erano gli archiviatori maggiormente utilizzati, poi con l'avvento di GNU/Linux il primo ebbe il sopravvento. Numerose sono le opzioni di questo comando ma ci limiteremo alle due sole principali, la creazione e l'estrazione di un archio cpio. Per la creazione la forma è la seguente:# cpio -o < file/ > file.cpio
Per l'operazione inversa, l'estrazione di un archivio cpio, la forma è questa:
# cpio -i --make-directories < file.cpio
La vera utilità di questo comando risiede nell'utilizzo combinato con
rpm2cpio (pagina 132).10.2.16. cron
Questo applicativo è utile quando si vuole automatizzare l'esecuzione di determinati processi di sistema a scadenze temporali ben definite. Per il suo funzionamento è necessario avere attivato il demone
crond che controlla i file di configurazione e si occupa di eseguire le operazioni indicate nei limiti delle impostazioni indicate. Per verificare rapidamente se è attivo digitate:$ ps -ax|grep cron
In caso positivo apparirà quanto segue:
$ ps -ax|grep cron
559 ? S 0:00 crond
563 pts/1 R 0:00 grep cron
In caso negativo (non esiste il processo
crond attivo) potete attivarlo sul momento. Per fare questo è necessario essere utente root, l'amministratore di sistema, colui che ha i diritti necessari per lanciare il demone1 nel sistema. Digitate:$ su -
Verrà chiesta la password di
root e una volta autenticati potrete lanciare il demone crond con:2
# /etc/rc2.d/S89cron start
e poi ritornate all'utente precedente con
# exit
Il prompt dei comandi ritornerà come era. A questo punto non resta altro che modificare il file di configurazione per eseguire i processi ad una data scadenza temporale:
$ crontab -e
Il comando edita un file (utilizzando l'editor
vi, pag. 139) dove andranno impostate le vostre preferenze nella forma seguente:minuti ora gg del mese mese gg settimanale applicativo
data comando
Per eseguire il comando
pon alle 18,30 di ogni giorno la configurazione da aggiungere al file di cron sarà la seguente:30 18 * * * /usr/bin/pon
Gli asterischi "
*" indicano che il processo dovrà essere eseguito ogni giorno del mese, ogni mese, ogni giorno della settimana. A questo punto non vi resta altro che salvare il file e ritornare al prompt dei comandi iniziale. Per visualizzare il file appena modificato digitate:$ crontab -l
1demone, processo che viene attivato nel sistema e procede in background, ovvero senza disturbare lo svolgimento delle ulteriori attività.
2I prompt di comandi possono cambiare tra le varie distribuzioni.
Se desiderate eliminare il vostro file di configurazione di cron:
$ crontab -r
Per maggiori informazioni digitate al prompt
man cron.10.2.17. date
Questo comando mostra giorno, data, ora ed anno corrente:
$ date
gio lug 6 11:14:54 CET 2000
10.2.18. df
Questo comando serve a mostrare lo spazio libero sui dischi.
$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 1486339 1246706 162825 88% /
/dev/hda2 694727 618131 40712 94% /home
/dev/hda3 121007 73550 41208 64% /home/redhat
Dal risultato del comando è possibile vedere lo spazio utilizzato, lo spazio disponibile, la percentuale di utilizzo e dove sono montati i dischi analizzati.
10.2.19. diff
Questo comando serve per analizzare due file e riportare le differenze.
$ diff -urN it.po it.po.new
Dopo aver digitato il comando vedrete a video le differenze tra i due file. Il comando diff viene utilizzato per la creazione di patch con le seguenti opzioni:
$ diff -urN it.po it.po.new > patch
Per creare una patch su file binari è necessario digitare quanto segue:
$ diff -a --binary bin bin.2 > patch
Per applicare i file con le differenze è necessario il comando
patch (pagina 128).10.2.20. dpkg
Questo comando è relativo alla distribuzione Debian GNU/Linux. E' principalmente utile per installare e aggiornare i pacchetti software sul proprio sistema e può essere comparato al comando
rpm (pagina 131).# dpkg -i nomefile.deb
Questo comando compie sia l'installazione che la procedura di aggiornamento se viene riscontrato un pacchetto maggiormente recente. Per compiere l'operazione opposta, ovvero la disinstallazione del pacchetto software .deb digitate:
# dpkg -r nomefile
Per evitare compromissioni del sistema è bene antecedere la seguente opzione di controllo:
# dpkg --no-act -r nomefile
Per ottenere informazioni su un pacchetto è possibile digitare quanto segue:
# dpkg -s nomefile
Per ottenere informazioni sulla provenienza di un particolare file presente sul sistema possiamo conoscere il pacchetto software relativo digitando:
# dpkg -S blackbox
Per avere la lista dei pacchetti software installati nel sistema digitate:
# dpkg -l
Una soluzione per avere una lista di pacchetti software da replicare su una nuova macchina o sulla stessa in caso di ripristino è la seguente riga di comandi:
# dpkg --get-selections > pacchetti.txt
Creato il file potremo recuperare lo stato dei pacchetti software come segue:
# dpkg --set-selections < pacchetti.txt
# dpkg deselect-upgrade
Alternativa a
dpkg è apt-get (pagina 93) che offre numerose caratteristiche aggiuntive e maggiore semplicità di utilizzo.10.2.21. du
Volete sapere quando spazio disco è occupato? Utilizzate il comando seguente:
$ du
Dopo aver digitato il comando ed essere stati colti da dubbi esistenziali si consiglia la variante successivamente esposta del comando:
$ du -h -s
32M
L'opzione "
-h" vi mostra il risultato del comando in un modo "umanamente comprensibile" mentre l'opzione "-s" per ottenere unicamente la somma delle dimensioni dei file considerati.10.2.22. dvipdfm / dvipdf
Questo comando converte un file in formato
.dvi in formato .pdf. Digitare:$ dvipdfm -o documento.pdf documento.dvi
Dove l'opzione "
-o" indica il nome finale del file nel nuovo formato. Per maggiori informazioni relative consultare pagina 117.10.2.23. dvips
Questo comando converte file in formato
.dvi in formato .ps (Postscript3).$ dvips -o documento.ps documento.dvi
L'opzione "
-o" indica il nome finale del file postscript che verrà generato. Esistono numerose opzioni consultabili tramite la propria pagina manuale ma quelle interessanti nell'uso comune possono essere le seguenti:$ dvips -A -o pgpari.ps documento.dvi
$ dvips -B -o pgdispari.ps documento.dvi
Dove le opzioni aggiuntive "
-A" e "-B" indicano rispettivamente di creare il file pgpari.ps con le pagine pari dell'originale documento e pgdispari.ps con le pagine dispari. Quest'ultime opzioni possono risultare utili se si dispone di una comune stampante per poter stampare su entrambe i lati dei fogli. Per maggiori informazioni relative consultare pagina 117.10.2.24. echo
Il comando echo serve esclusivamente a stampare sullo standard output stringhe di testo:
$ echo "Ciao Daniele"
Ciao Daniele
Un altro esempio può essere la stampa a video di alcune variabili di sistema:
$ echo $HOME
/home/darshan
Dove
$HOME rappresenta la nostra directory home.10.2.25. enscript
Se è nostra necessità convertire un file di testo in un file postscript, rtf o html, questo comando è quello che vi serve. La forma più semplice e immediata è la seguente:
$ enscript u in.txt o out.ps
3Postscript è un marchio registrato da Adobe Inc.
dove l'opzione "
u" indica il file di testo e l'opzione "o" il nome del file postscript da creare. Se volessimo applicare alcune caratteristiche di "stile" come impostare il testo in n colonne basta opportunamente indicarlo come segue:$ enscript 2 u in.txt o out.ps
Verrà generato un file postscript con il testo impaginato su 2 colonne. Per definire il formato pagina:
$ enscript M a4 u in.txt o out.ps
Dove con "
M" definiamo il formato della carta (formato a4).10.2.26. env
Questo comando mostra le variabili di ambiente della vostra sessione. Digitate:
$ env
10.2.27. export
Questo comando viene utilizzato per esportare delle variabili di ambiente, valori che permettono al sistema di funzionare come desideriamo.
$ export DISPLAY=monika:0.0
Nell'esempio appena visto si è utilizzato il comando per esportare il display di X Window dal server dada al computer monika che corrisponde ad un IP nel file
/etc/hosts. I comandi che lanciano applicazioni per X verranno aperti sull'ultimo computer ma il carico di processo sarà della macchina dove vengono eseguiti (in questo caso il computer dada).10.2.28. file
Questo comando indica il formato di un file indicato. Digitate:
$ file esempio
esempio: ASCII text
Verrà indicato il formato del file che si chiama "
esempio".10.2.29. find
Questo comando serve per fare ricerche di file nel sistema. Per eseguire una semplice ricerca del file "
miofile.txt" nella directory corrente è necessario digitare quanto segue:$ find . -name miofile.txt -print
Se desiderate trovare tutti i file con estensione "
.txt" è necessario digitare quanto segue:$ find . -name "*.txt" -print
In questi esempi appena visti si è utilizzato il punto "
." per indicare la directory corrente. Se la nostra ricerca vuole essere estesa ad un'altra directory comportatevi come segue:$ find /home/ -name miofile.txt -print
La ricerca andrà ad analizzare se esistono file denominati "
miofile.txt" nella directory /home e mostrerà il risultato finale.$ find / -cmin 60 -mmin 60
Con le opzioni appena viste cerchiamo i file cambiati e modificati entro l'arco di tempo di 60 minuti.
10.2.30. finger Il comando finger riporta informazioni sugli utenti di un sistema, visualizzando nome, cognome, ufficio e numero di telefono, ultimo login ed ulteriori informazioni. Di seguito un esempio di utilizzo comune:$ finger darshan
Login: darshan
Name: Daniele Medri
Directory: /home/darshan
Shell: /bin/bash
Never logged in.
No mail.
No Plan.
Se l'utente "
darshan" (preso di esempio) ha un accesso presso un server differente nella rete interna bisognerà specificarlo come segue:$ finger darshan@erlug
La forma è nome "
utente@nome server". Se l'utente ha un accesso presso un server differente e quest'ultimo esce dalla rete interna ed è dislocato su Internet, la forma diventa:$ finger darshan@erlug.linux.it
Il nome del server è conforme alle regole canoniche di Internet.
10.2.31. fmt
Questo comando serve per formattare un documento di testo con un numero definito di colonne:
$ fmt -w 60 doc.txt > doc2.txt
Il comando esaminerà il file
doc.txt, lo formatterà con un numero di 60 colonne e passerà il risultato ridirizionandolo al file doc2.txt.10.2.32. fold
Questo comando ha funzionalità simili al comando
fmt e aggiunge alcune caratteristiche. Se si decide di formattare un file con un numero definito di colonne e non ricevere parole troncate al termine di ogni riga sarà necessario digitare quanto segue:$ fold -w 50 -s doc.txt > doc2.txt
Verrà esaminato il file "
doc.txt" formattandolo con un numero massimo di 50 colonne e disabilitando la parole troncate. Il risultato verrà passato al file"doc2.txt".10.2.33. free
Questo comando stampa sullo standard output l'utilizzo della memoria Ram e dello Swap:
$ free
total used free shared buffers cached
Mem: 95504 88308 7196 40768 7568 57640
-/+ buffers/cache: 23084 72420
Swap: 60476
Dai dati si può notare l'esistenza di 96 Mbyte di memoria Ram, e una partizione di Swap di circa 60 Mbyte.
10.2.34. ftp
Per poter trasferire dei file da un server locale ad un server remoto è necessario utilizzare questo comando. E' indispensabile avere un accesso al server remoto o utilizzare una connessione anonima. Per aprire una sessione digitate:
$ ftp
ftp>
Per conoscere l'insieme delle opzioni presenti digitare "help":
ftp> help
Per aprire una connessione ad un server:
ftp> open nomeserver
Per chiudere una connessione:
ftp> close
Si è accennato alla connessione anonima. L'unica sostanziale differenza è in fase di autenticazione:
$ ftp dada
Connected to dada.
220 dada FTP server Tue Sep 21 16:48:12 EDT 1999) ready.
Name (dada:darshan): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: **********
Quando viene richiesta la password utilizzare il proprio indirizzo di posta elettronica. Non è una richiesta obbligatoria ma è buona regola farlo se si utilizza il servizio in questione.
10.2.35. gpg
GnuPG è la versione GNU di PGP, un programma di crittografia per la protezione della privacy personale. Questa breve descrizione non può essere esaustiva vista la vastità delle opzioni disponibili ma sintetizzerà i passi fondamentali necessari è utilizzati comunemente. Il primo passo è la generazione della directory personale di
gpg lanciando il comando:$ gpg
gpg: /home/darshan/.gnupg: directory creata
gpg: /home/darshan/.gnupg/options: creato un nuovo file delle opzioni
Come secondo passo è necessario generare le proprie chiavi (pubblica/privata) lanciando il comando seguente:
$ gpg --gen-key
Verrà avviata una procedura interattiva che vi aiuterà a creare la chiave chiedendovi alcune configurazioni e alcuni vostri dati personali (nome, cognome, email, commenti). Quando tutti i dati saranno confermati dovrete digitare la vostra passphrase, o frase segreta e proseguire nella creazione delle chiavi. Per visualizzare la vostra chiave pubblica:
$ gpg --export -a
Per copiare la chiave su un file di testo è necessario aggiungere la seguente opzione:
$ gpg --export -a -o chiave_pubblica.asc
Il file
chiave_pubblica.asc è la vostra chiave pubblica che potete rendere disponibile in rete. Se volete importare la chiave pubblica di altre persone nella vostra e ampliare il livello di sicurezza dovrete digitare quanto segue:$ gpg --import altra_chiave_pubblica.asc
Per conoscere le chiavi importate:
$ gpg --list-keys
Fingerprint
Il fingerprint, o "impronte digitali" sono informazioni univoche e invariabili tratte da ogni chiave, informazioni che non cambiano importando ulteriori chiavi. Servono ad identificare la chiave di una persona e la sua validità. Per conoscere il proprio fingerprint:$ gpg --fingerprint
E' utile copiare questi dati e utilizzarli nella propria firma delle vostre email in modo che sia pubblica e rapidamente confrontabile.
Crittografia/Decrittografia Per utilizzare gpg per spedire un messaggio segreto ad una persona conosciuta è necessario digitare il seguente comando:$ gpg -e -a messaggio_segreto.asc
L'opzione "
-e" significa encrypt e l'opzione "-a" è necessaria per esportare il messaggio crittato in un file di testo. Se ora visualizziamo il file apparirà quanto segue:$ more messaggio_segreto.asc
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
hQEOAxMnLse+b6VzEAP/cgfcbq2duvNZ3Msd/fUIjKRfOSj9yvWti
pOwrbvtTm3my2pQbr+w8iy71txPyP+okWUyPYYMyc0wZSYCxsert+
pZKkIftq9PMZO/Ef5EoMysq/kcA0j0vmrKF/O145VzAzYifMW043E
/iQ9LdZogUpH/w8/rS01af5YJmSNwn1TB7q/MI0ywQh6UNNExSerb
dekd1ssd7nV1TpxIxvC1ijlZ4V68uyxXWUJZoc8Mn1IAhwLCnza/Q
9GZN7PaJ94qFNQE69wqGz4TUOA5NWwJaqFSmwwDEmTIyyaferrerV
eue3SJGlfBqzJHJ2HsdLL4XpR3kZMcbZwzVhffdIbpI4gYDd/tLXR
-----END PGP MESSAGE-----
La sequenza di caratteri è il vostro messaggio protetto. Per visualizzarlo in forma
leggibile è necessario digitare quanto segue:$ gpg -d messaggio_segreto.asc
Vi verrà chiesto di digitare la vostra frase segreta (
passphrase) e in seguito alla verifica di quest'ultima apparirà il messaggio reale. Per ulteriori informazioni visualizzate la guida in linea:$ man gpg
oppure visitate il sito Internet ufficiale:
http://www.gnupg.org.10.2.36. grep
Questo comando è necessario per ritrarre da una fonte di ingresso (un file, standard input) una particolare serie di dati che corrisponde alle richieste poste. Una semplice forma di utilizzo può essere la seguente:
$ grep "pippo" doc.txt
Il comando visualizzerà a video tutte le righe del file
doc.txt dove sarà presente la parola "pippo". La ricerca può assumere richieste particolari e a tale scopo entrano in gioco le espressioni regolari. Un esempio pratico:$ grep '\<[a-z0-9-]\+\>' doc.txt
Verranno visualizzate solamente le righe che contengono i caratteri dalla lettera "
a" alla lettera "z" e i numeri da "0" a "9". Per maggiori informazioni consultare la pagina manuale del comando.$ man grep
10.2.37. grub / grub-install
Esistono diverse alternative al boot loader LILO che abbiamo già trattato in precedenza e tra queste
grub è un'ottima scelta. Dopo aver scaricato il pacchetto software con# apt-get install grub
la più semplice procedura di installazione è la seguente:
# grub-install /dev/hda
Al riavvio della macchina si otterà un prompt come il seguente:
GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word,
TAB lists possible command completions. Anywhere else TAB lists
the possible completions of a device/filename. ]
grub>
Premendo il tasto
! (tabulatore) si può ottenere la lista di comandi. Confusi? Posso capirvi ma non è così complicata la procedura basilare e si sintetizza come segue:grub> root (hd0,1)
grub> kernel /boot/vmlinuz-2.4.1
grub> read-only
grub> boot
Per procedere ad un'installazione definitiva:
grub> (hd0,1)/boot/grub/stage1 d (hd0) /boot/grub/stage2 p /boot/grub/menu.lst
Non mi dilungherò ulteriormente sulla spiegazione dei comandi perchè grub, nelle distribuzioni aggiornate che lo utilizzano, viene automaticamente installato in fase di installazione e non è più necessario interagire direttamente con la shell comandi. Esiste una documentazione molto ampia a riguardo sia sul sito di riferimento del software che nella directory "
/usr/share/doc/grub" del vostro sistema locale. Quello che era il file "/etc/lilo.conf" per LILO ha molte similitudini con "/boot/grub/menu.lst" di grub. Di seguito viene riportato un esempio di quest'ultimo:#
# Sample boot menu configuration file
#
# Boot automatically after 30 secs.
timeout 30
# By default, boot the first entry.
default 0
# Fallback to the second entry.
fallback 1
# For booting Linux
title GNU/Linux-2.4.2
root (hd0,1)
#kernel (hd0,0)/vmlinuz-2.4.1 root=/dev/hda2 vga=ask apm=on
kernel (hd0,0)/vmlinuz-2.4.2 root=/dev/hda2 vga=ask
# Alternativo
title GNU/Linux-2.18
root (hd0,1)
kernel (hd0,0)/vmlinuz-2.2.18pre21 root=/dev/hda2
# For installing GRUB into the hard disk
title Install GRUB into the hard disk
root (hd0,1)
configfile (hd0,0)/grub/menu.lst
setup (hd0)
# Change the colors.
title Change the colors
color light-green/brown blink-red/blue
Una volta apportate modifiche e salvato il file, l'unica cosa necessaria da fare è riavviare la propria macchina.
10.2.38. gzip
Questo comando è utile per comprimere file. La forma tipica di utilizzo è:
$ gzip documento.tex
Per decomprimere tale file si può ricorrere al comando
gunzip (pagina 110).10.2.39. gunzip
Questo comando è utile per decomprimere file. La forma tipica di utilizzo è:
$ gunzip documento.tex.gz
10.2.40. gv
Il comando
gv è un visualizzatore per documenti postscript o pdf che gira in ambiente visuale e come tale necessita del server grafico X. A prescindere dal window manager o desktop utilizzato si può lanciare l'applicazione direttamente da una console digitando:$ gv documento.ps
Sulla scia di questa
storica applicazione sono sorte recentemente versioni similari e specifiche per ogni desktop: vedi kghostview e ggv.10.2.41. kill
Questo comando è utilizzato come ultima risorsa per distruggere un programma sospeso o che si desidera riavviare. Esistono diversi segnali/opzioni che si possono utilizzare con il comando kill per interrompere un programma. Nell'uso quotidiano può essere comune quanto segue:
$ kill -9 id_processo
Per visualizzare il codice identificativo di un processo è necessario utilizzare il comando
ps (pagina 128).10.2.42. halt
Questo comando è necessario per fermare il vostro computer. Una volta lanciato compierà diverse operazioni volte a interrompere i servizi attivi e disabilitare i dispositivi che compongono il file system.
# halt
Comando con funzionalità analoghe può essere
shutdown (pagina 133).10.2.43. hdparm
Il comando è molto utile per gestire e verificare le prestazioni dei dischi fissi ed è necessario essere l'utente
root per poter eseguire determinate operazioni. Introduciamo il discorso mostrando basilari parametri relativi al vostro disco:# hdparm -c /dev/hda
/dev/hda:
I/O support = 0 (default 16-bit)
Notiamo che il disco sono configurati a 16 bit senza DMA. Per ottenere una statistica digitiamo:
# hdparm -t /dev/hda
/dev/hda
Timing buffered disk reads: 64 MB in 17.58 seconds = 3.64 MB/sec
Ora provvediamo ad attivare il supporto 32 bit e il DMA:
# hdparm -c 1 -d 1 /dev/hda
/dev/hda
setting 32-bit I/O support flag to 1
setting using_dma to 1 (on)
I/O support = 1 (on)
using_dma = 1 (on)
Verifichiamo ora se c'è stato un incremento di prestazioni in seguito all'attivazione di questi parametri:
# hdparm -t /dev/hda
/dev/hda
Timing buffered disk reads: 64 MB in 11.77 seconds = 5.44 MB/sec
Dal confronto risulta un incremento di circa 2 MB/sec in aggiunta di trasferimento dati. Non male! Come ulteriore aggiungiamo l'opzione seguente:
# hdparm -k 1 /dev/hda
/dev/hda
setting keep_settings to 1 (on)
keepsettings = 1 (on)
A questo punto, se vogliamo giovare dell'aumento di prestazioni ogni qual volta si utilizzi il proprio computer possiamo aggiungere quanto segue al file "
/etc/rc.d/rc.local", letto da init in fase di avvio del sistema:#!/bin/sh
# aumento prestazioni del disco
hdparm -c 1 -d 1 -k 1 /dev/hda
A questo punto non ci rimane che salvare il file e riavviare. Per maggiori informazioni sul comando si consiglia di consultare la pagina manuale (
man hdparm).10.2.44. history
Come è stato citato in precedenza (pagina 112), la Bash offre la possibilità di memorizzare la sequenza di comandi utilizzati da un utente. Per visualizzare lo storico dei comandi basta digitare quanto segue:
$ history
Con maggiore utilità se l'output video viene rediretto al comando more o direttamente in un file di testo. Rispettivamente:
$ history | more
$ history > storico.txt
10.2.45. hwclock
Questo comando vi permette di gestire l'orologio hardware di sistema apportando modifiche a piacimento. Il primo utilizzo illustrato è quello ovvio:
# hwclock --show
Sat Jul 15 13:19:14 2000 -0,888683 seconds
Questa è l'ora presente nell'orologio di sistema. Per cambiarla è necessario aggiungere i seguenti parametri:
# hwclock --set --date='7/15/2000 16:45:05'
Esistono due modalità di gestione dei dati:
localtime, macchina locale, o utc (Universal Coordinated Time). Se non viene specificato la modalità è quella locale mentre per configurare l'impostazione nel secondo tipo è necessario indicarlo:# hwclock --set --date='7/15/2000 16:45:05' --utc
Gli orologi in un sistema GNU/Linux
Esistono due principali tipi di orologi: l'orologio hardware e l'orologio di sistema. Il primo è indipendente da ogni programma di controllo e rimane attivo anche a computer spento. Spesso viene definito con diverse terminologie: rtc (Real Time Clock), BIOS clock, CMOS clock. L'orologio di sistema è il sistema di gestione presente in ogni kernel di ogni sistema operativo; al momento dell'avvio della macchina vengono consultati i dati dell'orologio hardware e l'orologio di sistema si configura rispettando i timezone indicati, le fasce del fuso orario. Nei sistemi Unix l'orologio di sistema ha come data iniziale l'ora 00:00:00 del 1 Gennaio 1970 UTC. Nota di carattere generale Quando si parlava di millenium bug, il baco di fine millennio che doveva colpire i computer di tutto il mondo, si considerava una forma di inadeguatezza degli orologi hardware come degli orologi di sistema dei vari sistemi operativi che poteva creare problemi nello svolgimento delle normali attività esecutive.10.2.46. ifconfig
Con questo comando è possibile configurare e monitorare le interfacce di rete. Se non vengono dati parametri aggiuntivi, il comando mostra le interfacce attive in quel preciso istante:
# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3904 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Notiamo l'esistenza dell'interfaccia
lo, ovvero il Loopback con IP 127.0.0.1 Se si dispone di una scheda di rete ed è già stata configurata, possiamo "alzare"4 l'interfaccia di rete e assegnarle un indirizzo IP specifico come segue:4slang per amministratori di rete che indica l'attivazione.
# ifconfig eth0 192.168.0.1
Il risultato sarà quanto segue:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:DA:69:43:7C
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:382 errors:0 dropped:0 overruns:0 frame:0
TX packets:629 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x6800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3904 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Come si nota è stata attivata l'interfaccia
eth0 e le si è assegnato un indirizzo IP determinato. Per disabilitare eth0:# ifconfig eth0 down
Per maggiori dettagli si consiglia la lettura del capitolo relativo alle soluzioni di rete, successivamente trattato in questo testo.
10.2.47. insmod
E' un'utilità per il kernel modulare di Linux che permette di inserire un modulo in memoria e aggiungere funzionalità ulteriori. Quest'ultimi sono genericamente presenti nella directory:
/lib/modules/<versione del kernel utilizzato>
che in termini pratici può concretizzarsi in
/lib/modules/2.2.17/
Per inserire un modulo è necessario digitare quanto segue:
# insmod sound
oppure il percorso assoluto
# insmod /lib/modules/2.2.17/sound/sound.o
Il comando permette l'utilizzo di numerose opzioni tra le quali le più significative sono le seguenti:
# insmod -f sound
per compiere l'inserimento del modulo "
sound" in maniera forzata superando eventuali discrepanze tra versioni di kernel diversi. Se si desidera che il kernel stesso si occupi del modulo in maniera flessibile e su necessità è bene utilizzare la seguente opzione:# insmod -k sound
Altre utilità per la gestione dei moduli sono
lsmod(pag. 121), rmmod(pag. 130) e modprobe( pag.123).10.2.48. irc
Questo comando lancia un minimale programma per la chat di tipo IRC.
$ irc irc.tin.it
Digitando il solo comando parte il collegamento in automatico con il server italiano irc.tin.it che fa parte della rete Ircnet, una delle reti più diffuse. Durante il collegamento compariranno messaggi informativi e vi verrà chiesto il nickname, ovvero il vostro "nomignolo" per la chat. Se desiderate passare quest'ultimo come parametro al lancio del programma è necessario digitare quanto segue:
$ irc nickname irc.tin.it
Una volta collegati al server specificato con il nickname scelto è necessario entrare in un "canale" di persone, piazze virtuali dove le persone si trovano per comunicare. Se sapete già in quale canale andare digitate al prompt:
/join #italia
Dove /join indica di entrare nel canale #italia. Una volta entrati potete comunicare con le altre persone collegate in quel momento. Se desiderate uscire dal canale digitate:
/leave #italia
Se desiderate ottenere la lista dei canali esistenti e aperti in quel preciso momento digitate:
/list -MIN 5 -MAX 20 -PUBLIC -NAME
Il comando
/list richiede tutti i canali aperti. Le opzioni aggiunte servono a limitare il flusso di dati richiesti e cercare i canali con un numero di partecipanti che varia da 5 (MIN) a 20 (MAX) utenti, che sia aperto a chiunque (PUBLIC) e ordinati per nome (NAME). Per ottenere la lista dei comandi possibili digitate:/help
Per la guida specifica di un comando (es.
list):/help list
Per scollegarsi dal server IRC e chiudere il programma:
/quit
E' possibile ottenere la lista dei parametri del comando
irc digitando al prompt:$ irc -help
In recenti distribuzioni GNU/Linux, questo comando non è presente perchè sostituito con client IRC grafici come
xchat o kvirc, o l'insuperabile bitchx per la console.10.2.49. ispell
Per effettuare dei controlli ortografici è molto utile questo comando. Viene genericamente distribuito in diversi pacchetti divisi per le lingue disponibili. Buona scelta potrebbe essere installare i seguenti pacchetti software:
ispell
(applicazione base)iitalian
(dizionario delle parole in italiano)ibritish
(dizionario delle parole in inglese)iamerican
(dizionario delle parole in americano)Per configurare il correttore in prima istanza:
$ ispellconfig
Please wait while I search for ispell dictionaries...
[1] italian
[2] british
[3] american
Select the number of the default dictionary [1]
INVIOMaking italian the default ispell dictionary... done.
Come verificare il funzionamento? Un semplice esempio può essere il seguente:
$ echo "laboratoio" | ispell -a
@(#) International Ispell Version 3.1.20 10/10/95
& laboratoio 1 0: laboratorio
10.2.50. last
Ogni accesso al vostro sistema GNU/Linux viene monitorato e memorizzato nel file
/var/log/wtmp visualizzabile con qualsiasi editor di testi. Malgrado questo è possibile utilizzare il comando last appositamente studiato per l'azione. La forma per l'utilizzo è la seguente:$ last
Per visualizzare al meglio il risultato del comando è consigliabile indicare il numero di righe nel seguente modo:
$ last -10
Alternativamente è possibile ridirigere l'output del comando a
more (pagina 124)in modo di visualizzare il tutto una pagina alla volta. La forma è:$ last|more
10.2.51. latex (L
ATEX)Chi già conosce questo
comando sarà conscio che la sua presenza in questa lista lo riduce notevolmente di valore. Non è assolutamente quello che l'autore desidera ottenere ma è vero che spesso un utente utilizza quest'ultimo in rare occasioni con limitate opzioni; questo è il caso in esame. Cos'è LATEX? E' un insieme di macro per la formattazione e produzione di documenti scritti in TEX. La modalità comune per elaborare un documento compatibile è la seguente:$ latex documento.tex
Se l'esecuzione del comando termina con successo potrete notare nella stessa directory dove è presente "
documento.tex" il nuovo file "documento.dvi" formato pronto per la stampa. Per visualizzarlo è possibile utilizzare l'applicazione xdvi (vedi pagina 141), per la conversione in altri formati fate riferimento ai comandi dvips (pagina 103) e dvipdfm (pagina 103). Desiderosi di provare? Ok, digitate:$ vi documento.tex
Verrà aperto l'editor
vi (pag. 139). Premere il tasto i per entrare in modalità inserimento e scrivere:\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\begin{document}
Ciao Mondo!
\end{document}
Uscite e salvate premendo il tasto ESC e i caratteri "
:wq!" ed eseguite le istruzioni già date per compilare il documento e visualizzarlo con il viewer GhostView (comando gv - pag. 111).10.2.52. ldd
I sistemi del ceppo Unix (GNU/Linux compreso) hanno un'organizzazione ottimizzata degli esecutivi e le librerie necessarie per quest'ultime. Per vedere quali librerie sono utilizzate da un particolare comando:
# ldd /usr/bin/bitchx
libncurses.so.5 => /lib/libncurses.so.5 (0x40021000)
libresolv.so.2 => /lib/libresolv.so.2 (0x4005f000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40071000)
libm.so.6 => /lib/libm.so.6 (0x4009e000)
libdl.so.2 => /lib/libdl.so.2 (0x400bc000)
libc.so.6 => /lib/libc.so.6 (0x400bf000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
In questo esempio, il comando
bitchx (un client famoso per IRC) richiede le librerie indicate per essere eseguito.10.2.53. ln
GNU/Linux permette di creare dei link ai file per una migliore gestione. Un link vi permette di dare ad un singolo file nomi multipli. I file nel sistema sono identificati da un proprio numero inode. Una directory è una lista di numeri inode con i corrispondenti nomi dei file. Esistono due tipi di link (collegamenti): hard link e link simbolici. Entrambi sono rappresentazioni di un file ma con particolari differenze. Analizziamo ora l'utilizzo e in seguito le differenze tecniche. Per creare un semplice link (hard link) digitiamo:
$ ln doc filelink
Con il comando appena digitato troveremo nella nostra directory due file che sono la medesima cosa:
doc filelink. Modificare filelink vuol dire apportare delle variazioni a doc, il file di riferimento. Per creare un link simbolico è necessario aggiungere l'opzione "s" al nostro comando:$ ln -s doc filelink2
Analizzando il contenuto della nostra directory troviamo ora, oltre a "
filelink", "filelink2", il nuovo riferimento a "doc". L'approccio è il medesimo. Modificando "filelink2" apportiamo delle variazioni a "doc".Differenze tra hard link e link simbolici
Un hard link è un collegamento al numero inode di un file. I permessi su questo tipo di file sono gli stessi del file originale. Un link simbolico a differenza del caso precedentemente esaminato è un "collegamento ad un nome di file" e non ad un numero inode. Questa forma offre maggiore flessibilità operativa nell'uso comune ed è la scelta largamente utilizzata. Il link simbolico ha permessi differenti dal file originale di riferimento.
10.2.54. locate
Questo comando è utile per trovare file nel sistema ma ha un comportamento diverso dal comando
find analizzato a pagina 104. Quest'ultimo compie una ricerca nel sistema, mentre il secondo, locate (o slocate per distribuzioni recenti compatibili con Red Hat), analizza un file di testo indicizzato migliorando le prestazioni della ricerca e riducendo il carico delle risorse utilizzate. Il file indicizzato viene creato con un processo di cron (pagina 99) generalmente in orari notturni. Se l'utilizzo del vostro computer è quello comune e saltuario potreste saltare spesso l'esecuzione del processo di aggiornamento e in tal senso è possibile agire in modi differenti, modificando il file di esecuzione del processo o lanciando quest'ultimo manualmente. Con i dovuti diritti dell'utente root digitate:# updatedb
Al termine dell'esecuzione del comando, la modalità di utilizzo del comando
locate per qualsiasi utente del sistema è la seguente:$ locate stdio.h
/usr/include/stdio.h
/usr/include/bits/stdio.h
/usr/include/lam/stdio.h
Se da un lato la ricerca con
locate risulta molto più efficiente, l'efficacia nel trovare determinate cose è relativa alla fase di aggiornamento del file indicizzato. In tal senso il comando find può risultare la scelta migliore.10.2.55. lpc
Tramite questo comando è possibile gestire le code di stampa. Salvo particolari configurazioni è necessario essere l'utente
root per poter gestire il programma e le operazioni annesse sulla coda di stampa. La forma è la seguente:# lpc
lpc>
Come si nota viene attivato il prompt del programma. Per avere l'elenco dei comandi disponibili digitate:
lpc> ?
Commands may be abbreviated. Commands are:
abort enable disable help restart status topq ?
clean exit down quit start stop up
Potete notare le diverse soluzioni disponibili per spostare file di stampa in cima alla coda, fermare i processi e altro ancora. Il comando che probabilmente può risultare utile nei casi reali per avere un monitor sui processi in corso è il seguente:
lpc> status
lp:
queuing is enabled
printing is enabled
1 entry in spool area
lp is ready and printing
lp0:
queuing is enabled
printing is enabled
no entries
no daemon present
Per ottenere informazioni in merito ai comandi disponibili bisogna anteporre la parola "
help" al comando come segue:lpc> help clean
clean remove cruft files from a queue
10.2.56. lpr
Questo comando serve per la stampa su un sistema BSD compatibile come GNU/Linux. Per lanciare il processo di stampa di un file, digitate:
$ lpr doc
Nell'esempio appena visto si lancia in stampa il file
doc. Se si desidera stampare un file con una stampante specifica è necessario digitare quanto segue:$ lpr -Pstampante doc
Nel caso comune le stampanti sono collegate alle porte parallele dei computer comuni ed è possibile sostituire il nome della stampante con la porta stessa alla quale è collegata:
$ lpr -Plpt1 doc
Dove
lpt1 rappresenta la porta parallela, il dispositivo /dev/lpt1.10.2.57. lprm
Questo comando rientra nell'attività di stampa per rimuovere i processi di stampa accodati. Esempio di utilizzo comune per rimuovere ogni cosa:
$ lprm
Se si desidera terminare un determinato processo è necessario digitare:
$ lprm 9
Verrà terminato il processo di stampa numero "
9" tra tutti quelli attivi. Per conoscere le code di stampa relative ad ogni stampante fate riferimento al comando lpq, di seguito esposto.10.2.58. lpq
Questo comando mostra le code di stampa, ovvero i documenti messi in file per essere stampati con ordine sequenziale. Digitate:
$ lpq
10.2.59. ls
Questo comando mostra il contenuto di una directory. Digitate:
$ ls
Nei sistemi unix esistono file visibili e file nascosti. Per
nascondere un file è necessario rinominarlo con un punto davanti al nome (es. .file) e per poter visualizzarlo con il comando in questione bisogna utilizzare l'opzione seguente:$ ls -a
.
..
.nomefile_nascosto
nomefile_visibile
Se si desidera visualizzare permessi, proprietari e dimensioni dei file digitate:
$ ls -l
.
..
drwxrwxrwx 2 darshan darshan 1024 Set 18 22:32 Documenti
-rw-rw-rw- 4 darshan darshan 2056 Set 20 21:50 nomefile_visibile
10.2.60. lsmod
E' un'utilità per il kernel di Linux che permette di visualizzare i moduli caricati in memoria.
# lsmod
Module Size Used by
bsd_comp 4100 0 (autoclean)
ppp_async 6476 1 (autoclean)
parport_pc 22448 1 (autoclean)
lp 4616 4 (autoclean)
parport 26720 1 (autoclean) [parport_pc lp]
rtc 6056 0 (autoclean)
nls_cp437 4340 3 (autoclean)
smbfs 29380 0 (unused)
mpu401 18800 0 (unused)
sb_lib 33832 0 (unused)
uart401 6512 0 [sb_lib]
sound 58624 0 [mpu401 sb_lib uart401]
nls_iso8859-1 2828 3
ppp_deflate 39164 0
ppp_generic 18496 6 [bsd_comp ppp_async ppp_deflate]
slhc 4468 0 [ppp_generic]
3c59x 22424 1
dummy 1216 0 (unused)
Altre utilità per la gestione dei moduli sono
insmod (pag. 114), rmmod (pag. 130) e modprobe (pag. 123).10.2.61. mail
Semplice programma da console per spedire e ricevere messaggi di posta. Digitate:
Visualizza se c'è posta per l'utente.
$ mail -s "compito" -u madrid
Spedisce un messaggio di posta all'utente madrid con il soggetto "compito".
$ mail -f
Legge il contenuto della vostra casella postale.
10.2.62. man
Questo comando visualizza la pagina manuale di un comando ed è molto utile quando si vuole conoscere le opzioni relative. A titolo di esempio, visualizziamo la pagina manuale di un comando già citato precedentemente:
$ man ls
Esiste una pagina manuale per lo stesso comando man:
$ man man
Se non ricordate il nome del comando che vi serve a compiere una determinata operazione potete avvalervi dell'opzione "
-k" nel seguente modo:$ man -k parola
Verranno mostrate le pagine manuale che contengono la parola indicata.
10.2.63. mc
Midnight Commander, una interfaccia per navigare tra le directory e i file del sistema. Per eseguirlo:
$ mc
Nelle recenti distribuzioni di GNU/Linux, questo programma è associato a
gmc, l'interfaccia grafica del programma per l'ambiente desktop GNOME.10.2.64. md5sum
Un semplice caso di studio: vogliamo trasferire ad un'altra persona un file e vogliamo garantire la sua autenticità. Per fare questo possiamo utilizzare questo comando come segue:
$ md5sum nomefile.tgz
d41d8cd98f00b204e9800998ecf8427e nomefile.tgz
La stringa alfanumerica che viene presentata è "l'impronta digitale" del file che può essere confrontata con quella di chi fornisce il file e chi lo riceve. In questo modo semplice possiamo tutelarci che il file non abbia subito modifiche nel passaggio.
10.2.65. mesg
Gli utenti di un sistema possono interagire tra di loro attraverso diversi programmi via terminale. Potete disabilitare le richieste esterne digitando:
$ mesg n
Per riattivare in modalità "recettiva":
$ mesg y
10.2.66. modprobe
E' un'utilità per il kernel di Linux che permette di caricare i moduli in memoria attuando alcuni test per la configurazione automatica dei parametri necessari e adeguati.
# modprobe sound
Esistono alcune interessanti opzioni tra le quali segnaliamo:
# modprobe -c
per visulizzare le configurazioni dei moduli caricati.
# modprobe -l
per visualizzare i moduli disponibili.
# modprobe -r
per scaricare uno o più moduli rispettando le dipendenze. Altre utilità per la gestione dei moduli sono
insmod(pag. 114), rmmod(pag. 130) e lsmod(pag. 121).10.2.67. mkdir
Questo comando vi serve per creare una directory. La sintassi tipica è:
$ mkdir esempio
Il comando è particolarmente sensibile ai permessi di sistema. E' chiaro che non vi sarà concesso di creare una directory dove non avete i diritti per farlo.
10.2.68. mkisofs
Argomento masterizzazione: il comando in esame serve a creare immagini iso9660 e supporta diverse opzioni importanti per superare i limiti dell'originale file system come gli 8 livelli massimi di sottodirectory, la lunghezza dei nomi dei file ristretta a 32 caratteri e la capacità di 650 Mbyte. Le opzioni più importanti sono:
ã
RockRidge (-r), estensione che permette la gestione dei nomi lunghi e non pone limite alla gerarchia di sotto-directory. Questa estensione, tipica del mondo Unix, permette di vedere il cdrom come una qualsiasi altra porzione del file system presentando proprietari dei file, gruppi, permessi e link simbolici.ã
Joilet (-J), estensione simile alla precedente ma tipica del mondo MS Windows.ã
El Torito (-b), estensione utile per produrre cd-rom avviabili (boot).Un semplice esempio di funzionamento è il seguente:
# mkisofs -r -l -o immagine.iso dati/
Il file immagine.iso conterrà i dati della directory dati/ organizzati secondo il file system iso9660 e utilizzando l'estensione RockRidge. Una volta creata l'immagine possiamo testare il risultato montando il file come segue:# mount -t iso9660 -o ro,loop=/dev/loop0 immagine.iso /mnt/cdrom
Il file
immagine.iso verrà montata su /mnt/cdrom e sarà possibile gestire i file presenti. Al comando mkisofs seguono altri comandi come cdrecord (pag. 96) e cdrdao, programmi necessari per gestire e creare CD-R.10.2.69. mkfs
Comando utile per creare file system su un dispositivo (partizione, disco fisso). Modalità di utilizzo:
mkfs <dispositivo> -t <tipo file system>
Di seguito alcuni esempi pratici:
# mkfs /dev/hda4 -t ext2
Creare il file system "
ext2" (quello di GNU/Linux) sul dispositivo "/dev/hda4/".# mkfs /dev/hda4 -t msdos
Creare il file system "
msdos" (quello del DOS) sullo stesso dispositivo "/dev/hda4/".# mkfs /dev/hda4 -t vfat32
Creare il file system "
vfat32" (quello di MS Windows) sullo stesso dispositivo "/dev/hda4/". Se volessimo creare un file system su un comune dischetto floppy:# mkfs /dev/fd0 -t ext2
10.2.70. more
Questo comando visualizza il contenuto di un file una schermata alla volta.
$ more file
Nonostante questo semplice esempio, il comando viene utilizzato in associazione con altri. L'esempio che segue legge l'output del comando
ls e lo redirige al comando more per visualizzare il risultato una pagina per volta:$ ls -la|more
Il simbolo "
|" (pipe) viene utilizzato per passare il risultato di un comando al successivo.10.2.71. mount
Questo comando serve a montare un file system. Nell'esempio che segue viene mostrato come montare un cd-rom con file system iso9660 alla directory
/mnt/cdrom:# mount /dev/cdrom -t iso9660 /mnt/cdrom
Le distribuzioni GNU/Linux memorizzano i dati utili per il
montaggio nel file /etc/fstab per facilitare ed automatizzare le operazioni comuni. Se nel file appena citato è presente una riga di configurazione simile:/dev/cdrom /mnt/cdrom iso9660 owner,noauto,ro 0 0
basterà utilizzare il comando mount con una serie ridotta di opzioni:
# mount /dev/cdrom
oppure
# mount /mnt/cdrom
Dopo aver digitato il comando potrete accedere al contenuto del vostro cd-rom. Si utilizza il comando
mount per condividere aree file condivise in rete tramite il sistema NFS. La formulazione tipica può essere la seguente:# mount monika:/mnt/nfs -t nfs /mnt/nfs
Dove si indica di montare la partizione
/mnt/nfs presente sul server monika e disporla nel file system locale come /mnt/nfs. Chiaramente è necessaria la specifica configurazione lato server (pagina 18).10.2.72. mpage
Se disponete di una stampante Postscript capace di stampare su entrambi i lati del foglio è possibile utilizzare questo comando.
$ mpage -t -1 -Plp -bA4 documento.ps
L'opzione "
-1" indica il numero di stampe per pagina e possono alternativamente essere utilizzate le opzioni "-2", "-4" per avere 2 o 4 pagine per foglio.10.2.73. mutt
Un semplice client per leggere la posta elettronica (MUA,
mail user agent). Per lanciarlo:$ mutt
Una semplice configurazione è quella che segue e deve essere inserita nel file
~/.muttrc nella propria home directory:set pop_host="popmail.libero.it"
set pop_delete="yes"
set pop_user="pippo"
La prima direttiva indica il server postale, "
pop_delete" indica se cancellare o meno la posta dal server remoto, "pop_user", come è semplice intuire indica il proprio username di connessione. Una volta aggiunti i propri dati nel file di configurazione basterà lanciare mutt e premere il tasto G e verrà contattato il server. Per le proprie caratteristiche non è possibile configurare un server SMTP esterno, differente dal proprio server locale di posta.10.2.74. mv
Questo comando può avere una duplice funzionalità: muovere un file e rinominarlo. Nell'esempio che segue viene rinominato un file con un nuovo nome:
$ mv vecchionome nuovonome
Per muovere un file verso un'altra directory, digitate:
$ mv nuovonome ~/documenti/
In questo ultimo caso viene utilizzato il simbolo "
~" che indica la directory home dell'utente. Il file viene spostato nella directory /home/darshan/documenti/.10.2.75. nice
Serve a cambiare la modalità di esecuzione di un programma. Se viene lanciato senza opzioni viene presentata la priorità corrente:
$ nice
0
Nel caso in esame abbiamo ricevuto un valore pari a "
0". I valori di priorità vanno da -20 (la più alta) a 19 (la più bassa). Se volessimo abbassare la priorità di esecuzione di un programma in modo che non disturbi le attività del sistema digitiamo:$ nice -n 5 nomeprogramma
L'opzione "
-n" mi permette di indicare un valore scelto nella scala esposta precedentemente.10.2.76. nl
Se si desidera numerare ogni singola riga di un documento di testo questo è il comando che serve. Esistono diverse opzioni interessanti:
ã
-v n definisce il numero iniziale per la numerazioneã
-i n stabilisce il valore di incremento della numerazioneã
-p non ricomincia la numerazione per ogni nuova paginaPer numerare le righe di un documento partendo dal valore 1 e incrementando di una singola unità per volta dovremo digitare quanto segue:
$ nl -v 1 -l 1 doc.txt > doc2.txt
Il documento con la numerazione è stato ridiretto al file "
doc2.txt".10.2.77. nohup
Serve a lanciare un programma in particolari modalità. L'utilizzo di questo comando è particolarmente utile quando si deve eseguire un programma di calcolo e non lo si interrompere nel momento in cui vi disconnettete dal sistema (es. in una connessione
telnet).$ nohup nomeprogramma
nohup: appending output to 'nohup.out'
Il programma continuerà a girare in background ed eventuali messaggi saranno riportati nel file "
nohup.out" creato nella directory corrente.10.2.78. passwd
Questo comando serve per cambiare la propria password (parola d'ordine) necessaria per l'autenticazione nel sistema. Esistono due differenti livelli di utilizzo del comando, un livello ampliato e completo per l'utente
root (l'amministratore di sistema) e un livello ristretto ma essenziale per il resto degli utenti nel sistema. Mentre un utente può utilizzare passwd per gestire la propria password, l'utente root può utilizzare il comando per gestire oltre alla propria password quelle degli utenti nel server amministrato. Il caso seguente è quello dell'utente "darshan":$ passwd
Changing password for darshan
(current) UNIX password: *******
New UNIX password: ********
Retype new UNIX password: ********
Analizziamo ogni singolo passo. In un primo momento viene chiesta la password corrente, la parola d'ordine che attualmente ci permette di collegarci al sistema. Se quest'ultima corrisponde viene chiesto di digitare una nuova password con successiva verifica. Il comando è intelligente e cerca di colmare l'inesperienza di un nuovo utente o scelte incaute che possono compromettere la sicurezza del sistema. Le nuove password digitate vengono controllate e se non rispettano determinati parametri si riceve un messaggio di avviso che invita a seguire determinate norme. Una combinazione di numeri e lettere maiuscole/minuscole può essere una valida soluzione
5. Esempio:A3r0pLan0
, aeroplanoMaNuCha0
, manuchaoF3deRic0
, federico10.2.79. patch
Il comando serve per applicare i file patch (creato con il comando
patch) creato con le differenze tra un file e un file più recente. La modalità di utilizzo è la seguente:$ patch -p0 < file-txt.patch
Per applicare patch binarie è necessaria la seguente opzione:
$ patch -binary -p0 < file-bin.patch
10.2.80. pico
Il seguente comando lancia un editor di testo semplice ed intuitivo, presente nel sistema se viene installato il pacchetto software
pine. Per utilizzarlo:$ pico
Per poter salvare il file editato premere contemporaneamente i tasti CTRL e X , oppure CTRL e O . Un'alternativa GPL di questo editor è
nano che aggiunge nuove funzionalità anche se consiglio l'utilizzo del rudimentale ma potente editor vi.10.2.81. pr
Questo comando serve per preparare un file per la stampa. La forma di utilizzo è la seguente:
$ pr doc.txt
Il file "
doc.txt" verrà formattato con una lunghezza di 66 righe (numero per la lunghezza configurabile a piacimento) e i dati relativi al file (data, ora, nome, numero di pagina).10.2.82. ps
Riporta lo stato dei processi attivi nel sistema e si utilizza nel seguente modo:
$ ps
PID TTY TIME CMD
648 pts/2 00:00:00 bash
5CentralNic (Internet domain name registry) ha commissionato uno studio su una base campionaria di 1.200 impiegati sull'utilizzo delle password in ambienti lavorativi. E' emersa una classe dominante di parole e questa è legata alla "famiglia", nomi di parenti, del proprio partner o animali domestici. Al seguito vi è la classe "divertimento" con parole legate al mondo della musica (i cantanti preferiti) o dello spettacolo (alta frequenza per gli attori o i personaggi in voga nell'anno corrente). Le persone che risultano maggiormente consapevoli del problema sicurezza e che usano password molto complesse risulterebbero una classe inferiore al 9% del totale. Ulteriore informazione emersa è stata la modalità più frequente di attacco da parte di un cracker, la simulazione di problemi tecnici e la richiesta della password utente per l'assistenza.
649 pts/2 00:00:00 ps
Nell'uso comune è frequente utilizzare il comando con le seguenti opzioni:
$ ps afx
Dove la lettera "
a" mostra i processi degli altri utenti collegati al sistema, la lettera "f" la sequenza dei processi attivi organizzata in una struttura ad albero e la lettera "x" che mostra i processi senza terminali di controllo.10.2.83. pstree
Questo comando ha un funzionamento molto simile a
ps ma rappresenta i processi attivi in un alberatura particolare. Digitate:$ pstree -n
init-+-kflushd
|-kupdate
|-kpiod
|-kswapd
|-mdrecoveryd
|-syslogd
|-klogd
|-xfs
|-login---bash
|-5*[mingetty]
|-gdm-+-X
| '-gdm---Default---gnome-session
|-esd
|-gnome-smproxy
|-sawfish
|-xscreensaver
|-gmc
|-panel
|-gnome-terminal-+-gnome-pty-helper
| '-bash---pstree
|-gnome-name-serv
|-tasklist_applet
|-rpciod
'-gv---gs
10.2.84. pwd
Questo comando vi indica la posizione attuale nel file system:
$ pwd
/home/darshan/
10.2.85. rdate
Volete avere l'ora di sistema sincronizzata con il resto del mondo? :) Bene. In questa operazione vi potrà essere utile il comando seguente:
# rdate -sp tempo.cstv.to.cnr.it
che si collegherà al server indicato e cambierà l'ora di sistema sincronizzandola con quella riscontrata. Se volete successivamente trattenere l'ora per le future sessioni digitate:
# hwclock --systohc &
Per ulteriori informazioni su
hwclock andate a pagina 113.10.2.86. reboot
Comando necessario per riavviare il sistema. Una volta lanciato compierà diverse operazioni volte a interrompere i servizi attivi, disabilitare i dispositivi che compongono il file system e riavviare il computer.
# reboot
10.2.87. rm
Questo comando rimuove un file in maniera permanente. Nell'esempio che segue viene mostrata la modalità interattiva ottenuta con l'opzione "
-i":$ rm -i file
La modalità
forzata agisce in maniera inversa. Elimina il file senza chiedere conferma preventiva:$ rm -f file
Se si desidera cancellare una directory e i file in essa contenuti è necessario utilizzare l'opzione "
-r" (recursive) nel seguente modo:$ rm -fr documenti/
10.2.88. rmmod
E' un'utilità per il kernel di Linux che permette di rimuovere i moduli caricati in memoria.
# rmmod sound
Per rimuovere tutti i moduli caricati è necessario utilizzare l'opzione "
-a" come segue:# rmmod -a
Altre utilità per la gestione dei moduli sono
insmod(pag. 114), modprobe(pag. 123) e lsmod(pag.121).
10.2.89. route
Questo comando serve per gestire la tavola di IP routing (
networking). Per verificare i parametri di routing definiti digitate:# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Per aggiungere un gateway di riferimento per la macchina la sintassi è la seguente:
# route add default gw 192.168.0.3
per aggiungere un indirizzo da rifiutare:
# route add -host server.it reject
L'argomento considerato è alquanto complesso e può essere fuorviante per il target di utenti al quale si propone il manuale. Con tale motivazione non si vuole insistere sulla cosa in maniera eccessiva ma è altresì possibile ampliare le proprie conoscenze nella numerosa documentazione esterna presente su Internet.
10.2.90. rpm
Questo comando è lo strumento di gestione dei pacchetti software caratteristico della distribuzione Linux Red Hat. Questo comando gestisce i pacchetti software organizzati secondo le specifiche del formato che vengono indicati comunemente con l'estensione "
.rpm". Analizziamo le varie opzioni:# rpm -i nomefile.rpm
Il comando installa un pacchetto software nel sistema.
# rpm -U nomefile.rpm
Il comando aggiorna un pacchetto software nel sistema.
# rpm -e nomefile
Il comando rimuove il software dal sistema.
# rpm -qf esempio.txt
Il comando esamina quale pacchetto software conteneva il file
esempio.txt.# rpm -qa
Il comando elenca i pacchetti software installati sul proprio sistema. Nelle fasi di installazione e aggiornamento possono essere utilizzate ulteriori opzioni che informano sullo stato di esecuzione del processo e mostrano una barra di progresso.
# rpm -ivh nomefile.rpm
nomefile ############################
# rpm -Uvh nomefile.rpm
nomefile ############################
In casi particolari può capitare che il pacchetto che si desidera installare subisca particolari vincoli di dipendenza verso altri software. Se vogliamo sopprimere questi ultimi digitiamo:
# rpm -i nomefile.rpm --nodeps
Una scelta particolarmente orientata ad un utente esperto può anche essere la seguente:
# rpm -i nomefile.rpm --force
Il comando digitato forza l'installazione senza controlli preventivi dei pacchetti esistenti o sui vincoli di dipendenza. Un'ulteriore necessità può essere quella di conoscere ogni possibile informazione sul pacchetto software che ci si approssima ad installare nel proprio sistema. Per questo è necessario digitare quando segue:
# rpm -qpil geekcode-1.7-2.i386.rpm
Name : geekcode Relocations: /usr
Version : 1.7 Vendor: Chris Gushue
Release : 2 Build Date: mar 22 feb 2000 15:59:14
Install date: (not installed) Build Host: DeepThought.prefect.net
Group : Amusements/Games Source RPM: geekcode-1.7-2.src.rpm
Size : 159494 License: GPL
Packager : Chris Ausbrooks <weed@bucket.pp.ualr.edu>
URL : http://seymour.lazygenes.net/geekcode.html
Summary : Generates your geek code.
Description :
This program will generate a geek code block for you by simply
choosing which codes suit you from the screen.
/usr/bin/geekcode
/usr/doc/geekcode-1.7
/usr/doc/geekcode-1.7/CHANGES
/usr/doc/geekcode-1.7/COPYING
/usr/doc/geekcode-1.7/INSTALL
/usr/doc/geekcode-1.7/README
/usr/doc/geekcode-1.7/geekcode.txt
10.2.91. rpm2cpio
Se desiderate convertire un pacchetto software in formato "
.rpm" in un archivio comune ".cpio" questo è quello che vi serve. La forma tipica è la seguente:# rpm2cpio nomefile.rpm > archivio.cpio
Per estrarre successivamente l'archivio creato fate riferimento al comando
cpio (pagina 99).10.2.92. rsync
Se è vostra necessità replicare un direttorio sul vostro filesystem o viceversa, può esservi utile il seguente comando:
$ rsync -avz --exclude pippo.* --delete <server>:/web/ web/
In questo modo copierete nella directory "
web/" il contenuto della directory "/web/" del server indicato escludendo tutti i file che iniziano con "pippo." e cancellando i file locali che non esistono più sulla macchina remota.10.2.93. scp
Secure copy, un programma utile per copiare file tra macchine in rete e giovare della protezione cifrata di
ssh. La modalità di utilizzo è la seguente:$ scp file.tgz madrid@server.com:
copia il file locale "
file.tgz" nella macchina "server.com" dove ho un account con username "madrid". Per copiare effettivamente il file su quella macchina verrà richiesta la password di autenticazione relativa.10.2.94. set
Questo comando mostra le variabili di ambiente della vostra sessione:
$ set
Il comando
set ha la medesima funzionalità del comando env.10.2.95. shutdown
Questo comando prepara il sistema per essere spento fisicamente e permette opzioni anche per il riavvio. Presenta analogie con il comando
halt (pagina 111) ma porta ulteriori opzioni relative al riavvio del computer. La forma tipica è la seguente:# shutdown -r now
L'opzione "
-r" sottointende reboot, riavvio; era possibile utilizzare anche l'opzione "-h" che sottointende a halt, ferma. E' cosa gentile preavvisare gli eventuali utenti collegati al sistema e dare loro il tempo per concludere le operazioni in corso. Digitando:# shutdown -r +1 "Riavvio della macchina"
Lanciamo l'interruzione del sistema con 1 minuto di attesa e un messaggio di avviso per gli utenti collegati.
10.2.96. slattach
Questo comando provvede a creare un collegamento tra un'interfaccia di rete e una linea seriale in maniera molto semplice. La modalità d'uso:
$ slattach -p cslip -s 38400 ttyS1
Nell'esempio si collega un'interfaccia di rete alla porta seriale "
ttyS1", con la velocità di trasferimento di "38400" e utilizzando il protocollo "cslip". Per maggiori informazioni consultare la guida in linea:$ man slattach
10.2.97. slocate
Le modalità di funzionamento di questo comando sono simili a quelle di
locate (pagina 118). Differenza che contraddistingue i due comandi è una maggiore sicurezza per slocate nella rappresentazione della ricerca. Quest'ultima infatti mostrerà unicamente i file accessibili (in termini di diritti) dagli utenti del sistema. La modalità di utilizzo è la seguente:$ slocate nomefile
10.2.98. source
Il comando è parte dei comandi integrati all'interno della shell
bash ed è particolarmente utile se si vuole modificare un file di configurazione e ricaricarlo senza dover uscire dal sistema e loggarsi nuovamente. Un esempio chiarisce più di cento parole:# source ~/.bashrc
immaginiamo la situazione: abbiamo apportato modifiche al file
~/.bashrc presente nella nostra HOME directory e relativo alle configurazioni personali della nostra shell bash dei comandi. Per poter disporre subito dei cambiamenti fatti possiamo digitare il comando come illustrato oppure uscire dal sistema ed entrare nuovamente.10.2.99. split
Questo comando è utile quando si desidera dividere un file con dimensioni elevate in varie parti. Digitate:
$ split -b 1m moni.tif
In questo caso il file "
moni.tif" verrà diviso in vari file della dimensione di 1 Mbyte i quali saranno nominati con una sequenza di lettere per determinare l'ordine. Per riottenere il nostro file è necessario digitare:$ cat xaa xab xac > moni.tif
Il file originale sarà ripristinato.
10.2.100. ssh
Utilizzare
telnet (pagina 136) per connessioni remote può compromettere la propria sicurezza trasferendo dati in chiaro. A questo viene incontro il client ssh che instaura una connessione sicura tra due macchine in rete crittando la trasmissione dei dati. La forma tipica di utilizzo è la seguente:$ ssh -l nomeutente nomeserver
L'utilizzo del client prevede l'esistenza del demone
sshd (lato server) attivo e configurato per accettare le connessioni di questo tipo.10.2.101. su
Questo comando serve per cambiare la propria modalità utente in una diversa o quella relativa all'utente
root. Digitate:$ su -
Password: *******
[root@dada /root]#
L'opzione "
-" attiva la configurazione della shell dell'utente indicato. In ogni caso è richiesta la password tranne per il passaggio da utente root a utente normale per ovvie ragioni.10.2.102. talk
Questo comando vi permette di comunicare con altri utenti presenti sul vostro server o collegati a server remoti nella vostra rete locale o su Internet. Se desiderate parlare con l'utente madrid è necessario digitare quanto segue:
$ talk madrid@localhost
Nell'esempio appena visto si sottointende che l'utente "
madrid" sia presente e collegato al nostro server. Per conoscere queste informazioni fate riferimento al comando ps che vi permette inoltre di conoscere l'interfaccia utilizzata dall'utente nel sistema ed utilizzarla come alternativa al suo nome:$ talk pts/2
Nell'esempio che segue viene illustrato l'utilizzo del comando utilizzando la forma
utente@dominio che in questo caso è la macchina locale:$ talk madrid@localhost
Il nome dominio è "
localhost", genericamente inteso come il server locale sul quale vi siete collegati. Se disponete di un server collegato ad Internet e desiderate chiamare un vostro amico collegato su un altro server in rete è necessario specificare un dominio con la denominazione tipica della rete:$ talk madrid@erlug.linux.it
Se l'utente chiamato accetta la chiamata potrete dialogare direttamente con lui e scambiarvi dati in modalità testo.
10.2.103. tar
Questo comando serve per archiviare un insieme di file in un solo file e viene utilizzato nel seguente modo:
$ tar -c archivio.tar Directory/
Nell'uso quotidiano il file archivio viene spesso compresso utilizzando sempre lo stesso carattere ma con opzioni aggiuntive:
$ tar -zcvf archivio.tar.gz Directory/
Nell'esempio appena visto si utilizza l'opzione "
z" per la compressione dei dati tramite gzip, l'opzione "c" che indica la creazione di un archivio, l'opzione "v" (verbose) per visualizzare i messaggi di esecuzione e l'opzione "f" per definire il nome del file archivio. L'estensione ".tar" è puramente indicativa. Se si volesse creare un archivio multivolume utilizzando dei floppy-disk HD, digitate:$ tar -cvfM /dev/fd0H1440 archivio/
L'opzione "
M" creerà vari volumi a seconda della situazione. Per riunire i vari multivolumi è necessario utilizzare il comando cat nel seguente modo:$ cat 1.tar 2.tar > archivio.tar.gz
Per scompattare il file creato è necessario digitare:
$ tar -zxvf archivio.tar.gz
oppure con
$ tar -xvf archivio.tar
Se l'archivio non è compresso gzip.
10.2.104. tcpdchk
Questo comando controlla la configurazione di
TCP_WRAPPER e vi segnala eventuali configurazioni errate. Digitate:# tcpdchk
Se vengono riscontrati errori è necessario modificare i file
/etc/hosts.deny e /etc/hosts.allow.10.2.105. tcpdump
Utile comando per monitorare una interfaccia di rete nel sistema locale.
# tcpdump -i eth0
E' un sistema molto rudimentale e può essere sostituito con strumenti di analisi molto più gradevoli come
ethereal.10.2.106. telnet
Se c'è un programma
storico questo è senza dubbio telnet, un programma che permette di gestire connessioni remote ad un altro server per amministrarlo ed eseguire programmi. Per poterlo utilizzare è chiaramente necessario avere un accesso sul server interessato:$ telnet
telnet>
Per conoscere l'insieme delle opzioni presenti digitare "
help":telnet> help
Per aprire una connessione ad un server:
telnet> open nomeserver
Per chiudere una connessione:
telnet> close
Utilizzando una forma compatta:
$ telnet -l utente nomeserver
Per effettuare una
connessione sicura, crittata con particolari algoritmi, si consiglia l'utilizzo dissh
(pagina 134).10.2.107. top
L'utilizzo di questa applicazione è utile se si intende monitorare il carico del processore e visualizzare i processi attivi. Digitate il comando nel seguente modo:
$ top
e successivamente apparirà quanto segue:
6:32pm up 1:16, 2 users, load average: 0.15, 0.11, 0.09
46 processes: 44 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 6.4% user, 3.6% system, 0.0% nice, 89.8% idle
Mem: 95504K av, 63940K used, 31564K free, 47496K shrd, 4964K buff
Swap: 60476K av, 0K used, 60476K free 34156K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
573 root 15 0 8784 8784 1656 R 0 5.2 9.1 3:54 X
641 root 9 0 1040 1040 836 R 0 2.7 1.0 0:01 top
631 root 4 0 3392 3392 2656 S 0 1.7 3.5 0:01 gnome-terminal
577 root 1 0 1324 1324 1008 S 0 0.3 1.3 0:02 fvwm2
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kpiod
...
Per uscire premete contemporaneamente i tasti CTRL e C .
10.2.108. tr
Questo comando agisce sullo standard input per tradurre, copiare, cambiare quest'ultimo e riportare il risultato sullo standard output.
Nota
Conoscevo già il comando ma durante il Linux Meeting6 7, il professor Roberto Di Cosmo durante il suo intervento ha presentato un "utilizzo" interessante del comando. Il suo obbiettivo era dimostrare quante informazioni personali circolassero in un singolo documento .doc (scritto con MS Word). Il documento mostrava all'apertura pochissime banali stringhe di testo eppure la dimensione finale del documento era di 22k, cioè avrebbe dovuto contenere circa 22 mila caratteri, cosa del tutto falsa. Inizialmente Di Cosmo ha mostrato in semplice analisi una visualizzazione "cruda" del documento tramite il comando:$ cat prova.doc
Le informazioni comparse erano eccessive e la seguente sequenza di comandi ha operato per eliminare almeno gli spazi spazio(
blank) presenti e altri caratteri non significativi presenti nel documento:$ tr -s '\000"' < prova.doc |tr -d '[:cntrl:]' > prova.txt
La successiva visualizzazione del documento elaborato
$ cat prova.txt
ha pubblicamente dimostrato che in un documento di questo formato circolano informazioni come MAC address, codici identificativi, porzioni di testo scritto e cancellato nel documento e altro ancora. Pensate a quale valenza possono avere determinate soluzioni di sicurezza se alla fine circolano documenti in questo formato. Nessuna!
10.2.109. uname
Questo comando è utile se si desidera avere un quadro generale sulle caratteristiche del computer e conoscere alcune importanti informazioni di sistema. La forma rapida e comune di utilizzo è la seguente:
$ uname -a
Linux dada 2.2.14-5.0 #1 Tue Mar 7 21:07:54 EDT 2000 i686 unknown
Dove l'opzione "-a" indica di rappresentare tutte le informazioni disponibili.
10.2.110. umount
Questo comando compie una operazione inversa al comando
mount (pagina 125), ovvero smonta il file system aggiunto. Riprendendo l'esempio del cd-rom:# umount /mnt/cdrom
6Bologna, 28/29 Ottobre 2000
7Linux Meeting - http://www.linuxmeeting.net
Comandi per l'editor
viSintassi Azione
:q!
uscire senza salvare:w
salvare il contenuto:wq
salvare il contenuto e uscire:help
consultare la guida programma:+n
spostarsi alla riga n (numero):s/old/new/g
sostituzione di una parola (da old a new):r file
inserire il file nel testo aperto:r! comando
eseguire un comando di sistema:mkv
per salvare le proprie opzioni dell'editorComandi aggiuntivi dell'editor
vimSintassi Azione
:syntax on
syntax highlighting attivo:set syntax=html
configura il syntax highlighting per htmlTabella 10.1.: Comandi per l'editor
viPer svolgere l'operazione è necessario essere in una directory differente da quelle presenti nel file system che si desidera smontare.
10.2.111. vi / vim
Questo comando lancia un editor di testo molto diffuso nella famiglia dei sistemi operativi Unix. Per creare un nuovo file, digitate:
$ vi pippo.txt
E' sicuramente un editor minimale nella propria interfaccia ma allo stesso tempo molto potente. I comandi presentati nella tabella 10.1 riassumono le combinazioni di tasti per le operazioni più frequenti.
10.2.112. vlock
Questo comando blocca la console testo. Serve per proteggere ogni intrusione locale al vostro sistema. Per attivarlo è necessario essere in modalità console testo e digitare:
$ vlock
This TTY is now locked.
Use Atl-function keys to switch to other virtual consoles.
Please enter the password to unlock.
darshan's Password:
Per togliere la protezione è necessario digitare la propria password. Se l'ambiente è quello grafico del Server X un comando analogo è
xlock (pagina 141). 13910. Pratica10.2.113. zip
Questo comando serve a comprimere un file. Per comprimere un file è necessario digitare:
$ zip file.zip racconto.txt
Il file "
racconto.txt" verrà compresso e verrà rinominato come "file.zip". Per scompattare il file presente è necessario utilizzare il comando unzip:$ unzip file.zip
10.2.114. wc
Questo comando serve per conoscere dati relativi ad un file di testo:
$ wc documento.txt
Verrà presentata una serie di informazioni, selezionabili con le seguenti opzioni:
-c
per ottenere solo il numero dei caratteri-w
per ottenere solo il numero delle parole-l
per ottenere solamente il numero delle righe presentiDigitando:
$ wc -w documento.txt
560 documento.txt
otteniamo il numero di parole presenti nel file.
10.2.115. whatis
Questo comando serve a ricercare la descrizione per ogni comando indicizzando la pagine manuale. Se desiderate avere la descrizione del comando
ls digitate:$ whatis ls
Verrà presentata una breve descrizione. Se dovesse apparire un messaggio del tipo:
ls: nothing appropriate
E' necessario eseguire da amministratore il comando makewhatis per creare l'indice delle descrizioni. Un comando analogo a
whatis è apropos (pagina 92).10.2.116. write
Questo comando permette di mandare messaggi ad un determinato utente collegato sul server locale. A differenza del comando
talk, la comunicazione in questo caso è unidirezionale. Per utilizzarlo è necessario digitare il comando e il nome dell'utente di riferimento (nell'esempio seguente l'utente madrid), premere il tasto INVIO e scrivere il proprio messaggio da riportare:$ write madrid
Questo è un messaggio di esempio
Se l'utente "
madrid" è collegato al server locale riceverà quanto segue:Message from darshan@dada on pts/3 at 03:46 ...
Questo è un messaggio di esempio
10.2.117. who
Attraverso questo comando è possibile avere informazioni sugli utenti connessi al sistema. La sintassi di utilizzo è la seguente:
$ who
root tty1 Nov 8 15:02
root tty2 Nov 8 16:00
10.2.118. xdvi
Applicazione per l'ambiente XWindow. Permette di visualizzare un file con estensione
.dvi. Digitate:$ xdvi documento.dvi
Per maggiori informazioni relative al formato file andate a pagina 117.
10.2.119. xlock
Questo comando vi permette di bloccare lo schermo e le vostre attività da intrusioni altrui. Il concetto è simile a quello visto per
vlock (pagina 139) in modalità console testo. Per attivare questa protezione è necessario digitare:$ xlock
10.2.120. xset
Utilità per aggiungere parametri aggiunti al Server X senza riavviarlo. Nell'esempio che segue gestiamo i font path, i percorsi dove sono disposti i caratteri.
$ xset fp+ /usr/X11R6/lib/fonts/directory/
Per rimuovere un percorso:
$ xset fp- /usr/X11R6/lib/fonts/directory/
10.2.121. xsetpointer
Applicazione per l'ambiente X Window. Questo comando permette di mostrare e configurare strumenti di puntamento per l'ambiente grafico. I puntatori devono essere precedentemente configurati nel file di configurazione
XF86Config:$ xsetpointer -l
"keyboard" [XKeyboard]
"pointer" [Xpointer]
"wacom" [wacom]
Nell'esempio appena visto l'opzione "
-l" ci elenca i puntatori configurati. Se decidiamo di cambiare il puntatore dal mouse comune alla tavoletta grafica presente digitiamo:$ xsetpointer wacom
10.2.122. xsetroot
Applicazione per l'ambiente X Window. Permette di configurare lo sfondo dell'ambiente utilizzando immagini (in formato
.bmp) e colori solidi:$ xsetroot -solid blue
Il comando appena digitato imposta il colore blu come colore di sfondo.
10.2.123. xterm
Applicazione per l'ambiente X Window. Rappresenta uno dei terminali maggiormente utilizzati e supporta un'ampia serie di emulazioni terminale.
$ xterm
Se desideriamo configurare maggiormente questa applicazione possiamo aggiungere delle opzioni sulla riga di comando:
$ xterm -rightbar -bg white -fg black
In questo modo lanciamo
xterm con la barra di scorrimento sulla destra e con caratteri neri su sfondo bianco. Premendo contemporaneamente il tasto sinistro (o il tasto destro) del mouse e il pulsante CTRL compariranno dei menu descrittivi per rapide configurazioni del programma.
10.2.124. xvidtune
Applicazione per l'ambiente X Window. Permette di configurare le frequenze video del monitor e operare sulla centratura:
# xvidtune