lcs:lcs07:bash_commands
Indice
Promemoria bash
Generali
File system
| . | directory corrente |
| .. | directory padre |
| ~username | home directory dell'utente username |
| ~ | home directory dell'utente corrente |
Ridirezioni
| [0]<, < | ridirige lo standard input |
| [1]>, > | ridirige lo standard output |
| [2]>, &> | ridirige lo standard error |
[n]» | redirezione dell'output in append (n filedes) |
Wildcards
| * | qualsiasi stringa: ad esempio *.c puo' essere espanso con “ff.c g.c prova.c” |
| ? | qualsiasi carattere: ad esempio ?.c puo' essere espanso con “f.c g.c p.c” |
| [..] | qualsiasi carattere dell'insieme: ad esempio [fg].c e' espanso con “f.c g.c” |
Combinare comandi
| c1 ; c2 | esecuzione in sequenza |
c1 | c2 | esecuzione in pipe (lo stdout di c1 viene inviato sullo stdin di c2) |
Comandi
Miscellanea
| Comando | Descrizione | Esempio |
|---|---|---|
| date | fornisce la data corrente | $ date Tue Feb 14 18:21:00 CET 2006 |
| clear | pulisce la finestra | |
| man comando | permette di accedere alle pagine di manuale in linea per il comando comando | $ man man
man(1) man(1)
NAME
man - format and display the on-line manual pages
manpath - determine user's search path for man pages
SYNOPSIS
man [-acdfFhkKtwW] [-m system] [-p string] [-C con-
fig_file] [-M path] [-P pager] [-S section_list] [section]
name ...
...
|
| pwd | stampa il path assoluto della Working Directory corrente | $ pwd /.automount/homeserver/local/disc2/home/s/susanna/ESERCITAZIONI |
| cd directory | cambia la Working Directory corrente con directory, se non viene specificato nulla si va nella home | $ cd $ pwd /home/d/dangelo $ cd Desktop $ pwd /home/d/dangelo/Desktop $ cd .. $ pwd /home/d/dangelo |
| ls XX | lista il contenuto della directory XX o il file XX. Senza argomenti, visualizza il cotnenuto della directory corrente. | $ ls Canceled.mail HTTPlocation TMP-ESE jkjk ESERCITAZIONI OLD-Lab a.out ese.tar |
| ls -l XX | lista anche gli attributi dei file e delle directory | $ ls -l ESERCITAZIONI Canceled.mail a.out -rw------- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail -rwxr-xr-x 1 susanna docenti 13955 Nov 3 1998 a.out ESERCITAZIONI: total 16 -rw-r--r-- 1 susanna docenti 693 Oct 22 1998 ese13-10.c -rw-r--r-- 1 susanna docenti 1238 Oct 22 1998 ese22-10sizeof.c -rw-r--r-- 1 susanna docenti 724 Oct 22 1998 eseD13-10.c -rw-r--r-- 1 susanna docenti 4754 Oct 22 1998 esebit15-10.c -rw-r--r-- 1 susanna docenti 465 Oct 26 1998 min_maiu22-10.c -rw-r--r-- 1 susanna docenti 831 Oct 26 1998 poly22-10.c -rw-r--r-- 1 susanna docenti 3073 Oct 29 1998 sol27-10.c -rw-r--r-- 1 susanna docenti 357 Oct 26 1998 stampa_ascii22-10.c |
| ls -d XX | lista le informazione relative alla directory indicata | $ ls -ld ESERCITAZIONI drwxr-xr-x 2 susanna docenti 512 Nov 5 1998 ESERCITAZIONI/ |
| ls -a XX | lista anche i file il cui nome comincia per punto (.) | |
| less fileditesto | pager per file di testo lunghi: mostra fileditesto una schermata alla volta, con le frecce e spazio ci si sposta e con q si esce | |
| od | visionare i file binari (non ASCII) | $ od -s mpack 0000364 /lib/ld-linux.so.2 0000424 GNU 0003211 __gmon_start__ 0003230 libc.so.6 0003242 strcpy 0003251 stdout 0003260 __ctype_b 0003272 getenv 0003301 getpid 0003310 fgets 0003316 memcpy 0003325 execl 0003333 perror 0003342 dup2 0003347 feof 0003354 malloc 0003363 optarg ...... |
| file filename | mostra il tipo del file filename | $ file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped $ file Canceled.mail Canceled.mail: mail text |
| touch nomefile | crea un file “nomefile” se questo non esiste, altrimenti cambia il timestamp dell'ultimo accesso | $ ls pippo ls: pippo: No such file or directory $ touch pippo $ ls -l pippo -rw-r--r-- 1 susanna users 0 2005-02-14 09:53 pippo |
| cat file1 file2 … | concatena il contenuto dei file file1 file2 ecc. e lo invia sullo standard output. Senza parametri legge lo standard input e lo invia sullo standard output | |
| cat > nomefile | permette di creare velocemente file di testo. Usate control+d per segnalare la fine del testo (End Of File) | $ cat > tt hkjhkhal kshlhlhla ^D $ ls tt 1 tt $ cat tt hkjhkhal kshlhlhla |
| sort | ordina lessicograficamente le linee sullo standard input e le invia sullo standard output | $ sort g f e ^D <-- fine stdin e f g |
Creazione / Distruzione / Copia di file e directory
- La creazione dei file avviene con un editor (emacs, vi, ecc.), o utilizzando il comando touch o la redirezione della shell (per esempio usando cat > file).
- La creazione di directory avviene con il comando mkdir.
| Comando | Descrizione | Esempio |
|---|---|---|
| mkdir directory | crea la directory di nome directory | $ mkdir MAN $ ls -ld MAN drwxr-xr-x 2 susanna docenti 512 Sep 21 13:55 MAN/ |
| cp | serve per COPIARE file/directory | |
| cp source dest | copia il file o la directory source in dest | |
| cp file1 … fileN dir | copia file1 … fileN nella directory dir | |
| cp -r dir1 dir2 | copia ricorsivamente tutto il sottoalbero radicato in dir1 in dir2 | |
| rmdir nomedir | rimuove una directory vuota | |
| rm XX | rimuove il file XX | |
| rm [-i] f1 … fN | rimuove i file f1 … fN. L'opzione -i serve per chiedere conferma (meglio specificarla, o impostare rm come alias di rm -i) | |
| rm -r XX | rimuove il file XX o una directory insieme a tutto il suo contenuto, ricorsivamente. Pericoloso | |
| mv source dest | sposta source in dest e rimuove source: serve per spostare/rinominare file e directory | |
| mv dir1 dir2 | sposta dir1 nella directory dir2 (se dir2 esiste) oppure rinomina dir1 con il nome dir2 (se dir2 non esiste) | |
| mv file1 … fileN dir | sposta file1… fileN in dir | |
Cambio diritti
| Comando | Descrizione | Esempio |
|---|---|---|
| chmod [-R] mode file1 … fileN | cambia i diritti di file1 … fileN come specificato da mode. Se viene usato con -R, cambia i permessi ricorsivamente nelle directory specificate. mode specifica i nuovi permessi, in notazione simbolica [u g o a][+ - =][r w x] oppure 4 cifre ottali. | $ ls -l Canceled.mail -rw------- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail $ chmod ugo+r Canceled.mail $ ls -l Canceled.mail -rw-r--r-- 1 susanna docenti 3128 Oct 1 1997 Canceled.mail $ chmod 755 Canceled.mail $ ls -l Canceled.mail -rwxr-xr-x 1 susanna docenti 3128 Oct 1 1997 Canceled.mail* |
Alias
Lista delle ridenominazioni predefinite (alias) in ~/.bash_aliases
NB: in bash sono superati dalle funzioni!!!!
alias nome
mostra l'alias per nome
---------------------------------------------------------------------
% alias rm
alias rm='rm -i'
-------------------------------------------------------------------
alias nome definizione
permette di creare nuovi alias
-------------------------------------------------------------------
% alias pippo='rm -i'
% alias pippo
alias pippo='rm -i'
-------------------------------------------------------------------
unalias nome
permette di eliminare ridenominazioni
-------------------------------------------------------------------
% unalias pippo
% pippo
pippo: Command not found.
-------------------------------------------------------------------
2.5 Processi
^^^^^^^^^^^^
& esecuzione in background
sleep n_sec non fa niente per n_sec
---------------------------------------------
% sleep 40 &
%
-----------------------------------------------
ho attivato un processo in background che non fa niente per 40 secondi
ps mostra i processi in esecuzione
--------------------------------------------
% ps
PID TTY TIME CMD
1157 pts/0 00:00:00 csh
1328 pts/0 00:00:00 sleep
1329 pts/0 00:00:00 ps
--------------------------------------------
ps -l fornisce informazioni dettagliate su ogni processo
---------------------------------------------------------------------
% ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 16325 1157 1156 0 67 0 - 563 rt_sig pts/0 00:00:00 csh
000 S 16325 1328 1157 0 64 0 - 262 nanosl pts/0 00:00:00 sleep
000 R 16325 1330 1157 0 70 0 - 669 - pts/0 00:00:00 ps
---------------------------------------------------------------------
La colonna S specifica lo stato:
R: running, in esecuzione al momento o in attesa del processore
S: sleeping, in attesa di un evento, ad esempio un carattere
dalla tastiera
T: stopped, congelato, in attesa di essere riattivato
N: nice, processo running con priorita' bassa
Z: zombie, processo morto ma in attesa di comunicare il suo
codice di errore al padre
jobs fornisce i job attivati dalla shell corrente
----------------------------------------------------
% jobs
[1] + Running sleep 40
%
----------------------------------------------------
kill [opt] pid
kill [opt] %N_job
UCCIDE il processo con process identifier PID e con
numero di job N_job
----------------------------------------------------
% ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 16325 1157 1156 0 67 0 - 564 rt_sig pts/0 00:00:00 csh
000 S 16325 1334 1157 0 62 0 - 262 nanosl pts/0 00:00:00 sleep
000 R 16325 1336 1157 0 70 0 - 669 - pts/0 00:00:00 ps
% kill %2
[2] Terminated sleep 40
% ps
PID TTY TIME CMD
1157 pts/0 00:00:00 csh
1337 pts/0 00:00:00 ps
%
----------------------------------------------------
le opzioni indicano il tipo di segnale inviato per la terminazione, il
piu' letale e' -KILL (es: kill -KILL 1157)
^C ammazza i processi che girano in foreground
^Z mette in stato di stopped (T) u nprocesso in foreground
bg [%N_job] riprende l'esecuzione in background
fg [%N_job] riprende l'esecuzione in background
2.6 History
^^^^^^^^^^^
history k lista gli ultimi k comandi eseguiti
-------------------------------
% history 4
111 14:42 ps -l
112 14:42 fg
113 14:46 sort
114 14:52 history 4
%
-------------------------------
!! ripete l'ultimo comando eseguito
!so ripete l'ultimo comando seguito che inizi per `so'
!113 ripete il comando numero 113 (sort)
--------------------------------
% !!
history 4
112 14:42 fg
113 14:46 sort
114 14:52 history 4
115 14:54 history 4
%
------------------------------------
stty permette di listare i Metacaratteri (--all)
e cambiare i setting del terminale
-----------------------------------------------------
% stty --all
speed 38400 baud; rows 45; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
-----------------------------------------------------
Alcuni metacaratteri (CONTROL = ^)
^D end of file
^C abortisce l'esecuzione del comando in corso
^H cancella un carattere
^S blocca l'uscita del video
^Q sblocca l'uscita del video
^Z mette un processo in attesa
-------------------------------------
lcs/lcs07/bash_commands.txt · Ultima modifica: 04/02/2007 alle 15:29 (19 anni fa) da peppe
