Il seguente elenco e’ una lista disordinata di comandi shell utili (Unix-based Linux/Mac), tali comandi non sono spiegati nel dettaglio ma possono facilitare l’amministrazione quotidiana di un sistema basato su Unix. La combinazione dei tasti CTRL+f dal vostro browser puo’ essere molto utile nella ricerca di un determinato costrutto o comando. Qualche comando puo’ valere solo per le Shell Bash.
- Per trovare i dettagli hardware di una Linux box:
lspci
- Per trovare la versione del kernel e della distribuzione di linux:
uname -a
- Per trovare info su cpu:
cat /proc/cpuinfo
- Per decomprimere file gzip:
gungzip something.tar.gz
- Per scompattare il file tar:
tar xvf something.tar
- Per decomprimere ed estrarre in un solo passaggio:
tar xvzf something.tar.gz
- Per installare un software da rpm:
-
rpm -iv myapp_someversion.rpm
- Per modificare il vostro ambiente di shell bash editare file ~ /.bashrc
- Per impostare il percorso di java e ant aggiungere le seguenti righe nel file bashrc nella directory home di java appropriata e nella directory di ant:
export JAVA_HOME=/usr/java/jdk1.5.0_09 export ANT_HOME=/home/oracle/apache-ant-1.7.0 export PATH=$PATH:${JAVA_HOME}/bin:${ANT_HOME}/bin export CLASSPATH=./:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/rt.jar:${ANT_HOME}/lib/ant.jar
- Per elencare tutti i processi in esecuzione nel sistema di oracolo:
ps-ax
- Per elencare tutti i file della directory corrente:
find . -print
- Per cercare la stringa “errore” in tutti i file nella directory corrente:
find. -print|xargs grep -i error
- Per riavviare il sistema linux in 10 minuti con un messaggio trasmesso:
shutdown-h +10 "manutenzione programmata"
- Per trovare il numero di utenti collegati:
who | wc-l
- Per stampare Variabili di Sistema:
echo $DISPLAY $HOME $MAIL $PATH $PWD $SHELL $TERM $USER
- Per eseguire l’ultimo comando digitato nella shell che inizia con p:
!p
- Per eseguire un comando in background:
ls -al &
- Per elencare tutti i processi in sospeso:
jobs
- Per creare un link simbolico (collegamento, cancellando il shoftlink non si cancella il file originale):
ln -s miofile symbolic
- Per creare hardlink (l’eliminazione cancella sia hardlink che il file originale):
ln -l lmiofile hardlink
- Per trovare dove il link punta:
ls -l
- Per visualizzare i file è sufficiente utilizzare uno di questi comandi:
- cat - (Visualizza i file nella loro interezza)
- more - ( Visualizza i file una pagina alla volta)
- less - ( Visualizza i file una pagina alla volta com la possibilità di spostare all'indietro premendo B.
- head - ( Visualizza le prime righe di un file, con l'opzione -n si puo' specificare il numero delle linee)
- tail - ( Visualizza le ultime righe di un file)
- nl - ( Visualizza i file con le loro linee numerate)
- Per continuare a leggere la coda di un file di log:
tail -f MyLog.log
- Per contare il numero di byte parole e righe in un file:
wc nomefile
- Per contare solo il numero di righe di un file:
wc -l nomefile
- Per elencare gli attributi importanti di un file, come l’accesso,la dimensione del dispositivo:
stat nomefile
- Per stampare dimensione dei file:
du file1 file2
- Per stampare tutti i nomi di file che iniziano con myfile:
find / -type f-name myfile* -print
- Per stampare tutte le directory a partire da quella corrente:
find . -type d -print
- Per stampare le linee contenenti la parola “myword” in un file miofile:
grep myword myfile
- Per stampare le righe che non contengono la parola “myword” in miofile:
grep -v myword myfile
- Per visualizzare soltanto le righe univoche in modo ordinato di un file:
sort myfile | uniq
- Per contare le righe duplicate:
sort myfile| uniq -c
- Per stampare la parola 2 ° e 4 ° in ogni riga myfile:
awk '{print $ 2, $ 4}' myfile
- Per stampare tutte le linee più brevi di 50 caratteri in myfile:
awk '{lunghezza ($ 0) <50}' myfile
- Per stampare il contenuto di myfile con tutte le occorrenze della parola “rosso” sostituite con “blu”:
sed 's/rosso/blu/g' myfile
- Per stampare il contenuto di myfile linee saltando 2 a 5:
sed ' 2,3d ' myfile
- Per trovare le dimensioni, lo spazio utilizzato e lo spazio libero su tutte le partizione del disco:
df -h
- Per trovare le dimensioni, lo spazio utilizzato, spazio libero e la directory corrente:
du .
- Per confrontare due directory in modo ricorsivo:
diff -r dir1 dir2
- Per sottolineare la prima differenza di file simili:
cmp file1 file2
- Per stampare i 32 byte di checksum, utile per controllare la correttezza dei file scaricati da internet:
md5sum file1
- Per stampare il nome del terminale associato alla shell corrente:
tty
- Per stampare l’ultimo timestamp di modifica di un file:
myfile data -r
- Per stampare Ciao ogni 10 secondi:
sleep 10 && echo 'Ciao'
- Per controllare quali file sono appena stati aggiunti alla directory corrente ogni 20 secondi:
watch -n 20 ls -l
- Per visualizzare i proprii processi:
ps -ux
- Per visualizzare i processi avviati da user1:
ps -U user1
- Per visualizzare tutte le occorrenze di un programma dal nome prg:
prg ps -C
- Per visualizzare tutti i processi, in relazione alla larghezza dello schermo, con la linea di comando completa:
ps -efw
- Per scoprire da quanto tempo il sistema è in funzione :
uptime
- Per visualizzare i processi di tutti gli utenti loggati sul sistema:
w
- Per monitorare l’uso della CPU da parte dei processi attivi sul sistema:
top [q Premere per uscire dalla visualizzazione]
- Per visualizzare il grafico di carico del sistema (simile al task manager di windows):
xload
- Per visualizzare l’utilizzo della memoria in megabyte:
free-mt [free -t per kilobyte]
- Per eseguire un processo di sistema con priorità controllata 7:
bel -7 jobargs jobname> outfile [10 è di default]
- Per modificare la priorità di un processo con id 1834 eseguito con nice:
nice -5 -p 1834
- Per modificare la priorità di un processo precedentemente eseguito da utente USR1 con nice:
nice -5-u USR1
- Per trovare informazioni sull’ ambiente di esecuzione di un utente come ID di accesso, etc ultimo login:
- logname : (nome di login)
- whoami : (come logname tranne se il comando " su " è usato per passare utente)
- finger : (informazioni sull'utente)
- last : (Log dettagliato ultimi accessi)
- printenv : (dettagli ambiente)
- Per stampare il proprio nome host:
hostname
- Per stampare i dettagli delle interfacce standard di rete del computer:
ifconfig
- Per visualizzare i dettagli di un hostname tramite il proprio dns :
whois www.vitadastudente.it
- Per stampare il percorso di rete dal tuo computer ad un host:
traceroute www.vitadastudente.it
- Per copiare tramite scp myfile dalla macchina corrente a remote.example.com utilizzando come id otherid :
scp myfile otherid@remote.example.com:/home/otherhome/
- Per copiare tramite scp un file da una postazione remota alla nostra macchina locale:
scp otherid@remote.example.com:/home/otherhome/otherfile">otherid@remote.example.com:
- Per scaricare un file da internet:
wget www.vitadastudente.it/index.
- Per visualizzare lo stato di tutte le cpu :
-P mpstat all
- Per visualizzare l’utilizzo della CPU ogni 5 secondi, 5 volte:
sar -u 5 5
- Per visualizzare I/O di stato ogni 5 secondi , 5 volte:
iostat -XTC 5 5
- Per visualizzare lo stato della memoria virtuale ogni 5 secondi:
5 vmstat
- Per trovare i file più grandi di 10KB:
find. -size +10240
- Per visualizzare l’output del comando echo :
echo "Hai` ls | wc-l `file in` pwd `"
- Per visualizzare il valore della variabile con echo:
echo "Il valore di \ $ x è $ x"
- Per ordinare un file e stampare :
file sort | pr -3 | lp
- Per reindirizzare lo standard output su standard error:
echo "Errore di utilizzo: l'amministratore deve vedere" 1> & 2
- Per inviare l’output del comando in un file e l’errore in un altro file:
find / -print fileOne> 2> fileTwo
- Per ricordare una directory da utilizzare successivamente:
pushd /var/dirme( pushd / var / dirme)
- Per creare un file di patch mediante diff tra file:
fileOld FileNew diff> patchfile
- Per applicare la patch in un file:
patch fileOld patchfile
- Per creare un file di patch tra le directory:
diff -Naur prestinedir modifieddir> patchfile
- Per applicare la patch in una directory:
patch -p1 < patchfile
- Per mettere il comando più recente, sospeso tramite Ctrl + Z, in background:
bg
- Per mettere un comando in background tramite il numero di processo:
bg% 3
- Per trovare il numero del job in background:
jobs
- Per riportare un processo in foreground :
4% fg
- Per dividere un file in base alla dimensione in KB o MB:
- split -b 10k long piece( split-b 10k lungo pezzo)
split -b 10m long piece( split-b 10m lungo pezzo)
- Per aggiungere un utente con nickname smith:
useradd smith
- Per eliminare smith utente:
smith userdel
- Per modificare le home directory degli utenti:
usermod-d / smith u01/smith
- Per cambiare la password Smith:
passwd smith
- Per cambiare la shell di Smith:
chsh smith
- Per passare a super utente :
su -
- Per stampare le informazioni sul gruppo di Smith:
groups smith
- Per aggiungere nuovo gruppo:
groupadd-f newgroup
- Per eliminare gruppo:
groupdel group1
- Per impostare hostname:
hostname me.myhost.com
- Per modificare il file appartiene al gruppo:
chgrp GruppoAdmin imp.tar
- Per eliminare tutte le occorrenze di DEBUG. ESC :
%s/* DEBUG //g
- Per cancellare tutto tra <> tra <> in numeri di riga 1 a 8. ESC :
1,8s/<[^>]*>//g
- Per sostituire tutte le occorrenze di foo sulla riga corrente con bar. ESC :
. s/foo/bar/g
Per subsitute tutte le occorrenze della parola pippo nel file con bar:
ESC : %s/foo/bar/g
- Per modificare i file trovati da grep:
vi `ifdef grep-l *. java`
- Per modificare il comando precedente utilizzando VI:
fc -e vi
Editor vi consigli:
Una risposta a “Lista Comandi Utili Shell Linux/Unix”