This shows you the differences between two versions of the page.
uso:laboratoare:new:01-fs:nice-to-know [2019/09/22 23:55] vlad_mihai.corneci created |
uso:laboratoare:new:01-fs:nice-to-know [2019/10/05 12:40] (current) cristiana.stan [4. Corectare lucru cu fișier header și Makefile] |
||
---|---|---|---|
Line 4: | Line 4: | ||
<note important> | <note important> | ||
- | Pentru acest set de exerciții trebuie să vă aflați în directorul ''~/uso.git/labs/''. Folosiți comanda: | + | Pentru acest set de exerciții trebuie să vă aflați în directorul ''~/uso-lab/''. Folosiți comanda: |
<code> | <code> | ||
- | cd ~/uso.git/labs | + | cd ~/uso-lab |
</code> | </code> | ||
</note> | </note> | ||
Line 25: | Line 25: | ||
Pentru a exemplifica redirectarea în fișierul special ''/dev/null'' vom folosi utilitarul/comanda ''strace''. Comanda ''strace'' monitorizează apelurile pe care le face o altă comandă către sistemul de operare (''strace'' -- //system call tracing//). Pentru început rulăm comanda de mai jos și obținem rezultatul indicat: | Pentru a exemplifica redirectarea în fișierul special ''/dev/null'' vom folosi utilitarul/comanda ''strace''. Comanda ''strace'' monitorizează apelurile pe care le face o altă comandă către sistemul de operare (''strace'' -- //system call tracing//). Pentru început rulăm comanda de mai jos și obținem rezultatul indicat: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ strace ls | + | student@uso:~/uso-lab$ strace ls |
execve("/bin/ls", ["ls"], 0x7ffdde615410 /* 35 vars */) = 0 | execve("/bin/ls", ["ls"], 0x7ffdde615410 /* 35 vars */) = 0 | ||
brk(NULL) = 0x5651b5da3000 | brk(NULL) = 0x5651b5da3000 | ||
Line 48: | Line 48: | ||
**[1a]** Ne dorim să afișăm la terminal doar rezultatul comenzii ''strace'', adică apelurile realizate de comanda primită ca argument, fără să ne preocupe rezultatul comenzii. Pentru aceasta redirectăm ieșirea standard la ''/dev/null'', adică în acel fișier special **gaură neagră**. Rulăm acum fără redirectare și cu redirectare comenzile de mai jos pentru a investiga fișierele deschise de comanda ''ls'': | **[1a]** Ne dorim să afișăm la terminal doar rezultatul comenzii ''strace'', adică apelurile realizate de comanda primită ca argument, fără să ne preocupe rezultatul comenzii. Pentru aceasta redirectăm ieșirea standard la ''/dev/null'', adică în acel fișier special **gaură neagră**. Rulăm acum fără redirectare și cu redirectare comenzile de mai jos pentru a investiga fișierele deschise de comanda ''ls'': | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ strace -e openat ls | + | student@uso:~/uso-lab$ strace -e openat ls |
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | ||
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | ||
Line 62: | Line 62: | ||
00-intro 01-fs 02-process 03-user 04-appdev 05-cli 06-hw-boot 07-storage 08-net 09-vm 10-sec 11-ctf strace.out | 00-intro 01-fs 02-process 03-user 04-appdev 05-cli 06-hw-boot 07-storage 08-net 09-vm 10-sec 11-ctf strace.out | ||
+++ exited with 0 +++ | +++ exited with 0 +++ | ||
- | student@uso:~/uso.git/labs$ strace -e openat ls > /dev/null | + | student@uso:~/uso-lab$ strace -e openat ls > /dev/null |
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | ||
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | ||
Line 84: | Line 84: | ||
**[1b]** Într-o situație ne interesează să redirectăm rezultatul comenzii ''strace'' într-un fișier; adică acea înlănțuire de apeluri efectuate de comanda primită ca argument către sistemul de operare. Pentru aceasta, folosim operatorul ''2>'' de redirectare a ieșirii de eroare standard (//standard error//) ca mai jos: | **[1b]** Într-o situație ne interesează să redirectăm rezultatul comenzii ''strace'' într-un fișier; adică acea înlănțuire de apeluri efectuate de comanda primită ca argument către sistemul de operare. Pentru aceasta, folosim operatorul ''2>'' de redirectare a ieșirii de eroare standard (//standard error//) ca mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ strace -e openat ls 2> strace.out | + | student@uso:~/uso-lab$ strace -e openat ls 2> strace.out |
00-intro 01-fs 02-process 03-user 04-appdev 05-cli 06-hw-boot 07-storage 08-net 09-vm 10-sec 11-ctf | 00-intro 01-fs 02-process 03-user 04-appdev 05-cli 06-hw-boot 07-storage 08-net 09-vm 10-sec 11-ctf | ||
</code> | </code> | ||
Line 91: | Line 91: | ||
Verificăm faptul că redirectarea a avut loc cu succes afișând conținutul fișierului ''strace.out'' cu ajutorul comenzii | Verificăm faptul că redirectarea a avut loc cu succes afișând conținutul fișierului ''strace.out'' cu ajutorul comenzii | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ cat strace.out | + | student@uso:~/uso-lab$ cat strace.out |
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | ||
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | ||
Line 109: | Line 109: | ||
**[1c]** Ne poate interesa să redirectăm și rezultatul comenzii ''strace'' într-un fișier și rezultatul comenzii primite ca argument. În acest caz folosim atât operatorul ''>'' de redirectare a ieșirii standard (//standard output//) cât și operatorul ''2>'' de redirectare a ieșirii de eroare standard (//standard error//). Pentru aceasta folosim comanda: | **[1c]** Ne poate interesa să redirectăm și rezultatul comenzii ''strace'' într-un fișier și rezultatul comenzii primite ca argument. În acest caz folosim atât operatorul ''>'' de redirectare a ieșirii standard (//standard output//) cât și operatorul ''2>'' de redirectare a ieșirii de eroare standard (//standard error//). Pentru aceasta folosim comanda: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ strace -e openat ls 2> strace.out > ls.out | + | student@uso:~/uso-lab$ strace -e openat ls 2> strace.out > ls.out |
</code> | </code> | ||
În comanda de mai sus am redirectat ieșirea standard (//standard output//), adică rezultatul comenzii ''ls'', în fișierul ''ls.out'' și ieșirea de eroare standard (//standard error//), adică rezultatul comenzii ''strace'', în fișierul ''strace.out''. Putem verifica acest lucru prin afișarea conținutului celor două fișiere: | În comanda de mai sus am redirectat ieșirea standard (//standard output//), adică rezultatul comenzii ''ls'', în fișierul ''ls.out'' și ieșirea de eroare standard (//standard error//), adică rezultatul comenzii ''strace'', în fișierul ''strace.out''. Putem verifica acest lucru prin afișarea conținutului celor două fișiere: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ cat strace.out | + | student@uso:~/uso-lab$ cat strace.out |
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 | ||
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 | ||
Line 126: | Line 126: | ||
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 | openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 | ||
+++ exited with 0 +++ | +++ exited with 0 +++ | ||
- | student@uso:~/uso.git/labs$ cat ls.out | + | student@uso:~/uso-lab$ cat ls.out |
00-intro | 00-intro | ||
01-fs | 01-fs | ||
Line 152: | Line 152: | ||
**[1e]** Utilitarul ''grep'' este folosit pentru a căuta un șir de caractere într-un fișier. De exemplu comanda de mai jos caută șirul ''root'' în fișierul ''/etc/passwd'': | **[1e]** Utilitarul ''grep'' este folosit pentru a căuta un șir de caractere într-un fișier. De exemplu comanda de mai jos caută șirul ''root'' în fișierul ''/etc/passwd'': | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ grep root /etc/passwd | + | student@uso:~/uso-lab$ grep root /etc/passwd |
root:x:0:0:root:/root:/bin/bash | root:x:0:0:root:/root:/bin/bash | ||
</code> | </code> | ||
După rularea unei comenzi putem folosi comanda ''echo $?'' pentru a vedea dacă s-a rulat cu succes. De exemplu, dacă după rularea comenzii ''grep'' de mai sus, rulăm comanda de verificare a unei rulări cu succes, obținem: | După rularea unei comenzi putem folosi comanda ''echo $?'' pentru a vedea dacă s-a rulat cu succes. De exemplu, dacă după rularea comenzii ''grep'' de mai sus, rulăm comanda de verificare a unei rulări cu succes, obținem: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ echo $? | + | student@uso:~/uso-lab$ echo $? |
0 | 0 | ||
</code> | </code> | ||
Line 164: | Line 164: | ||
Construiți o comanda ''grep'' cu redirectare care să nu afișeze **nimic** la terminal (nici //standard output//, nici //standard error//). Iar după rularea acelei comenzi să verificați rularea cu succes. Pentru a verifica faptul că ați construit comanda ''grep'' cum trebuie, folosind secvența de comenzi de mai jos: | Construiți o comanda ''grep'' cu redirectare care să nu afișeze **nimic** la terminal (nici //standard output//, nici //standard error//). Iar după rularea acelei comenzi să verificați rularea cu succes. Pentru a verifica faptul că ați construit comanda ''grep'' cum trebuie, folosind secvența de comenzi de mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs$ grep 'a' /etc/passwd TODO | + | student@uso:~/uso-lab$ grep 'a' /etc/passwd TODO |
- | student@uso:~/uso.git/labs$ echo $? | + | student@uso:~/uso-lab$ echo $? |
0 | 0 | ||
- | student@uso:~/uso.git/labs$ grep 'aaa' /etc/passwd TODO | + | student@uso:~/uso-lab$ grep 'aaa' /etc/passwd TODO |
- | student@uso:~/uso.git/labs$ echo $? | + | student@uso:~/uso-lab$ echo $? |
1 | 1 | ||
- | student@uso:~/uso.git/labs$ grep 'aaa' /etc/pass TODO | + | student@uso:~/uso-lab$ grep 'aaa' /etc/pass TODO |
- | student@uso:~/uso.git/labs$ echo $? | + | student@uso:~/uso-lab$ echo $? |
2 | 2 | ||
</code> | </code> | ||
Line 179: | Line 179: | ||
<note important> | <note important> | ||
- | Pentru acest set de exerciții trebuie să vă aflați în directorul ''~/uso.git/labs/01-fs/''. Folosiți comanda: | + | Pentru acest set de exerciții trebuie să vă aflați în directorul ''~/uso-lab/01-fs/''. Folosiți comanda: |
<code> | <code> | ||
- | cd ~/uso.git/labs/01-fs | + | cd ~/uso-lab/01-fs |
</code> | </code> | ||
</note> | </note> | ||
- | **[2a]** Aflându-vă în directorul ''~/uso.git/labs/01-fs'', creați o arhivă ''.zip'' cu numele ''support-g.zip'' și o arhivă ''.tar.gz'' cu numele ''support-g.tar.gz'' cu toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''support/''. | + | **[2a]** Aflându-vă în directorul ''~/uso-lab/01-fs'', creați o arhivă ''.zip'' cu numele ''support-g.zip'' și o arhivă ''.tar.gz'' cu numele ''support-g.tar.gz'' cu toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''support/''. |
Verificați-vă folosind comanda de afișare a conținutului unei arhive ''.zip'', respectiv comanda de afișare a conținutului unei arhive ''.tar.gz''. | Verificați-vă folosind comanda de afișare a conținutului unei arhive ''.zip'', respectiv comanda de afișare a conținutului unei arhive ''.tar.gz''. | ||
- | **[2b]** Aflându-vă în directorul ''~/uso.git/labs/01-fs'', creați o arhivă ''.zip'' cu numele ''01-fs-g.zip'' și o arhivă ''.tar.gz'' cu numele ''01-fs-g.tar.gz'' cu toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''support/'' **și** toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''wiki/''. | + | **[2b]** Aflându-vă în directorul ''~/uso-lab/01-fs'', creați o arhivă ''.zip'' cu numele ''01-fs-g.zip'' și o arhivă ''.tar.gz'' cu numele ''01-fs-g.tar.gz'' cu toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''support/'' **și** toate intrările (fișiere, directoare etc.) care încep cu litera ''g'' din directorul ''wiki/''. |
Verificați-vă folosind comanda de afișare a conținutului unei arhive ''.zip'', respectiv comanda de afișare a conținutului unei arhive ''.tar.gz''. | Verificați-vă folosind comanda de afișare a conținutului unei arhive ''.zip'', respectiv comanda de afișare a conținutului unei arhive ''.tar.gz''. | ||
Line 195: | Line 195: | ||
**[2c]** Putem actualiza o arhivă adăugând sau ștergând un fișier din cadrul ei. De exemplu în arhiva de ''01-fs-g.zip'' de mai sus putem adăuga fișierul ''wiki/recap.wiki'' folosind comanda | **[2c]** Putem actualiza o arhivă adăugând sau ștergând un fișier din cadrul ei. De exemplu în arhiva de ''01-fs-g.zip'' de mai sus putem adăuga fișierul ''wiki/recap.wiki'' folosind comanda | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ zip 01-fs-g.zip wiki/recap.wiki | + | student@uso:~/uso-lab/01-fs$ zip 01-fs-g.zip wiki/recap.wiki |
adding: wiki/recap.wiki (stored 0%) | adding: wiki/recap.wiki (stored 0%) | ||
</code> | </code> | ||
Line 201: | Line 201: | ||
Putem verifica adăugarea cu succes a fișierului ''wiki/recap.wiki'' folosind comanda | Putem verifica adăugarea cu succes a fișierului ''wiki/recap.wiki'' folosind comanda | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ unzip -l 01-fs-g.zip | + | student@uso:~/uso-lab/01-fs$ unzip -l 01-fs-g.zip |
Archive: 01-fs-g.zip | Archive: 01-fs-g.zip | ||
Length Date Time Name | Length Date Time Name | ||
Line 217: | Line 217: | ||
Putem șterge fișiere dintr-o arhivă ''.zip''. De exemplu, pentru a șterge fișierul ''wiki/get-a-life.wiki'' din arhiva ''01-fs-g.zip'' folosim opțiunea ''-d'' a comenzii ''zip'': | Putem șterge fișiere dintr-o arhivă ''.zip''. De exemplu, pentru a șterge fișierul ''wiki/get-a-life.wiki'' din arhiva ''01-fs-g.zip'' folosim opțiunea ''-d'' a comenzii ''zip'': | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ zip -d 01-fs-g.zip wiki/get-a-life.wiki | + | student@uso:~/uso-lab/01-fs$ zip -d 01-fs-g.zip wiki/get-a-life.wiki |
updating: wiki/get-a-life.wiki (stored 0%) | updating: wiki/get-a-life.wiki (stored 0%) | ||
</code> | </code> | ||
Line 246: | Line 246: | ||
În mod implicit ''find'' afișează recursiv toate intrările din directorul curent, așa cum se vede când rulăm comanda | În mod implicit ''find'' afișează recursiv toate intrările din directorul curent, așa cum se vede când rulăm comanda | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ find | + | student@uso:~/uso-lab/01-fs$ find |
. | . | ||
./wiki | ./wiki | ||
Line 265: | Line 265: | ||
Dacă-i dăm un argument un director, va afișa **recursiv** toate intrările din acel director. De exemplu, comanda de mai jos afișează toate intrările din ierarhia ''/var/lib/apt/'': | Dacă-i dăm un argument un director, va afișa **recursiv** toate intrările din acel director. De exemplu, comanda de mai jos afișează toate intrările din ierarhia ''/var/lib/apt/'': | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ find /var/lib/apt | + | student@uso:~/uso-lab/01-fs$ find /var/lib/apt |
/var/lib/apt | /var/lib/apt | ||
/var/lib/apt/mirrors | /var/lib/apt/mirrors | ||
Line 276: | Line 276: | ||
**[3a]** Putem afișa folosind ''find'' doar anumite tipuri de intrări, de exemplu doar fișiere. Pentru a afișa doar fișierele din directorul curent folosim opțiunea ''-type f'', la fel ca în comanda de mai jos: | **[3a]** Putem afișa folosind ''find'' doar anumite tipuri de intrări, de exemplu doar fișiere. Pentru a afișa doar fișierele din directorul curent folosim opțiunea ''-type f'', la fel ca în comanda de mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ find -type f | + | student@uso:~/uso-lab/01-fs$ find -type f |
./wiki/basics.wiki | ./wiki/basics.wiki | ||
./wiki/concepts.wiki | ./wiki/concepts.wiki | ||
Line 289: | Line 289: | ||
**[3b]** Putem afișa fișierele care corespund unui anumit pattern. De exemplu pentru a afișa toate fișierele cu extensia ''.tex'' vom folosi opțiunea ''-name'', la fel în comanda de mai jos: | **[3b]** Putem afișa fișierele care corespund unui anumit pattern. De exemplu pentru a afișa toate fișierele cu extensia ''.tex'' vom folosi opțiunea ''-name'', la fel în comanda de mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ find -type f -name '*.tex' | + | student@uso:~/uso-lab/01-fs$ find -type f -name '*.tex' |
./support/nice-to-know/fruits/pear.tex | ./support/nice-to-know/fruits/pear.tex | ||
./support/get-a-life/4-rename/5.tex | ./support/get-a-life/4-rename/5.tex | ||
Line 299: | Line 299: | ||
**[3c]** Putem folosi comanda ''find'' pentru a aplica o altă comandă pe intrările găsite. De exemplu dacă dorim să ștergem toate fișierele cu extensia ''.c'' vom folosi opțiunea ''-exec'', la fel ca în comanda de mai jos: | **[3c]** Putem folosi comanda ''find'' pentru a aplica o altă comandă pe intrările găsite. De exemplu dacă dorim să ștergem toate fișierele cu extensia ''.c'' vom folosi opțiunea ''-exec'', la fel ca în comanda de mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ find -type f -name '*.c' | + | student@uso:~/uso-lab/01-fs$ find -type f -name '*.c' |
./support/nice-to-know/fruits/apple.c | ./support/nice-to-know/fruits/apple.c | ||
./support/get-a-life/2-passwd/reader.c | ./support/get-a-life/2-passwd/reader.c | ||
- | student@uso:~/uso.git/labs/01-fs$ find -type f -name '*.c' -exec rm {} \; | + | student@uso:~/uso-lab/01-fs$ find -type f -name '*.c' -exec rm {} \; |
- | student@uso:~/uso.git/labs/01-fs$ find -type f -name '*.c' | + | student@uso:~/uso-lab/01-fs$ find -type f -name '*.c' |
- | student@uso:~/uso.git/labs/01-fs$ | + | student@uso:~/uso-lab/01-fs$ |
</code> | </code> | ||
Dacă la început aveam două fișiere cu extensia ''.c'' (''./support/nice-to-know/fruits/apple.c'' și ''./support/get-a-life/2-passwd/reader.c'') după rularea comenzii find acele fișiere dispar. | Dacă la început aveam două fișiere cu extensia ''.c'' (''./support/nice-to-know/fruits/apple.c'' și ''./support/get-a-life/2-passwd/reader.c'') după rularea comenzii find acele fișiere dispar. | ||
Line 325: | Line 325: | ||
==== 4. Corectare lucru cu fișier header și Makefile ==== | ==== 4. Corectare lucru cu fișier header și Makefile ==== | ||
- | În directorul ''~/uso.git/labs/01-fs/support/04-compile/'' găsiți un set de fișiere și un fișier ''Makefile'' pentru compilarea lor. Există o eroare ce ține de căi în sistemul de fișiere, astfel că nu merge compilarea în momentul rulării comenzii ''make''. | + | În directorul ''~/uso-lab/01-fs/support/nice-to-know/4-compile/'' găsiți un set de fișiere și un fișier ''Makefile'' pentru compilarea lor. Există o eroare ce ține de căi în sistemul de fișiere, astfel că nu merge compilarea în momentul rulării comenzii ''make''. |
Corectați eroarea și obțineți fișierul executabil ''write_hello''. | Corectați eroarea și obțineți fișierul executabil ''write_hello''. | ||
Line 331: | Line 331: | ||
==== 5. Copiere ierarhie pe un stick USB ==== | ==== 5. Copiere ierarhie pe un stick USB ==== | ||
- | Conectați un stick USB pe un port USB al sistemului vostru. Folosiți linia de comandă pentru a copia ierarhia curentă (''~/uso.git/labs/01-fs/support/04-compile/'') pe stick. | + | Conectați un stick USB pe un port USB al sistemului vostru. Folosiți linia de comandă pentru a copia ierarhia curentă (''~/uso-lab/01-fs/support/04-compile/'') pe stick. |
<note important> | <note important> | ||
Line 354: | Line 354: | ||
Directoarele în care caută shell-ul executabile aferente unei comenzi se găsesc într-o construcție de tip variabilă de mediu numită ''PATH''. Vom vorbi mai multe despre variabile și variabile de mediu la un laborator viitor. Pe moment, este suficient să știm că pentru a afișa valoarea variabilei ''PATH'' folosim comanda | Directoarele în care caută shell-ul executabile aferente unei comenzi se găsesc într-o construcție de tip variabilă de mediu numită ''PATH''. Vom vorbi mai multe despre variabile și variabile de mediu la un laborator viitor. Pe moment, este suficient să știm că pentru a afișa valoarea variabilei ''PATH'' folosim comanda | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ echo $PATH | + | student@uso:~/uso-lab/01-fs$ echo $PATH |
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin | ||
</code> | </code> | ||
Line 361: | Line 361: | ||
Calea către executabilul aferent unei comenzi poate fi afișată folosind comanda ''which'' urmată de numele comnezii, ca mai jos: | Calea către executabilul aferent unei comenzi poate fi afișată folosind comanda ''which'' urmată de numele comnezii, ca mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ which ls | + | student@uso:~/uso-lab/01-fs$ which ls |
/bin/ls | /bin/ls | ||
- | student@uso:~/uso.git/labs/01-fs$ which find | + | student@uso:~/uso-lab/01-fs$ which find |
/usr/bin/find | /usr/bin/find | ||
- | student@uso:~/uso.git/labs/01-fs$ which zip | + | student@uso:~/uso-lab/01-fs$ which zip |
/usr/bin/zip | /usr/bin/zip | ||
</code> | </code> | ||
Line 372: | Line 372: | ||
Putem verifica faptul că acele fișiere sunt executabile prin folosirea comenzii ''file'' urmată de calea către fișierul executabil, ca mai jos: | Putem verifica faptul că acele fișiere sunt executabile prin folosirea comenzii ''file'' urmată de calea către fișierul executabil, ca mai jos: | ||
<code> | <code> | ||
- | student@uso:~/uso.git/labs/01-fs$ file /bin/ls | + | student@uso:~/uso-lab/01-fs$ file /bin/ls |
/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9567f9a28e66f4d7ec4baf31cfbf68d0410f0ae6, stripped | /bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9567f9a28e66f4d7ec4baf31cfbf68d0410f0ae6, stripped | ||
- | student@uso:~/uso.git/labs/01-fs$ file /usr/bin/find | + | student@uso:~/uso-lab/01-fs$ file /usr/bin/find |
/usr/bin/find: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=b920f53e0c67a31d8ef07b84b1344f87a0e82d71, stripped | /usr/bin/find: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=b920f53e0c67a31d8ef07b84b1344f87a0e82d71, stripped | ||
- | student@uso:~/uso.git/labs/01-fs$ file /usr/bin/zip | + | student@uso:~/uso-lab/01-fs$ file /usr/bin/zip |
/usr/bin/zip: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c828586e6e7cf929500a5b9c04faece9eceed5cc, stripped | /usr/bin/zip: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c828586e6e7cf929500a5b9c04faece9eceed5cc, stripped | ||
</code> | </code> | ||
Line 384: | Line 384: | ||
**Bonus**: De ce fișierele executabile pentru ''useradd'' și ''iotop'' se găsesc într-un director care conține ''sbin/'' pe când ''tar'' și ''gzip'' se găsesc într-un director care conține ''bin/'' (fără ''s'')? Folosiți Internetul și Google pentru aflarea răspunsului. | **Bonus**: De ce fișierele executabile pentru ''useradd'' și ''iotop'' se găsesc într-un director care conține ''sbin/'' pe când ''tar'' și ''gzip'' se găsesc într-un director care conține ''bin/'' (fără ''s'')? Folosiți Internetul și Google pentru aflarea răspunsului. | ||
+ |