Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curs-06 Uso
Curs-06 Uso
proces ier
utilizator
kernel
uid uid uid
pid inode
http://crazyhyena.com/funny-file-system-is-the-prehistoric-google_en
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
I eye-candy
I us, or de folosit, intuitivă
I ascunderea complexităt, ii
I personalizabilă (customizable)
I GUI
I multimedia
I grafică 3D
I jocuri
I Internet browsing
I CLI
I administrare sistem: utilizatori, sistem de fis, iere, ret, ea, procese
I scripting/automatizare, eficientizare
I aplicat, ii s, i dispozitive dedicate
I ı̂n general vom folosi ambele tipuri de interese, depinzând de
nevoie
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
Consola Python
user@host$ python
Python 2.7.8 (default, Oct 7 2014, 17:59:21)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4**9
262144
>>> hex(157)
’0x9d’
>>> 0x9d
157
I prompt
I poate fi un caracter precum $, %, #, >
I la prompt se introduc comenzi
I prompt
I poate fi un caracter precum $, %, #, >
I la prompt se introduc comenzi
I comenzile sunt s, iruri de caractere
I prompt
I poate fi un caracter precum $, %, #, >
I la prompt se introduc comenzi
I comenzile sunt s, iruri de caractere
I numele comenzii oferă intuit, ie legat de ce face comanda
I prompt
I poate fi un caracter precum $, %, #, >
I la prompt se introduc comenzi
I comenzile sunt s, iruri de caractere
I numele comenzii oferă intuit, ie legat de ce face comanda
I comenzile pot avea argumente (opt, iuni pentru comandă)
I argumentele se separă prin spat, ii
I command completion
I ajutor, documentare
I istoric de comenzi
I scurtături de taste pentru editare rapidă de comenzi: s, terge
cuvânt, mergi la ı̂nceput de comandă etc.
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
I terminal = dispozitiv
I terminal = dispozitiv
I shell = proces
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
proces
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
proces
I daemonii nu au acces la nici un terminal (nu au intrare/ies, ire
standard)
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
proces
I daemonii nu au acces la nici un terminal (nu au intrare/ies, ire
standard)
I shell – permite rularea de comenzi
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
proces
I daemonii nu au acces la nici un terminal (nu au intrare/ies, ire
standard)
I shell – permite rularea de comenzi
I prompt, comenzi, operatori shell
I terminal = dispozitiv
I shell = proces
I terminal – cadru, interfat, ă pentru rularea unui shell
I fizic (tastatură, monitor)
I virtual (ALT+CTRL+F1. . . F6) – tty0, tty1, . . . , tty6
I emulator de terminal – pts/0, pts/1, . . .
I folosit pentru intrarea/ies, irea standard (stdin/stdout) a unui
proces
I daemonii nu au acces la nici un terminal (nu au intrare/ies, ire
standard)
I shell – permite rularea de comenzi
I prompt, comenzi, operatori shell
I bash, zsh, tcsh
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
I command completion
I folosirea tastei TAB sau a apăsării de două ori TAB TAB
I completarea comenzii s, i a argumentelor acesteia
I istoricul comenzilor
I history: vizualizarea istoriei
I Ctrl+p (sau tastă sus), Ctrl+n (sau tastă jos): anterioara s, i
următoarea comandă
I Ctrl+r: reverse search, căutare ı̂napoi
I biblioteca readline (libreadline)
I keyboard shortcuts (eficient, ă ı̂n utilizare)
I documentare: man bash s, i căutare după Commands for
I head, tail: afis, ează doar primele/ultimele linii din fis, ier
I wc: numără liniile din fis, ier
I grep: extrage liniile care cont, in o anumită expresie
I tr: transformă caractere ı̂n alte caractere
I cut: extrage doar anumite coloane
I sort: sortează liniile primite la intrare
I uniq: unicizează liniile de la intrare (elimină duplicatele);
intrările trebuie să fie sortate
I seq: generează numere ı̂ntre anumite intervale
→ s, terge orice nu este literă sau cifră dintr-un s, ir infinit generat aleator
→ s, terge orice nu este literă sau cifră dintr-un s, ir infinit generat aleator
→ s, terge orice nu este literă sau cifră dintr-un s, ir infinit generat aleator
→ s, terge orice nu este literă sau cifră dintr-un s, ir infinit generat aleator
→ s, terge orice nu este literă sau cifră dintr-un s, ir infinit generat aleator
→ extrage primele 8 caractere tipăribile (literă sau cifră) dintr-un s, ir generat aleator;
la final afis, ează un caracter newline
I operatori
I redirectare: >, <, &>, >>, <<
I secvent, iere, ı̂nlănt, uire: ;, ||, &&, |, &
I expandare: $
I comentare: #
I citare (escaping): ’, ", \
I separare: blank (spat, iu)
I globbing: ?, *, [, ], {, }
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
Exemple de escaping
ana@host:/tmp/uso$ ls -l
total 0
-rw-r--r-- 1 ana ana 0 2007-11-18 00:14 alfa beta.txt
-rw-r--r-- 1 ana ana 0 2007-11-18 00:14 d.txt
ana@host:/tmp/uso$ ls alfa beta.txt
ls: alfa: No such file or directory
ls: beta.txt: No such file or directory
ana@host:/tmp/uso$ ls "alfa beta.txt"
alfa beta.txt
ana@host:/tmp/uso$ ls ’alfa beta.txt’
alfa beta.txt
ana@host:/tmp/uso$ ls alfa\ beta.txt
alfa beta.txt
ana@host:/tmp/uso$ echo $a
4
ana@host:/tmp/uso$ echo "$a"
4
ana@host:/tmp/uso$ echo $a
$a
ana@host:/tmp/uso$ echo ’$a’
$a
Expandarea variabilelor
ana@host:-$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/PacketTracer5
ana@host:-$ echo $PATH | tr ’:’ ’\n’
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
/usr/local/PacketTracer5
Expandarea comenzilor
ana@host:~$ ls
ana@host:~/tmp$ touch $(seq -f "file-%02g.txt" 1 20)
ana@host:~/tmp$ touch $(seq -f "file-%02g.txt" 1 20)
ana@host:~$ ls
file-01.txt file-03.txt file-05.txt file-07.txt file-09.txt file-11.txt file-13.txt [...]
file-02.txt file-04.txt file-06.txt file-08.txt file-10.txt file-12.txt file-14.txt [...]
Expandarea aritmetică
ana@host:~$ a=3
ana@host:~$ ((a++))
ana@host:~$ b=$((a+1))
ana@host:~$ echo $b
5
Nevoia de CLI
Interfat, a cu utilizatorul
Shell
Sumar
I Amazon.com, Inc.
I comert, electronic (online retailer)
I fondată ı̂n 1994, online ı̂n 1995
I init, ial librărie online
I Amazon Kindle
I ı̂n 2010, vânzările de e-books au depăs, it vânzările de cărt, i ı̂n
format printat
I Amazon Web Services – servicii de stocare s, i rulare, cloud
computing
I Amazon EC2 – ı̂nchiriere de mas, ini virtuale
I Amazon S3 – servicii de stocare
I documentare
I interfat, ă
I libreadline
I GUI
I >, <, &, |, ||, &&, ;
I CLI
I ”, ’, \,$
I prompt
I one liner
I comandă, argumente
I variabile
I command completion
I variabile de mediu
I istoric de comenzi
I escaping
I shell
I expandare
I terminal
I globbing
I http://en.wikipedia.org/wiki/User_interface
I http://www.gnu.org/software/bash/manual/bashref.html
I http://mywiki.wooledge.org/BashFAQ
I http://www.shelldorado.com/
I http://www.pixelbeat.org/cmdline.html