-shell dei comandi – ! bash &/o tcsh ! [email protected]

21
-Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@uni pd.it

Upload: pino-parente

Post on 02-May-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

-Shell dei comandi –! Bash &/o Tcsh !

[email protected]

Page 2: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Shell BASH

bash (acronimo per bourne again shell): è una shell del progetto GNU usata nei sistemi operativi Unix e specialmente in Linux. Si tratta di un interprete di comandi che permette all'utente di comunicare col sistema operativo attraverso una serie di funzioni predefinite, o di eseguire programmi.

In pratica bash può essere considerata come un processore di macro. Essa è infatti in grado di eseguire i comandi che le vengono passati o di interpretare un semplice linguaggio di programmazione che permette di combinare questi comandi tra di loro per svolgere compiti più complessi. Qualora dovesse presentarsi la necessità la shell mette a disposizione la possibilità di raccogliere in file delle serie di comandi creando così script eseguibili contenenti variabili, funzioni e controlli di flusso come nei più comuni linguaggi di programmazione.

Una delle altre maggiori funzionalità di bash è quella della redirezione dell'input e dell'output grazie al quale è possibile eseguire più programmi in cascata passando come input dell'uno l'output dell'altro.

Page 3: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Shell TCSH & CSH

Sono delle shell che svolgono lo stesso ruolo della shell bash, ma parlano con la macchina un linguaggio leggermente diverso. Sono molto simili al linguaggio C ma svolgono tuttavia le stesse cose. La scelta della shell è legata a questioni di praticità o no con un certo linguaggio macchina.

Page 4: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Cosa fa la shell?

Indipendetemente dalla shell che si usa, questa traduce al computer quello che

volete fargli fare!volete fargli fare!

Page 5: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Processi sulla macchina

which bash (or shell name):

il direttorio dove si trova la shell. who:

chi è collegato sulla vostra stessa macchina. where command-name:

il percorso dove si trova l’eseguibile del programma. ps ux:

vi ritorna i processi che l’utente sta lanciando. ps aux:

i processi di tutti gli utenti.

process statusprocess status

Page 6: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Process Status

USER: proprietario del processo, tipicamente chi l’ha iniziato.

PID: un processo ha un unico ID. Questi vengono assegnati in maniera sequenziali quando partono. Quando raggiungono circa il valore di 30,000 i valori riiniziano da 0.

0-5 sono processi di basso livello per il sistema operativo e di solito non escono mai.

VSZ: total Virtual memory SiZe, in 1K blocks. RSS: Real Set Size, l’attuale quantità di memoria fisica allocata da questo processo.

TTY: Treminale associato con questo processo. Un ? Indica che il processo non è connesso al terminale.

STAT: Codice di stato del processo.

S - Sleeping,

R - Runnable (on run queue),

N - Low priority task,

Z – Zombie process.

Page 7: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Process Status? Why?

Perché volete sapere lo stato dei processi?forse perché firefoxfirefox si è bloccato.

forse perché avete mandato 1.000 processi in background e non sapete come stopparli (kill).

forse perché il vostro computer sta rallentando e non sapete cosa sta succedento.

Page 8: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Quando un processo è stoppato o è zombie, … kill it?

Per killare un processo bisogna digitare sul terminale kill PID.

Per forzare il kill si usa -9:

> kill -9 PID

Page 9: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Xkill

Se avete una finestra bloccata e non sapete più come uscirne fuori, basta digitare sul terminale > xkill

Andate sulla finestra che volete ammazzare e clickate con il mouse!

Page 10: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Concatenare un comando per cercare un processo e ridirigere l’output

ps ux | grep firefox ps ux | grep emacs

ps ux > logps.txt

concatena più comandi dando al successivo l’output del primo.

dirige l’output di uscita di un comando nel file logps.txt

cerca una stringa

Page 11: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Comandi

grep document prova.tex nl prova.tex wc prova.tex du –h prova.tex mv prova.tex relazione.tex tar cvf latexdocument.tar latexdocument tar xvf latexdocument.tar.gz latexdocument

Page 12: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Comandi

tar xvf latexdocument.tar tar xvzf latexdocument.tar.gz ls –l emacs & (emacs prova.tex &)

emacs Ctrl+z bg

mi manda un processo in background!

Page 13: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Latex

Quando lanciate latex

NON MANDATELO IN BACKGROUND!

Page 14: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Visualizzare l’ultima volta che un utente ha effettuato un accesso

last last

Per scoprire quando un particolare utente ha effettuato l’ultimo accesso al sistema, aggiungete il suo nome utente come argomento.

Page 15: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Ritornare a casa o all’ultima diretta visitata

cdcd

Tornare alla directory “casa” dell’utente.

cd -cd -

Torna all’ultima directory visitata.

Page 16: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Contare il numero di file presenti in un direttorio.

ls –l | wcls –l | wc

Chi mi sa spiegare perché?

Page 17: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Trovare i file in un albero delle directory in base al nome

Per visualizzare tutti i file sul sistema il cui nome è ‘top’ si digita:

> find / -name top find / -name top Per visualizzare tutti i file sul sitema il cui nome è

‘top’ indipendentemente dai caratteri minuscoli o maiuscoli digitate:

> find / -iname topfind / -iname top Per visualizzare tutti i file sul sitema contenenti la

string top, domanda?

Page 18: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Trovare le differenze tra files

Per confrontare due files:

> diff file1.txt file2.txt Per analizzare due file a fianco sullo schermo

con le eventuali differenze indcate tra le colonne:

> sdiff file1.txt file2.txt | less

Page 19: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Scrivere stringe sulla shell

Di default l’oupout di log di un programma eseguito dalla shell è la shell stessa.

Se volete scrivere una stringa tale che vi compaia su terminale basta digitare:

> echo leggi queto

Sono importanti nella fase in cui noi stiamo eseguendo una serie di comandi di shell scritti in un file.

Page 20: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

File compressi & Archivi

tar (z)cvf latex.tar(.gz) document (crea) tar (z)xvf latex.tar(.gz) (estrae) tar (z)tvf latex.tar(.gz) (visualizzare il contenuto)

gzip document (comprime un file) gunzip document.tar (decomprime)

Page 21: -Shell dei comandi – ! Bash &/o Tcsh ! carlo.giocoli@unipd.it

Esempi di script, .login, .bashrc, .bashtcsh

ssh