PDA

Visualizza la versione completa : COMANDI UTILI per la console Linux



vanescar
08-08-05, 16:33
Mi sembra utile inserire un elenco di comandi utilizzabili da console per le operazioni più comuni. Ovviamente tale elenco è lungi dall'essere completo, però può darvi una spinta a iniziare ad utilizzare il vero linux, quello cioè al di fuori dell'interfaccina grafica, tanto carina ma non necessaria.

(di sicuro mancano anche comandi fondamentali. Chi ha da aggiungerne è caldamente invitato a farlo, possibilmente mandandomi un msg in privato in modo da mantenere unito l'elenco senza spargere comandi nei vari post)

Cita:
Le varie sezioni sono titolate in grassetto
Le sottosezioni sono titolate in corsivo colorato
Le note sono colorate
I comandi sono sottolineati

Gestione pacchetti di installazione
DEBIAN
dpkg-reconfigure pkg: riesegue config di un pkg
apt-cache search pkg: cerca i package contenenti nel nome la stringa indicata
apt-get install pkg: installa un pkg
apt-get remove pkg: rimuove un pkg
dselect: tool grafico per console di gestione package
aptitude: tool grafico avanzato per console di gestione package
update-alternatives ?option alternativa: esegue varie operazioni sulla configurazione dei tools di sistema (le 'alternative' possibili sono in /etc/alternatives)

RPM
rpm -ivh (--nodeps) nome (--force): installa il pacchetto ?nome? - l'opzione nodeps si usa per ignorare le dipendenze, mentre force serve appunto a forzare l'installazione (può sovrascrivere i files)
rpm -Uvh (--nodeps) nome: aggiorna il pacchetto ?nome? - l'opzione nodeps si usa per ignorare le dipendenze
rpm -e (--nodeps) nome: disinstalla il pacchetto ?nome? - l'opzione nodeps si usa per ignorare le dipendenze

MANDRAKE
urpmi nome: (fa più o meno la stessa cosa di rpm -ivh, però risolve anche le dipendenze)

TARBALL
tar -zxf ?archivio?: scomprime un archivio in formato .tar.gz o .tgz nella posizione corrente
tar -jxf ?archivio?: scomprime un archivio in formato .tar.bz(2) nella posizione corrente
tar -xf ?archivio?: scomprime un archivio in formato .tar nella posizione corrente

GZIP
gunzip ?archivio?: scomprime un archivio in formato .gz(ip)

SH
chmod +x pacchetto.sh: rende eseguibile pacchetto.sh (se non lo era)
sh pacchetto.sh: esegue pacchetto.sh

SORGENTI (una volta scompressi)
./configure: controlla le dipendenze e crea il file di configurazione per il compilatore
make: compila i sorgenti
make install: installa gli eseguibili in /usr/bin o /usr/local/bin in modo da poterli chiamare senza specificare il path
NOTA: alcuni programmi necessitano semplicemente di "make" o di altri comandi simili. Riferirsi al file guida presente assieme ai sorgenti


Comandi relativi alla gestione di filesystem
mount: comando di montaggio.
umount: comando di smontaggio

OPZIONI PRINCIPALI:
-t TIPO: specifica il tipo di file system da montare
-o OPZIONI: passa opzioni particolari, quali rw, uid, username, password, ecc...
-a -t TIPO: seleziona tutti i filesystem di un determinato tipo

Se il filesystem è già definito in /etc/fstab, è sufficiente digitare "mount MOUNTPOINT" (ad es. mount /mnt/cdrom). Per montare filesystem di rete samba si può dare il comando "mount -t smbfs -o username=USER,password=PASS,rw,user NOME_RISORSA MOUNTPOINT"
Per smontare è sufficiente dare "umount MOUNTPOINT"

Una opzione interessante del comando mount è la possibilità di montare anche filesystem di tipo "loopback", tipo le immagini ISO dei CD. Per fare questo bisogna che sia presente l'aoopsito supporto del kernel. Tipicamente, caricando il modulo "loop" (#modprobe loop), si ottiene il risultato voluto.

Ad esempio, supponiamo di voler montare l'immagine /pippo.iso nella cartella /tmp/pippo. Il comando da dare è:

mount -o loop /pippo.iso /tmp/pippo

In questo modo è possibile, ad esempio, estrarre dall'immagine quel cavolo di file da 25 byte che ci serviva, senza dover masterizzare un CD intero per poterlo recuperare.

Comandi di gestione dei processi
ps aux | grep PROCESSO | grep ?v grep: mostra i processi con nome contenente la stringa indicata in PROCESSO
ps aux | grep PROCESSO | grep ?v grep | awk ?{print $2}?: mostra solo il PID dei processi
kill ´ ps aux | grep PROCESSO | grep ?v grep | awk ?{print $2}?´: killa il/i processo/i ( ´ = ALT+96)

Comandi di gestione modalità di funzionamento
init MODO: cambia modalità di funzionamento del sistema.
Da lilo, premendo ESC, si può usare il comando "KERNEL init MODO", dove KERNEL è il nome del kernel da avviare, tipicamente "linux"
LE MODALITA' POSSIBILI SONO 7:
0: modalità HALT. Se si da questo parametro, si otterrà lo stesso risultato di un comando halt o shutdown -h now
1: modalità single user, testuale, non chiede la password. Se avete dimenticato la password di root, con questa modalità la potete cambiare usando il comando passwd. E' utile anche per eseguire riparazioni del sistema in caso di danni gravi, in quanto avvia pochissimi servizi.
2: modalità multiuser senza rete, testuale. Se non avete connessioni col mondo e non usate X, questa è la vostra modalità.
3: modalità multiuser con rete, testuale. Vale quanto detto per la 2, ma in più siete in rete.
4: non utilizzata.
5: modalità grafica. E' la modalità di avvio standard se usate X.
6: modalità REBOOT. Se si da questo parametro, si otterrà lo stesso risultato di un comando reboot o shutdown -r now
Nel file /etc/inittab è possibile selezionare la modalità di avvio di default cambiando la riga apposita (attenzione a non mettere 0 o 6, altrimenti il sistema sarà inutilizzabile). Se avete apportato modifiche ai files di configurazione di X, ad esempio, potete utilizzare una delle 7 console standard (ALT+Fn, con n da 1 a 7), e una volta chiusa la sessione grafica, dare init 3 e poi init 5.

Comandi di gestione files/directories
ln ?s sorgente destinazione: crea un link simbolico di sorgente in destinazione
chown user NOME: modifica l?user di appartenenza del file.
chgrp gruppo NOME: modifica il gruppo di appartenenza del file. Si può utilizzare anche chown USER: GRUPPO, per unire i 2 comandi.
chmod xyz NOME: modifica i permessi di ? X=root Y=utenti stesso gruppo Z=tutti gli utenti ? sul file NOME. I permessi vanno assegnati con il criterio binario rwx, cioè 4=lettura, 5=lettura ed esecuzione, 6=lettura e scrittura, 7=tutti e 3.
chmod +x file: attiva l'attributo ?eseguibile? su file (analogamente, -x lo toglie)
mc: il Divino Midnight Commander (attenzione a selezionarlo tra i pacchetti da installare)
mkdir NOME: crea directory
rm NOME: cancella file (opzioni -fr per forzare la cancellazione di sottodirectory)
fuser (-u) NOME: mostra i processi che stanno utilizzando un determinato file. Con l'opzione "-u" mostra anche il proprietario dei processi.

Rete e internet
ifconfig PARAMETRI: dato senza parametri elenca in modo dettagliato le interfacce di rete attive sul PC. Se si specifica l'interfaccia, ad esempio "eth0", e si specificano dei parametri, si può modificare il comportamento di tale interfaccia. Ad esempio "ifconfig eth0 down" disattiva l'interfaccia, mentre "ifconfig eth0 up" la riattiva. Si possono cambiare anche indirizzo IP, netmask ecc... Per configurare reti wireless, questo comando deve essere utilizzato unitamente al comando "iwconfig".
dig NOME_HOST: comando per il controllo dei DNS. Un utilizzo semplicistico di questo comando può essere per capire se, in caso il browser non riesca a risolvere un indirizzo, il problema sia vostro o del provider. In realtà questo comando si presta facilmente ad utilizzi diagnostici ben più mirati e potenti (vedere la man page).
netstat OPZIONI: mostra lo stato delle connessioni di rete; -e mostra alcune informazioni aggiuntive, come ad esempio gli user id; -o mostra informazioni relative ai timer. -a mostra tutti i socket, compresi quelli in ascolto; -i mostra un riepilogo per interfaccia delle interfacce attive; -ai mostra un riepilogo per interfaccia di tutte le interfacce.
IPTABLES
iptables: questo è il comando base per impostare il firewall integrato nel kernel Linux. Tale firewall è molto potente e versatile, e ovviamente come tale non è una passeggiata da configurare.
Di base esistono 3 sezioni di filtro, dette "chain". Queste sono INPUT, FORWARD e OUTPUT. Ogni chain ha una policy di default, ad esempio ACCEPT o DROP. In più, si possono specificare comportamenti particolari per singole porte, protocolli, ip di origine, ip di destinazione, e combinazioni tra le varie possibilità.
Riporto solo alcuni esempi, per la trattazione completa si faccia riferimento alla man page.

Esempi di comandi relativi a iptables (i parametri sono "case sensitive")
iptables -L CHAIN: mostra l'elenco delle policy della chain. Se non si specifica, mostra l'elenco di tutte le policy.
iptables -F CHAIN: rimuove tutte le policy della chain. Se non si specifica la chain, rimuove tutte le policy.
iptables -P CHAIN POLICY: imposta la policy di base della chain. Ad esempio, "iptables -P INPUT DROP" imposta come policy base di "cestinare" tutti i pacchetti in ingresso.
iptables -A CHAIN -p PROTOCOLLO -s SORGENTE --dport PORTA -j POLICY: aggiunge alla chain selezionata la policu specifica relativa a porta, protocollo, ip sorgente, Ad esempio, "iptables -A INPUT -p tcp -s !localnet --dport 100 -j DROP" aggiunge alla chain INPUT una policy che blocca tutti i pacchetti in arrivo da fuori la rete locale (localnet equivale alle prime 3 triplette dell'indirizzo IP) tramite protocollo tcp sulla porta 100. Analogamente, sostituendo "-D" a "-A", si rimuove tale policy.
Questi sono solo alcuni tipi di comandi e combinazioni possibili. In effetti, è anche possibile creare chain personalizzate o policy molto complesse. La regola base comunque a mio avviso è bloccare tutti i pacchetti in ingresso, tramite la policy di chain, e aprire esplicitamente le sole porte necessarie (ad esempio, la 6699), usando policy specifiche. Prestare particolare attenzione se si sta configurando un server da remoto, ad esempio tramite SSH. Mi è capitato di dover correre com tastiera e monitor al capezzale fisico del server, a causa di cappelle in fase di configurazione (un drop di troppo...)

Gestione utente
su: switch a superuser ? richiede password
adduser USER: aggiunge l'utente USER
passwd: cambia la password dell?user corrente
smbpasswd ?user?: modifica la password samba di ?user?

Multimedia
play FILE: permette di riprodurre file audio di vari formati (deriva da sox). Per terminare la riproduzione, premere CTRL+C
play_title DVDPATH TITOLO CAPITOLO ANGOLO: riproduce uno specifico titolo di un DVD. Occorre specificare il path (es. /mnt/cdrom), il titolo, il capitolo iniziale e l'angolo.
mplayer -ao AUDIO -vo VIDEO NOME_FILE: riproduce da console (anche senza Xfree) un file multimediale. Occorre specificare in AUDIO e in VIDEO l'output desiderato (utilizzare 'help' per visualizzare l'elenco di quelli disponibili). Ad esempio con "mplayer -ao oss -vo fbdev NOME_FILE" si chiede di indirizzare l'output audio al sistema sonoro OSS e il video al driver video FrameBuffer. Ovviamente queste opzioni dipendono dalla configurazione del sistema. Sono presenti molte altre opzioni oltre ad 'ao' e 'vo' (basta dare "man mplayer" per leggere l'help) ma queste 2 sono obbligatorie per vedere e sentire qualcosa. Per uscire premere ESC.

Sequenza di compilazione kernel (utente root)
ATTENZIONE: se non si sa perfettamente quello che si sta facendo, non effettuare questa operazione. Il risultato potrebbe essere la necessità di riformattare il sistema, con la perdita conseguente di tutti i dati!!!!!!!!!!!!

X.Y.ZZ: versione del kernel che si sta utilizzando
ln -s /usr/src/linux-X.Y.ZZ /usr/src/linux: crea un link alla cartella dei sorgenti, chiamandolo /usr/src/linux
cd /usr/src/linux: ...
make mrproper: cancella le configurazioni precedenti
make config: vecchio tool testuale da console per l?impostazione del kernel
make menuconfig: tool grafico da console
make xconfig: tool grafico da X windows

KERNEL PRECEDENTI ALLA VERSIONE 2.6.0 (procedura standard)
make dep: crea le dipendenze per la compilazione
make clean: cancella porcherie varie di compilazione
KERNEL MODULARE (+ leggero in RAM, + lento)
make zImage: crea l?immagine del kernel (MAX circa 450Kb)
make modules: seleziona i moduli necessari
make modules_install: compila i moduli selezionati
cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz-X.Y.ZZ: copia il kernel nella directory di boot
KERNEL MONOLITICO (+ pesante in RAM, + veloce)
make bzImage: crea l?immagine del kernel (praticamente no limiti dimensioni)
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-X.Y.ZZ: copia il kernel nella directory di boot

KERNEL DALLA VERSIONE 2.6.0 (procedura nuova)
make: compila il kernel e gli eventuali moduli
KERNEL MODULARE (+ leggero in RAM, + lento)
make modules_install: installa i moduli selezionati
cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz-X.Y.ZZ: copia il kernel nella directory di boot
KERNEL MONOLITICO (+ pesante in RAM, + veloce)
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-X.Y.ZZ: copia il kernel nella directory di boot

cp /usr/src/linux/System.map /boot/System.map-X.Y.ZZ
mv /boot/vmlinuz /boot/vmlinuz-old: rinomina il kernel precedente come old (in modo da non perderlo)
mv /boot/System.map /boot/System.map-old: rinomina il system.map precedente come old (in modo da non perderlo)
ln -s /boot/vmlinuz-X.Y.ZZ /boot/vmlinuz: crea un link simbolico al kernel corrente
ln -s /boot/System.map-X.Y.ZZ /boot/System.map: crea un link simbolico al system.map corrente

Se si è abilitato l'"Initial RAM Disk" (initrd)
mv /boot/initrd.img /boot/initrd-old.img: rinomina il file initrd precedente come old (in modo da non perderlo)
mkinitrd /boot/initrd-X.Y.ZZZ.img X.Y.ZZZ: (crea il file immagine per initrd)
ln -s /boot/initrd-X.Y.ZZ.img /boot/initrd.img: crea un link simbolico al file initrd corrente

È possibile anche dare tutti i comandi da make dep in poi in un'unica riga, con la sintassi:
make dep && make clean && ...
che esegue il comando seguente solo se il precedente è andato a buon fine. In questo caso, se il kernel è stato configurato correttamente, si può lasciare lavorare il PC e tornare dopo un tot.

È preferibile comunque, prima di eseguire il reboot, aggiungere le seguenti righe al file /etc/lilo.conf , in modo da essere in grado di riavviare il sistema in caso di malfunzionamento del nuovo kernel:
N.B.: per le righe ?root?, ?append? e ?vga? fare riferimento a ciò che sta scritto nella parte relativa a ?image=/boot/vmlinuz?

image=/boot/vmlinuz-old
label="kernel_precedente"
root=/dev/hdb1
initrd=/boot/initrd-old.img
append="devfs=mount hdd=ide-scsi acpi=on quiet"
read-only

Infine, prima di riavviare, è necessario scrivere le nuove impostazioni nell'MBR del disco. Si può utilizzare il comando "lilo", oppure

Cita:
lilo -t (per testare se l'operazione va in porto senza errori)
lilo -v (per scrivere il settore di avvio vedendo le operazioni compiute da lilo)


Infine, l'ultimo comando (e l'ultima possibiità per pensarci ancora)
reboot: ovvio?.

Se si utilizzano i driver proprietari nVidia o simili, occorrerà reinstallarli prima di poter utilizzare la modalità grafica (Xfree-X11). Vedere le istruzioni dei singoli drivers al riguardo

fonte (http://www.p2pforum.it/forum/showpost.php?p=196309&postcount=1)