This shows you the differences between two versions of the page.
|
uso:laboratoare:new:05-cli:get-a-life [2018/10/30 10:59] liza_elena.babu [Get a life] |
uso:laboratoare:new:05-cli:get-a-life [2019/10/31 11:32] (current) adrian.zatreanu |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Get a life ===== | ===== Get a life ===== | ||
| - | |||
| - | ==== Exerciții ==== | ||
| - | - Să scrie un script în care trebuie să schimbe directorul de lucru. (Hint: ''source'') | ||
| - | - Mutați-vă la calea ''~/uso.git/labs/05-cli/support/get-a-life/ex2/'' și rulați scriptul ''just_regular_updates_here.sh''. Continuați să folosiți comenzile de bază (ls, cat, cd). Observați ce se întâmplă și rezolvați problema. | ||
| - | - La calea ''~/uso.git/labs/05-cli/support/get-a-life/ex3/'' se află fișierul ''image.png''. Inspectați tipul fișierului. Scopul acestui exercițiu este să aflați un mesaj secret. (Hint: ''file'') | ||
| - | - În directorul ''~/uso.git/labs/05-cli/support/get-a-life/ex4/'' se află numeroase fișiere. Să creeze o arhivă cu fișierele ce au o dimensiue mai mare de 10MB. | ||
| - | - Să creeze un script care pornește programul ''firefox'' doar dacă acesta nu există deja. Altfel, nu-l pornește, ci doar afișează informații depsre el. Configurați acest script să ruleze din ''cron'' la fiecare 5 minute. (Hint: [[https://www.thegeekstuff.com/2011/07/cron-every-5-minutes|cron]]) | ||
| ==== Filtre de text avansate ==== | ==== Filtre de text avansate ==== | ||
| Line 15: | Line 8: | ||
| === sed === | === sed === | ||
| - | Înainte să începeți acest tutorial, navigați către calea ''/home/student/uso/labs/05-cli/support/get-a-life/tutorial-sed''. | + | Înainte să începeți acest tutorial, navigați către calea ''/home/student/uso-lab/05-cli/support/get-a-life/sed-tutorial''. |
| În acest director avem fișierul ''songs.txt'' cu următorul conținut: | În acest director avem fișierul ''songs.txt'' cu următorul conținut: | ||
| <code bash> | <code bash> | ||
| - | student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs.txt | + | student@uso:~/.../support/get-a-life/sed-tutorial$ cat songs.txt |
| 1, Justin Timberlake, Title 545, Price $6.30 | 1, Justin Timberlake, Title 545, Price $6.30 | ||
| 2, Taylor Swift, Title 723, Price $7.90 | 2, Taylor Swift, Title 723, Price $7.90 | ||
| Line 34: | Line 27: | ||
| <code bash> | <code bash> | ||
| - | student@uso:~/.../support/get-a-life/tutorial-sed$ sed 's/6.30/7.30/' songs.txt > songs2.txt | + | student@uso:~/.../support/get-a-life/sed-tutorial$ sed 's/6\.30/7.30/' songs.txt > songs2.txt |
| - | student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs2.txt | + | student@uso:~/.../support/get-a-life/sed-tutorial$ cat songs2.txt |
| 1, Justin Timberlake, Title 545, Price $7.30 | 1, Justin Timberlake, Title 545, Price $7.30 | ||
| 2, Taylor Swift, Title 723, Price $7.90 | 2, Taylor Swift, Title 723, Price $7.90 | ||
| Line 46: | Line 39: | ||
| === awk === | === awk === | ||
| - | Mai devreme am văzut că putem extrage numele tuturor utilizatorilo din sistem folosind ''tr''. Vrem să | + | Mai devreme am văzut că putem extrage numele tuturor utilizatorilor din sistem folosind ''tr''. Vrem să |
| facem asta folosind și filtrul ''awk''. | facem asta folosind și filtrul ''awk''. | ||
| Line 52: | Line 45: | ||
| <code bash> | <code bash> | ||
| - | student@uso:~/.../support/get-a-life/tutorial-sed$ cat /etc/passwd | + | student@uso:~/.../support/get-a-life/sed-tutorial$ 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 104: | Line 55: | ||
| <code bash> | <code bash> | ||
| - | student@uso:~/.../support/get-a-life/tutorial-sed$ awk -F: '{print $1}' /etc/passwd | + | student@uso:~/.../support/get-a-life/sed-tutorial$ awk -F: '{print $1}' /etc/passwd |
| root | root | ||
| daemon | daemon | ||
| bin | bin | ||
| - | sys | + | (...) |
| - | sync | + | |
| - | games | + | |
| - | man | + | |
| - | lp | + | |
| - | + | ||
| - | 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 158: | Line 67: | ||
| despre ''sed'', ''awk'' și multe altele [[http://coewww.rutgers.edu/linux/lessons/lesson9/shell_script_tutorial.html|aici]]. | despre ''sed'', ''awk'' și multe altele [[http://coewww.rutgers.edu/linux/lessons/lesson9/shell_script_tutorial.html|aici]]. | ||
| </note> | </note> | ||
| + | |||
| + | ==== Exerciții ==== | ||
| + | - Scrieți un script care trebuie să schimbe directorul de lucru în ''~''. De ce nu ar merge dacă am scrie pur și simplu ''cd ~'' în script? (Hint: ''source'') | ||
| + | - Mutați-vă la calea ''~/uso-lab/05-cli/support/get-a-life/ex2/'' și rulați scriptul ''just_regular_updates_here.sh''. După rularea scriptului închideți terminalul curent și deschideți unul nou. Continuați să folosiți comenzile de bază (ls, cat). Observați ce se întâmplă și rezolvați problema. | ||
| + | - La calea ''~/uso-lab/05-cli/support/get-a-life/ex3/'' se află fișierul ''image.png''. Inspectați tipul fișierului. Scopul acestui exercițiu este să aflați un mesaj secret. (Hint: ''file'') | ||
| + | - În directorul ''~/uso-lab/05-cli/support/get-a-life/ex4/'' se află numeroase fișiere. Să se creeze o arhivă cu fișierele ce au o dimensiune mai mare de 10MB. | ||
| + | - Să se creeze un script care pornește programul ''firefox'' doar dacă acesta nu rulează deja. Altfel, nu-l pornește, ci doar afișează informații despre el. Configurați acest script să ruleze din ''cron'' la fiecare 5 minute. (Hint: [[https://www.thegeekstuff.com/2011/07/cron-every-5-minutes|cron]]) | ||
| + | - Realizați un script care să creeze câte o arhivă pentru fiecare branch al repository-ului. (Hint: ''man git'', [[https://www.cyberciti.biz/faq/bash-for-loop/|for]]) | ||
| + | - Folosind tot website-ul de [[http://ezprompt.net|aici]], modificați prompt-ul astfel încât să vă arate și branch-ul curent Git pe care vă aflați. | ||
| + | |||
| + | Înainte: | ||
| + | | ||
| + | <code bash> | ||
| + | student@uso:~$ | ||
| + | </code> | ||
| + | | ||
| + | După: | ||
| + | <code bash> | ||
| + | student@uso:~[lab-05-cli]$ | ||
| + | </code> | ||