This is an old revision of the document!
source
)~/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.~/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
)~/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.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: cron)
Până acum am folosit câteva filtre de text precum tr
, cut
sau grep
, fiecare având câte un
scop binedefinit, însă ele nu vor putea face absolut orice operație am vrea noi să facem asupra unui text.
Pentru asta au fost inventate câteva filtre de text mai avansate precum sed
și awk
.
Înainte să începeți acest tutorial, navigați către calea /home/student/uso/labs/05-cli/support/get-a-life/tutorial-sed
.
În acest director avem fișierul songs.txt
cu următorul conținut:
student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs.txt 1, Justin Timberlake, Title 545, Price $6.30 2, Taylor Swift, Title 723, Price $7.90 3, Mick Jagger, Title 610, Price $7.90 4, Lady Gaga, Title 118, Price $6.30 5, Johnny Cash, Title 482, Price $6.50 6, Elvis Presley, Title 335, Price $6.30 7, John Lennon, Title 271, Price $7.90
Vrem să înlocuim toate aparițiile prețului $6.30
cu $7.30
. Vom folosi sed
pentru a face acest
lucru.
student@uso:~/.../support/get-a-life/tutorial-sed$ sed 's/6.30/7.30/' songs.txt > songs2.txt student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs2.txt 1, Justin Timberlake, Title 545, Price $7.30 2, Taylor Swift, Title 723, Price $7.90 3, Mick Jagger, Title 610, Price $7.90 4, Lady Gaga, Title 118, Price $7.30 5, Johnny Cash, Title 482, Price $6.50 6, Elvis Presley, Title 335, Price $7.30 7, John Lennon, Title 271, Price $7.90
Mai devreme am văzut că putem extrage numele tuturor utilizatorilo din sistem folosind tr
. Vrem să
facem asta folosind și filtrul awk
.
Ne amintim că informațiile despre toți utilizatorii din sistem se află în fișierul /etc/passwd
.
student@uso:~/.../support/get-a-life/tutorial-sed$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/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
Pentru a extrage doar prima coloană, vom folosi următoarea comandă:
student@uso:~/.../support/get-a-life/tutorial-sed$ awk -F: '{print $1}' /etc/passwd root daemon 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
sed
, awk
și multe altele aici.