Guida Guida Completa Linux: Comandi Base da Terminale/Shell

N

Nhoya

Ultima modifica da un moderatore:
Salve a tutti,

oggi faremo una breve introduzione ai principali comandi linux per poi passare a una descrizione dei più usati e utili.

Divideremo questa raccolta in 8 categorie, quali:


  1. Comandi di Gestione File e Navigazione
  2. Comandi di Ricerca
  3. Gestione Periferiche
  4. Gestione Archivi
  5. Gestione Processi
  6. Gestione di Rete
  7. Info Device
  8. Tips & Tricks
Un comando altro non è che un modo "comodo" per utilizzare, "richiamando", una data applicazione installata sul sistema che, corredato da opportune opzioni (qualora disponibili), permette di ottenere risultati diversi in base alla combinazioni di opzioni in uso al comando che viene digitato.

La shell invece è l'ambiente di lavoro che utilizzeremo per impartire comandi alla macchina (attraverso un'applicazione chiamata genericamente emulatore di terminale).

Esistono diversi tipi di shell, quelle fondamentali unix sono:

- Bash
- Bourn Shell
- C Shell
- Korn Shell

Quella cui faremo riferimento nella nostra guida sarà la Bash, che sta per Bourn Again Shell (ClickMe per approfondimento)

I comandi si presentano sotto diverso aspetti, vediamone brevemente alcuni esempi:

Codice:
ls
Comando senza opzioni nè file associati, esegue una determinata azione senza dipendere da altro.

Codice:
ls -al
Comando associato ad un'opzione che ne determina dei particolari campi di utilizzo o restrizione.

Codice:
chmod -r /pippo/test.sh
Comando che presenta delle opzioni che sono associate ad un determinato file.

Alcune volte potrebbe capitare che salti fuori un comando del tipo
Codice:
 comando opzione -- file
Quel -- che vediamo non deve allarmarci semplicemente in questo modo escluderemo dalle operazioni del comando quel determinato file

Comandi di gestione file e navigazione


Partiamo da uno dei comandi più utilizzati:
Codice:
cd
Questo comando ci permette di spostarci facilmente tra le directory.

Esempio:
Codice:
cd /home/utente/Desktop

in questo modo entreremo all'intero nella directory home dell'utente utente presente in Desktop.
Ricordiamo che dopo cd il percorso va indicato iniziando con "/" (a meno di non trovarsi sullo stesso path principale della cartella cui si vuole accedere, per cui se mi trovo già all'interno della cartella utente accederò alla cartella Desktop scrivendo semplicemente cd Desktop, se fossi stato all'interno della cartella home avrei dovuto scrivere cd utente/Desktop, capito il meccanismo risulterà tutto più semplice)

opzione utile associata a questo comando è:
Codice:
cd ..
che ci permetterà di salire di un livello dal percorso in cui ci troviamo

Per visualizzare invece il contenuto della directory all'interno della quale ci troviamo abbiamo il comando:

Codice:
ls
quindi, se all'interno di home sono presenti la cartella Test, il file ciao.txt e il collegamento Patata avremo, dopo aver digitato il comando ls, una lista simile:

Codice:
Test  ciao.txt  Patata
questo comando però può essere associato ad alcune opzioni così da determinare vari aspetti dei file:

Codice:
ls -al
dà tutte le specifiche dei file contenuti nella directory analizzata, ovvero:

- Tipo di file
- Permessi associati
- Numero di collegamenti verso quel file
- Proprietario
- Gruppo
- Dimensione
- Data di creazione
- Ultima modifica

Codice:
ls -lt
visualizza soltanto la data dell'ultima modifica (oltre al nome ovviamente)

Per ottenere la lista dei comandi da associare a ls consultare il comando
Codice:
man ls

Sappiate che il comando man richiama il manuale relativo ad un comando, utilissimo da usare anche in futuro per consultare i manuali relativi dei singoli comandi, anche man possiede una pagina di manuale dedicata consultabile attraverso il comando man man.

Tra i comandi strettamente legati ai file troviamo:

Codice:
touch nomefile
Permette di creare un file vuoto inoltre se correlato all'opzione -a permette di aggiornare il timestamp al momento in cui viene dato il comando

Codice:
rm -r nomefile
Elimina un file

Codice:
mkdir nomecartella
Permette di creare una directory (usare l'opzione -p per il parent, esempio: mkdir -p test/cartella_dentro_test creeremo la cartella chiamata cartella_dentro_test che sarà creata all'interno della cartella test che non esisteva prima dell'esecuzione del comando mkdir)

Codice:
rmdir nomecartella
Permette di eliminare una directory (si può anche utilizzare il comando rm con l'opzione -r, si può anche forzare la cancellazione di cartelle non vuote utilizzando le opzioni -rf ottenendo quindi rm -rf)

Codice:
cp nomefile destinazione
Permette di copiare un file in una determinata directory (usare opzione -r nel caso in cui si voglia copiare una directory)

Codice:
mv nomefile destinazione
Permette di spostare un file in una determinata directory
mv permette anche di rinominare dei file:

Codice:
mv nomefile nuovonome

... come al solito, aggiungendo l'opzione -r dopo l'mv, opereremo sulle directory!

Codice:
cat nomefile
Mostra l'intero contenuto del file scelto

Codice:
less nomefile
Mostra il contenuto di un file suddividendolo in pagine

Codice:
more nomefile
L'opposto di less

Codice:
head -n nomefile
Questo comando (dove n indica un numero che va da 1 al massimo numero di righe del file) permette di visualizzare dalla riga 1 a quella indicata con n di uno specifico file

Codice:
tail -n nomefile
L'opposto di head, anzichè mostrare le prime righe mostrerà le ultime

Codice:
tail -f nomefile
tail con l'opzione -f, particolare opzione che permette di leggere i file in tempo reale (utile per consultare log in real time)

Codice:
grep parola nomefile
Questo comando associato ad un file ci permette di ricercare una determinata parola all'interno di un file

Codice:
chmod valore nomefile
Ci permette di assegnare specifici permessi ad un file (valore) dove:

- r indichiamo lettura
- w indichiamo scrittura
- x indichiamo esecuzione
- u permette di settare i permessi per uno specifico utente
- g permette di settare i permessi per uno specifico gruppo
- o permette di settare i permessi per il proprietario
- setuid permette di settare l'user ID
- setgid permette di settare il gruppo
- t (stickybit) permette di assegnare un proprietario ad un file (e alle eventuali sottocartelle) e ne preclude l'eliminazione e la modifica soltanto ad esso.

0 -> nessun permesso
1 -> permesso di esecuzione
2 -> permesso di scrittura
3 -> ( 2 + 1 ) scrittura e esecuzione
4 -> permesso di lettura
5 -> ( 4 + 1 ) permesso di lettura e esecuzione
6 -> ( 4 + 2 ) permesso di lettura e scrittura
7 -> ( 1 + 2 + 4) permesso di lettura, scrittura e esecuzione
Se invece volessimo modificare da un file particolari permessi basta, anziché mettere il + (più) davanti l'opzione, mettere un - (meno)

Codice:
chown nomeowner:gruppo nomefile
chown permette di settare ad un determinato file un proprietario e un gruppo, utile se usato con chmod per settare i permessi al meglio.

Codice:
chattr [ -RVf ] [ -v version ] [ modalità ] files
Questo comando permette di impostare particolari attributi ad un file.

I principali attributi utilizzati sono:

- A Non aggiornare l’atime
- S Aggiornamento sincrono
- D Aggiornamento sincrono delle directory
- a solo append
- c compresso
- d no dump
- i immutabile
- s cancellazione sicura
- T top of directory hierarchy
- j data journaling
- t no tail-merging
- u Non cancellabile
con:
Codice:
lsattr file
E' possibile visualizzare tutti gli attributi legati a un file

Codice:
diff file1 file2
Questo comando permette di mettere a confronto due file controllando se ci sono o meno differenze generando un file nel caso in cui queste siano presenti
Codice:
patch file nomepatch
questo comando lavora insieme a diff in quanto la patch non è altro che il file generato da una diff tra due file diversi.
Creerà un file nuovo che avrà il contenuto del primo file più tutto ciò che è presente nella patch
Codice:
wc [opzioni] [file]
permette di contare il numero di caratteri, linee, parole o bytes all'interno di un file


Comandi di ricerca



Codice:
grep -r 'stringa' /percorso.file
Questo comando permette di trovare tutte le occorrenze della stringa indicata all'interno del percorso specifico

Codice:
egrep -r 'regex' /percorsofile
Simile al precedente ma che permette di utilizzare il parametro di ricerca attraverso le Regular expression (RegEx appunto)
Un'espressione regolare è una descrizione di un insieme di caratteri.
Questa descrizione può essere usata per cercare in un file un testo che corrisponda alla espressione regolare. Le espressioni regolari sono analoghe ai metacaratteri della shell (da pluto.it)

Codice:
locate nomefile
Il comando locate permette di cercare un file all'interno della nostra macchina, attenzione però, non fa una ricerca in tempo reale ma si raffronta con il db interno.

Il db cui ci riferiamo va aggiornato con il comando:
Codice:
updatedb

Codice:
find /percorso nomefile
Permette di cercare uno specifico file all'interno di un percorso indicato

I descrittori:

La shell Unix lavora principlamente attraverso 3 canali principali, ovvero
stdin, stdout e stderr.

Questi canali indicano rispettivamente l'input inviato (al ad esempio terminale attraverso la tastiera), output (la risposta data da un comando ad esempio, o l'output di un file di testo) ed i possibili errori.

Codice:
stdin -file
Canale di input

Codice:
stdout -file
Canale di output

Codice:
stderr -file
Canale output di errori

Questi 3 descrittori possono essere correlati tra di loro tramite gli operatori: |, >, >>, 2>, <

Codice:
|
Si pronuncia pipe ed è un operatore utilizzato per la concatenazione di due descrittori

Codice:
>
Redirecta lo stdout su uno specifico file già creato (se non esiste lo crea, se esiste lo sovrascrive)

Codice:
>>
come sopra, solo che se il file esiste eseguira' l'append

Codice:
<
redirecta lo stdin su uno specifico file

Codice:
2>
redirecta lo stderr ad uno specifico file

Codice:
lsof [opzioni] [argomento]
permtte di listare tutti i file aperti dai processi (ricrodiamo che i socket e i pipe vengono passati come file)

Codice:
fuser [opzioni] [argomento]
permette di listare i PID dei processi che hanno aperto i file indicati

Gestione delle periferiche


Affinchè un dispositivo di archiviazione venga letto adeguatamente dal sistema e possa quindi essere utilizzato correttamente dall'utente, dopo averlo alimentato, è necessario fare il mount del device (che avviene automaticamente nelle distribuzioni più "complete" ma che è invece da fare obbligatoriamente in maniera manuale se si installa un sistema minimale).

Il comando da utilizzare è:
Codice:
mount  /dev/nomeperiferica punto.di.mount

Il punto di mount è una specifica cartella che abbiamo creato (usando i comandi che abbiamo visto sopra) in uno specifico percorso (che dovrà obbligatoriamente essere indicato).

Al comando mount in genere si associa l'opzione -t che permette di indicare il file system utilizzato.

Ecco altre opzioni correlate al comando mount:

-o (options) che permette di specificare opzioni utili, i volori indicabili sono
(citiamo i più comuni):
async: I/O in modo asincrono
atime: Aggiorna la data/ora di accesso agli inode ad ogni accesso
defaults: usa le impostazioni di default (rw, suid, dev, exec, auto, nouser e
async)
dev: Interpreta i device speciali a caratteri o a blocchi del file system
exec: permette l'esecuzione di binari
ro: read-only ossia solo lettura
rw: read-write ossia permessa la lettura e scrittura dei dati
sync: I/O in modo sincrono
suid: Abilita le funzionalità dei bit set-user-identifier o
set-group-identifier.
user: abilita l'utente comune a montare la partizione (a senso specificarla solo
nel /etc/fstab)
users: abilita l'utente comune a montare e/o smontare la partizione
noexec: non permette l'esecuzione di file binari
nodev: Non interpreta i device speciali a caratteri o a blocchi del file system
noatime: Non aggiorna la data/ora di accesso agli inode ad ogni accesso
nosuid: Disabilita le funzionalità dei bit set-user-identifier o set-group-identifier.
nouser: Non permette allo user di montare la partizione (a senso specificarla
solo nel /etc/fstab)
umask=valore: imposta la maschera di permessi, attraverso un valore ottale
nls=valore: impostiamo il "Native Language Support", molto utile per i fs NTFS
usare il valore utf8

Per avere una lista delle partizioni già montate basta dare un semplice
Codice:
mount

Invece per smontare una partizione è necessario utilizzare il comando umount come segue:

Codice:
umount percorsodevice 
umount percorsodevice

Gestione Archivi


Gli archivi sono molto utili per gestire al meglio il passaggio di un file e ridurne le dimensioni.

Per gestire gli archivi esistono particolari comandi che sono:

Archivio .tar

Codice:
tar x nomearchivio.tar
Estrae l'archivo .tar

Codice:
tar -cf nomearchivio.tar percorso.directory.da.comprimere
Comprire la directory in formato .tar

Archivio .tar.gz e .gz

Il comando è simile a quello per .tar.gz (o .gz) ed è

Codice:
tar xz nomearchivio.tar
Estrae l'archivio .tar.gz o .gz

Codice:
tar -czf nomearchivio.tar.gz percorso.directory.da.comprimere
Comprime la directory in tar.gz

Archivio tar.bz2 e .bz2
Codice:
tar xjvf pacchetto.tar.bz2

N.B. L'opzione vf serve per mostrare in output il risultato dell'operazione

Per creare invece un archivio .bz2 basterà digitare:

Codice:
tar -cjf nomearchivio.bz2 percorso.directory.da.comprimere

Gestione processi


Per visualizzare i processi in esecuzione sul nostro terminale basta digitare:

Codice:
ps aux
Che mostrerà il nome dei processi (in esecuzione nel momento in cui si è dato il comando) con associato il PID (Process ID)

Per avere la lista dei processi in tempo reale (dopo averlo installato) potremo utilizzare l'applicativo

Codice:
top

Per killare un processo è necessario utilizzare il comando kill come segue:

Codice:
kill PID
Dove al posto di PID andrà l'ID del processo (visibile con ps aux)

Nel caso in cui il processo non ne voglia sapere di chiudersi possiamo passare alla chiusura forzata con il comando
Codice:
kill -9 PID

Nota: dare un'occhiata anche al comando pkill (vedere pagina man)

Per mandare un comando in background lo facciamo terminare con:
Codice:
&

In seguito avremo quindi:

[n] PID
dove n è un numero che indica il numero di job e PID il Process ID. Per riportare in foreground il processo bastera' digitare fg %n , dove n sta per il numero di job che ci ha dato prima.

Codice:
pidof nomeprocesso
mostra il PID del processo indicato

Codice:
nohup comando
Permette di eseguire un altro comando evitando il segnale SIGHUP permettendogli restare in esecuzione pur chiudendo il terminale.

Codice:
disown
Permette di annullare la dipendenza che lega un'operazione al terminale così da poter permettere un utilizzo continuo della shell. Prima di utilizzare questo comando però, il processo deve essere messo in background (questo possiamo ottenerlo o tramite la shortcut Ctrl+z o dando, alla fine dell'operazione interessata l'opzione &)

Codice:
watch comando tempo
comando che permette di eseguire periodicamente un comando (di default ogni 2 secondi)

Codice:
free -l
permette di tenere sotto controllo lo spazio libero sulla RAM (molto utile per avere una visione di insieme sulla gestione dei processi (Nota: con l'opzione -m è possibile visualizzare la memoria libera espressa in MB))

Gestione di Rete


Come abbiamo potuto notare fino ad ora uno dei vantaggi principali nell'utilizzare un sistema linux è quello di poter avere piena consapevolezza e controllo di tutto ciò che riguarda la macchina.

Per quanto concerne la gestione di rete parleremo fondamentalmente di 3 comandi principali:

Codice:
netstat
Che controlla tutte le connessioni internet attive e che, se associato a particolari opzioni può essere molto utile.

Ecco una lista delle opzioni più utili associate a questo comando:

-nat controlla tutte le connessioni internet senza risolvere gli ip
-nat | grep LISTER (unione del comando netstat e di grep) permette di
visualizzare tutte le prote attive
-rn visualizza la tabella di routing del kernel
-p visualizza i programmi che utilizzano connessione internet
-a visualizza TUTTE le connessioni

Codice:
ifconfig

(Letteralmente interface configurator) è un comando che permette di configurare l'interfaccia di rete TCP/IP e può essere utilizzato per aggiungere o rimuovere un'interfaccia.

Se inizialmente dessimo il comando ifconfig ci troveremmo difronte a una schermata simile:

Codice:
eth0      Link encap:Ethernet  HWaddr 00:01:02:2F:BC:40            inet
addr:194.177.127.234  Bcast:194.177.127.255  Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:82075264 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:51585638 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:100  
          RX bytes:2858378779 (2.6 GiB)  TX bytes:2524425895 (2.3 GiB) 
          Interrupt:10 Base address:0x8800  
 
eth0:0    Link encap:Ethernet  HWaddr 00:01:02:2F:BC:40   
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          Interrupt:10 Base address:0x8800  
 
eth1      Link encap:Ethernet  HWaddr 00:E0:7D:81:9C:08   
          inet addr:192.168.168.1  Bcast:192.168.168.255  Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  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:100  
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b) 
          Interrupt:9 Base address:0x6000  
 
lo        Link encap:Local Loopback   
          inet addr:127.0.0.1  Mask:255.0.0.0 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:10226970 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:10226970 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0            RX bytes:1385547296 (1.2 GiB)  TX
bytes:1385547296 (1.2 GiB)

Per sospendere una connessione (in realtà stiamo proprio "tirando giù" l'interfaccia di rete chiamata eth0), basterà digitare:
Codice:
ifconfig eth0 down

Mentre, per riattivarla:
Codice:
ifconfig eth0 up

e, per assegnargli un nuovo indirizzo:
Codice:
ifconfig eth0 xxx.xxx.x.x subnet up

Ultimo comando ma non meno importante è:
Codice:
iwconfig

Molto simile a ifconfig ma che viene utilizzato per lavorare sulle interfacce di rete wireless.

Dando per esempio da terminale:

Codice:
iwlist

...otterremo un elenco di tutte le reti wirless disponibili

Codice:
 wget [opzioni] [URL]
permette di scaricare il contenuto di un determinato URL

Info Device



Questa sezione si dedicherà brevemente a tutti quei comandi che ci permettono di ottenere informazioni sul nostro dispositivo.

Codice:
lshw
Permette di visualizzare un listato di tutti i componenti hw della nostra postazione di lavoro

Codice:
lspci
Permette di visualizzare la lista di tutte le periferiche e i BUS PCI

Codice:
lsusb
Visualizza un listato dei BUS usb

Codice:
dmidecode
Ci permette di ricavare informazioni sull'hardware montato sulla nostra macchia con le seguenti specificazioni:

- record id
- dmi type id
- record size
- multi line record values

Codice:
uname
Questo comando permette di ricavare info sul sistema in uso.
Opzioni utili in particolare sono:


  • -a visualizza tutte le info
  • -m visualizza l'hardware
  • -r il sistema operativo
  • -v sottoversione dell'OS
Codice:
whoami
Il comando whoami permette di visualizzare il nome dell'utente corrente

Codice:
df [opzioni] [--] [file]
df sta per disk free e ci permette di visualizzare in stdout lo spazio libero nei vari file system
Codice:
du [opzioni] [file/directory]
fa il contrario di df ovvero ci permette di visualizzare lo spazio occupato dal file indicato

Tips & Tricks per velocizzare l'utilizzo di applicativi in ambiente Linux


Capita molte volte di voler dare un ordine ai propri file così da mantenere la piena gestione delle proprie risorse. Uno dei metodi più veloci che possiamo utilizzare con linux è quello di dare un particolare insieme di comandi così da automatizzare tutto il processo.

Codice:
for pd in *.jpg; do let fg+=1 ; mv $n labarra$fg.jpg; done
In questo modo abbiamo detto al sistema che:
a ogni file indicato verrà cambiato il nome con quello da noi deciso

- Altra piccola chicca:

Codice:
rename 's/^/labarra/' *.jpg
questo comando invece aggiunge a tutti i file .jpg il prefisso indicato (nel nostro caso labarra)

- Riavvio e spegnimento:

Codice:
reboot
comando che se dato da teminale riavvia la macchina

Codice:
sudo shutdown -h now
Chiude tutte le sessioni in corso e spegne la macchina
in alternativa al comando shutdown possiamo utilizzare:
Codice:
sudo poweroff
oppure
Codice:
sudo shutdown -h +0

Codice:
 passwd  <OPZIONI> <nuovapassword>
questo comando permette all'utente che lo ha lanciato di gestire il proprio LOGIN
interessante qui è l'uso del SUID infatti passwd va ad agire su file che si trovano in /etc che normalmente sarebbero accessibili solo a root ma dal momento che il gruppo proprietario di passwd è root allora è possibile compiere quelle determinate operazioni.
Opzioni importanti sono:
- -d cancella la passwod dell'utente
- -R che utilizza file di configurazione di CHROOT DIR
- -w inserisce un timer allo scadere del quale sarà obbligatorio cambiare password.

Bene, al momento non mi viene in mente altro, scopo di questo thread (da considerare in perenne aggiornamento) è di offrire una lista di comandi leggermente diversa e per certi aspetti un po' più dettagliata/completa rispetto a quelle che possiamo trovare praticamente ovunque, includendo opzioni e comandi differenti di cui in genere non si parla e che, in determinate circostanze, si possono rivelare veramente utili. Nel caso in cui abbiate voglia di contribuire con qualche altro comando da aggiungere non esitate a contattarmi o a rispondere alla discussione in modo da poter ampliare la guida anche con il vostro aiuto!
 

Allegati

  • bash-love.jpg
    bash-love.jpg
    18.2 KB · Visualizzazioni: 1,050
Ottima guida, conoscere le nozioni basiche per quanto riguarda bash è essenziale per lavorare su linux, dato che è la shell principale.
 
</syscall> Ricordo che il thread e' in continuo aggiornamento.
Da qualche giorno sono stati infatti introdotti tre nuovi comandi: diff, patch, free e pidof ! Stay tuned! : ></syscall>
 
  • Mi piace
Reazioni: Shiba89
Ultima modifica:
mettete anche una bella guida su come usare il comando "man" :p

<syscall>C'e' gia',

"Sappiate che il comando man richiama il manuale relativo ad un comando, utilissimo da usare anche in futuro per consultare i manuali relativi dei singoli comandi, anche man possiede una pagina di manuale dedicata consultabile attraverso il comando man man."
</syscall>
 
beh non mi sembra una guida per man, piuttosto è una brevissima descrizione del comando, quando la maggior parte delle funzioni degli altri comandi si possono scoprire e richiamare con man. Se si introduce poi anche apropos per la ricerca delle parole chiave sui manuali diventa molto potente come combinazione, da spiegare all'inizio perché è davvero fondamentale prima di tutto sapere usare man prima degli altri comandi.
 
Ultima modifica:
<syscall>La questione e' che proprio a questo scopo si usa man man (pagina di manuale maggiormente dettagliata rispetto a quelle di altri comandi secondo me), e' inutile (imho) creare una guida a se se e' gia' presente sui vostri sistemi in maniera dettagliata, come potete constatare infatti sono gia' incluse tutte le opzioni da usare:

Codice:
MAN(1)                                                                                         Utility per le Pagine di Manuale                                                                                        MAN(1)



NOME
       man - un'interfaccia ai manuali di riferimento in linea

SINTASSI
       man  [-c|-w|-tZ]  [-H[browser]]  [-Tdispositivo]  [-X[dpi]]  [-adhu7V]  [-i|-I]  [-m sistema[,...]] [-L locale] [-p stringa] [-C file] [-M percorso] [-P paginatore] [-r prompt] [-S lista] [-e estensione] [[sezione]
       pagina ...] ...
       man -l [-7] [-tZT] [-H[browser]] [-Tdispositivo] [-X[dpi]] [-p stringa] [-P paginatore] [-r prompt] file ...
       man -k [apropos opzioni] espr_reg ...
       man -f [whatis opzioni] pagina ...

DESCRIZIONE
       man è il paginatore dei manuali del sistema. Di solito ognuno degli argomenti pagina dati a man è il nome di un programma, di un'utility o di una funzione.  La pagina di  manuale  associata  con  ognuno  di  questi
       argomenti  è  poi  trovata e mostrata. Una sezione, se fornita, indirizzerà man a guardare solo in quella sezione del manuale.  L'azione predefinita è di ricercare in tutte le sezioni disponibili seguendo un ordine
       prestabilito e di mostrare solo la prima pagina trovata, anche se pagina esiste in diverse sezioni.

       La seguente tabella mostra i numeri delle sezioni del manuale seguiti dai tipi di pagine che contengono


       1   Programmi eseguibili e comandi della shell
       2   Chiamate al sistema (funzioni fornite dal kernel)
       3   Chiamate alle librerie (funzioni all'interno delle librerie di sistema)
       4   File speciali (di solito trovabili in /dev)
       5   Formati dei file e convenzioni p.es. /etc/passwd
       6   Giochi
       7   Pacchetti di macro e convenzioni p.es. man(7), groff(7).
       8   Comandi per l'amministrazione del sistema (solitamente solo per root)
       9   Routine del kernel [Non standard]

       Una pagina di manuale consta di diverse parti.

       Queste possono essere etichettate NOME (NAME), SINTASSI (SYNOPSIS), DESCRIZIONE (DESCRIPTION), OPZIONI (OPTIONS), FILE (FILES), VEDERE ANCHE (SEE ALSO), PROBLEMI (BUGS) e AUTORE (AUTHOR).

       Le seguenti convenzioni si applicano alla sezione SINTASSI e possono essere usate come una guida per le altre sezioni.


       testo in grassetto   scrivere esattamente come mostrato.
       testo in corsivo     rimpiazzare con un argomento appropriato.
       [-abc]               ognuno o tutti gli argomenti all'interno di [ ] sono opzionali.
       -a|-b                opzioni separate da | non possono essere usate assieme.
       argomento ...        argomento è ripetibile.
       [espressione] ...    l'intera espressione all'interno di [ ] è ripetibile.

       L'illustrazione del comando o funzione è un modello che dovrebbe corrispondere a tutte le possibili invocazioni. In alcuni casi è preferibile illustrare diverse invocazioni che si escludono a vicenda
        come mostrato nella sezione SINTASSI di questa pagina di manuale.

ESEMPI
       man ls
           Mostra la pagina di manuale per la voce (programma) ls.

       man -a intro
           Mostra, in successione, tutte le pagine di manuale intro disponibili nel manuale. È possibile uscire tra due visualizzazioni successive o saltarne una qualsiasi.

       man -t alias | lpr -Pps
           Formatta la pagina di manuale indicata da `alias', solitamente una pagina di manuale della shell, nel formato predefinito di troff o groff e la redireziona, tramite pipe, alla stampante chiamata  ps.   L'output
           predefinito per groff è di solito in PostScript.  man --help dovrebbe mostrare quale preprocessore è collegato con l'opzione -t.

       man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
           Questo  comando  decomprime  e  formatta  il  sorgente  nroff della pagina di manuale ./foo.1x.gz in un file device independent (dvi) .  La redirezione è necessaria in quanto l'opzione -T fa sì che l'output sia
           diretto verso lo stdout senza nessun paginatore. L'output può essere visto con un programma tipo xdvi o ulteriormente convertito in PostScript usando un programma tipo dvips.

       man -k printf
           Cerca la parola chiave printf nelle descrizioni brevi e nei nomi delle pagine considerandola una espressione regolare.  Mostra qualsiasi corrispondenza.  Equivalente a apropos -r printf.

       man -f smail
           Cerca le pagine di manuale indicate da smail e mostra una breve descrizione di tutte quelle trovate.  Equivalente a whatis -r smail.

PANORAMICA
       Molte sono le opzioni disponibili per man in modo da fornire all'utente la maggior flessibilità possibile. Possono essere fatti cambiamenti al percorso di ricerca, all'ordine delle  sezioni,  al  preprocessore  per
       l'output, e ad altri comportamenti e operazioni elencati in dettaglio più avanti.

       Se  impostate,  alcune variabili d'ambiente sono interrogate per determinare le funzionalità di man.  È possibile impostare la variabile "omni comprensiva" $MANOPT ad una stringa qualsiasi nel formato della riga di
       comando, con l'eccezione che ogni spazio che sia parte integrante dell'argomento di un'opzione deve essere preceduto da un backslash (`\').  man analizzerà $MANOPT prima di analizzare la propria  riga  di  comando.
       Quelle  opzioni  che  richiedono  un  argomento,  saranno  ridefinite se le stesse opzioni si trovano anche nella riga di comando. Per annullare tutte le opzioni impostate in $MANOPT, può essere specificato -D come
       opzione iniziale della riga di comando.  Ciò permette a man di "dimenticare" le opzioni specificate in $MANOPT sebbene debbano restare ancora valide.

       Le utility per le pagine di manuale raggruppate nel pacchetto man-db fanno un uso intenso delle cache di index.  Tali cache contengono informazioni come la posizione di ogni pagina di manuale nel filesystem e  cosa
       contiene  il  relativo  whatis (breve descrizione della pagina di manuale), inoltre permettono a man di cercare le pagine molto più velocemente rispetto ad una ricerca su file system per ogni pagine da cercare.  Se
       richiesto tramite l'opzione -u man può verificare che tali cache rimangano consistenti, in modo da non dover lanciare manualmente del software per aggiornare le tradizionali basi di dati di whatis.

       Se man non può trovare una base di dati index inizializzato da mandb per una particolare gerarchia di pagine di manuale, cercherà comunque la pagina di manuale richiesta sebbene sarà necessario un globbing dei file
       per  effettuare  la  ricerca all'interno di quella gerarchia (N.d.T: con globbing [jargon] si intende l'espansione dei caratteri speciali all'interno di un nome costruito con wildcard - caratteri jolly).  Invece se
       whatis o apropos non trovano la base di dati index, proveranno comunque a estrarre le informazioni dalla base di dati whatis tradizionale.

       Queste utility supportano i file sorgente nroff compressi, che abbiano, di default, una fra le seguenti estensioni .Z, .z e .gz.  È  possibile  trattare  con  qualsiasi  estensione  di  file  compresso,  ma  questa
       informazione  deve  essere  nota  al  momento  della  compilazione.   Inoltre,  normalmente,  qualsiasi  pagina  cat prodotta è compressa usando gzip.  Ognuna delle gerarchie `globali' delle pagine di manuale, come
       /usr/share/man o /usr/X11R6/man, può avere una directory qualsiasi come gerarchia delle pagine cat.  Tradizionalmente le pagine cat sono salvate sotto la stessa gerarchia delle pagine di  manuale,  ma  per  ragioni
       come  quelle  specificate  nel  Linux  File System Standard (FSSTND), è meglio salvarle da qualche altra parte. Per i dettagli su come ciò sia possibile, si legga manpath(5).  Per i dettagli sul perché fare ciò, si
       legga lo standard.

       Con questo pacchetto è disponibile il ``supporto internazionale'': le pagine di manuale nella lingua nativa sono accessibili (se disponibili nel proprio sistema)  usando  le  funzioni  locale.   Per  attivare  tale
       supporto, è necessario impostare $LC_MESSAGES e $LANG o qualche altra variabile d'ambiente dipendente dal sistema, alla propria lingua locale, solitamente specificata nel formato basato sul POSIX 1003.1:

       <lingua>[_<zona>[.<set-di-caratteri>[,<versione>]]]

       Se la pagina desiderata è disponibile nel proprio locale, sarà mostrata al posto della pagina standard (di solito in Inglese Americano).

       Il  supporto  internazionale  per  i  cataloghi  di  messaggi  è un'altra caratteristica di questo pacchetto e può essere attivato, sempre se disponibile, nello stesso modo. Se si trova che le pagine di manuale e i
       cataloghi dei messaggi forniti con questo pacchetto non sono disponibili per la propria lingua e si vuole fornirli, si contatti il manutentore il quale coordinerà tali attività.

       Per informazioni riguardanti altre caratteristiche ed estensioni disponibili con questo paginatore dei manuali, si leggano i documenti forniti con il pacchetto.

COMPORTAMENTO PREDEFINITO
       man cercherà la pagina di manuale desiderata all'interno delle cache delle basi di dati index.  Se l'opzione -u viene specificata, è eseguita una verifica della consistenza della cache per assicurarsi che  le  basi
       di  dati  riflettano  accuratamente il filesystem. Non è generalmente necessario eseguire mandb dopo che le cache sono state create inizialmente, finché una di questa non sia in qualche modo corrotta.  Il controllo
       della cache su sistemi con molte pagine di manuale può essere piuttosto lungo; per questo non viene svolto automaticamente, ma gli amministratori di sistema possono esseguire mandb settimanalmente per aggiornare la
       base  di  dati.   Per  superare  eventuali  problemi  causati  da cache non aggiornate man passa automaticamente al `file globbing' se una ricerca nella cache non ha esito, allo stesso modo di quando la cache non è
       presente.

       Una volta che una pagina di manuale è stata localizzata, è eseguita una verifica per scoprire se il relativo file `cat' preformattato esiste già e  se  è  più  recente  del  file  nroff.  Se  è  così,  questo  file
       preformattato è (di solito) decompresso e poi visualizzato tramite un paginatore. Il paginatore può essere specificato in diversi modi oppure viene usato quello predefinito (si veda l'opzione -P per i dettagli). Se
       non c'è la pagina cat o è più vecchia del file nroff, quest'ultimo è filtrato attraverso vari programmi ed è mostrato immediatamente.

       Se può essere prodotto un file cat (esiste la relativa directory cat e ha i permessi appropriati), man comprimerà e salverà il file cat in background.

       Quanti e quali filtri usare viene determinato in svariati modi. Per prima cosa è interrogata l'opzione della riga di comando -p o la variabile d'ambiente $MANROFFSEQ.  Se -p non è usata e  la  variabile  d'ambiente
       non è impostata, viene analizzata la riga iniziale del file troff per cercare una "stringa preprocessore". Per contenere una stringa preprocessore valida, la prima riga deve assomigliare a

       '\" <stringa>

       dove stringa può essere una combinazione qualsiasi delle lettere descritte più avanti dall'opzione -p.

       Se nessuno dei metodi suddetti fornisce informazioni sui filtri, ne è usato un insieme predefinito.

       Una  pipeline  di formattazione è creata dai filtri al formattatore primario (nroff o [tg]roff con -t) ed eseguita.  Alternativamente, se esiste un programma eseguibile mandb_nfmt (o mandb_tfmt con -t) nella radice
       dell'albero dei manuali, questo è eseguito. Gli viene passato il file sorgente del manuale, la stringa preprocessore, ed eventualmente il dispositivo specificato come argomento di -T o -E.

OPZIONI
       Le opzioni che non richiedono argomenti, duplicate nelle riga di comando, in $MANOPT, o in entrambe sono dannose. Per le opzioni che richiedono un argomento, ogni duplicazione annullerà il  valore  del  precendente
       argomento.

       -l, --local-file
              Attiva  il  modo `locale'. Formatta e visualizza file di manuale locali invece di effettuare una ricerca nella collezione di manuali del sistema. Ogni argomento pagina sarà interpretato come un file sorgente
              nroff nel formato corretto.  Non è creato il file cat. Se '-' è elencato fra gli argomenti, l'input sarà preso dallo stdin.  Quando non è usata questa opzione, e man non trova la pagina richiesta,  prima  di
              mostrare un messaggio d'errore, prova a comportarsi come se fosse fornita questa opzione, usando il nome come nome di un file e cercando una corrispondenza esatta.

       -L locale, --locale=locale
              man  di  solito  determinerà  il  proprio locale attuale chiamando la funzione C setlocale(3) che interroga diverse variabili d'ambiente, tra le quali $LC_MESSAGES e $LANG.  Per ridefinire temporaneamente il
              valore così determinato, si usi questa opzione per fornire direttamente una stringa locale a man.  Si noti che ciò non avrà effetto finché non è iniziata realmente una ricerca. L'output, come ad  esempio  il
              messaggio d'aiuto, sarà sempre visualizzato nel locale determinato inizialmente.

       -D, --default
              Questa  opzione  è  solitamente data come prima opzione e reinizializza il comportamento di man a quello predefinito. È usata per reinizializzare quelle opzioni che possono essere state impostate in $MANOPT.
              Qualsiasi opzione successiva -D avrà il solito effetto.

       -C file, --config-file=file
              Usa il file di configurazione speficiato al posto di ~/.manpath.

       -M percorso, --manpath=percorso
              Specifica un percorso man alternativo. Normalmente man usa il codice derivato da manpath per determinare il percorso di ricerca. Questa opzione ha priorità sulla variabile d'ambiente $MANPATH  e  fa  sì  che
              questa e l'opzione -m siano ignorate.

              Un  percorso  specificato  come  manpath deve essere la radice di una gerarchia di pagine di manuali strutturate in sezioni come descritto nel manuale di man-db (nella sezione "The manual page system").  Per
              vedere le pagine di manuali esterne a questa gerarchia, si usi l'opzione -l .

       -P paginatore, --pager=paginatore
              Specifica quale paginatore dell'output usare. Normalmente man usa pager-s.  Questa opzione ha priorità sulla variabile d'ambiente $PAGER e non va usata assieme con -f o -k.

       -r prompt, --prompt=prompt
              Se una versione recente di less è usata come paginatore, man proverà ad impostare il suo prompt e alcune sue opzioni.  Il prompt predefinito assomiglierà a

               Pagina di Manuale nome(sez) riga x

              dove nome denota il nome della pagina di manuale, sez denota la sezione in cui è stata trovata e x è il numero di riga corrente.  Ciò è ottenuto usando la variabile d'ambiente $LESS.

              Fornendo l'opzione -r seguita da una stringa si può modificare il prompt predefinito.  La stringa può contenere il testo $MAN_PN il quale sarà espanso nel nome della pagina di  manuale  corrente  e  il  nome
              della sua sezione racchiuso tra `(' e `)'. La stringa usata per produrre il default potrebbe essere espressa come

              \ Pagina\ di\ Manuale\ \$MAN_PN\ ?ltriga\ %lt?L/%L.:
              byte\ %bB?s/%s..?\ (FINE):?pB %pB\\%..

              È  stata  spezzata in due righe solo per migliorarne la leggibilità. Per il suo significato si veda la pagina di manuale less(1).  La stringa di prompt per prima cosa è valutata dalla shell. Perciò le doppie
              virgolette `"', le virgolette rovesce ``' e i backslash `\' devono essere preceduti da `\'. La stringa di prompt potrebbe terminare con un `\$' il quale può essere seguito da ulteriori opzioni per  less.  Di
              default man imposta le opzioni -ix8.

              Se si vuole eliminare completamente la gestione del prompt da parte di man si faccia uso della variabile d'ambiente $MANLESS descritta sotto.

       -7, --ascii
              Quando  visualizza una pagina di manuale in ascii(7) puro su di un terminale a 7 bit o su un emulatore di terminale, alcuni caratteri potrebbero non essere visualizzati correttamente se si usa il descrittore
              di dispositivo latin1(7) con il GNU nroff.  Questa opzione permette alle pagine di manuale in ascii puro di essere visualizzate in ascii con il dispositivo latin1.   Non  tradurrà  alcun  testo  latin1.   La
              seguente tabella mostra le traduzioni effettuate: alcune parti di essa potrebbero essere mostrate in maniera corretta solo usando il dispositivo latin1(7) di GNU nroff.


              Descrizione                 Ottale   latin1   ascii
              ────────────────────────────────────────────────────
              trattino di continuazione    255       ‐        -
              bullet (middle dot)          267       ·        o
              accento acuto                264       ´        '
              segno di moltiplicazione     327       ×        x

              Se  la  colonna latin1 è visualizzata correttamente, il proprio terminale può essere configurato per i caratteri latin1 e questa opzione non è necessaria.  Se le colonne latin1 e ascii sono identiche, si sta
              leggendo questa pagina usando questa opzione oppure man non l'ha formattata usando il descrittore di dispositivo latin1.  Se manca la colonna latin1 o è corrotta, può essere necessario visualizzare le pagine
              di manuale usando questa opzione.

              Questa opzione è ignorata quando si usano le opzioni -t, -H, -T o -Z e può essere inutile per nroff diversi dalla versione GNU.

       -S lista, --sections=lista
              Lista è un elenco ordinato di sezioni di manuale su cui effettuare la ricerca. Usando questa opzione viene ignorata la variabile d'ambiente $MANSECT.

       -a, --all
              Normalmente, man uscirà dopo aver visualizzato la pagina di manuale più adatta che trova. Usando questa opzione si forza man a visualizzare tutte le pagine di manuale con i nomi che corrispondono al criterio
              di ricerca.

       -c, --catman
              Questa opzione non è di uso generale e dovrebbe essere usata solo dal programma catman.

       -d, --debug
              Non mostra alcuna pagina di manuale, ma mostra un sacco di informazioni per il debug.

       -e sotto-estensione, --extension=sotto-estensione
              Alcuni sistemi incorporano nella gerarchia principale delle pagine di manuale grossi pacchetti di pagine di manuale, come quelle che accompagnano il pacchetto  Tcl.   Per  ovviare  ai  problemi  dovuti  alla
              presenza  di  pagine  di  manuale con lo stesso nome come exit(3), le pagine di Tcl sono di solito assegnate alla sezione l.  Poiché questa non è una scelta fortunata, è ora possibile mettere le pagine nella
              sezione corretta, ed in questo caso assegnare l'estensione specifica exit(3tcl).  Durante il funzionamento normale, man visualizzerà exit(3) piuttosto che  exit(3tcl).   Per  trattare  questa  situazione  ed
              evitare  la  necessità  di sapere in quale sezione di trova la pagina di manuale richiesta, è ora possibile dare a man una stringa di sotto-estensione che indica a quale pacchetto deve appartenere la pagina.
              Usando il precedente esempio, passando l'opzione -e tcl a man verrà ristretta la ricerca alle pagine che hanno estensione *tcl.

       -f, --whatis
              Equivalente a whatis.  Mostra, se disponibile, una breve descrizione tratta della pagine di manuale. Si veda whatis(1) per i dettagli.

       -h, --help
              Mostra un messaggio d'aiuto ed esce.

       -i, --ignore-case
              Non fa distinzione tra maiuscole e minuscole durante la ricerca della pagine. Questo è il comportamento normale

       -I, --match-case
              Effettua la ricerca della pagina facendo distinzione tra lettere minuscole e maiuscole.

       -k, --apropos
              Equivalente a apropos.  Cerca nelle descrizioni brevi delle pagine di manuale le occorrenze delle parole chiave e visualizza qualsiasi corrispondenza. Si veda apropos(1) per i dettagli.

       -m sistema[,...], --systems=sistema[,...]
              Se questo sistema ha accesso alle pagine di manuale di altri sistemi operativi, si può accedere a quest'ultime usando questa opzione. Per cercare una pagina  di  manuale  nella  collezione  delle  pagine  di
              manuale di NewOS, si usi l'opzione -m NewOS.

              Il  sistema  specificato  può  essere una combinazione di nomi di sistemi operativi separati da virgole. Per includere una ricerca fra le pagine di manuale del sistema operativo nativo, si includa il nome di
              sistema man nella stringa argomento. Usando questa opzione verrà ignorata la variabile d'ambiente $SYSTEM.

       -p stringa, --preprocessor=stringa
              Specifica la sequenza di preprocessori da lanciare prima di nroff o troff/groff.  Non tutte le installazioni avranno l'insieme completo di  preprocessori.  Alcuni  dei  preprocessori  e  le  lettere  che  li
              designano sono: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r).  Usando questa opzione viene ignorata la variabile d'ambiente $MANROFFSEQ.  zsoelim è sempre lanciato come primo preprocessore.

       -u, --update
              Questa  opzione fa in modo che man effettui un controllo a livello di `inode' sulla propria base di dati per assicurarsi che sia una accurata rappresentazione del file system.  Il suo effetto è positivo solo
              se man è installato con il bit setuid impostato.

       -t, --troff
              Usa groff -mandoc per formattare la pagina di manuale nello stdout. Questa opzione non è richiesta assieme a -H, -T o -Z.

       -T[dispositivo], --troff-device[=dispositivo]
              Questa opzione è usata per cambiare l'output di groff (o se possibile quello di troff) per adattarlo ad un dispositivo diverso da quello predefinito. Implica -t.  Esempi (forniti con Groff-1.17)  comprendono
              dvi, latin1, ps, utf8, X75 e X100.

       -X[dpi], --gxditview[=dpi]
              Questa opzione mostra l'output di groff in una finestra grafica usando il programma gxditview.  dpi (punti per pollice) può essere 75, 75-12, 100 o 100-12, con valore predefinito 75; le varianti -12 usano un
              font da 12 punti.  Questa opzione implica -T con i dispositivi X75, X75-12, X100, X100-12 rispettivamente.

       -Z, --ditroff
              groff lancerà troff e poi userà un appropriato post-processore per produrre un output adatto per il dispositivo scelto. Se groff -mandoc è groff, questa opzione è passata a groff e verrà soppresso l'uso  del
              post-processore. Implica -t.

       -H[browser], --html[=browser]
              Questa  opzione  indica  a  groff  di produrre un output HTML, e mostra tale output in un browser web. La scelta del browser è opzionale ed è determinata dall'argomento opzionale browser se questo è fornito;
              altrimenti dalla variabile $BROWSER oppure dal valore definito durante la compilazione (in genere lynx).  Questa opzione implica -t, e funziona solo con la versione GNU di troff.

       -E dispositivo, --encoding=dispositivo
              Genera un output usando una codifica di caratteri diversa dal valore predefinito. Per il modo nel quale nroff è strutturato, l'argomento di questa opzione deve essere un  dispositivo  di  nroff  come  ascii,
              latin1 o utf8.

       -w, --where, --location
              Non mostra veramente le pagine di manuale, ma stampa le posizioni dei file che sarebbero stati formattati.

       -W, --where-cat, --location-cat
              Non mostra veramente le pagine di manuale, ma stampa le posizioni dei file cat che sarebbero stati visualizzati.  Se entrambi -w e -W vengono specificati, li stampa separati da uno spazio.

       -V, --version
              Mostra informazioni sulla versione.

STATI D'USCITA
       0      L'esecuzione del programma ha avuto successo.

       1      Errore d'uso, di sintassi o nel file di configurazione.

       2      Errore operativo.

       3      Un processo figlio ha restituito uno stato d'uscita diverso da zero.

       16     Almeno una delle pagine/file/parole chiave non esisteva o non aveva corrispondenza.

VARIABLI D'AMBIENTE
       MANPATH
              Se $MANPATH è impostata, il suo valore è usato come percorso per la ricerca delle pagine di manuale.

       MANROFFSEQ
              Se $MANROFFSEQ è impostata, il suo valore è usato per determinare l'insieme dei preprocessori attraverso i quali va passata la pagina di manuale. La lista dei preprocessori predefiniti dipende dal sistema.

       MANSECT
              Se $MANSECT è impostata, il suo valore è una lista separata da `:' di sezioni ed è usata per determinare in quali sezioni di manuale cercare e in quale ordine.

       PAGER  Se $PAGER è impostata, il suo valore è usato come il nome del programma da usare per visualizzare la pagina di manuale. Di default, è usato pager-s.

       MANLESS
              Se  $MANLESS  è  impostata,  man  non  effettuerà alcuna operazione per impostare una stringa di prompt per il pager less.  Invece, il valore di $MANLESS verrà passato senza modifiche $LESS.  Ad esempio, per
              impostare il prompt a “la mia stringa prompt”, impostare $MANLESS to ‘-Psla mia stringa prompt’.

       BROWSER
              Se $BROWSER è impostata, il suo valore deve essere una lista di comandi separati da virgole, ciascuno dei quali viene provato nell'ordine per cercare di eseguire un browser  web  per  man  --html.   In  ogni
              comando %s viene sostituito da un nome di file contiene l'output HTML di groff, %% viene sostituito da un singolo carattere di percento, e %c viene sostituito dal carattere di due punti.

       SYSTEM Se $SYSTEM è impostata, avrà lo stesso effetto dell'opzione -m stringa dove stringa sarà preso come il contenuto di $SYSTEM.

       MANOPT Se $MANOPT è impostata, sarà analizzata prima della riga di comando di man ed è supposta essere in formato simile. Poiché tutte le altre variabili d'ambiente specifiche di man possono essere specificate come
              opzioni della riga di comando, e sono quindi candidate per essere incluse in $MANOPT ci si può aspettare che diventeranno obsolete.  N.B.: Tutti gli  spazi  che  dovrebbero  essere  interpretati  come  parte
              dell'argomento di un opzione devono essere preceduti da `\'.

       MANWIDTH
              Se  $MANWIDTH  è  impostata,  il  suo  valore  sarà utilizzato come lunghezza della riga per il quale le pagine di manuale verranno formattate. Se non viene impostata, le pagine saranno formattate usando una
              lunghezza appropriata al terminale in uso (tramite ioctl(2) se disponibile, oppure il valore di $COLUMNS, o ancora usando il valore 80 se nessuno dei due metodi precedenti funziona).  Le pagine cat  verranno
              salvate solo le la lunghezza della linea di terminale si trova tra 66 e 80 caratteri.

       LANG, LC_MESSAGES
              A seconda del sistema e dell'implementazione, una o entrambe le variabili $LANG e $LC_MESSAGES saranno interrogate per determinare il locale corrente.  man visualizzerà i suoi messaggi usando quel locale (se
              disponibile). Si veda setlocale(3) per i dettagli.

FILE
       /etc/manpath.config
              File di configurazione di man-db.

       /usr/share/man
              Una gerarchia di pagine di manuale globale.

       /usr/share/man/index.(bt|db|dir|pag)
              Una cache della base di dati globale index tradizionale.

       /var/cache/man/index.(bt|db|dir|pag)
              Una cache della base di dati globale index alternativa e conforme con FSSTND.

VEDERE ANCHE
       mandb(8), manpath(1), manpath(5), apropos(1), whatis(1), catman(8), less(1), nroff(1), troff(1), groff(1), zsoelim(1), setlocale(3), man(7), ascii(7), latin1(7), la pagina del pacchetto man-db, FSSTND.

CRONOLOGIA
       1990, 1991 - Originalmente scritta da John W. Eaton ([email protected]).

       23 Dicembre 1992: Rik Faith ([email protected]) applica le soluzioni ai problemi fornite da Willem Kasdorp ([email protected]).

       30 Aprile 1994 - 23 Febbraio 2000: Wilf.  ([email protected]) ha iniziato lo sviluppo e il mantenimento di questo pacchetto con l'aiuto di un po' di gente.

       30 Ottobre 1996 - 30 Marzo 2001: Fabrizio Polacco <[email protected]> mantiene e migliora questo pacchetto per il progetto Debian, con l'aiuto di tutta la comunità.

       31 Marzo 2001 - presente: Colin Watson <[email protected]>

       Traduzione di Bortolozzo Giovanni ([email protected]) Aggiornamento di Giuseppe Sacco <[email protected]>



2.6.2                                                                                                     2012-06-18                                                                                                   MAN(1)

Scopo di questa guida e' anche di incentivare l'utente a "giocare" e scoprire cose nuove in maniera autonoma, scegliendo appunto non di inserire ogni sorta di opzione disponibile per i comandi (tralasciando quelle palesemente piu' usate) ma solo quelle che potrebbero essere (per noi) piu' utili.

Grazie comunque per la segnalazione, qualora avessi voglia di implementare il thread con una sezione completamente dedicata a man ((magari basandosi proprio sulla sua pagina manuale) o con altri comandi) puoi contattare direttamente @Nhoya in modo da potervi organizzare al meglio o/</syscall>
 
La mia cerca di essere una critica costruttiva: se voglio imparare a giocare con i comandi senza sapere come funzionano devo essere educato nel cercare il suo manuale prima di tutto. Credo sia il modo migliore per impostare questa guida, se lo scopo è quello di insegnare a scoprire.
Come appunto dici tu, è inutile creare una guida a se se esiste già il manuale di quel comando, e infatti esiste non solo la guida di man, ma di tutti gli altri comandi elencati.
La mia osservazione sta nel non avere dato abbastanza spazio all'importanza che ha leggere il manuale piuttosto che il post che ti spiega gli utilizzi più comuni dei comandi. Per il resto la guida non mi dispiace, la maggior parte degli utenti preferisce leggere gli utilizzi generici invece che studiarsi un noioso manuale, ma saperlo leggere e sapere come credo sia importante.
 
  • Mi piace
Reazioni: Shiba89
Ultima modifica:
<syscall>Certo, e' quello che abbiamo gia' detto all'inizio della discussione: usare il man per leggere i manuali dei comandi (e approfondire le opzioni ed i comportarmenti del programma richiamato dal comando)

Riguardo tutte le opzioni utilizzabili in combinazione con man sono descritte all'interno della pagina manuale di man, accessibili quindi attraverso l'invocazione del comando man man, magari si' potrebbe essere utile, se per @Nhoya va bene, introdurre direttamente sul thread alcune fra le opzioni piu' utili da combinare a man evitando di andarsele a cercare e leggere direttamente dal manuale... okay : ></syscall>
 
La shell Unix lavora principlamente attraverso 3 canali principali, ovvero
stdin, stdout e stderr.

Questi canali indicano rispettivamente l'input inviato (al ad esempio terminale attraverso la tastiera), output (la risposta data da un comando ad esempio, o l'output di un file di testo) ed i possibili errori.

Codice:
stdin -file
Canale di input

Codice:
stdout -file
Canale di output

Codice:
stderr -file
Canale output di errori

Questi 3 descrittori possono essere correlati tra di loro tramite gli operatori: |, >, >>, 2>, <

Codice:
|
Si pronuncia pipe ed è un operatore utilizzato per la concatenazione di due descrittori

Codice:
>
Redirecta lo stdout su uno specifico file già creato (se non esiste lo crea, se esiste lo sovrascrive)

Qual'è la differenza tra | e > ?
I "canali" stdin, stdout e stderr sono dei file? Nel senso proprio del termine, come dire che la tastiera è un file, l'hdd è un file, etc...
 
Ultima modifica da un moderatore:
@St3ve
i canali sono logic devices di imput output che collegano un programma al suo ambiente di utilizzo.

Codice:
x > y
scrive x dentro y

Codice:
 x | y
solitamente concatena più operazioni

per esempio
Codice:
ls -l | grep -i ciao
In questo caso passa il risultato di ls a grep che cercherà tutti i file contenenti la parola ciao
 
Ultima modifica:
@Nhoya
Quindi per farla breve sulla destra di > si possono mettere solo files, mentre sulla destra di | si mettono solo comandi?

PS.
Per l'altra domanda mi rispondo da solo: ho controllato e stdin, stdout e stderr sono dei file. Nel senso che sono implementati come file, come un po' tutto il resto nei sistemi Unix-like.


EDIT:
Mi rispondo di nuovo da solo
Codice:
grep es < $(ls)   # codice valido, cerca "es" dentro un file (nota: con << ha un comportamento diverso)

$(ls) > grep es   # codice non valido (perché non fa le stesse cose del codice precedente?)
Di conseguenza i simboli per la redirection non servono solo per i file. Però c'è ancora qualcosa che mi sfugge...

EDIT2:
Ok, risolto. Adesso ho capito.
 
Codice:
cp nomefile destinazione

Ho un problema con questo comando.
Se ho il file "test" dentro la directory "cd /home/pester/Scrivania/cartella" e lo devo copiare in "cd /home/pester/Scrivania", trovandomi nel percorso "cd /home/pester/Scrivania/carte" digito il comando:
Codice:
cp test cd /home/pester/Scrivania

È sbagliato? Perche mi da un errore di tipo bash (ne approfitto per fare un'altra domanda, è giusto dire "errore di tipo bash" quando da in output "comando non riconosciuto..."?).
 
Ultima modifica:
Non funge perchè ripeti "cd", quando copi devi scrivere prima cp (il comando) poi il nome del file (attenzione, questo solo se sei nella directory dov'è presente il file, osenò devi scrivere il path name completo) e infine scrivere la destinazione, solo la destinazione senza il "cd" (anche qui come prima , se sei nella directory scrivi solo la directory di destinazione, oseno il pat name completo come facevi tu) .
 
Non funge perchè ripeti "cd", quando copi devi scrivere prima cp (il comando) poi il nome del file (attenzione, questo solo se sei nella directory dov'è presente il file) e infine scrivere la destinazione, solo la destinazione senza il "cd".
Appena posso provo. Quindi per il mio caso sarebbe:

cp test /home/pester/Scrivania

?

Comunque, non ho capito il concetto perche non si mette il "cd" all'inizio.
 
"cd" (sta per Change Directory se non sbaglio) è un comando a parte, serve per muoversi da una directory ad un altra

Comunque si è giusto come l'hai scritto
Si esattamente, cd è un comando che ti permette di spostarti da una cartella ad un' altra.

Comunque, la sintassi di cp, se non ricordo male, dovrebbe essere la seguente:

cp percorso_iniziale percorso_destinazione
[MENTION=212682]Pester[/MENTION] ti assicurò che non è difficile, basta solo una bella razione di pratica :D
 
Si esattamente, cd è un comando che ti permette di spostarti da una cartella ad un' altra.

Comunque, la sintassi di cp, se non ricordo male, dovrebbe essere la seguente:

cp percorso_iniziale percorso_destinazione
[MENTION=212682]Pester[/MENTION] ti assicurò che non è difficile, basta solo una bella razione di pratica :D
Si si, sto imparando piano piano...;)
 
[GUIDA] Principali comandi Linux

[MENTION=107235]Nhoya[/MENTION]



Qui se non sbaglio c'è un errore. -w indica i permessi di scrittura.

Si, ho scritto due volte lettura
Purtroppo scrivendo topic così lunghi qualcosa può saltare pur ricontrollando.. Nei prossimi giorni vedo di fixare
 
  • Mi piace
Reazioni: Pester
Codice:
grep -r 'stringa' /percorso.file
Codice:
egrep -r 'regex' /percorsofile

Non riesco a capire la differenza tra questi due comandi... Qualcuno potrebbe spiegarmelo in maniera piu semplice?