Documente Academic
Documente Profesional
Documente Cultură
CSE Dep
1/45
Moto
It was a mistake to think that GUIs ever would, could, or even should, eliminate CLIs. Jerey Snover (Architect of Windows PowerShell)
CSE Dep
2/45
Procese
proces
program name
ier utilizator
username lename
utilizator kernel
uid uid uid
pid
inode
CSE Dep
3/45
Procese
CSE Dep
4/45
Suport de curs
CSE Dep
5/45
CSE Dep
7/45
Interfat , a cu utilizatorul
interact , iunea utilizatorului cu aplicat , iile s , i cu sistemul de operare ascunde detaliile sistemului de operare aspecte importante us n utilizare (ease of use ) , urint ,a ecient n utilizare ,a acomodarea rapid a: intuitiv a, natural a interact , iunea cu sistemul de calcul Human Machine Interface
CSE Dep
8/45
Tipuri de interfet ,e
CSE Dep
9/45
CLI
CSE Dep
11/45
CLI (cont.)
CSE Dep
12/45
Shell
aplicat , ie care permite accesul la resursele sistemului de operare poate grac (GUI) sau n linia de comand a (CLI) n Windows shell-ul este Explorer (GUI) n Unix
shell GUI: X Window System + KDE/GNOME/Xfce shell-uri CLI: bash, tcsh, zsh, dash
terminalul este (pseudo)dispozitivul n care ruleaz a shell-ul n continuare, shell = shell CLI
CSE Dep
13/45
terminal = dispozitiv shell = proces terminal cadru, interfat a pentru rularea unui shell ,
zic (tastatur a, monitor) virtual (ALT+CTRL+F1. . . F6) tty0, tty1, . . . , tty6 emulator de terminal pts/0, pts/1, . . . folosit pentru intrarea/ies , irea standard (stdin /stdout ) a unui proces daemonii nu au acces la nici un terminal (nu au intrare/ies , ire standard)
CSE Dep
14/45
Comenzi s , i argumente
Keep it simple!
nume simple, uneori neintuitive: cp, rm, ls, vi, ps
CSE Dep
15/45
se introduce o comand a (ls) shell-ul identic a executabilul asociat (/bin/ls) este creat un nou process shell (/bin/bash) (fork) procesul creat se ,,transform a conform cu nou executabil intrarea standard este controlat a de noul proces dup a execut , ia comenzii, procesul moare s , i controlul revine shell-ului
CSE Dep
16/45
Facilit at , i shell
As a , are colorat
ls --color=auto
Personalizare prompt
razvan@asgard:~/junk/uso/curs8/tmp$ echo $PS1 $debian_chroot:+($debian_chroot)\u@\h:\w\$
command completion
folosirea tastei TAB ecient a , completarea comenzii s , i a argumentelor acesteia /etc/bash_completion
operatori redirectare: >, <, &>, >>, << secvent nl ant , iere, , uire: ;, ||, &&, |, & expandare: $ comentare: # citare (escaping): , ", \ separare: blank (spat , iu) globbing: ?, *, [, ], {, }
CSE Dep
19/45
Operatori shell
du -hs &
CSE Dep
20/45
CSE Dep
21/45
/dev/urandom generator de caractere aleatoare < /dev/urandom redicteaz a intrarea standard din s , ierul /dev/urandom tr transliterate (comand a shell de tip ltru de text) -d delete (s , terge) -c completement -c A-Za-z0-9 orice nu este liter a sau cifr a s a sau cifr a dintr-un s , terge orice nu este liter , ir innit generat aleator head extrage primele elemente -c 8 opt caractere extrage primele 8 caractere extrage primele 8 caractere tip aribile (liter a sau cifr a) dintr-un s , ir generat aleator; la nal as a un caracter newline , eaz
CSE Dep Cursul 5, Interfat n linia de comand a ,a 22/45
Variabile shell
folosirea valorii unei variabile se realizeaz a prin prexarea cu simbolul $ (dollar ) variabilele shell nu au tip ( ntreg, s , ir, pointer)
CSE Dep
24/45
documentat autare dup a Special Parameters , ie: man bash, s , i c $? valoarea de retur a ultimei comenzi $$ PID-ul procesului shell curent $! PID-ul ultimului proces (job) lansat n background $_ ultimul argument al ultimei comenzi
CSE Dep
25/45
Variabile de mediu
denesc contextul de rulare a unui proces sunt mos , tenite de procesele copil exemple: PATH, HOME, PWD, USERNAME, SHELL operat , ii specice cu variabile de mediu
listare: env, printenv congurare variabil a ca variabil a de mediu (exportare)
export myvar export myvar=42 # init and export
CSE Dep
26/45
CSE Dep
27/45
Citare (escaping)
Exemple de escaping
razvan@asgard:/tmp/uso$ ls -l total 0 -rw-r--r-- 1 razvan razvan 0 2007-11-18 00:14 alfa beta.txt -rw-r--r-- 1 razvan razvan 0 2007-11-18 00:14 d.txt razvan@asgard:/tmp/uso$ ls alfa beta.txt ls: alfa: No such file or directory ls: beta.txt: No such file or directory razvan@asgard:/tmp/uso$ ls "alfa beta.txt" alfa beta.txt razvan@asgard:/tmp/uso$ ls alfa beta.txt alfa beta.txt razvan@asgard:/tmp/uso$ ls alfa\ beta.txt alfa beta.txt razvan@asgard:/tmp/uso$ echo $a 4 razvan@asgard:/tmp/uso$ echo "$a" 4 razvan@asgard:/tmp/uso$ echo $a $a razvan@asgard:/tmp/uso$ echo $a $a
CSE Dep
29/45
Expandarea n shell
Expandarea variabilelor
razvan@asgard:~$ a=3 razvan@asgard:~$ echo $a 3
Expandarea comenzilor
razvan@asgard:~$ ls | wc -l 17 razvan@asgard:~$ num=$(ls | wc -l) razvan@asgard:~$ echo $num 17
Expandarea aritmetic a
razvan@asgard:~$ razvan@asgard:~$ razvan@asgard:~$ razvan@asgard:~$ 5 a=3 ((a++)) b=$((a+1)) echo $b
Globbing
tcp_new_sock.c
tcp_new_sock.o
CSE Dep
33/45
Globbing (cont.)
lename expansion (s , i altele) diferit de expresii regulate (vezi n continuare) * orice caracter de oric ate ori ? orice caracter [abcde], [a-e] set de caractere [^abc] diferit de setul de caractere {jpg,png,bmp} select ntre variante , ie
CSE Dep
34/45
Expresii regulate
Listeaz a s , ierele ce cont , in linii care cont , irul #include <stdio.h> , in doar s
razvan@anaconda:/tmp/for$ grep -r ^#include <stdio\.h>$ /usr/include /usr/include/argp.h:#include <stdio.h> /usr/include/mntent.h:#include <stdio.h> /usr/include/printf.h:#include <stdio.h>
CSE Dep
35/45
CSE Dep
36/45
1. expresie regulat a pentru adrese MAC (0C:A3:11:CF:D1) 2. expresie regulat a pentru grup a de student la Calculatoare (332CB) 3. expresie regulat a pentru nume de variabile C
ncep cu litere sau cu underscore pot cont , ine litere, underscore sau cifre
CSE Dep
37/45
edit , ia a 3-a, 2002 enciclopedie a facilt at , ilor Unix 1100 de pagini, 51 de capitole pentru power users utilizatori avansat a , i care vor s foloseasc a la maxim sistemul capitole excelente despre shell s , i shell scripting
CSE Dep
39/45
Rob Pike
c art mpreun a cu Ken Thompson, Brian Kernighan ,i s , i proiecte UTF-8 lucreaz a la Google
CSE Dep Cursul 5, Interfat n linia de comand a ,a 40/45
Amazon
Amazon.com, Inc. comert , electronic (online retailer) fondat a n 1994, online n 1995 init arie online , ial libr Amazon Kindle n 2010, v anz arile de e-books au dep as anz arile de c art n , it v ,i format printat Amazon Web Services servicii de stocare s , i rulare, cloud computing
Amazon EC2 nchiriere de mas , ini virtuale Amazon S3 servicii de stocare
CSE Dep
41/45
Windows PowerShell
CLI pentru Windows ruleaz a de la Windows XP SP2 n sus integrare cu .NET framework cmdlets, aplicat , ii .NET automatizare scripting pipeline de obiecte (objects ), nu de s n , iruri de caractere ca Unix
CSE Dep
42/45
Cuvinte cheie
interfat a , CLI shell terminal comand a, argumente prompt >, <, &, |, ||, &&, ; command completion
, , \,$ variabile variabile de mediu escaping expandare globbing expresii regulate grep
CSE Dep
43/45
Resurse utile
CSE Dep
44/45