Pe un sistem se găsesc mai multe aplicații. Utilizatorul pornește aplicația potrivită pentru o nevoie pe care o are. De exemplu, pornește un browser web pentru a accesa Wikipedia sau pornește aplicația Spotify pentru a asculta muzică.
Utilizatorul poate porni aplicațiile folosind interfața grafică (Graphical User Interface, GUI) sau interfața în linia de comandă (Command Line Interface, CLI). În cazul interfeței grafice pornirea se face folosind elementele grafice (mouse, meniuri, iconuri de desktop). În cazul interfeței în linia de comandă pornirea se face introducând și rulând comenzi.
Pe lângă cele două moduri de mai sus, pornirea unei aplicații grafice poate fi realizată din linia de comandă (CLI), folosind șirul care identifică aplicația, la fel ca în cazul folosirii Alt+F2
. Pentru a porni o aplicație grafică din linia de comandă, avem nevoie de un terminal. Terminalul este un dispozitiv în care rulează o aplicație numită shell, care este interpretorul comenzilor introduse. Pe parcursul acestui capitol și a întregii cărți vom folosi interschimbabil shell și terminal.
Pornim o aplicație de terminal folosind fie iconul corespunzător, fie Alt+F2
urmat de șirul (comanda) gnome-terminal
. În aplicația de terminal, pornim aplicația Firefox scriind șirul (comanda) firefox
, urmat de apăsarea tastei Enter
, ca în imaginea de mai jos. Aplicația Firefox va porni.
În acest moment, în aplicația de terminal nu mai putem introduce noi comenzi pentru a porni alte aplicații. Va trebui să oprim aplicația Firefox. Oprim aplicația Firefox din mediul grafic (click pe butonul de închidere a ferestrei sau folosirea combinației de taste Alt+F4
) sau din terminal, folosind combinația de taste Ctrl+c
.
Atunci când pornim o aplicație grafică din linia de comandă, aplicația “acaparează” terminalul; nu mai putem introduce noi comenzi pentru a porni alte aplicații. Putem rezolva acest lucru prin trecerea aplicației grafice în backgroundul shellului. Adică urmăm pașii:
firefox
. Spunem că aplicația rulează în foreground și controlează terminalul; adică nu permite rularea unei alte comenzi.Ctrl+z
pentru a trece aplicația în background. În acest moment, avem din nou promptul terminalului, ca mai jos:student@uso:~$ firefox ^Z [1]+ Stopped firefox
bg
, ca mai jos:student@uso:~$ bg [1]+ firefox &
În acest mod, avem aplicația Firefox în rulare și avem acces la terminal să introducem noi comenzi.
Exercițiu: Folosiți pașii de mai sus pentru a porni și aplicația LibreOffice din linie de comandă și să mențineți accesul la terminal.
Oprirea proceselor. Semnale
.
Aplicațiile CLI, numite și utilitare, sunt proiectate pentru a fi pornite și folosite în linia de comandă. Cel mai adesea numim aplicațiile în linie de comandă utilitare sau, pur și simplu, comenzi. Scriem numele utilitarului / comenzii într-un terminal și utilitarul va fi pornit1). De exemplu, dacă dorim să afișăm utilizatorii prezenți în sistem, pornim o aplicație de terminal și folosim utilitarul who
:
student@uso:~$ who student :0 2020-09-04 17:42 (:0) student pts/0 2020-09-19 15:57 (192.168.56.1)
Sau, dacă dorim să vedem câtă memorie avem (disponibilă) în sistem, folosim utilitarul free
:
student@uso:~$ free total used free shared buff/cache available Mem: 2040972 1025716 83824 32916 931432 794692 Swap: 777300 37056 740244
ls
(de listare a conținutului unui director în linia de comandă (CLI)) folosind linia de comandă.df
(de afișare a spațiului ocupat pe disc) folosind linia de comandă.
Pentru a porni aplicații / utilitare în linia de comandă, folosim comenzi care conțin numele utilitarului urmate, eventual, de argumente. Astfel, pentru a porni utilitarele ls
sau ps
, folosim comenzi precum cele de mai jos, simple sau cu argumente:
student@uso:~$ ls Desktop Documents Downloads examples.desktop Music Pictures Public snap Templates uso.git Videos vm-actions-log.txt student@uso:~$ ls -l total 60 drwxr-xr-x 2 student student 4096 Aug 6 2018 Desktop drwxr-xr-x 3 student student 4096 Aug 20 2018 Documents drwxr-xr-x 2 student student 4096 Aug 6 2018 Downloads -rw-r--r-- 1 student student 8980 Aug 6 2018 examples.desktop drwxr-xr-x 2 student student 4096 Aug 6 2018 Music drwxr-xr-x 2 student student 4096 Aug 8 11:52 Pictures drwxr-xr-x 2 student student 4096 Aug 6 2018 Public drwxr-xr-x 3 student student 4096 Aug 8 09:02 snap drwxr-xr-x 2 student student 4096 Aug 6 2018 Templates drwxr-xr-x 14 student student 4096 Aug 20 2018 uso.git drwxr-xr-x 2 student student 4096 Aug 6 2018 Videos -rw-r--r-- 1 student student 4827 Aug 21 2018 vm-actions-log.txt student@uso:~$ ps PID TTY TIME CMD 3370 pts/4 00:00:00 bash 7979 pts/4 00:00:00 ps student@uso:~$ ps -f UID PID PPID C STIME TTY TIME CMD student 3370 3369 0 08:55 pts/4 00:00:00 -bash student 7982 3370 0 13:17 pts/4 00:00:00 ps -f
Se poate întâmpla ca o aplicație în linia de comandă să ruleze pentru prea mult timp sau să se blocheze. Caz în care dorim să o oprim. Soluția de avarie este să închidem fereastra de terminal, lucru care, de obicei, închide și aplicația. Soluția mai bună este să închidem doar aplicația. Acest lucru îl facem folosind combinația de taste Ctrl+c
care oprește aplicația care rulează în terminal2). Acest lucru poate fi realizat și pentru aplicații grafice, așa cum am văzut mai sus.
De exemplu, dacă folosim comanda sleep 100
care se va bloca pentru 100 de secunde, o vom opri folosind Ctrl+c
ca mai jos:
student@uso:~$ sleep 100 ^C student@uso:~$
Exercițiu: Folosiți următoarea comandă care pornește o aplicație care durează mult și opriți-o forțat:
watch ps
: pentru a monitoriza procesele din terminalul curentNote de subsol
Pornirea unei aplicații înseamnă că se alocă resursele sistemului (procesor, memorie, dispozitive de intrare/ieșire) pentru a rula aplicația. O aplicație care rulează, adică folosește resursele sistemului pentru a executa cod și a prelucra date, se numește proces. Atunci când pornim o aplicație, se creează un proces; atunci când oprim aplicația, sau când își încheie execuția, ne referim la încheierea execuției procesului.
Procesul este pornit dintr-un fișier executabil care conține codul (instrucțiunile) și datele aplicației. Fișierul executabil mai este numit și imaginea procesului. Fișierul executabil este un program. Spunem că procesul este un program aflat în execuție3).
Fișierul executabil al unei aplicații este încărcat în memoria sistemului și codul este executat; din acest moment spunem că aplicația rulează.
De exemplu aplicația Firefox (browser web) are asociat fișierul executabil /usr/bin/firefox
; aplicația Vim (editor) are asociat fișierul executabil /usr/bin/vim
; aplicația LibreOffice (suită office) are asociat fișierul executabil /usr/bin/libreoffice
. Putem identifica fișierul executabil al unei aplicații folosind comanda which
, urmată de comanda pentru pornirea aplicației ca mai jos:
student@uso:~$ which firefox /usr/bin/firefox student@uso:~$ which vim /usr/bin/vim student@uso:~$ which libreoffice /usr/bin/libreoffice
Exercițiu: Identificați fișierul executabil al aplicațiilor / utilitarelor Shutter, Gedit, ls
, df
.
Un sistem de operare are de obicei mai multe aplicații care rulează, deci mai multe procese. Prea multe procese pot duce la o încărcare prea mare a sistemului, încetinind sau împiedicând funcționarea acestuia. Anumite procese pot consuma excesiv resurse afectând celelalte procese. De aceea, este util să investigăm procesele unui sistem și consumul de resurse al acestora.
Un proces este creat de un alt proces. De exemplu, mai sus, procesul which
a fost creat dintr-un proces shell (bash
). Procesul shell a fost, la rândul său, creat de un alt proces. Un proces are un proces părinte; un proces poate avea mai multe procese copil. Procesele sunt, așadar, parte dintr-o ierarhie.
În vârful ierarhiei de procese este procesul numit clasic init
. În listarea de mai sus vedem că procesul din vârful ierarhiei este systemd
. systemd
4) este implementarea de init
prezentă în cea mai mare parte a distribuțiilor Linux curente5).
La nivel mai degrabă didactic, putem vizualiza lista de procese a unui sistem. Utilitarul ps
afișează procesele curente în sistem (un snapshot al proceselor sistemului). La o rulare simplă, utilitarul ps
afișează procesele din terminalul curent:
student@uso:~$ ps PID TTY TIME CMD 14897 pts/4 00:00:00 bash 14910 pts/4 00:00:00 ps
În terminalul curent (indicat de coloana TTY
din afișare, adică terminalul pts/4
) sunt două procese:
bash
) în care rulăm comenzi care creează noi procese;ps
) pe care tocmai l-am lansat prin comanda ps
; practic se afișează pe sine
Pentru a afișa toate procesele sistemului folosim opțiunea -e
(pentru everything) a utilitarului ps
ca în comanda de mai jos:
student@uso:~$ ps -e PID TTY TIME CMD 1 ? 00:00:19 systemd 2 ? 00:00:00 kthreadd 4 ? 00:00:00 kworker/0:0H 6 ? 00:00:00 mm_percpu_wq 7 ? 00:00:09 ksoftirqd/0 8 ? 00:00:06 rcu_sched 9 ? 00:00:00 rcu_bh 10 ? 00:00:00 migration/0 11 ? 00:00:00 watchdog/0 [...]
Utilitarul ps
are o afișare tabelară a proceselor, fiecare coloană corespunzând unui atribut al proceselor. La o rulare simplă, așa cum am văzut mai sus sunt afișate patru coloane:
PID
: reprezentând identificatorul procesuluiTTY
: terminalul în care rulează procesul (apare ?
pentru un proces care nu are terminal - în general procesele de tip serviciu, numite și procese daemon nu au terminal)TIME
: timpul de rulare pe procesor (în ore, minute, secunde)CMD
: numele imaginii de proces (adică numele executabilului / programului din care a fost creat procesul)
PID
(Process Id) este atributul esențial al procesului, un index care identifică procesul la nivelul sistemului. Un proces este identificat după PID, nu după numele executabilului (CMD
). Putem avea mai multe procese create din același executabil, fiecare proces având PID-ul său6).
Pentru a verifica existența mai multor procese, o să creăm mai multe procese shell. Pentru început, deschidem mai multe sesiuni de terminal, folosind, de exemplu, Alt+F2
în mediul grafic și introducând comanda gnome-terminal
în promptul creat. Apoi vizualizăm doar procesele create din executabilul bash
rulând comanda:
student@uso:~$ ps -e | grep bash 2181 pts/1 00:00:00 bash 2194 pts/2 00:00:00 bash 2205 pts/3 00:00:00 bash 14750 pts/0 00:00:00 bash 14897 pts/4 00:00:00 bash
Obținem un rezultat precum cel de mai sus. Sunt cinci procese, toate create din executabilul bash
, cu cinci PID-uri diferite: 2181
, 2194
, 2205
, 14705
, 14879
.
Un proces are mai mult decât cele patru atribute afișate la o rulare simplă a utilitarului ps
. Pentru a afișa mai multe atribute, folosim opțiunea -f
(de la full format) sau opțiunea -F
(de la extra full format), ca mai jos:
student@uso:~$ ps -f UID PID PPID C STIME TTY TIME CMD student 14897 14896 0 17:12 pts/4 00:00:00 -bash student 15026 14897 0 17:46 pts/4 00:00:00 ps -f student@uso:~$ ps -F UID PID PPID C SZ RSS PSR STIME TTY TIME CMD student 14897 14896 0 6056 5136 0 17:12 pts/4 00:00:00 -bash student 15027 14897 0 9728 3340 0 17:46 pts/4 00:00:00 ps -F
Desigur, putem să combinăm aceste opțiuni cu opțiunea -e
de afișare a tuturor proceselor:
student@uso:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Aug18 ? 00:00:19 /lib/systemd/systemd --system --deserialize 39 root 2 0 0 Aug18 ? 00:00:00 [kthreadd] root 4 2 0 Aug18 ? 00:00:00 [kworker/0:0H] root 6 2 0 Aug18 ? 00:00:00 [mm_percpu_wq] root 7 2 0 Aug18 ? 00:00:09 [ksoftirqd/0] root 8 2 0 Aug18 ? 00:00:06 [rcu_sched] root 9 2 0 Aug18 ? 00:00:00 [rcu_bh] root 10 2 0 Aug18 ? 00:00:00 [migration/0] root 11 2 0 Aug18 ? 00:00:00 [watchdog/0] [...]
Opțiunile -f
și -F
afișează și alte atribute ale procesului, precum:
UID
: numele utilizatorului care deține procesulPPID
: identificatorul procesului părinteC
: procentul de procesor ocupatSTIME
: timpul de pornire (start time)RSS
: memoria RAM ocupată (resident set size)Astfel de atribute sunt utile pentru a vedea care sunt procesele cele mai consumatoare de resurse (de exemplu procesor sau memorie).
Utilitarul ps
afișează procesele și atributele acestora la un moment dat, un snapshot al proceselor sistemului. De multe ori ne interesează și evoluția în timp a proceselor: schimbarea în consumul de resurse, apariția de noi procese. Adică să monitorizăm procesele. Monitorizarea proceselor înseamnă obținerea periodică de informații despre procese.
Evident, un mod simplu de monitorizare este să rulăm utilitarul ps
periodic. Există, însă, utilitare dedicate pentru monitorizare.
Utilitarul top
este utilitarul de bază de monitorizare a proceselor în lumea Linux. Este echivalent Task Manager din Windows. Rularea top
duce la afișarea, în terminal, a proceselor sistemului și reîmprospătarea informației periodic (implicit 2
secunde). Imaginea de mai jos este o fereastră de terminal cu rularea top
:
top
afișează informații periodice despre procese și despre starea sistemului: consum de procesor, de memorie. La fiecare perioadă (implicit 2
secunde) informația afișată este reîmprospătată.
Ca să terminăm forțat (omorâm) un proces folosim semnale. Un semnal este o notificare trimisă de utilizator sau de sistemul de operare către un proces. Nu este obligatoriu ca un semnal să omoare procesul care îl primește, dar este cel mai des întâlnit comportament, și principala utilizare a semnalelor.
Ca să trimitem un semnal unui proces trebuie să știm PID-ul acestuia și folosim utilitarul kill
urmat de PID-ul procesului. Adică, dacă pornim într-un terminal un proces sleep
folosind comanda de mai jos:
student@uso:~$ sleep 60
în alt terminal vom afla PID-ul său (folosind pidof
):
student@uso:~$ pidof sleep 9486
și apoi îl vom omorî (folosind kill
):
student@uso:~$ kill -SIGKILL 9486
Comanda kill
primește ca argument PID-ul procesului de omorât, adică 9486
.
Verificăm din nou dacă există un proces sleep
folosind pidof
:
student@uso:~$ pidof sleep student@uso:~$
Vedem din output că nu mai există procesul sleep
, deci a fost omorât.
În terminalul inițial, în care am rulat comanda sleep
, apare un mesaj care indică omorârea procesului:
student@uso:~$ sleep 60 Killed
sleep
. Omorâți-le pe toate cu o singură comandă. PID-ul shellului curent poate fi aflat folosind comanda:student@uso:~$ echo $$ 9477
shutter
. Porniți o aplicație libreoffice
. Omorâți aceste procese folosind utilitarul kill
.Note de subsol
Instalarea unui sistem de operare duce la instalarea unui set de bază de aplicații pe acel sistem. Acest set este minimal; dacă dorim funcționalități peste acest set, instalăm noi aplicații. Instalarea unei aplicații duce la adăugarea în sistem a unui fișier executabil (sau mai multe) pentru rularea aplicației și eventuale fișiere de configurare, de documentare și de stocare a datelor aplicației. Instalarea unei aplicații presupune obținerea unui fișier specializat numit pachet software și apoi despachetarea acestuia în fișierele specifice aplicației. Un pachet este efectiv o arhivă cu fișierele specifice aplicației. După instalarea aplicației / pachetului, aceasta poate fi pornită și rulată de utilizator pentru nevoile sale.
Instalarea unei aplicații dintr-un pachet software este prezentată schematic mai jos:
De partea cealaltă, dezinstalarea unei aplicații / unui pachet înseamnă ștergerea din sistem a fișierelor specifice. După dezinstalarea aplicației, aceasta nu mai poate fi pornită, nemaiexistând fișierul executabil corespunzător sau celelalte fișiere specifice.
Acțiunile de instalare, dezinstalare și configurare a pachetelor într-un sistem sunt numite colectiv gestiunea pachetelor (software) ((software) package management).
În Linux, aplicațiile sunt, în general, instalate prin intermediul unei aplicații dedicate numite manager de pachete (software) ((software) package manager sau (software) package management system). În distribuțiile Linux bazate pe Debian / Ubuntu, managerul de pachete oferă utilitarele apt
și dpkg
(și altele) și aplicații precum Synaptic. În distribuțiile Linux bazate pe RedHat / Fedora, managerul de pachete oferă utilitarele yum
sau dnf
sau rpm
(și altele) precum PackageKit.
apt
și dpkg
.
În continuare vom prezenta acțiunile de instalare și dezinstalare a unui pachet folosind interfața în linia de comandă.
Cel mai adesea, dorim rapid să avem o aplicație care să ne rezolve o nevoie. Să presupunem că avem nevoia să lucrăm cu fișiere în format SVG (Scalable Vector Graphics). Pentru aceasta vom instala aplicația Inkscape.
În linia de comandă, folosim utilitarul apt
pentru a instala pachetul inkscape
:
student@uso:~$ sudo apt update [sudo] password for student: Hit:1 http://ro.archive.ubuntu.com/ubuntu bionic InRelease [...] student@uso:~$ sudo apt install inkscape [...]
Comanda sudo apt update
actualizează informațiile despre pachete; vom clarifica mai jos rolul său, inclusiv de ce este recomandată rularea sa (fără a fi obligatorie). Comanda sudo apt install inkscape
instalează efectiv pachetul numit inkscape
, care va instala aplicația Inkscape. Instalarea pachetelor în sistem este o acțiune privilegiată, care necesită permisiuni administrative. Din acest motiv cele două comenzi de mai sus sunt prefixate de comanda sudo
.
În acest moment, aplicația Inkscape este instalată și poate fi pornită.
Exercițiu: Porniți aplicația Inkscape în toate modurile descrise în secțiunea Pornirea și oprirea aplicațiilor grafice
.
Avem nevoie de un player video și știm că VLC este unul dintre cele mai folosite playere. Pentru a îl folosi pe sistem, instalăm pachetul vlc
:
student@uso:~$ sudo apt install vlc [sudo] password for student: [...] Do you want to continue? [Y/n] Y [...]
Acum aplicația VLC este disponibilă în sistem.
Exercițiu: Porniți aplicația VLC în modurile descrise în Pornirea și oprirea aplicațiilor grafice
.
sudo apt update
pentru că sistemul este deja actualizat de la instalarea pachetului inkscape
.
Instalați și porniți următoarele pachete din linia de comandă:
wikit
: pachet care instalează utilitarului wikit
(în linia de comandă) care obține informații din Wikipediagimp
: pachet care instalează aplicația Gimp (cu interfață grafică), un editor de imaginiDacă nu mai folosim o aplicație și dorim să eliberăm spațiul ocupat pe disc, putem opta pentru a dezinstala o aplicație. Dezinstalarea înseamnă că toate fișierele corespunzătoare aplicației vor fi șterse de pe disc.
Acțiunea de dezinstalare este mai rară. Beneficiul principal al dezinstalării este eliberarea spațiului ocupat pe disc de fișiere corespunzătoare aplicației. Dar pentru că spațiul pe disc este suficient, apelăm mai rar la această acțiune.
La fel ca în cazul instalării, o aplicație poate fi instalată sau dezinstalată din interfața grafică a managerului de pachete sau din cea în linia de comandă. Dezinstalarea poate fi făcută din interfața în linia de comandă chiar dacă aplicația a fost instalată din interfața grafică și invers.
La fel ca în cazul instalării, acțiunea de dezinstalare este privilegiată.
Dezinstalarea din linia de comandă se face cu o comandă precum:
student@uso:~$ sudo apt remove neofetch [sudo] password for student: Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: neofetch 0 upgraded, 0 newly installed, 1 to remove and 311 not upgraded. After this operation, 365 kB disk space will be freed. Do you want to continue? [Y/n] Y (Reading database ... 199030 files and directories currently installed.) Removing neofetch (3.4.0-1) ... Processing triggers for man-db (2.8.3-2) ...
În comanda de mai sus, am dezinstalat pachetul neofetch
. Comanda de dezinstalare (apt remove
) a fost prefixată de comanda sudo
pentru că este vorba de o acțiune privilegiată. La dezinstalare se cere confirmarea că dorim dezinstalarea pachetului.
În urma acestei acțiuni, fișierele corespunzătoare pachetului neofetch
au fost șterse, incluzând fișierul executabil corespunzător. Acum nu mai avem acces la utilitar și comanda neofetch
va eșua.
Comanda apt remove
șterge fișierele corespunzătoare pachetului, dar lasă anumite fișiere de configurare modificate de utilizator. Aceasta pentru a permite ca o instalare ulterioară să refolosească vechea configurare. Dacă dorim ștergerea inclusiv a fișierelor de configurare modificate, folosim comanda:
student@uso:~$ sudo apt purge neofetch [sudo] password for student: Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: neofetch* 0 upgraded, 0 newly installed, 1 to remove and 311 not upgraded. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] Y (Reading database ... 198873 files and directories currently installed.) Purging configuration files for neofetch (3.4.0-1) ...
Comanda de mai sus a șters fișierele de configurare pentru pachetul neofetch
. Comanda apt purge
poate fi folosită pentru a dezinstala pachete instalate, sau pentru a “curăța” (purge) pachete care au fost dezinstalate dar care mai au fișiere de configurare.
Dezinstalați două dintre pachetele pe care le-ați instalat mai sus folosind linia de comandă.
O aplicație este, în general, dezvoltată în continuu. Dezvoltatorii aplicației adaugă noi funcționalități, sau rezolvă probleme de funcționare sau de securitate, sau fac aplicația mai robustă sau mai eficientă8).
La fel ca în cazul instalării și dezinstalării, actualizarea aplicațiilor duce la modificarea fișierelor din sistem, deci este o acțiune privilegiată.
Dacă dorim actualizarea individuală a unui pachet, putem folosi interfața grafică, navigând până la zona specifică aplicației.
Altfel, putem folosi o comandă precum:
student@uso:~$ sudo apt install inkscape [sudo] password for student: Reading package lists... Done Building dependency tree Reading state information... Done inkscape is already the newest version (0.92.3-1). 0 upgraded, 0 newly installed, 0 to remove and 311 not upgraded.
Când comanda apt install
primește ca argument un pachet deja instalat, va verifica dacă există o versiune actualizată a acestuia. În cazul de mai sus, versiunea instalată a pachetului inkscape
(0.92.3-1
) este cea mai nouă și nu este nevoie de actualizare.
Cel mai adesea, un utilizator va opta pentru actualizarea tuturor aplicațiilor sistemului, sau pe scurt, pentru actualizarea sistemului. Acest lucru se întâmplă și pentru că sistemul notifică periodic utilizatorul de prezența unor versiuni noi de aplicații.
Când este cazul, utilizatorul poate folosi interfața grafică sau sau cea în linia de comandă a managerului de pachete pentru actualizarea sistemului. De obicei, utilizatorul va folosi interfața grafică în momentul primirii unei notificări.
Pentru actualizarea sistemului din interfața în linia de comandă, vom folosi o comandă precum:
student@uso:~$ sudo apt update [...] student@uso:~$ sudo apt upgrade [...] 311 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/301 MB of archives. After this operation, 100 MB of additional disk space will be used. Do you want to continue? [Y/n] Y [...]
Folosind comanda apt upgrade
actualizăm toate aplicațiile în sistem9). Este recomandat să actualizăm informațiile interne despre pachetele sistemului folosind comanda apt update
.
Alt+F2
, când folosim aplicații CLI în linia de comandă, mesajele vor fi vizibile. Acest lucru se întâmplă pentru că linia de comandă înseamnă existența unui terminal unde putem vizualiza mesajele.
Ctrl+c
poate să nu funcționeze. În acest caz putem folosi combinația de taste Ctrl+\
, mai puternică. Dacă nici Ctrl+\
nu funcționează, va trebui să trimitem aplicației un semnal mai puternic care să o oprească. Vom discuta despre semnale în Oprirea proceselor. Semnale
.
init
va exista în permanență în vârful ierarhiei de procese, indiferent de faptul că se va numi systemd
, init
, upstart
sau altfel.
top
este un utilitar interactiv. Adică în timpul rulării sale utilizatorul poate interacționa cu procesele sau poate modifica informațiile afișate. De exemplu, folosirea tastei M
într-o rulare top
afișează procesele sortate după consumul de memorie. Un sumar al comenzilor interactive din top
se obține folosind tasta ?
.
apt upgrade
face actualizare conservatoare a sistemului. Dacă un anumit pachet ar fi dezinstalat de acțiunea de actualizare a sistemului, pachetul nu va fi atins de managerul de pachete. Dacă dorim o actualizare completă a sistemului, incluzând dezinstalarea anumitor pachete (pentru că sunt incompatibile cu alte apchete), vom folosi comanda:
student@uso:~$ sudo apt full-upgrade