Guida ai principali comandi bash shell di Linux (v. 2.5.1)

Anni fa ho trovato e poi collaborato alla redazione di una paginetta (www.artificiallives.com/tech/linux/commandref.html) di comandi shell per e *nix, che sono finalmente riuscito a ritrovare, rielaborare e arricchire a uso e consumo di tutti: noobies e anche i più esperti (diamine!!).

Gli uni si possono fare un ampio quadro dei comandi più usati, e scoprire tante cose che non conoscono, e gli altri… uguale!! ;))) Oppure per ritrovare al volo comandi ormai passati di mente, il che non fa mai male… 🙂
I comanid in genere si trovano sotto /bin, /usr/bin, /usr/local/bin (quelli di uso generale accessibili a tutti gli utenti) e sotto /sbin, /usr/sbin, /usr/local/sbin per qyelluia ccessibili al superutente o chi ne ha i diritti. Tenente a mente quindi che diversi comandi della lista sono ad uso del supeutente (appunto).
In fondo trovate liste di comandi specifici per distribuzioni, usati per istallare e gestire programmi e aggiornamenti, e appendici su come maneggiare la shell e i comandi verso l’apprendimento del vero “shell scripting” e su combinazioni utili di comandi.

Potete trovare dei piccoli esempi a riga singola di script in questa guida che ampliano ulteriormente il discorso sulla shell e possono risultare utili per automatizzare certi lavori quotidiani e anche a trovare idee su come farseli da soli.

alias
Elenca gli alias che sono attualmente attivi. (Linux)

alias =’
Genera uno pseudonimo (o alias) di comandi con i parametri che specificate. Ad esempio il comando “alias ci=’cp -i’” da quel momento quando scrivete “ci” la macchina eseguirà il comando “cp -i“. (Linux)

apropos
Elenca le pagine del manuale man che contengono la parola chiave specificata. (Linux)

bg
Continua un processo sospeso che funziona in sottofondo. In genere è usato dopo aver sospeso con “Control-Z” un processo attivo in primo piano.

cardctl config
Visualizza i correnti irq/io/voltage/etc. dei dispositivi attualmente inseriti nelle prese PC-Card/PCMCIA. (Linux)

cardctl ident
Visualizza il fornitore e le informazioni di identificazione delle schede attualmente inserite nelle prese PC-Card/PCMCIA. (Linux)

cardctl status
Visualizza la condizione corrente dello zoccolo; se una scheda è inserita o no, il tipo e che tensioni stanno usande. (Linux)

cat
Elenca il contenuto del file specificato. (Solaris//NetBSD)

cd /
Cambia la directory corrente nella radice (/) del filesystem. (Solaris//NetBSD)

cd ..
Torna alla directory madre della attuale. (Solaris//NetBSD)

cd ~
Torna alla propria “home” directory, in genere /home/. (Solaris//NetBSD)

cd
Cambia la directory corrente in quella elencata. (Solaris//NetBSD)

chkconfig –list
Comando per visualizzare la configurazione di avvio del servizi di sistema, cioè vedere ogni servizio a che runlevel parte o è fermato, come risulta dalle vaire dir /etc/rc0.d, /etc/rc1.d … /etc/rc6.d. Non specificando il nome li visualizza per tutti. (Linux)

chkconfig –level
Attiva “on” o disattiva “off” il servizio con quel nome nei livelli specificati, creando nelle varie dir /etc/rcX.d i file necessari. Ad esempio “chkconfig –level 35 proftpd on” fa in modo che ai runlevel 3 e 5 il demone proftp parta, mediante la creazione di un file S80proftpd nelle dir /etc/rc3.d e /etc/rc5.d e K80proftpd nella altre. (Linux)

chmod 765
Chmod usato così è in forma ottale. Il primo numero rappresenta i diritti sul file del proprietario, il secondo del gruppo, il terzo di tutti. I numeri si calcolano sommando questi valori a seconda di quel che si vuole conferire: 4=lettura, 2=scrittura, 1=esecuzione. L’esempio qui sopra dà lettura scrittura ed esecuzione al proprietario, lettura e scrittura al gruppo e lettura ed esecuzione a tutti. (Solaris//NetBSD)

chown -r .
Cambia la proprietà di un file (senza specificare -r) o di una directory e di tutto il suo contenuto ad un gruppo/utente particolare. Se non conoscete che utente o gruppo un utente abbia, potete dare un’occhiata al file /etc/passwd. In alcuni SO dovete usare un : anziché un . per separare l’utente ed il gruppo. (Solaris//NetBSD)

cp
Copia un file dalla sorgente (percorso + nome file) alla destinazione (percorso o percorso + nomefile se si vuole rinominare. (Solaris//NetBSD)

cp -rf
Copia ricorsivamente una directory, forzando l’operazione. (Solaris//NetBSD)

df -h
Visualizza le statistiche correnti di uso dello spazio disco in un formato comprensibile (Kb o Mb o Gb). (Solaris//NetBSD)

dhcpcd
Fa andare eth0 di default in rete e richedere le informazioni di configurazione del dhcp. (Linux)

du -h
Visualizza le statistiche di uso dei dischi per la directory corrente, di default ricorsivamente in tutte le subdirectory. L’ultimo numero elencato dopo la lista è il totale per l’intera struttura della directory sotto la posizioe corrente. Il parametro “-h” lo fa stampare in un formato comprensibile, come per “df“.(Solaris//NetBSD)

du -sh
Dà lo spazio disco totale usato per tutti i files nella directory corrente e sotto, in kilobytes. (Linux)

exit
Fa uscire dalla sessione corrente. (Solaris//NetBSD)

fg
Porta un processo che funziona in sottofondo in priorità alta in modo da poterne riguadagnare il controllo. Usato con “bg” e “controllo-Z“.

find / -name
Trova una file o directory da /, per trovare una file dalla directory corrente usate ./. (Solaris//NetBSD)

finger
Elenchi gli utenti attualmente entrati nella macchina locale. (Solaris//NetBSD)

finger @
Elenca gli utenti attualmente entrati nella macchina host specificata. Questa opzione oggigiorno è disabilitata sulla maggior parte delle macchine. Esempio “finger @grolug.org” (Solaris//NetBSD)

finger @
Fornisce le informazioni sull’utente nella macchina host specificata. Esempio “finger maxmurd@grolug.org“. (Solaris//NetBSD)

ftp
Stabilisca un collegamento FTP alla macchina host specificata. (Solaris//NetBSD)

ftpcount
Elenca il totale degli utenti locali e remoti entrati in ftp (Linux)

ftpwho
Elenca tutti gli utenti correnti nel vostro ftp. (Linux)

grep -e
Visualizza le linee che contengono il modello sul dispositivo di uscita standard. Inoltre usato con -i rende la ricerca insensibile alle maiuscole. (Solaris//NetBSD)

gunzip
Decomprime un file .gz compresso. (Solaris/Linux/NetBSD)

hdparm -c1 -m8 -d1 -u1
Configura il vostro hard drive/controller per avere prestazioni ottimali. L’esempio qui sopra attiva i trasferimenti a 32 bit, i conteggi di settore multipli, attiva l’uso di DMA e regola il flag di unmask IRQ sul dispositivo elencato (esempio: /dev/hda). Ciò può provocare un buon aumento di prestazioni, se configurato correttamente per la vostra macchina.

history
Dà una lista degli ultimi (in genere 1000) comandi introdotti. Usatelo congiuntamente a grep per trovare un comando o una sintassi particolare che avete usato in passato, ad esempio “history | grep -e tar” per trovare le volte che avete usato il comando tar e che sintassi avete usato con esso (per l’uso di | vedere in fondo l’appendice A).

ifconfig -a
Mostra la configurazione dei dispositivi di rete attualmente attivi. (Solaris/Linux/NetBSD)

ifconfig up
Attiva quel particolare dispositivo di rete (su Linux anche “ifup “). (Solaris/Linux/NetBSD)

ifconfig down
Disattiva quel particolare dispositivo di rete (su Linux anche “ifdown “). (Solaris/Linux/NetBSD)

ifconfig dhcp
Dice alla macchina di configurare il dispositivo elencato usando dhcp. (Solaris)

ipfwadm -A -l
Elenca tutte le regole di account dell’IP attualmente in effetto, con i conteggi correnti di byte e pacchetti. (Linux)

ipfwadm -A -l -z
Come sopra, ma ripristina anche tutti i contatori. (Linux)

ipfwadm -A -a -D -P all -W
Aggiunge una regola di account per l’indirizzo IP di dominio sull’interfaccia della rete elencata, contando tutti i byte e pacchetti, in tutti i protocolli, che hanno destinazione al dominio elencato. (Linux)

ipfwadm -A -d
Cancella questa regola dalla lista di account dell’IP. (Linux)

jobs
Restituisce una lista dei processi attivati da terminale, con il loro numero di job tra parentesi quadre (Solaris/Linux/NetBSD).

kill
Termina il processo attualmente funzionante che possiede quel PID. (Solaris/Linux/NetBSD)

kill -s 9
Trasmette il segnale di terminazione 9 al processo di cui è dato l’ID. Questo in genere termina i processi che altrimenti non finirebbero. (Solaris/Linux/NetBSD)

kill -9 %
Termina il processo attivato da che ha quel numero (visibile con “jobs“. (Solaris/Linux/NetBSD)

killall
Termina il processo attualmente funzionante che possiede quel nome. Comodo in caso non si abbia sottomano il PID.(Linux)

last
Mostra la lista degli ultimi utenti entrati dentro il sistema.

less
Mostra a video il contenuto del file, ma invece di farlo scorrere tutto ce ne da il controllo in un piccolo ambiente, così ci possiamo muovere su e giù con i tasti cursore o di pagina; è molto simile a “more“. Per uscire si preme “q”. (Solaris/Linux/NetBSD)

ln -s
Genera un collegamento “hard”. Il sorgente è il file o la directory reali cui desiderate generare un collegamento e la destinazione è il nome del collegamento che sarà generato che punterà al file o directory reali. (Solaris/Linux/NetBSD)

ln -s
Genera un collegamento simbolico (“soft”). Il sorgente è il file o la directory reali cui desiderate generare un collegamento e la destinazione è il nome del collegamento che sarà generato che punterà al file o directory reali. (Solaris/Linux/NetBSD)

ls –color
Elenca il file di una directory a colori. (Linux)

ls -la
Elenca tutti i file (compresi i nascosti) in una directory con gli attributi ecc. (Linux/Solaris/NetBSD)

man
Mostra la pagina del manuale per un comando particolare. (Linux/Solaris/NetBSD)

mkdir
Genera una directory con il nome fornito. (Linux/Solaris/NetBSD)

modprobe -l
Fornisce una lista dei moduli disponibili. (Linux)

mount
Aggancia al filesystem alla posizione specificata da il dispositivo hardware specificato, che può essere un intero hard disc o una partizione, un lettore cd-rom, una memoria su usb etc. Questo comando è complesso e richiede comunemente più informazioni di queste. Suggerirei la lettura delle pagine del manuale di mount e fstab. (Linux/Solaris/NetBSD)

mv
Sposta i file dalla sorgente verso la destinazione. Usato anche per rinominare. (Linux/Solaris/NetBSD)

nslookup
Fa una ricerca di DNS sul nome di dominio o sull’indirizzo IP fornito. (Linux)

pico
Modifica una file usando un editor di testi ragionevolmente facile da usare. (Linux)

pine
Un client di testuale. E’ richiesta un po’ di configurazione al primo avvio.

ping
Trasmette una richiesta di ping a una macchina remota. (Linux/NetBSD/Solaris)

ping -f
Inonda di ping un dominio o un indirizzo IP. (Linux)

ps afx
Mostra tutti i processi e i PID dell’utente in un formato ad albero che si spande dal processo genitore. (Linux)

ps aux
Mostra tutti i processi dell’utente, con tempo di inizio, e tutti i processi senza un di controllo. (Linux)

pwd
Visualizza la vostra directory corrente. (Linux/Solaris/NetBSD)

rm
Rimuova uno o più file (con un metacarattere) da una directory. (Linux/Solaris/NetBSD)

rm -rf
Rimuove forzatamente una directory e i file dentro. (Linux/Solaris/NetBSD)

rmdir
Rimuove una directory. (Linux)

route add default
Imposta il vostro gateway di default all’indirizzo del gateway fornito. (Solaris/Linux)

smbclient -L -W -U
Elenca le parti condivise disponibili sul PC specificato, quelli nel gruppo di lavoro/dominio e tutti i domini disponibili e i loro master.

smbmount “/// -W -U
Monta le parti condivise SMB a un punto particolare del supporto, potreste dovere modificare il file /etc/hosts e aggiungere le voci con l’IP e il nome del server della macchina da cui desiderate montare le parti. Inoltre assicuratevi che il vostro file smb.conf è configurato correttamente. (Linux)

smbmount “///” -c ‘‘ -W -U -I
La suddetta variante del comando smbmount permette do non dover modificare il vostro file hosts e funziona anche in alcuni casi dove il comando semplificato non funziona correttamente. (Linux)

su –
Vi trasforma nel superutente (root). Vi sarà chiesta la password dopo aver digitato questo comando. Se specificate “” dopo “su” otterrete tutte le variabili di ambiente di quell’utente, etc, il che in genere è desiderabile.

su –
Lo stesso di “su –” ma potete accedere a qualsiasi utente. Se non siete attualmente vi sarà chiesta la password di quell’utente. Ciò è molto utile se dovete verificare qualcosa o emulare un utente per qualche motivo.

tail -n xx
Stampa le ultime xx linee di verso lo standard output. Se non specificato il parametro -n, ne stampa 10.

tar xvf
Estrae un file tar (cioè un archivio di più file e/o cartelle dentro un unico file, non compresso) nella directory corrente. (Linux/Solaris/NetBSD)

tar zxvf
Estrae tutto dal file tar, filtrandolo prima attraverso gzip. (Linux)

tar zcvf una_directory/
Genera un file tar g-zippato da una certa directory. (Linux)

tar jxvf una_directory/
Estrae tutto dal file tar, filtrandolo prima con bzip2 (algoritmo più efficiente). Per xompeimere usate i parametri “jcvf“.(Linux)

telnet
Fa telnet verso un host remoto, permettendo di operarci come se si fosse al suo terminale. Attenzioe che tutto quello che trasmettete è in chiaro, login password e tutto, quindi in internet è meglio usare ““, che è un protocollo sicuro, criptato.(Solaris/Linux/NetBSD)

top
Dà un ambiente testuale con le statistiche della macchina quali i processi, occupazione CPU, memoria, spazio di scambio, ecc. e una lista configurabile dei processi, con i parametri che possono essere ordinati in modi differenti. Si usa spessoper vedere come sta l amachcina, se c’è qualche processo che occupa troppa memoria o perchè è diventato tutto incredibilmente lento, segno di un intenso uso del processore. Utili parametri di ordinamento si ottengono premendo “Shift+P” per ordinare per occupazione di CPU e “Shift+M” per farlo riguardo alla memoria.

traceroute
Elenca tutti i salti verso l’indirizzo fornito e i tempi di ping verso ognuno di loro.

touch
Crea file di lunghezza 0 byte. Utile per creare file che saranno usati per output, log o in bisogno di un file segnaposto.

tree

Mostra “graficamente” il contenuto della directory dove siete con tutti i file e le sottodir. Ci sono parecchie opzioni utili da aggiungere a questo semplice ma potente comando.

tree -d

Mostra “graficamente” il contenuto della directory dove siete e le sottodir, senza i file.

tree -a

Mostra “graficamente” il contenuto della directory dove siete, le sottodir e i file compresi quelli nascosti.

vi

vi
Modifica un file usando l’editor vi. Leggete la pagina man ancora prima di provare per la prima volta, visto che è un editor piuttosto ostico e anche semplicemente uscire + problematico se non istruiti. Se avete paura, fretta o poca volgia di imparare molti trovano che Jed o Pico siano delle esperienze di modifica del testo più appaganti. Il buono di vi è che è istallato di default quasi dapperttutto. (Linux/Solaris/NetBSD)

watch
Usato per ripetere un comando continuativamente (ogni 2 secondi) per vederne l’output fisso sullo schermo. “watch ls -l” permette di vedere il listato di una directory, utile in caso di trasferimento di file o cose simili. “Ctrl+c” lo interrompe.

whoami
Dice che utente siete attualmente. E’ utile se siete un patito del “su” e quindi a volte potete perdere traccia di chi siate in quel momento.

whois
Fa una richiesta a Internic sul dominio e restituisce il risultato. (Linux)

Comandi specifici per Debian / Ubuntu

apt-get install
Istalla il pacchetto dopo averlo scaricato dalla rete.

apt-get upgrade
Aggiorna dalla rete tutti i pacchetti istallati all’ultima versione disponibile (buono per prendere gli aggiornamenti di sicurezza più nuovi).

apt-cache search
Trova un pacchetto contenente il testo da cercare nella descrizione.

apt-get update
Aggiorna dalla rete la lista dei pacchetti correntemente disponibili.

dpkg -i
Istalla un file “.deb” (programma binario pronto per e ubuntu) già presente nel vostro hard disc.

Comandi specifici per RedHat / Fedora

yum install
Istalla il pacchetto voluto dopo averlo scaricato dalla rete. (solo Fedora)

yum update
Aggiorna dalla rete tutti i pacchetti istallati alla all’attuale livello di patch (buono per prendere gli aggiornamenti di sicurezza più nuovi). (solo Fedora)

yum update
Aggiorna dalla rete il pacchetto all’ultima versione disponibile. (solo Fedora)

up2date -i
Istalla il pacchetto voluto dopo averlo scaricato dalla rete.

update -u
Aggiorna dalla rete tutti i pacchetti istallati alla all’attuale livello di patch (buono per prendere gli aggiornamenti di sicurezza più nuovi).

up2date -p
Aggiorna dalla rete il pacchetto all’ultima versione disponibile.

rpm -ivh
Istalla un file “.rpm” (programma binario pronto per redhat, fedora, mandriva, suse).

rpm -Uvh
Aggiorna un pachetto con un file “.rpm” più nuovo (consigliabile usarlo anche al posto del precedente -ivh).

rpm -qa
Visualizza la lista di tutti i pacchetti istallati
rpm -ql
Visualizza l’elenco di tutti i file istallati con quel pacchetto.

rpm -e
Disistalla il pacchetto.

Appendice A: gestione di shell e comandi verso l’apprendimento dello “shell scripting”

| [ | …]
Redirige l’output del comando precedente il simbolo di “pipe” | nerll’input di quello seguente al pipe. E’ chiamata “concatenazione dei comandi” ed è un cosa molto utile e potente da saper fare, ad esempio volendo trovare tutte le righe dove sta scritto “pippo” nel file “lista” si scrive “cat lista | grep pippo“.

&& [ && …]
Esegue più comandi uno per volta, con la condizione che il precedente abbia termonato correttamente (restituendo un valore 0), altrimenti la catena s’interrompe. Se al posto degli “&&” vengono messi dei punto e virgola ; la catena non si interrompe.

&
Fa partire il comando nel sottofondo, scorciatoia per la sequenza +”control-Z“+”bg“.

>
Reindirizza l’output del comando nel file, togliendolo dallo standard output (cioè lo schermo).

>>
Reindirizza l’output del comando nel file indicato aggiungendolo al contenuto già esistente.

2>
Reindirizza l’output di errore del comando nel file, togliendolo dallo standard output.

> /dev/null 2> /dev/null
Reindirizza sia l’output normale che quello degli errori verso /dev/null, il “pozzo” di Linux dove qualsiasi cosa che ci entra viene buttata via. Si usa quando si fa uno script di cui non c’interessa l’output a schermo, ad esempio quando viene eseguito automaticamente con un cron job.

“Alt-F1” … “Alt-F10”
Cambia lo schermo della console, permettendo di avere più terminali contemporaneamente aperti. In genere da F1 a F6 sono terminali a caratteri (shell) mentre F7 è il grafico (X11 o Xfree). (Linux)

“Control-S”
Fermma lo scorrimento del testo. (Solaris, NetBSD, Linux)

“Control-Q”
Ripristina lo scorrimento del testo. (Solaris, NetBSD, Linux)

“Control-Z”
Sospende il processso corrente in primo piano. Può essere seguito da “bg” o “fg” per far riprendere il processo in sottofondo o in primo piano, oppure da “kill -9 %1” per terminarlo, spesso utile per fermare processi che ci han tolto il ontrollo della console.

Articoli correlati

Lascia un commento

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