Sunteți pe pagina 1din 37

Cursul 5

Interfat n linia de comand a ,a

Utilizarea Sistemelor de Operare (USO) 29 octombrie 2012


Departamentul de Calculatoare

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

2/45

Procese

proces
program name

ier utilizator
username lename

utilizator kernel
uid uid uid

pid

inode

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

3/45

Procese

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

4/45

Suport de curs

Suport (Introducere n sisteme de operare)


Capitolul 12 Shell scripting
Sect , iunile 12.1, 12.2, 12.6, 12.7

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

5/45

Structura unui sistem de calcul

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

8/45

Tipuri de interfet ,e

GUI - Graphical User Interface


WIMP (window, icon, menu, pointing device) eye-candy us a , or de folosit, intuitiv ascunderea complexit at , ii

CLI Command Line Interface


execut ndeplinirea sarcinilor , ia de comenzi pentru ecient a automatizarea sarcinilor resurse consumate reduse

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

9/45

CLI

http://www.zhihua-lai.com/acm/ linux-shell-programming-yes/ http://en.wikipedia.org/wiki/File: Windows_PowerShell_1.0_PD.png

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

11/45

CLI (cont.)

prompt + comenzi tipuri de utilizatori


programatori administratori de sistem/ret , ea utilizatori avansat , i din punct de vedere tehnic

shell-ul este un caz particular de CLI alte exemple de CLI


consola consola consola consola consol a GRUB (bootloeader) Python de congurare de echipamente de ret , ea Matlab, AutoCAD de jocuri (FPS)

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

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

Cum putem rula o sesiune de shell n Linux?


terminal virtual (ALT+CTRL+F1...F6) emulator de terminal (konsole, gnome-terminal, xterm etc.) conexiune de la distant a ,

terminalul este (pseudo)dispozitivul n care ruleaz a shell-ul n continuare, shell = shell CLI

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

13/45

Terminal vs. shell

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)

shell permite rularea de comenzi


prompt, comenzi, operatori shell bash, zsh, tcsh

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

14/45

Comenzi s , i argumente

Promptul unui shell


razvan@asgard:~$ whoami razvan

comenzile pot avea argumente (opt a) , iuni pentru comand


argumentele se separ a prin spat , ii

Keep it simple!
nume simple, uneori neintuitive: cp, rm, ls, vi, ps

Cum te documentezi legat de o comand a?


--help comenzile man/info Google (,,tutorial, ,,faq, ,,how to, ,,example, ,,usage)

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

15/45

Funct , ionarea unui shell

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

Cursul 5, Interfat n linia de comand a ,a

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

biblioteca readline (libreadline)


keyboard shortcuts (ecient a n utilizare) , documentare: man bash s i c a utare dup a Commands for ,
CSE Dep Cursul 5, Interfat n linia de comand a ,a 18/45

Caractere speciale shell

operatori redirectare: >, <, &>, >>, << secvent nl ant , iere, , uire: ;, ||, &&, |, & expandare: $ comentare: # citare (escaping): , ", \ separare: blank (spat , iu) globbing: ?, *, [, ], {, }

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

19/45

Operatori shell

Redirectarea intr arii/ies , irii: >, <


razvan@asgard:~/junk/uso/curs8/tmp$ ls -l > out.txt razvan@asgard:~/junk/uso/curs8/tmp$ wc -l < out.txt 4

Comunicat ntre procese: | , ia


razvan@asgard:~/junk/uso/curs8/tmp$ ls -l | wc -l 4

Rularea unui proces n background: &


razvan@asgard:~$ du -hs & [1] 15766 razvan@asgard:~$ jobs [1]+ Running

du -hs &

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

20/45

Operatori shell (cont.)

Secvent , ierea comenzilor: ;


root@asgard:~# apt-get update ; apt-get upgrade ; apt-get dist-upgrade

Secvent a: &&, || , ierea condit , ional


razvan@asgard:~$ grep razvan /etc/passwd &> /dev/null && echo "da" || echo "nu" da razvan@asgard:~$ grep atilla /etc/passwd &> /dev/null && echo "da" || echo "nu" nu

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

21/45

Ce efect are comanda de mai jos?


me@local:~$ < /dev/urandom tr -d -c A-Za-z0-9 | head -c 8 ; echo

/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

Init n shell , ializare variabile


razvan@einherjar:~$ a=10 razvan@einherjar:~$ b=ana razvan@einherjar:~$ c="ana are mere" razvan@einherjar:~$ d="$b $a" razvan@einherjar:~$ echo $a, $b, $c, $d 10, ana, ana are mere, ana 10

nu se foloses nainte s a egal la init , te spat , iu , i dup , ializare


s-ar considera comand a cu argumente

folosirea valorii unei variabile se realizeaz a prin prexarea cu simbolul $ (dollar ) variabilele shell nu au tip ( ntreg, s , ir, pointer)

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

24/45

Variabile speciale shell

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

Cursul 5, Interfat n linia de comand a ,a

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

persistent arii (startup conguration) , a congur


n s , ierul /.bashrc

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

26/45

Variabile de mediu (cont.)


n Windows
per sistem: Control Panel System Advanced Environment Variables per utilizator: Control Panel Performance and Maintenance System

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

29/45

Citare (escaping) (cont.)


escaping folosind \ (backslash)
fort a forma literal a a caracterului urm ator , eaz rol special n cazul comenzii echo -e
razvan@valhalla:~$ echo -e "a\tb\tc" a b c

escaping folosind " (ghilimele, quote )


escapeaz a textul dintre ghilimele nu escapeaz a expandarea
razvan@valhalla:~$ echo "* ; && | > $sir" * ; && | > file.txt

(apostrof, single quote )


escapeaz a orice ntre apostroafe
razvan@valhalla:~$ echo \\\$a$bc$de \\\$a$bc$de
CSE Dep Cursul 5, Interfat n linia de comand a ,a 30/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

Alte forme de expandare (s , iruri)


razvan@asgard:~$ sir="file.txt" razvan@asgard:~$ echo $sir/txt/dat file.dat
CSE Dep Cursul 5, Interfat n linia de comand a ,a 32/45

Globbing

Folosire globbing n comenzi shell


razvan@asgard:~/code/tests$ ls Makefile endian.c struct_bit struct_bit.o endian endian.o struct_bit.c tcp_new_sock razvan@asgard:~/code/tests$ ls *.c endian.c struct_bit.c tcp_new_sock.c razvan@asgard:~/code/tests$ ls end?an.c endian.c razvan@asgard:~/code/tests$ ls [a-s]*.c endian.c struct_bit.c razvan@asgard:~/code/tests$ ls *.c,o endian.c endian.o struct_bit.c struct_bit.o tcp_new_sock.c tcp_new_sock.o

tcp_new_sock.c

tcp_new_sock.o

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

34/45

Expresii regulate

Extrage liniile care ncep cu s , irul ana


razvan@anaconda:/tmp/for$ grep ^ana /etc/passwd ana:x:1118:1026:Ana Gainaru:/home/students/ana:/bin/bash

Extrage liniile care cont , irul ana , in s


razvan@anaconda:/tmp/for$ grep ana /etc/passwd list:x:38:38:Mailing List Manager:/var/list:/bin/sh roxana:x:1004:1004:Roxana Savulescu,,,:/home/users/roxana:/bin/bash roxanam:x:1030:1026:Roxana Murarus:/home/students/roxanam:/bin/bash [...]

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

Cursul 5, Interfat n linia de comand a ,a

35/45

Expresii regulate (cont.)


diferite de globbing x* caracterul x de oric ate ori (posibil niciodat a) x+ caracterul x de oric ate ori (cel put a) , in o dat x? caracterul x cel mult o dat a . (punct) orice caracter ^ nceput de r and $ sf ars and , it de r [a-z] set de caractere [^a-z] set complementar de caractere a|b caracterul a sau b Atent , ie: la grep unele trebuie escapate (\+, \|)

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

36/45

Exercit , ii de expresii regulate

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

4. expresie regulat a pentru nume valide Windows


nu ncep cu spat , iu sau punct nu cont , in \, /, *, ?, :, , <, >, |

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

37/45

Unix Power Tools

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

Cursul 5, Interfat n linia de comand a ,a

39/45

Rob Pike

parte a echipei Unix ulterior, dezvoltator la Plan 9 s , i Inferno


sisteme de operare unde totul este un s , ier pe Unix aproape totul este un s , ier

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

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

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

Cursul 5, Interfat n linia de comand a ,a

43/45

Resurse utile

http://en.wikipedia.org/wiki/User_interface http://www.gnu.org/software/bash/manual/bashref.html http://mywiki.wooledge.org/BashFAQ http://www.shelldorado.com/ http://www.pixelbeat.org/cmdline.html http://www.regular-expressions.info/

CSE Dep

Cursul 5, Interfat n linia de comand a ,a

44/45

S-ar putea să vă placă și

  • CV Tip Simplu
    CV Tip Simplu
    Document1 pagină
    CV Tip Simplu
    AnNe MaRie
    100% (1)
  • Culegere de Ghicitori PT Copii
    Culegere de Ghicitori PT Copii
    Document70 pagini
    Culegere de Ghicitori PT Copii
    riana 77
    100% (2)
  • Lab7 USO
    Lab7 USO
    Document12 pagini
    Lab7 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab6 USO
    Lab6 USO
    Document10 pagini
    Lab6 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab4 USO
    Lab4 USO
    Document11 pagini
    Lab4 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab9 USO
    Lab9 USO
    Document9 pagini
    Lab9 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab11 USO
    Lab11 USO
    Document12 pagini
    Lab11 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab 10 USO
    Lab 10 USO
    Document11 pagini
    Lab 10 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab8 USO
    Lab8 USO
    Document8 pagini
    Lab8 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab3 USO
    Lab3 USO
    Document13 pagini
    Lab3 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab5 USO
    Lab5 USO
    Document9 pagini
    Lab5 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 13 Handout
    Curs 13 Handout
    Document38 pagini
    Curs 13 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 04 Handout
    Curs 04 Handout
    Document43 pagini
    Curs 04 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Lab2 USO
    Lab2 USO
    Document13 pagini
    Lab2 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab12 USO
    Lab12 USO
    Document5 pagini
    Lab12 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab1 USO
    Lab1 USO
    Document5 pagini
    Lab1 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 11 Handout
    Curs 11 Handout
    Document37 pagini
    Curs 11 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 12 Handout
    Curs 12 Handout
    Document36 pagini
    Curs 12 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 02 Handout
    Curs 02 Handout
    Document39 pagini
    Curs 02 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Curs 09 Handout
    Curs 09 Handout
    Document40 pagini
    Curs 09 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 00 USO Facultatea Politehnica Bucuresti
    Curs 00 USO Facultatea Politehnica Bucuresti
    Document26 pagini
    Curs 00 USO Facultatea Politehnica Bucuresti
    Daniela Dragan
    Încă nu există evaluări
  • Curs 10 Handout
    Curs 10 Handout
    Document41 pagini
    Curs 10 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 06 Handout
    Curs 06 Handout
    Document42 pagini
    Curs 06 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • USO Curs 07 Handout
    USO Curs 07 Handout
    Document38 pagini
    USO Curs 07 Handout
    Alexandru Grigore
    Încă nu există evaluări
  • Curs 03 Handout
    Curs 03 Handout
    Document41 pagini
    Curs 03 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Comenzi Latex
    Comenzi Latex
    Document2 pagini
    Comenzi Latex
    mari_eu
    Încă nu există evaluări
  • Latex Prin Exemple
    Latex Prin Exemple
    Document212 pagini
    Latex Prin Exemple
    Denis Ibram
    Încă nu există evaluări
  • Curs 08 Handout
    Curs 08 Handout
    Document36 pagini
    Curs 08 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 01 Handout
    Curs 01 Handout
    Document28 pagini
    Curs 01 Handout
    Sarah Hernandez
    Încă nu există evaluări