Cursul #5 - Interfața în linia de comandă PDF

Summary

Cursul #5, Interfața în linia de comandă, oferă o introducere în comenzi shell, utilizator și sistem de operare . Sunt furnizate informații utile, exemple, și resurse.

Full Transcript

Cursul #5 Interfața în linia de comandă 1 It was a mistake to think that GUIs ever would, could, or even should, eliminate CLIs. Jeffrey Snover (Architect of Windows PowerShell) 2 Suport de cu...

Cursul #5 Interfața în linia de comandă 1 It was a mistake to think that GUIs ever would, could, or even should, eliminate CLIs. Jeffrey Snover (Architect of Windows PowerShell) 2 Suport de curs Capitolul 7 – Interfața în linia de comandă https://github.com/systems-cs-pub-ro/carte-uso /releases 3 Utilizatorul și sistemul de operare app1 app2 app3 sistem de operare hardware 4 Shell-ul app1 app2 app3 shell sistem de operare hardware 5 Shell și proces utilizatorul folosește interfața shell-ului butoane, click (GUI) comenzi cu parametri (CLI) shell-ul identifică un fișier executabil shell-ul creează un proces copil procesul copil încarcă informațiile din executabil procesul astfel creat e noul proces/aplicație 6 Shell GUI vs CLI interfață intuitivă interfață text, culori, simplă personalizare opțiuni complexe eye-candy comenzi, parametri ferestre consum redus de butoane resurse meniu consecvență resurse consumate 7 Interfețe în linia de comandă shell-ul CLI al unui sistem de operare (Bash, zsh, tcsh) consola GRUB (bootloader) consola Python consola de configurare de echipamente de rețea (Cisco IOS, Juniper JunOS) consola Matlab, AutoCAD, R consolă de jocuri (FPS) 8 De ce CLI? eficient consecvent posibilitate automatizare sarcini (scripting) ușor de adăugat o opțiune nouă o comandă nouă = un executabil nou 9 Funcționare CLI utilizatorul introduce comanda interfața traduce comanda într-un apel intern sau de executabil intern creează un proces afișează rezultatul rulării comenzii 10 Shell CLI prompt pentru utilizator comenzile sunt: interne: sunt interpretate de shell, nu se caută executabile externe: cd, exit, alias externe: căi către executabile http://www.pixelbeat.org/cmdline.html 11 Bash shell implicit în Linux Bourne Again Shell succesor al Sh (Bourne Shell) multe funcționalități sunt comune cu alte shell-uri: zsh, tcsh executabilul este /bin/bash 12 Funcționare shell shell-ul traduce comanda în calea unui executabil variabila de mediu PATH se iau căile din variabila de mediu PATH se localizează executabilul se creează un proces copil se încarcă executabilul se așteaptă încheierea rulării executabilului se reafișează promptul utilizatorului 13 Foreground și background un singur proces rulează în foreground oricâte în background în background pot fi suspendate 14 Foreground și background (2) 15 Shell și terminal 16 Funcționalități terminal tab-uri de terminal Ctrl+d: închide terminalul command history scrolling transparență blinking cursor, terminal bell 17 Funcționalități shell completare comenzi (command completion) Tab Tab Tab Alt+. istoricul de comenzi (reverse history search) Ctrl+r personalizare prompt variabila PS1 editarea comenzilor (command line editing) deplasare: Ctrl+a, Ctlr+e, Ctrl+f, Ctrl+b, Alt+f, Alt+b ștergere: Ctrl+c, Ctrl+k, Ctlr+u, Alt+d, Alt+Backspace 18 Caractere speciale în shell spațiu (blank): separator de argumente #: comentariu *: wildcard &, |, ; - înlănțuire comenzi >, < - redirectări $ - expandări ’, ”, \ - escapări https://explainshell.com 19 Globbing ana@host:~/code/tests$ ls Makefile endian.c struct_bit struct_bit.o tcp_new_sock.c endian endian.o struct_bit.c tcp_new_sock tcp_new_sock.o ana@host:~/code/tests$ ls *.c endian.c struct_bit.c tcp_new_sock.c ana@host:~/code/tests$ ls end?an.c endian.c ana@host:~/code/tests$ ls [a-s]*.c endian.c struct_bit.c ana@host:~/code/tests$ ls *.{c,o} endian.c endian.o struct_bit.c struct_bit.o tcp_new_sock.c tcp_new_sock.o 20 Escapări 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 21 Expandări ana@host:-$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/PacketTracer5 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 [...] ana@host:~$ a=3 ana@host:~$ ((a++)) ana@host:~$ b=$((a+1)) ana@host:~$ echo $b 5 22 Redirectări > - redirectarea ieșirii standard < - redictarea intrării standard 2> - redirectarea ieșirii de eroare standard pentru redirectare formatul comenzii este command operator file în cazul comunicării între procese forma este command1 |command2 23 Înlănțuirea comenzilor ana@host:~$ svn log | less root@asgard:~# apt-get update ; apt-get upgrade ; apt-get dist-upgrade ana@host:~$ id ana &> /dev/null && echo "da" || echo "nu" da ana@host:~$ id atilla &> /dev/null && echo "da" || echo "nu" nu 24 One linere înlănțuirea mai multor comenzi, de obicei prin pipe ieșirea uneia e folosită de alta și tot așa quick’n’dirty funcționalități mai complexe într-o singură linie 25 Filtre de text prelucratoare de text din alte fișiere din alte comenzi comenzi generatoare de text ps, dmesg, find, last, strace filtre/prelucratoare de text cat, tac, rev, nl Head, tail cut, tr sort, uniq, wc grep sed, awk 26 cat, tac, rev, nl cat: afișare conținut fișier tac: afișare conținut fișier în ordinea inversă a liniilor rev: afișare linii inversate (primul element de pe linie devine ultimul) nl: afișare număr de linie 27 head, tail head –n 10: primele 10 linii head –n -10: toate mai puțin ultimele 10 linii tail –n 10: ultimele 10 linii tail –n +11: începând cu linia 11 28 cut, tr cut –d ‘ ‘ –f 1 cut –d ’:’ –f 2,3 tr ‘ ‘ ‘,’ tr –d ‘:’ 29 sort, uniq, wc sort: sortează intrările sort –r –n: sortează invers, numeric uniq: elimină duplicatele (trebuie sortate mai întâi) wc: numără elementele wc –c: numără caracterele wc –l: numără liniile 30 Exemplu 31 grep extrage liniile care se potrivesc cu parametrul ps –ef | grep misc grep –r ”main()” code/ grep ‘^admin:’ /var/log/messsages 32 Expresii regulate mod de a potrivi (match) mai multe șiruri a*: a de oricâte ori (posibil niciodată) a+: a de oricâte ori, măcar o dată a?: a o dată sau nici o dată ^: început de linie $: sfârșit de linie [a-z]: de la a la z [^a-z]: orice mai puțin de la a la z.: orice https://regex101.com 33 Expresii regulate [_a-zA-Z][_0-9a-zA-Z]*: nume de variabilă/funcție 07[:digit:]\{8\}: număr de telefon [:upper:][:alpha:]+: numele unei persoane [:digit:]\{2\}\.(pdf|png|svg): nume fișiere din două cifre și diferite extensii ([:digit:]|2[0-3]):[0-5][:digit:]: timp în ore și minute ^[:upper:]\{1,10\}$: linii conținând maxim 10 majuscule 34 Windows Power Shell CLI pentru Windows rulează de la Windows XP SP2 în sus integrare cu.NET framework cmdlets: aplicații.NET automatizare, scripting pipeline de obiecte (objects), nu de șiruri de caractere ca în Unix 35 Resurse utile http://www.pixelbeat.org/cmdline.html https://explainshell.com https://tldr.ostera.io/ https://regex101.com/ https://mywiki.wooledge.org/BashFAQ (pentru avansați) 36 Unix Power Tools ediția a 3-a, 2002 enciclopedie a facilităților Unix 1100 de pagini, 51 de capitole pentru power users - utilizatori avansați care vor să folosească la maxim sistemul capitole excelente despre shell și shell scripting 37 Rob Pike parte a echipei Unix ulterior, dezvoltator la Plan 9 și Inferno cărți și proiecte împreună cu Ken Thompson, Brian Kernighan UTF-8 38 Amazon Amazon.com, Inc. comerț electronic (online retailer) fondată în 1994, online în 1995 inițial librărie online Amazon Kindle în 2010, vânzările de e-books au depășit vânzările de cărți în format printat Amazon Web Services: servicii de stocare și rulare, cloud computing Amazon EC2: închiriere de mașini virtuale Amazon S3: servicii de stocare 39 Cuvinte cheie interfață editare comenzi shell globbing GUI escaping CLI expandare Bash redirectare terminal înlănțuire istoric one-liner completare comenzi filtru de text expresii regulate 40

Use Quizgecko on...
Browser
Browser