Strumenti Utente

Strumenti Sito


lcs:lcs07:bash_commands

Promemoria bash

Generali

File system

.directory corrente
..directory padre
~usernamehome 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) FIXME

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 ; c2esecuzione in sequenza
c1 | c2esecuzione in pipe (lo stdout di c1 viene inviato sullo stdin di c2)

Comandi

Miscellanea

ComandoDescrizioneEsempio
datefornisce la data corrente
$ date
Tue Feb 14 18:21:00 CET 2006
clearpulisce la finestra
man comandopermette 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 ...
...
pwdstampa il path assoluto della Working Directory corrente
$ pwd
/.automount/homeserver/local/disc2/home/s/susanna/ESERCITAZIONI
cd directorycambia 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 XXlista 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 XXlista 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 XXlista le informazione relative alla directory indicata
$ ls -ld ESERCITAZIONI
drwxr-xr-x   2 susanna  docenti       512 Nov  5  1998 ESERCITAZIONI/
ls -a XXlista anche i file il cui nome comincia per punto (.)
less fileditestopager per file di testo lunghi: mostra fileditesto una schermata alla volta, con le frecce e spazio ci si sposta e con q si esce
odvisionare 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 filenamemostra 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 nomefilecrea 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 > nomefilepermette 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
sortordina 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.
ComandoDescrizioneEsempio
mkdir directorycrea la directory di nome directory
$ mkdir MAN
$ ls -ld MAN
drwxr-xr-x   2 susanna  docenti       512 Sep 21 13:55 MAN/
cpserve per COPIARE file/directory
cp source destcopia il file o la directory source in dest
cp file1 … fileN dircopia file1 … fileN nella directory dir
cp -r dir1 dir2copia ricorsivamente tutto il sottoalbero radicato in dir1 in dir2
rmdir nomedirrimuove una directory vuota
rm XXrimuove il file XX
rm [-i] f1 … fNrimuove i file f1 … fN. L'opzione -i serve per chiedere conferma (meglio specificarla, o impostare rm come alias di rm -i)
rm -r XXrimuove il file XX o una directory insieme a tutto il suo contenuto, ricorsivamente. Pericoloso
mv source destsposta source in dest e rimuove source: serve per spostare/rinominare file e directory
mv dir1 dir2sposta dir1 nella directory dir2 (se dir2 esiste) oppure rinomina dir1 con il nome dir2 (se dir2 non esiste)
mv file1 … fileN dirsposta file1… fileN in dir

Cambio diritti

ComandoDescrizioneEsempio
chmod [-R] mode file1 … fileNcambia 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

FIXME

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: da peppe

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki