Wiki Master Unix

FIXME sistemare formattazione


(unix base - utente - “avanzato” shell programming)

macchina virtuale (qemu) boot

login master, nopasswd

\\black22\masterunix


Argomenti che toccheremo:

- shell e prompt - comandi piu' utilizzati - filtri - shell programming - vi - info architetturale (filesystem, processi, etc.)


Il prompt questo sconosciuto

- sostituzione - tokenizzazione - esecuzione: prendo il primo token e lo tratto come comando

"lo tratto come comando" = lo so fare io o c'e' un file...
se e' un file: deve essere eseguibile, e "trovabile"
(elenco dir = variabile PATH)

Filesystem gerarchico, single root (”/”), mounted info su un file? !!!inode!!! inum, link

Permessi:

User Group Other

- rwx rwx rwx … Pippo

421  421   421

esempi: - r– r– r– … Pippo

4    4     4

- rw- r– r– … Pippo

42   4     4
6    4     4

- r-x rwx rw- minnie fattoria … Pippo

4 1  421   42
5    7     6

'chmod'

due forme: numerica e simbolica

 777 = rwxrwxrwx
 644 = rw-r--r--
 755 = rwxr-xr-x
 555 = r-xr-xr-x
 222 = -w--w--w-
 600 = rw-------
 u+x,g+r,o=r
 a+r
 go=r
 ugo=r   a=r
 g=x,o-r

umask

777 = 022 ”+” 644

022 ⇒ 755 (ma la “x” viene ignorata) 022 ⇒ 755 ”-” 111


Tab inode: (1)[nlink=2, data, data, dim, owner, etc…] (2)[nlink=0, data, data, dim, owner, etc…] (3)[nlink=1, data, data, dim, owner, etc…] (…)[data, data, dim, owner, etc…]

Directory: Pippo, 1 Pluto, 3 Paperino, 1


Comandi per file e directory

visualizzare - ls - less/more

creazione - vi - touch (ma come si fa a farlo saltar fuori dal man!?) - mkdir - link

distruzione - rm

spostamento - mv

ridenominazione - mv

“zippare” - tar - gzip - bzip2

copiare - cp - (dd)

modificare attributi - chmod - chown

13 giugno
metacaratteri (Substitution, Expansion)
	|!"£$%&/()=?^
	*[]
	#
	<>;:_-,.
	File expansion
  • qualunque stringa

? un singolo carattere

	~ home directory
	[]range/set caratteri
		p*
		o???txt
		~/*txt
		[A-Z]*txt
		[abcd]???.doc
		*o
		.*o
	Variable Expansion
	$
	${}
	comando 'let'
	comando 'bc'
		variabile=valore
		echo $variabile
  1. perse tra una sessione e l'altra
  2. non si “propagano” (salvo 'export')

ma e' una copia!!!

Quoting (comunicare alla shell di ignorare)
" " (quoting parziale)
' ' (quoting totale)
\
Redirezione
stdout
	>  1>  (distruttivo)
	>> 1>> (append)
stderr
	2>  (distruttivo)
	2>> (append)
stdin
	<
	<<  HERE document
	cmd 2>&1 > file
Concatenazione (piping)
cmd1 | cmd2 | cmd3 | ...
condizioni:
- che cmdX (con X>=2) lavori da stdin
- che i dati passati siano "coerenti"
Intro filtri
  1. programma
  2. lavora su stdin-stdout
  3. tipicamente opera una “trasformazione”
cat, more, less
tee
head, tail
cut, grep
tr
col
rev
tac
sort
uniq
paste
xargs (filtro sghembo)
	cmd1 | xargs du
ESEMPIO
spazio occupato da un utente specifico
find / -user atrent -type f -exec du -b {} \; 2>/dev/null | grep -v /proc/ | cut -f1  |   xargs -L 1 echo -n +  |cut -c2- |bc

Parentesi su find!!!

serve a cercare file nel filesystem

output: elenco di nomi di file (con pathname)

find PATHPARTENZA  CRITERI...
find / -name 'p*'

esegue comando:

find PATHPARTENZA  CRITERI... -exec CMD
find / -name 'p*' -exec du {} \;
pub/master/home.txt · Last modified: 2007/06/13 14:33 by atrent
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0