Posts tagged ‘shell’

Imparare a muoversi nella shell di linux

IMHO una cosa indispensabile, visto che  ad usare il maus son tutto buoni

Qui trovate una guida in inglese (PDF) assai ben fatta per avere delle basi MINIME.

Studiate che poi v’interrogo :-)

Vedere i comandi di shell che si usano piu’ spesso

Tempo addietro sulla lista del Lug alle cui riunioni purtroppo non partecipo da mesi, per la cronica mancanza di tempo, è passata una cosa carina: questo comando

history | awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head

mette in ordine di frequenza i comandi di shell che sono stati usati più spesso.

la mia lista sul mo portatile di lavoro è questa:

110 cd
63 su
37 ls
36 ping
32 ssh
21 rdesktop
19 exit
17 cat
10 mkdir
7 vi

e la vostra ?

Foreground e Background nella shell

Spesso mi ritrovo a lanciare comandi da shell piuttosto corposi, copie di svariti giga o tar gzip sempre di svariti giga, che mi impegnano la console del pc (di solito remoto) su cui lavoro perche’ mi dimentico sistematicamente di mettere la & al comando per avviarlo in background.

Per continuare a fare altre cose sulla macchina posso aprire un’altra sessione remota ma linux mette a disposizione un metodo per mettere in background i processi che impegnano la console.

Poniamo di avere un super tar di una decina di giga in corso

pastiglia:/CTH_WEB# tar cvzf.tgz cth *

che sta’ lavorando.

Io posso dare un Ctrl-Z (control Z) e lui mi rispondera’

[1]+ Stopped tar cvzf cth.tgz *
pastiglia:/CTH_WEB#

il processo e’ stato stoppato e lui mi ha reso il prompt della shell

Adesso con il comando jobs vedo che:

pastiglia:/CTH_WEB# jobs
[1]+ Stopped tar cvzf cth.tgz *
pastiglia:/CTH_WEB#

il mio tar e’ fermo ma ancora vivo, quindi non sta’ facendo nulla e non consuma cpu, e’ congelato.

A questo punto posso fare tre cose:

1) lasciarlo in quello stato di stasi perche’ mi servono tutte le risorse del sistema, lo rilascero’ in seguito
2) sono arrivato ad “in seguito” e lo faccio ripartire con:

fg 1

che tradotto vuol dire “rimetti in foreground il processo fermo numero 1″, il numero lo vedo dal comando jobs, e’ il numerello fra parentesi quadre, e non ha nulla a che vedere con l’id del processo che si vede con “ps”

3) lo faccio ripartire in background:

bg 1

cioe’ il processo riparte, ma viaggia senza impegnarmi la shell, come se lo avessi lanciato con la & alla fine del comando.