Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:new:05-cli:need-to-know [2018/10/30 09:46]
liza_elena.babu
uso:laboratoare:new:05-cli:need-to-know [2020/11/10 21:53] (current)
liza_elena.babu [Filtre de procesare]
Line 6: Line 6:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ fdisk -l+student@uso:​~/​uso-lab$ fdisk -l
 fdisk: cannot open /dev/loop0: Permission denied fdisk: cannot open /dev/loop0: Permission denied
 fdisk: cannot open /dev/loop1: Permission denied fdisk: cannot open /dev/loop1: Permission denied
Line 29: Line 29:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ sudo !!+student@uso:​~/​uso-lab$ sudo !!
 sudo fdisk -l sudo fdisk -l
 [sudo] password for student: [sudo] password for student:
Line 56: Line 56:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ x=4 +student@uso:​~/​uso-lab$ x=4 
-student@uso:​~/​uso.git/$ echo $x+student@uso:​~/​uso-lab$ echo $x
 4 4
 </​code>​ </​code>​
Line 65: Line 65:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ echo $x+student@uso:​~/​uso-lab$ echo $x
  
-student@uso:​~/​uso.git/$+student@uso:​~/​uso-lab$
 </​code>​ </​code>​
  
Line 74: Line 74:
 </​note>​ </​note>​
  
-Vom crea acum un scipt care să folosească variabila ''​x''​. Urmăriți pașii de mai jos pentru a realiza acest +Vom crea acum un script ​care să folosească variabila ''​x''​. Urmăriți pașii de mai jos pentru a realiza acest 
 lucru. Creați un script cu numele ''​script.sh''​ care să conțină următoarele linii: lucru. Creați un script cu numele ''​script.sh''​ care să conțină următoarele linii:
  
Line 84: Line 84:
  
 Acest script afișează valoarea variabilei ''​x''​ definită mai devreme. Dați drept de execuție pentru ​ Acest script afișează valoarea variabilei ''​x''​ definită mai devreme. Dați drept de execuție pentru ​
-acest script folosind comanda ''​chmod''​ și asigurați-vă că aveți drept să îl rulați. Pentru a rula +acest script folosind comanda ''​chmod''​ și asigurați-vă că aveți drept să îl rulați. Pentru a rula un 
 script folosim comanda ''​./​script.sh''​. script folosim comanda ''​./​script.sh''​.
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ ./script.sh+student@uso:​~/​uso-lab$ ./script.sh
  
-student@uso:​~/​uso.git/$+student@uso:​~/​uso-lab$
 </​code>​ </​code>​
  
 Observăm că deși variabila ''​x''​ este definită din acest terminal, la rulare nu obținem nicio valoare. Acest  Observăm că deși variabila ''​x''​ este definită din acest terminal, la rulare nu obținem nicio valoare. Acest 
-lucru nu se întâmplă deoarece variabila ''​x'',​ așa cum a fost deinită, nu este vizibilă subproceselor pornite ​+lucru nu se întâmplă deoarece variabila ''​x'',​ așa cum a fost definită, nu este vizibilă subproceselor pornite ​
 din cadrul acestui terminal. Pentru a face acest lucru posibil, trebuie să o exportăm. din cadrul acestui terminal. Pentru a face acest lucru posibil, trebuie să o exportăm.
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ export x=4+student@uso:​~/​uso-lab$ export x=4
 </​code>​ </​code>​
  
Line 104: Line 104:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ ./script.sh+student@uso:​~/​uso-lab$ ./script.sh
 4 4
 </​code>​ </​code>​
  
-=== Redirectarea datelor de intrare, ieșire și erorile ===+==== Redirectarea datelor de intrare, ieșire și erorile ​====
  
-Pentru a urmări acest tutorial, mutați-vă în directorul ''​~/​uso.git/labs/​05-cli/​support/​need-to-know''​. ​+Pentru a urmări acest tutorial, mutați-vă în directorul ''​~/​uso-lab/​05-cli/​support/​need-to-know''​. ​
 Listăm conținutul directorul și observăm că avem un program C și un Makefile. Compilăm programul ​ Listăm conținutul directorul și observăm că avem un program C și un Makefile. Compilăm programul ​
 folosind comanda ''​make''​. Folosiți comanda ''​make run''​ pentru a rula program și introduceți inputul ​ folosind comanda ''​make''​. Folosiți comanda ''​make run''​ pentru a rula program și introduceți inputul ​
Line 125: Line 125:
 </​code>​ </​code>​
  
-Încercați să introduceți și date care nu se potrivesc cerințelor. Programul va produce erori care ne deranjează ​+Încercați să introduceți și date care nu se potrivesc cerințelor. Programul va produce erori care ne deranjează ​și
 pe care vrem să le separăm de datele de ieșire standard. Pentru a face acest lucru putem redirecta erorile ​ pe care vrem să le separăm de datele de ieșire standard. Pentru a face acest lucru putem redirecta erorile ​
-într-un fișier. Rulați comanda ''​make run_redirect_err''​ care va redireca ​eventualele erori apărute în +într-un fișier. Rulați comanda ''​make run_redirect_err''​ care va redirecta ​eventualele erori apărute în 
 fișierul ''​err.txt''​. fișierul ''​err.txt''​.
  
Line 137: Line 137:
  
 <​note>​ <​note>​
-Uzual, erorile sunt redirectare erorile ​către fișierul special ''/​dev/​null''​.+Uzual, erorile sunt redirectate ​către fișierul special ''/​dev/​null''​.
 </​note>​ </​note>​
  
-1. Adăugați o regulă în fișierul ''​Makefile''​ care să ruleze același program și să redirecteze atât  +  - Adăugați o regulă în fișierul ''​Makefile''​ care să ruleze același program și să redirecteze atât intrările, cât și erorile, într-o singură comandă. Pentru ​intrări, creați un fișier ​numit ''​input.txt''​ care să conțină informațiile pe care le cere programul. Folosiți operatorul ''<''​. Pentru erori, redirectați în fișierul ''​errors.txt''​. Observați că pentru a redirecta ieșirile sau erorile, fișierul va fi creat automat.
-intrările, cât și erorile. Pentru ​a face acest lucru, creați un fisier ​numit ''​input.txt''​ care să  +
-conțină informațiile pe care le cere programul. Folosiți operatorul ''<''​.+
  
-=== Comunicare interprocese ===+==== Comunicare interprocese ​====
  
 Mai devreme am văzut cum putem redirecta intrarea standard astfel încât programul să preia dintr-un ​ Mai devreme am văzut cum putem redirecta intrarea standard astfel încât programul să preia dintr-un ​
Line 157: Line 155:
  
 Diferența dintre cele 2 exemple de mai sus o face numărul de procese create. În cazul redirectării, ​ Diferența dintre cele 2 exemple de mai sus o face numărul de procese create. În cazul redirectării, ​
-este creat un singur proces, pe când în cel de-al doilea sunt create procese, primul pornit de comanda  +este creat un singur proces, pe când în cel de-al doilea sunt create ​două procese, primul pornit de comanda  
-''​cat input.txt''​ și ''​./​out''​ care se ocupă de rularea binarului. Este de reținut faptul că **ieșirea**  +''​cat input.txt''​ și al doilea de ''​./​out''​ care se ocupă de rularea binarului. Este de reținut faptul că **ieșirea**  
-primului proces este servită drept **intrare** pentru ​ce de-al doilea.+primului proces este servită drept **intrare** pentru ​cel de-al doilea.
  
-=== Filtre de procesare ===+==== Filtre de procesare ​====
  
 Să ne amintim de fișierul ''/​etc/​passwd''​ conține informații despre toți utilizatorii din sistem. ​ Să ne amintim de fișierul ''/​etc/​passwd''​ conține informații despre toți utilizatorii din sistem. ​
  
 <code bash> <code bash>
-student@uso:​~/​.../​05-cli/​support/​need-to-know$ cd ~/​uso.git/​ +student@uso:​~$ cat /etc/passwd
-student@uso:​~/​uso.git/​$ cat /etc/passwd+
 root:​x:​0:​0:​root:/​root:/​bin/​bash root:​x:​0:​0:​root:/​root:/​bin/​bash
 daemon:​x:​1:​1:​daemon:/​usr/​sbin:/​usr/​sbin/​nologin daemon:​x:​1:​1:​daemon:/​usr/​sbin:/​usr/​sbin/​nologin
 bin:​x:​2:​2:​bin:/​bin:/​usr/​sbin/​nologin bin:​x:​2:​2:​bin:/​bin:/​usr/​sbin/​nologin
-sys:​x:​3:​3:​sys:/​dev:/​usr/​sbin/​nologin +(...)
-sync:​x:​4:​65534:​sync:/​bin:/​bin/​sync +
-games:​x:​5:​60:​games:/​usr/​games:/​usr/​sbin/​nologin +
-man:​x:​6:​12:​man:/​var/​cache/​man:/​usr/​sbin/​nologin +
-lp:​x:​7:​7:​lp:/​var/​spool/​lpd:/​usr/​sbin/​nologin +
-mail:​x:​8:​8:​mail:/​var/​mail:/​usr/​sbin/​nologin +
-news:​x:​9:​9:​news:/​var/​spool/​news:/​usr/​sbin/​nologin +
-uucp:​x:​10:​10:​uucp:/​var/​spool/​uucp:/​usr/​sbin/​nologin +
-proxy:​x:​13:​13:​proxy:/​bin:/​usr/​sbin/​nologin +
-www-data:​x:​33:​33:​www-data:/​var/​www:/​usr/​sbin/​nologin +
-backup:​x:​34:​34:​backup:/​var/​backups:/​usr/​sbin/​nologin +
-list:​x:​38:​38:​Mailing List Manager:/​var/​list:/​usr/​sbin/​nologin +
-irc:​x:​39:​39:​ircd:/​var/​run/​ircd:/​usr/​sbin/​nologin +
-gnats:​x:​41:​41:​Gnats Bug-Reporting System ​(admin):/​var/​lib/​gnats:/​usr/​sbin/​nologin +
-nobody:​x:​65534:​65534:​nobody:/​nonexistent:/​usr/​sbin/​nologin +
-systemd-network:​x:​100:​102:​systemd Network Management,,,:/​run/​systemd/​netif:/​usr/​sbin/​nologin +
-systemd-resolve:​x:​101:​103:​systemd Resolver,,,:/​run/​systemd/​resolve:/​usr/​sbin/​nologin +
-syslog:​x:​102:​106::/​home/​syslog:/​usr/​sbin/​nologin +
-messagebus:​x:​103:​107::/​nonexistent:/​usr/​sbin/​nologin +
-_apt:​x:​104:​65534::/​nonexistent:/​usr/​sbin/​nologin +
-uuidd:​x:​105:​111::/​run/​uuidd:/​usr/​sbin/​nologin +
-avahi-autoipd:​x:​106:​112:​Avahi autoip daemon,,,:/​var/​lib/​avahi-autoipd:/​usr/​sbin/​nologin +
-usbmux:​x:​107:​46:​usbmux daemon,,,:/​var/​lib/​usbmux:/​usr/​sbin/​nologin +
-dnsmasq:​x:​108:​65534:​dnsmasq,,,:/​var/​lib/​misc:/​usr/​sbin/​nologin +
-rtkit:​x:​109:​114:​RealtimeKit,,,:/​proc:/​usr/​sbin/​nologin +
-cups-pk-helper:​x:​110:​116:​user for cups-pk-helper service,,,:/​home/​cups-pk-helper:/​usr/​sbin/​nologin +
-speech-dispatcher:​x:​111:​29:​Speech Dispatcher,,,:/​var/​run/​speech-dispatcher:/​bin/​false +
-whoopsie:​x:​112:​117::/​nonexistent:/​bin/​false +
-kernoops:​x:​113:​65534:​Kernel Oops Tracking Daemon,,,:/:/​usr/​sbin/​nologin +
-saned:​x:​114:​119::/​var/​lib/​saned:/​usr/​sbin/​nologin +
-pulse:​x:​115:​120:​PulseAudio daemon,,,:/​var/​run/​pulse:/​usr/​sbin/​nologin +
-avahi:​x:​116:​122:​Avahi mDNS daemon,,,:/​var/​run/​avahi-daemon:/​usr/​sbin/​nologin +
-colord:​x:​117:​123:​colord colour management daemon,,,:/​var/​lib/​colord:/​usr/​sbin/​nologin +
-hplip:​x:​118:​7:​HPLIP system user,,,:/​var/​run/​hplip:/​bin/​false +
-geoclue:​x:​119:​124::/​var/​lib/​geoclue:/​usr/​sbin/​nologin +
-gnome-initial-setup:​x:​120:​65534::/​run/​gnome-initial-setup/:/​bin/​false +
-gdm:​x:​121:​125:​Gnome Display Manager:/​var/​lib/​gdm3:/​bin/​false +
-student:​x:​1000:​1000:​Student User,,,:/​home/​student:/​bin/​bash +
-vboxadd:​x:​999:​1::/​var/​run/​vboxadd:/​bin/​false +
-sshd:​x:​122:​65534::/​run/​sshd:/​usr/​sbin/​nologin +
-festival:​x:​123:​29::/​nonexistent:/​usr/​sbin/​nologin +
-test:​x:​1001:​1001::/​home/​test:/​bin/​sh +
-test2:​x:​1002:​1002:,,,:/​home/​test2:/​bin/​bash+
 </​code>​ </​code>​
  
Line 221: Line 176:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ cat /etc/passwd | cut -f1 -d:+student@uso:​~/​uso-lab$ cat /etc/passwd | cut -f1 -d":"
 root root
 daemon daemon
 bin bin
-sys +(...)
-sync +
-games +
-man +
-lp +
-mail +
-news +
-uucp +
-proxy +
-www-data +
-backup +
-list +
-irc +
-gnats +
-nobody +
-systemd-network +
-systemd-resolve +
-syslog +
-messagebus +
-_apt +
-uuidd +
-avahi-autoipd +
-usbmux +
-dnsmasq +
-rtkit +
-cups-pk-helper +
-speech-dispatcher +
-whoopsie +
-kernoops +
-saned +
-pulse +
-avahi +
-colord +
-hplip +
-geoclue +
-gnome-initial-setup +
-gdm +
-student +
-vboxadd +
-sshd +
-festival +
-test +
-test2+
 </​code>​ </​code>​
  
Line 275: Line 188:
 </​note>​ </​note>​
  
-1. Pornind de la comanda de mai sus, afișați numele utilizatorilor sortați alfabetic. (Hint: ''​man sort''​) +  - Pornind de la comanda de mai sus, afișați numele utilizatorilor sortați alfabetic. (Hint: ''​man sort''​) 
-2. Folosind utilitarul ''​wc'',​ obțineți numărul de utilizatori din sistem. +  ​- ​Folosind utilitarul ''​wc'',​ obțineți numărul de utilizatori din sistem. 
-3. Să afișeze cele mai consumatoare de memorie 10 procese din sistem. (Hint: folosiți ''​|''​ și ''​tail''​).+  ​- ​Să afișeze cele mai consumatoare de memorie 10 procese din sistem. (Hint: folosiți ''​|''​ și ''​tail''​).
  
 Comanda ''​stat''​ ne afișează mai multe informații despre un fișier din sistem. Vrem să extragem din outputul ​ Comanda ''​stat''​ ne afișează mai multe informații despre un fișier din sistem. Vrem să extragem din outputul ​
Line 284: Line 197:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ cd ~/uso.git/labs/​05-cli/​support/​need-to-know+student@uso:​~/​uso-lab$ cd ~/uso-lab/​05-cli/​support/​need-to-know
 student@uso:​~/​.../​05-cli/​support/​need-to-know$ stat Makefile | grep "​Modify"​ student@uso:​~/​.../​05-cli/​support/​need-to-know$ stat Makefile | grep "​Modify"​
 Modify: 2018-10-29 23:​40:​49.942659138 +0200 Modify: 2018-10-29 23:​40:​49.942659138 +0200
 </​code>​ </​code>​
  
-1. Folosind filtrul ''​cut''​ extrageți din ieșirea comenzii anterioare doar data modificării.+  - Folosind filtrul ''​cut''​ extrageți din ieșirea comenzii anterioare doar data modificării.
  
 Fișierul special ''/​dev/​urandom''​ conține bytes aleatori. Listați conținutul acestui fișier. Folosiți ​ Fișierul special ''/​dev/​urandom''​ conține bytes aleatori. Listați conținutul acestui fișier. Folosiți ​
Line 295: Line 208:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ cat /​dev/​urandom+student@uso:​~/​uso-lab$ cat /​dev/​urandom
 (...) (...)
  
 ^C ^C
-student@uso:​~/​uso.git/$+student@uso:​~/​uso-lab$
 </​code>​ </​code>​
  
-1. Folosindu-vă de fișierul ''/​dev/​random'',​ generați o parolă aleatoare de 32 de caractere. Vă  +  - Folosindu-vă de fișierul ''/​dev/​random'',​ generați o parolă aleatoare de 32 de caractere. Vă puteți inspira de [[https://​www.howtogeek.com/​howto/​30184/​10-ways-to-generate-a-random-password-from-the-command-line/​|aici]].
-puteți inspira de  +
-[[https://​www.howtogeek.com/​howto/​30184/​10-ways-to-generate-a-random-password-from-the-command-line/​|aici]].+
  
-=== Înlănțuirea comenzilor ===+==== Înlănțuirea comenzilor ​====
  
-Pentru a înlănțui 2 sau mai multe comenzi folosim operatorul '';''​. Cele de procese pornite sunt +Pentru a înlănțui 2 sau mai multe comenzi folosim operatorul '';''​. Cele două procese pornite sunt 
 independente și se vor executa indiferent de finalitatea celei care se execută prima. independente și se vor executa indiferent de finalitatea celei care se execută prima.
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ cd ~/uso/labs/​05-cli/​support/​need-to-know;​ ls -l+student@uso:​~/​uso-lab$ cd ~/uso-lab/​05-cli/​support/​need-to-know;​ ls -l
 total 8 total 8
 -rw-rw-r-- 1 student student ​ 122 Oct 29 23:40 Makefile -rw-rw-r-- 1 student student ​ 122 Oct 29 23:40 Makefile
Line 319: Line 230:
 </​code>​ </​code>​
  
-1. Alegeți 2 aplicații de [[https://​www.binarytides.com/​linux-fun-commands/​|aici]] și instalați-le ​ +  - Alegeți 2 aplicații de [[https://​www.binarytides.com/​linux-fun-commands/​|aici]] și instalați-le folosind o singură comandă.
-folosind o singură comandă.+
  
 În continuare, vom folosi comanda ''​ping www.google.com''​ pentru a testa dacă avem conectivitate la  În continuare, vom folosi comanda ''​ping www.google.com''​ pentru a testa dacă avem conectivitate la 
Line 327: Line 237:
  
 <code bash> <code bash>
-student@uso:​~/​uso.git/$ ping -c 1 www.google.com && firefox www.google.com+student@uso:​~/​uso-lab$ ping -c 1 www.google.com && firefox www.google.com
 </​code>​ </​code>​
  
 Acum încercați să înlocuiți ''​www.google.com''​ cu ''​www.random-webiste.xyz''​ și ''&&''​ cu ''​||''​. ​ Acum încercați să înlocuiți ''​www.google.com''​ cu ''​www.random-webiste.xyz''​ și ''&&''​ cu ''​||''​. ​
-Oservați ce se întâmplă.+Observați ce se întâmplă.
  
-1. Mutați-vă la calea ''​~/​uso.git/labs/​05-cli/​support/​need-to-know/​err-file''​ și, folosind o singură ​ +  - Mutați-vă la calea ''​~/​uso-lab/​05-cli/​support/​need-to-know/​err-file''​ și, folosind o singură comandă, compilați și rulați programul ''​simple_pow.c''​. În cazul în care apar erori de compilare, vrem să nu rulăm executabilul. Rezolvați eroarea astfel încât programul să compileze cu succes și rulați-l. (Hint: ce bibliotecă folosește programul ''​simple_pow.c''?​)
-comandă, compilați și rulați programul ''​simple_pow.c''​. În cazul în care apar erori de compilare, ​ +
-vrem să nu rulăm executabilul. Rezolvați eroarea astfel încât programul să compileze cu succes și  +
-rulați-l. (Hint: ce bibliotecă folosește programul ''​simple_pow.c''?​)+
uso/laboratoare/new/05-cli/need-to-know.1540885594.txt.gz · Last modified: 2018/10/30 09:46 by liza_elena.babu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0