Acasă > Linux > Consola – cel mai bun prieten al meu !

Consola – cel mai bun prieten al meu !

planeta linux Consola   cel mai bun prieten al meu !

Probabil că vă întrebaţi: – Dacă am interfaţă grafică la ce îmi mai trebuie consola !? Iată un set de motive pentru care în unele situaţii aţi alege, sau ați fi obligat să folosiți consola:

1. multe lucruri se pot face mai rapid decât în mod grafic;
2. puteţi face unele operaţii ce în mod grafic nu pot fi făcute;
3. unele aplicaţii rulate din consolă, fie ele chiar şi aplicaţii grafice pot fi mai bine customizate cu parametri decât opţiunile din meniuri;

4. atât consola cât şi interfaţa grafică sunt doar nişte aplicaţii care oferă o metodă de comunicare între utilizator şi calculator. Diferenţa este, în afară de aparenţă – text/grafic pentru că interfaţa grafică s-ar putea să nu funcționeze, consola însă funcționează tot timpul;
5. prin consolă puteţi afla mai multe detalii despre sistemul dvs. decât cu interfaţa grafică;
6. prin consolă aveţi acces mai profund la setările sistemului …

Lista ar putea continua cu multe pagini, dar scopul acestui articol nu este să vă conving cât de bună este consola ci mai degrabă să facem o introducere în tainele modului text. Nu vă voi da un dicţionar de comenzi ci voi prezenta doar câteva lucruri utile cu exemple cât mai multe. Astfel veţi afla informaţii despre:

a) accesarea modului text;
b) ce înseamnă o consolă;
c) ce înseamnă shell;
d) modul de folosire a shell-ului bash;
e) sistemul de fişiere şi foldere (directoare);
f) folosirea unui file manager în mod text pentru operaţii cu fişiere şi foldere;
g) cum să vizualizaţi conţinutul unui fişier;
h) cum să faceţi căutări rapide în rezultatele returnate de o comandă;
i) cum să verificaţi ce procese/programe rulează pe sistem, cât consumă fiecare din resursele sistemului şi cum să le opriţi;
j) cum să aflaţi mai multe despre sistemul vostru;
k) unde se ascund fişierele de configurare ale diferitelor componente hard şi soft;
l) cum să faceţi un program să ruleze la pornirea sistemului;
m) cum accesaţi manualul inclus în Linux pentru toate aplicaţiile;
n) cum să rulaţi aplicaţii grafice cu parametri speciali (ex. Mplayer);
o) cum să vă accesaţi calculatorul de la distanţă având control deplin asupra lui;
p) alte referinţe on-line.

Toate punctele vor fi detaliate în continuare. Limbajul şi explicaţiile vor fi progresive, astfel încât dacă nu sunteţi familiarizaţi cu consola citiţi fiecare punct pe rând. Toate descrierile ce urmează presupun că rulaţi Mandriva Linux şi aveţi interfaţa grafică pornită.

a) Accesarea modului text.
În orice sistem GNU/Linux aveţi la dispoziţie 6 (şase) console exclusiv în mod text şi un număr nelimitat de console în ferestre din cadrul interfeţei grafice, consola 7 este implicit dedicată interfeţei grafice !
Accesarea celor 6 console exclusiv text le puteţi face astfel:

● dacă vă aflaţi în interfaţă grafică, apăsaţi una din variantele:
ALT+CTRL+F1 sau F2 până la F6. Odată ajunşi în mod text vi se va prezenta un “Login:“, treceţi utilizatorul şi apăsaţi tasta Enter. Vi se va cere parola, o introduceţi şi apăsaţi tasta Enter.

ATENŢIE: când introduceţi parola, pe ecran nu se afişează nici un text, nici steluţe;

● dacă vă aflaţi deja în mod text, puteţi accesa celelalte console cu ALT+F1…F6;
revenirea în mod grafic se face cu combinaţia de taste ALT+F7.
Există posibilitatea declarării a mai multe console, în principiu până la 12.

b) / c) Definire CONSOLĂ şi SHELL
Pentru a înţelege mai bine ce înseamnă fiecare vom recurge la un simplu grafic:

Consola Consola   cel mai bun prieten al meu !

CONSOLĂ şi TERMINAL sunt sinonime. În diferite documentaţii veţi putea găsi varianta prescurtată a termenului “terminal” sub forma prescurtată “term“.
Consola sau terminalul – în continuare ne vom referi la aceşti termeni folosind termenul consolă – are scopul de a oferi o interfaţă între sistem şi periferice cum ar fi tastatura, mouse, monitor, porturi ale computerului. Consola nu e responsabilă pentru driverele aferente, doar cu folosirea lor.

SHELL-ul este responsabil pentru interfaţarea cu utilizatorul. Adică este responsabil de acceptarea unui set de comenzi specifice lui, rularea programelor în mod text şi prezentarea rezultatelor.
Exemple de console: cea mai folosită consolă în zilele noastre se numeşte “xterm” pentru modul exclusiv text, iar ca şi console sub interfaţa grafică menţionăm doar câteva dintr-o listă foarte lungă: Konsole, Eterm, Yakuake, Aterm, Gterm, … etc.
Exemple de SHELL-uri: primul shell avea numele … “shell” prescurtat în “sh“, o rescriere a acestuia cu foarte multe îmbunătăţiri a dat naştere la ceea ce este azi cel mai folosit shell, numit “bash“, adică “Bourn Again Shell“. Alte shell-uri: csh, zsh, etc.

În continuare în toate exemplele şi explicaţiile ce urmează vom folosi consola “xterm” şi shell-ul “bash“. În cazuri excepţionale voi menţiona varianta folosită.

d) Modul de folosire a shellului BASH
Bash oferă utilizatorului pe lângă interfaţa cu sistemul şi bazele unui limbaj de programare interpretat (script) propriu. Implicit, utilizatorul primeşte un prompter de genul:

[tux@localhost ~]$

În exemplu distingem următoarea sintaxă:

[@]$

Semnul tilda (~) indică tot timpul folderul home al utilizatorului. În exemplul de mai sus, acesta va indica /home/tux. Dacă un utilizator este nesigur în ce folder se află sau din motive diferite vrea să afle întreaga cale a folderului curent, se poate folosi comanda “pwd“.

[tux@localhost ~]$ pwd
/home/tux

Evident fiecare comandă este urmată de tasta Enter pentru a fi activată. Rezultatul oricărei comenzi se afişează începând din rândul următor. Există posibilitatea rulării mai multor comenzi scrise într-o singură linie. Pentru acest lucru se folosesc operatorii de concatenare ale acestora în funcţie de operaţia dorită, astfel:

● executarea a două sau mai multe comenzi independent una de alta şi pe rând:

[tux@localhost ~]$ pwd; ls -l

Exemplul execută comanda “pwd“, după care execută comanda “ls” cu opţiunea “-l” (descrierea comenzilor nu este relevantă în acest moment).
Se observă că cele două comenzi sunt despărţite de semnul “;” (punct şi virgulă).

● executarea a două sau mai multe comenzi în aşa fel încât următoarea comandă să se aplice asupra rezultatului comenzii precedente:

[tux@localhost ~]$ cat ~/.mplayer/config | grep subcp

Cele două comenzi în acest caz sunt “cat ~/.mplayer/config” şi “grep subcp“, fiecare cu parametrii ei.
Se observă că cele două comenzi sunt despărţite de semnul “|” (bară verticală).

● executarea celei de a doua comenzi asupra rezultatului comenzii precedente numai dacă prima s-a terminat cu succes (fără eroare): Se foloseşte semnul “&&” pentru concatenare. Remarcaţi că se pune dublat.

● executarea celei de a doua comenzi asupra rezultatului comenzii precedente dacă acesta returnează o eroare (stare de ieşire diferită de zero): Se foloseşte semnul “||“, adică două bare verticale. Un exemplu util pentru acest operator ar fi o comandă combinată care să creeze un folder numai în cazul în care acesta nu există:

[tux@localhost ~]$ cd tmp/a/b/c || mkdir -p tmp/a/b/c

În ceea ce priveşte posibilităţile de scripting ale BASH vom menţiona doar că acesta prezintă toate elementele clasice ale unui limbaj de programare: if, when, do, until, switch, for, etc. Mai multe detalii despre folosirea BASH puteţi afla prin comanda:

[tux@localhost ~]$ man bash

În mod asemănător puteţi afla informaţii suplimentare despre comenzi folosind comanda “man” urmat de numele comenzii sau programului. Dacă nu găsiţi informaţii pentru comanda sau programul respectiv, un alt sistem de informaţii vă stă la dispoziţie, numit “info“. Încercaţi să rulaţi comanda “info date” pentru a afla tot ce ştie să facă respectiva comandă “date“.

e) Sistemul de fişiere şi foldere (directoare)
Sistemul de operare GNU/Linux se bazează pe ideea că “totul este un fişier“. Este foarte important ca un utilizator GNU/Linux să înţeleagă sistemul de fişiere, pentru că astfel va înţelege mai bine sistemul. Tratând totul ca fişier se uşurează munca în foarte multe situaţii şi se asigură o securitate ridicată sistemului.

Ce este de fapt acest “tot” !? Cuprinde folderele, perifericele, porturile, comunicările, partiţiile de harddisk şi toate componentele calculatorului, configuraţiile programelor, etc. Astfel, de exemplu mouse-ul este văzut de sistem ca un fişier (/dev/mouse). Acel fişier este periodic citit de sistem pentru a urmări comenzile de la mouse.
Sistemul de fişiere şi foldere este ordonat ierarhic, sub forma unui arbore. Rădăcina sistemului este “/” (marcat cu semnul împărţirii) – numit în limba engleză “root” (a nu se confunda cu utilizatorul root – adică administrator al sistemului). Toate folderele, subfolderele, fişierele etc., se află într-o ramură logică pornită de la rădăcină. Ramificaţiile sunt împărţite de asemenea de semnul “/”. Astfel, linia:

/home/tux/fisier, se poate interpreta astfel (din stânga spre dreapta):

➢ / – rădăcina;
➢ home – un folder;
➢ / – despărţitor foldere;
➢ tux – subfolder;
➢ / – despărţitor foldere;
➢ fisier – numele fişierului.

Fişierele (şi aici mă refer şi la foldere) au un set de atribute împărţite pe 3 categorii in funcţie de “proprietarul” fişierului. Atributele de bază se referă la drepturile de citire, scriere şi executare ale unui fişier, separat pentru cele trei nivele de proprietate: owner (proprietar), group (grup) şi other (alţii). Un fişier cu atributul “d” este un folder (adică director). Datorită acestui sistem, fişierele nu au extensii în GNU/Linux. În Windows, se ştie că un fişier care se termină cu “.exe” este executabil. În GNU/Linux orice fişier setat cu drept de execuţie este tratat ca executabil. “Extensiile” .xyz găsite în fişiere pe Linux practic fac parte din numele fişierului şi au scop pur orientativ. De exemplu, un fişier ce se termină cu “.odt” este un document OpenOffice. În continuare sistemul poate lua unele decizii în funcţie de acesta, cum ar fi pornirea OpenOffice care să deschidă fişierul “.odt” indicat de utilizator. Propun în continuare un mic exerciţiu pentru a vă familiariza cu comenzile de bază aferente lucrului cu fişiere:

● schimbăm folderul curent într-unul temporar:
[tux@localhost ~]$ cd tmp/
● creăm un folder numit ”exemplu”:
[tux@localhost tmp]$ mkdir exemplu
● schimbăm folderul curent în cel nou creat (comanda cd – change directory):
[tux@localhost tmp]$ cd exemplu
● observăm structura, cum se schimbă datele informative din interiorul parantezelor drepte. Comanda pwd ne arată toată calea, pe când în parantezele drepte se vede doar directorul curent:
[tux@localhost exemplu]$ pwd/home/tux/tmp/exemplu
● cu ajutorul comenzii ”echo” creăm un fişier nou numit ”fişier_text”, cu
conţinutul ”exemplu_text”:
[tux@localhost exemplu]$ echo “exemplu_text” > fisier_text
● mutăm directorul curent cu un director mai sus, acest lucru se semnalează prin ”..”:
[tux@localhost exemplu]$ cd ../
● creăm folderul ”exemplu2”:
[tux@localhost tmp]$ mkdir exemplu2
● dacă o comandă este scrisă incomplet şi se apasă tasta TAB, se afişează toate posibilităţile, ca mai jos, în urma lui ”cd exe” s-a apăsat TAB, sistemul a afişat posibilităţile ”exemplu/ exemplu2/”, acestea două fiind
singurele foldere care încep cu ”exe” şi se afla în folderul curent ”tmp”: [tux@localhost tmp]$ cd exe exemplu/ exemplu2/
● s-a schimbat folderul curent în ”exemplu2”:
[tux@localhost tmp]$ cd exemplu2
● se copiază fişierul creat din folderul ”exemplu” în ”exemplu2”. Metoda de folosire a căii a fost următoarea: ”../exemplu/fisier_text”, adică fişierul
”fişier_text” din subfolderul ”exemplu” situat cu un folder deasupra ”..”.
Destinaţia a fost exprimată ca şi folderul curent ”./”
[tux@localhost exemplu2]$ cp ../exemplu/fisier_text ./
● listăm conţinutul folderului curent, în care se observă fişierul proaspăt copiat.
tux@localhost exemplu2]$ ls -al
total 12
drwxr-xr-x 2 tux tux 4096 2008-02-26 16:59 ./
drwx- 10 tux tux 4096 2008-02-26 16:59 ../
rw-r-r- 1 tux tux 13 2008-02-26 16:59 fisier_text

Interpretarea rezultatului listării conţinutului folderului (comanda de mai sus):

total 12 – adică 12 rezultate găsite
drwxr-xr-x 2 tux tux 4096 2008-02-26 16:59 ./ – adică
■ d – director;
■ rwx – citire/scriere/executare pentru proprietar;
■ r-x – citire/executare pentru grup;
■ r-x – citire/executare pentru alţii;
■ 2 – numărul elementelor (folderul în sine + fişierul nostru);
■ tux – proprietar;
■ tux– grup;
■ 4096 – mărime folder. Valoare implicită pentru foldere.
■ 2008-02-26 16:59 – data şi ora creării;
■ ./ – numele, adică folderul curent.
drwx—— 10 tux tux 4096 2008-02-26 16:59 ../
■ d – director;
■ rwx – citire/scriere/executare pentru proprietar;
■ — – nici un drept pentru grup;
■ — – nici un drept pentru alţii;
■ 10 – numărul elementelor;
■ tux– proprietar;
■ tux – grup;
■ 4096 – mărime folder. Valoare implicită pentru foldere.
■ 2008-02-26 16:59 – data şi ora creării;
■ ../ – numele, adică folderul de deasupra.
-rw-r–r– 1 tux tux 13 2008-02-26 16:59 fișier_text
■ – – adică NU este director;
■ rw- – citire/scriere pentru proprietar;
■ r– – citire pentru grup;
■ r– – citire pentru alţii;
■ 1 – numărul elementelor (un singur fişier);
■ tux– proprietar;
■ tux– grup;
■ 13 – mărime fişier, exprimat în bytes;
■ 2008-02-26 16:59 – data şi ora creării;
■ fisier_text – numele fişierului.

Mai menţionez câteva comenzi utile:

● rm – pentru ştergere fişier.
● mv – pentru mutare sau redenumire fişier.
● rename – tot pentru redenumire.
● rmdir – pentru ştergere folder.

Puteţi afla parametrii aferenţi fiecărei comenzi prin “comanda–help“. Mai multe detalii se pot afla cu “man comanda” respectiv “info comanda“, unde “comanda” se înlocuieşte cu comanda dorită.

f) Folosirea unui file manager în mod text
Cel mai folosit file manager în mod text se numeşte “Midnight Commander“.

MC Consola   cel mai bun prieten al meu !

Din prima se poate observa că seamănă foarte mult cu vestitul “Norton Commander“, însă, faţă de acesta din urmă, Midnight Commander (în continuare referit cu denumirea scurtă – “mc“) este mult mai avansat şi specific Linux-ului. Pentru a porni programul, tastaţi comanda mc:

[tux@localhost ~]$ mc

Toate shortcut-urile cu care v-aţi obişnuit în Norton Commander, Windows Commander sau Total Commander sunt perfect valabile:

● F5 – copiere fişier;
● F6 – mutare fişier;
● F8 – ştergere fişier;
● F9 – accesare meniu;
● F10 – ieşire din program;
● F3 – vizualizare fişier;
● F4 – editare fişier;
● Shift+F4 – editare fişier nou;
● * – selectează/deselectează tot;
● Insert – selectează fişier curent;
● etc.

mc ştie să trateze fişiere cu denumire lungă, în cazul în care aceasta (denumirea) nu încape pe ecran, este trunchiată. Scurtarea numelui se semnalizează cu semnul tilda.

g) Cum să vizualizaţi conţinutul unui fişier
Vom proceda prin exemplificarea problemei.
● creăm un fişier text numit wineman, de exemplu din manualul pentru programul wine:
[tux@localhost ~]$ man wine >> ./wineman
● afişăm întregul rezultat al lui:

[tux@localhost ~]$ cat ./wineman
WINE(1) Windows On Unix
67
Ghid Mandriva Linux 2009.1 Spring – www.mandrivausers.ro
WINE(1)
NAME
wine run Windows programs on Unix
SYNOPSIS
wine program [arguments ... ]
wine help
wine –version
[ ... ]
SEE ALSO
wineserver(1), winedbg(1)
Wine 0.9.55 October 2005
WINE(1)

Textul a fost scurtat pentru că e foarte lung.
● Pentru text foarte lung, poate ne interesează doar ultimele câteva linii.
Atunci folosim comanda “tail“:
[tux@localhost ~]$ tail ./wineman
comanda va afişa ultimele câteva linii. Pentru a specifica numărul de linii ce dorim să afişăm folosim parametrul “-n” astfel:
[tux@localhost ~]$ tail -n 30 ./wineman
va afişa ultimele 30 linii din fişierul wineman.

h) Cum să faceţi căutări rapide în rezultatele returnate de o comandă.
Pentru acest lucru ne vom folosi de o comandă care să returneze ceva informaţii, de posibilitatea concatenării comenzilor şi de comanda “grep”. Comanda ce ne va returna rezultate multe va fi “ps aux”, o comandă ce generează lista tuturor programelor sau proceselor pornite în sistem şi o afişează pe ecran. Cum lista este lungă şi de cele mai multe ori ne interesează doar un program anume, vom căuta în lista respectivă astfel ca să fie afişat doar ce ne interesează. Rulăm comanda astfel, şi vedem rezultatele:

[root@localhost csabi]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1708 464 ? Ss 09:17 0:00 init [5]
root 2 0.0 0.0 0 0 ? S< 09:17 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 09:17 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 09:17 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 09:17 0:00 [migration/1]
postfix 6788 0.0 0.1 6240 1500 ? S 10:58 0:00 pickup -l -t fifo
-u -c -o content_filter -o receive_override_options
tux 6836 0.5 1.7 117664 17912 ? Sl 11:01 0:15 /usr/bin/lancelot
tux 6848 0.0 0.1 5452 1548 ? S 11:01 0:00 /usr/lib/gvfsd
root 6916 0.0 0.0 4408 1012 pts/1 S 11:05 0:00 su
root 6922 0.0 0.1 4048 1220 pts/1 S 11:06 0:00 bash
tux 7022 11.2 9.2 251840 95124 ? Sl 11:09 3:56 /usr/bin/firefox
tux 7024 0.0 0.2 6272 2724 ? S 11:09 0:00 /usr/lib/gconfd-2
tux 7534 0.0 0.2 6064 2924 ? SN 11:19 0:00
/usr/lib/opera/9.60/operapluginwrapper 72 114 /home/tux/.mozilla/plugins/n
tux 7549 0.2 1.9 73092 19516 ? S 11:20 0:03 konqueror
-mimetype inode/directory file:///home/tux
tux 7607 0.0 0.3 35056 3420 ? S 11:23 0:00 kdeinit4:
kio_file [kd up
tux 8183 0.0 0.2 5824 2536 ? S 11:24 0:00 /usr/lib/gvfs-
hal-volume-monitor
root 15311 0.0 0.0 2640 868 pts/1 R+ 11:44 0:00 ps aux

Notă: Rezultatul a fost scurtat pentru că altfel se întindea pe 4-5 pagini. Rezultatul pe care o să-l obţineţi va fi evident, oarecum diferit datorită faptului că veţi rula programe diferite. Remarcaţi liniile îngroşate. Asta este ce ne interesează. De fapt, acele 4 linii sunt doar 2 linii, doar că nu încap în lungime. Ce au în comun cele două linii şi ne poate interesa !? Au programul "opera", adică un webbrowser ce tocmai e pornit. Dacă ne interesează doar acest lucru, folosim comanda "grep". Aceasta are următoarea sintaxă:
grep text_de_cautat
Sintaxa menţionată va căuta în aşa numitul "stdout" sau Standar Output – Ieşire Implicită, care în cele mai multe cazuri este ecranul.

[root@localhost tux]# ps aux | grep opera
tux 5757 2.2 9.0 189820 92668 ? Sl 09:18 3:22
/usr/lib/opera/9.60/opera -style ia_ora
tux 6136 0.0 0.7 72064 8076 ? SN 09:40 0:01
/usr/lib/opera/9.60/operapluginwrapper 79 103
/usr/lib/opera/plugins/libflashplayer.so
tux 6137 0.0 0.0 2860 616 ? S 09:40 0:00
/usr/lib/opera/9.60/operaplugincleaner 5757
tux 7534 0.0 0.2 6064 2924 ? SN 11:19 0:00
/usr/lib/opera/9.60/operapluginwrapper 72 114
/home/tux/.mozilla/plugins/nppdf.so
root 16422 0.0 0.0 3220 708 pts/1 S+ 11:51 0:00 grep –color opera

Evident că în listă s-a strecurat pe ultima linie chiar comanda rulată de noi, care conţine de asemenea cuvântul opera.
Alternativ, grep ştie să caute direct în fişiere. Şi în acest caz, returnează linia sau liniile ce conţin textul căutat. În acest context, sintaxa se modifica astfel:
grep text_de_cautat nume_fisier

i) Cum să verificaţi ce procese sau programe rulează pe sistem, cât consumă din resursele sistemului şi cum să le opriţi.
Lista tuturor proceselor sau programelor pornite poate fi consultată cu comanda “ps“, iar parametrii cei mai folosiţi sunt “aux” comanda modificându-se astfel, iar rezultatul cum se vede în exemplul următor:

[root@localhost tux]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1652 560 ? Ss 09:15 0:01 init [5]
root 2 0.0 0.0 0 0 ? S< 09:15 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 09:15 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 09:15 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 09:15 0:00 [migration/1]
root 6 0.0 0.0 0 0 ? S< 09:15 0:00 [ksoftirqd/1]
root 7 0.0 0.0 0 0 ? S< 09:15 0:00 [events/0]

[...]
Lista a fost scurtată pentru că pe un sistem rulează zeci sau sute de procese simultan. Ce ne interesează cel mai mult din rezultate:

USER – utilizatorul care a pornit procesul. Numai acest utilizator sau root poate opri procesul respectiv.
PID – identificatorul procesului, un număr unic asignat fiecărui proces. Prin acest număr poate fi identificat orice proces. De exemplu acelaşi utilizator porneşte acelaşi program de 2 ori în acelaşi moment. Nu ar exista nici o deosebire intre ele, dacă nu ar avea un identificator unic.
COMMAND – comanda sau programul efectiv rulat. Dacă dorim sa vedem topul proceselor în funcţie de utilizare procesor, ne folosim de progrămelul “top“:

[root@localhosttux]#top
top – 11:54:00 up 2:36, 1 user, load average: 0.82, 0.87, 0.63
Tasks: 155 total, 1 running, 154 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.4%us, 1.5%sy, 0.0%ni, 90.1%id, 0.0%wa, 0.0%hi, 0.0%si,
0.0%st
Mem: 1025012k total, 843100k used, 181912k free, 7540k buffers
Swap: 1020116k total, 78184k used, 941932k free, 197140k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5317 tux 20 0 148m 50m 14m S 10 5.0 2:12.59 plasma
2593 root 20 0 473m 113m 4328 S 7 11.3 10:46.76 X
5311 tux 20 0 60644 12m 9008 S 2 1.2 2:44.48 kwin
5748 tux 20 0 114m 20m 13m S 1 2.0 0:19.92 kopete
3242 root 20 0 39988 8212 3904 S 0 0.8 0:12.34 python
5159 tux 20 0 2844 968 572 S 0 0.1 0:05.88 dbus-daemon
5367 tux 20 0 71912 13m 9132 S 0 1.3 0:03.71 yakuake
5382 tux 20 0 54284 7076 5576 S 0 0.7 0:03.10 klipper
5757 tux 20 0 177m 90m 12m S 0 9.0 3:23.19 opera
7022 tux 20 0 251m 99m 21m S 0 9.9 5:17.60 firefox
7549 tux 20 0 73092 19m 13m S 0 2.0 0:04.16 konqueror
16436 root 20 0 2400 1020 784 R 0 0.1 0:00.03 top
1 root 20 0 1708 468 436 S 0 0.0 0:00.66 init

top” afişează doar atâtea procese câte încap în ecran. Cel mai mare consumator proces de resurse va fi pe primul loc din listă. După cum se poate observa, lista seamănă cu cea generată de “ps“. Primele 3-4 linii prezintă un sumar referitor la resursele sistemului. Dacă un proces trebuie oprit şi nu există altă metodă decât linia de comandă pentru acest lucru (de exemplu se blochează o aplicaţie şi nu mai reacţionează la clic-uri cu mouse-ul), se poate folosi comanda “kill” care are mai multe nivele de a forţa oprirea aplicaţiei. Astfel: kill 11195 va “ucide” procesul aferent programului top din exemplul de mai sus. Evident rulat ca root.
kill -9 11195 va face acelaşi lucru în cazul nostru. Opţiunea “-9” înseamnă cel mai mare nivel de forţare a opririi unui proces. Să înţelegeţi mai bine … “kill‘ trimite o cerere către aplicaţie ca aceasta să se oprească şi aşteaptă cu răbdare răspunsul ei. “kill -9” trimite un ordin către aplicaţie să se oprească şi nu-l interesează ce părere are aplicaţia despre acest lucru.

j) Cum să aflaţi mai multe despre sistemul vostru.
Un mic sumar despre GNU/Linux-ul instalat, numele computerului, versiunea de kernel şi procesor se poate afla astfel:

[root@localhost tux]# uname -a
Linux localhost 2.6.27-desktop-0.rc8.2mnb #1 SMP Thu Oct 2 06:11:56 EDT 2008 i686 Genuine Intel(R) CPU T2060 @ 1.60GHz GNU/Linux

Un program interesant şi performant pentru informaţii hardware se numeşte “hwinfo“. De obicei nu se instalează pe sistem automat, aşa că îl puteţi instala cu comanda următoare:
[root@localhost tux]# urpmi hwinfo
După instalare, pentru o listă completă, foarte lungă (peste 1000 de linii), rulaţi pur şi simplu “hwinfo” astfel:
[root@localhost tux]# hwinfo
Partea frumoasă a programului este că poate să vă returneze doar informaţiile ce vă interesează cu ajutorul unui set de parametri. De exemplu pentru informaţii despre sunet rulaţi “hwinfo –sound” şi veţi afla tot ce ştie sistemul despre plăcile de sunet:

[root@localhost tux]# hwinfo -sound
11: PCI 1b.0: 0403 Audio device
[Created at pci.300]
UDI: /org/freedesktop/Hal/devices/pci_8086_27d8
Unique ID: u1Nb.Xr0+ey1p7G5
SysFS ID: /devices/pci0000:00/0000:00:1b.0
SysFS BusID: 0000:00:1b.0
Hardware Class: sound
Model: “HewlettPackard Company 82801G (ICH7 Family) High
Definition Audio Controller”
Vendor: pci 0×8086 “Intel Corporation”
Device: pci 0x27d8 “82801G (ICH7 Family) High Definition Audio
Controller”
SubVendor: pci 0x103c “HewlettPackard Company”
SubDevice: pci 0x30bb
Revision: 0×02
Driver: “HDA Intel”
Driver Modules: “snd_hda_intel”
Memory Range: 0xd82400000xd8243fff (rw,nonprefetchable)
IRQ: 22 (348502 events)
Module Alias:
“pci:v00008086d000027D8sv0000103Csd000030BBbc04sc03i00″
Driver Info #0:
Driver Status: snd_hda_intel is active
Driver Activation Cmd: “modprobe snd_hda_intel”
Config Status: cfg=new, avail=yes, need=no, active=unknown

k) Unde se ascund fişierele de configurare ale diferitelor componente hard şi soft.
Deoarece fiecare program are configuraţiile într-un mod specific, în cele ce urmează vom recurge la generalităţi şi la câteva exemple semnificative. Setările la nivel de sistem ale aplicaţiilor se află în general în folderul /etc.
Trebuie ştiut că orice configuraţie a unui program nu este altceva decât un fişier text prin care se setează parametrii specifici doriţi. Parametrii specifici setărilor utilizatorului sunt în folderul utilizatorului, respectiv în subfoldere ale acestuia. În momentul în care rulaţi un program acesta citeşte configuraţiile în ordinea:

1. configuraţiile la nivel de sistem;
2. configuraţiile la nivel de utilizator – dacă aceleaşi opţiuni apar în amândouă, cele de utilizator anulează cele de sistem;
3. configuraţiile la nivel de parametri ataşaţi comenzii – care, dacă e cazul, anulează toate setările parametrilor specificaţi prin fişiere de configurare. De asemenea, setări adiţionale ale unor aplicaţii pot fi găsite în subfoldere din “/usr“.

Câteva exemple:

● Setări pentru reţea – /etc/sysconfig/network-scripts/, /etc/sysconfig/neworking/
● Setări pentru DNS-uri – /etc/resolv.conf
● Setări pentru interfaţa grafică – /etc/X11/xorg.conf
● Setări pentru numele calculatorului – /etc/hosts
● ş.a.m.d.

l) Cum să faceţi un program să ruleze la pornirea sistemului.
Există mai multe metode. Pentru a putea alege cea mai potrivită metodă în cazul vostru, iată principiul:
Un sistem GNU/Linux trece prin mai multe nivele de funcţionare. Ultimul nivel este interfaţa grafică. La fiecare nivel (numit în engleză “runlevel” sunt disponibile anumite servicii şi se rulează anumite aplicaţii). În folderul /etc găsiţi un subfolder numit “rc.d“. Aici se află tot secretul. În continuare ne vom referi doar la aspectele care ne interesează ca utilizator obişnuit, mai precis:

1. /etc/rc.d/init.d/ (sau pe majoritatea sistemelor există un link direct din /etc – /etc/init.d/). Aici se află scripturile ce pornesc diferite aplicaţii. Fiecare fişier executabil din acest folder primeşte cel puţin 3 parametri:

● start – pentru a porni un proces oprit;
● stop – pentru a opri un proces pornit;
● restart – pentru a reporni un proces pornit – dacă procesul nu este pornit se va afişa eroare la oprire şi succes la pornire. Opţional, majoritatea au şi parametrul:
● stat – pentru a afişa informaţii despre starea procesului.

2. /etc/rc.d/rc.local – este un fişier în care se trec comenzile ce se doresc a fi rulate după ce toate celelalte procese au fost pornite. Pentru rularea programelor automat de către utilizator la logarea în interfaţa grafică se folosesc folderele specifice interfeţelor grafice. De exemplu, pentru KDE4, acest folder este ~/.kde4/Autostart/

Orice fişier executabil pus în acest folder va fi rulat în cadrul interfeţei KDE imediat după ce utilizatorul respectiv s-a autentificat cu succes. KDE va rula aceste programe ca şi cum utilizatorul ar da dublu-clic pe ele.

Este bine de ştiut că se pot întâmpla unele situaţii neaşteptate. De exemplu, un mic script (adică un fişier text) poate fi interpretat în două feluri: ori rulat direct, fiind executabil, ori deschis ca fişier text într-un editor de text. Pentru eficienţă maximă, recomand să puneţi în Autostart link către fişierul ce se doreşte a fi rulat.

m) Cum accesaţi manualul inclus în Linux pentru toate aplicaţiile.
Foarte pe scurt, pentru că s-a mai discutat în postările anterioare:

● comanda “man” urmat de numele programului;
● comanda “info” urmat de numele programului;
● fişierele de documentaţii găsite sub diferite formate (text, html, help) şi în mai multe limbi le găsiţi aici în: /usr/share/doc/

n) Cum să rulaţi aplicaţii grafice cu parametri speciali.
Doar un exemplu – acest punct se leagă de punctul k)/3. Cele mai multe aplicaţii grafice sunt doar interfeţe pentru programe executate în linie de comandă. Aceste aplicaţii oferă posibilitatea setării unor parametri într-un mod mai comod şi mai prietenos decât să fie scrise cu mâna şi memorate pe de rost de utilizator. Alte aplicaţii grafice sunt în totalitate de sine stătătoare, însă pot fi pornite de la linia de comandă cu parametri specifici.

Ca exemplu vom trata programul de vizualizat filme “mplayer“. Cazul este si o mică excepţie de la ce am spus mai sus. Programatorii au realizat două executabile:

mplayer – variantă numai la linie de comandă, fără interfaţă grafică;
gmplayer – variantă ce conţine atât mplayer cât şi o interfaţă grafică, compilate într-un singur executabil.

De ce două versiuni? Pentru că mplayer se doreşte a fi un player care să funcţioneze pe orice sistem. Astfel, pe un hardware învechit sau mai slab, “mplayer” va da rezultate mai bune pentru că nu mai încarcă şi interfaţa grafică. Pe de altă parte interfaţa grafică oferă câteva zeci de setări şi opţiuni, pe când profesioniştii ar prefera varianta de la linie de comandă pentru că pot să-i ataşeze mai multe sute de opţiuni obţinând astfel rezultate mai bune.

Câteva exemple practice:

1. ascultaţi radio cu “mplayer“:
mplayer -playlist http://www.csabaradio.hu/listen128.m3u
Opţiunea “-playlist” indică faptul că parametrul ce urmează este un playlist.
Dacă doriţi conectarea directă la un stream, treceţi adresa lui imediat după “mplayer“. Acesta (mplayer) ştie să facă diferenţa în funcţie de ce are ca parametru. Dacă îi daţi parametru un film, va arăta filmul, dacă-i daţi parametru un stream va cânta radioul online respectiv, dacă-i daţi un mp3 sau alt fişier de sunet, va ghici că este sunet si va cânta.

2. iată cum se porneşte un film cu parametri speciali:
mplayer /nume/film.mkv -lavdopts skiploopfilter=all -autosync 1 -framedrop

o) Cum să vă accesaţi calculatorul de la distanţă.
Ne vom referi la două metode de accesare a computerului de la distanţă. Prin definiţia de “distanţă” se înţelege o reţea locală sau Internet. Cu alte cuvinte, orice alt calculator care prin metoda unei căi de comunicare poate iniţia şi crea o legătură cu calculatorul vostru.

Prima metodă este cea mai des utilizată şi se numeşte SSH sau Secure Shell. Tehnologia folosită este una destul de sofisticată. Pentru utilizator este suficient să se ştie că această comunicare este criptată şi securizată. Cu alte cuvinte nu poate a treia persoană să “asculte” comunicarea între voi şi calculatorul la care v-aţi conectat.

1. SSH este un sistem bazat pe arhitectura server-client. Serverul oferă serviciul de ssh cu ajutorul daemon-ului sshd. Clientul, cu aplicaţia ssh, se conectează la server. În urma conexiunii, pe ecranul clientului apar date de pe server. Clientul vede efectiv acelaşi lucru ce ar vedea stând în faţa serverului pe monitorul acestuia fiind logat în mod text. Toate comenzile lansate de client sunt rulate pe server, toate programele lansate de client sunt pornite de fapt pe server, toate operaţiile cu fişiere se întâmplă pe server, clientul beneficiază doar de conexiune pe post de “monitor”. Serverul sshd se porneşte cu scriptul “sshd” din /etc/init.d/, configuraţiile se ţin în /etc/ssh/sshd.conf.

Clientul se porneşte cu aplicaţia ssh utilizator@nume_server, configuraţiile se ţin în /etc/ssh/ssh.conf.

2. VNC este un sistem prin care vă puteți conecta în mod grafic la computer. Aplicaţia server se numeşte “vncserver“, aplicaţia client se numeşte vncviewer, iar parola pentru server se setează cu ajutorul comenzii vncpasswd.

Trebuie menţionat ca VNC nu este specific Linux, ci este cross-platform, adică este pentru toate sistemele de operare şi poate fi folosit în situaţii mixte. Pe Linux, “vncserver” va porni încă un server X la care un client va avea acces pe baza parolei setate cu “vncpasswd“. Utilizatorul conectat implicit (logat în interfaţa grafică) va fi cel care porneşte serverul. Astfel, pentru a vă accesa computerul pe care aţi instalat Mandriva Linux trebuie să instalaţi pachetul tightvnc-server. Dupa instalarea pachetului va
trebui să editaţi fişierul /etc/sysconfig/vncservers. Această operaţiune necesită drepturi de root !
Editarea constă în modificarea urmatoarei linii din fişier:

#VNCSERVERS=”1:username”
dupa modelul următor:
VNCSERVERS=”1:numeuser:-geometry:1024×768″
unde “1” – reprezintă numărul displayului (numarul 0 fiind rezervat primei sesiuni – utilizatorul deja logat), “nume” – numele utilizatorului ce se va loga prin vnc (poate fi chiar numele utilizatorului pe care il folosiţi, în orice caz utilizatorul trebuie să fie unul real), “-geometry:1024×768” – reprezintă rezoluţia sesiunii vnc.

Acum va trebui să vă setați o parolă pentru accesul prin vnc. Pentru aceasta deschideţi o consolă și logat cu userul setat în linia de mai sus utilizați comanda următoare: vncpasswd unde va trebui să introduceți o parolă de maxim 8 caractere. Dupa realizarea acestor setări va trebui să reporniți serviciul VNC folosind următorea comandă ca root: service vncserver restart.

Dacă totul a fost setat corect va fi afișat un mesaj de OK în consolă, dacă apare FAILED atunci setarile nu sunt corecte și trebuie să reparcurgeți pașii de mai sus. Pentru a vă conecta prin VNC de pe un alt sistem Linux puteţi folosi mai multe aplicaţii printre care, vncviewer (folosind comanda din consolă: vncviewer user@12.34.56.78 localhost:1, unde “user” – este numele utilizatorului setat mai sus, “12.34.56.78” este IP-ul computerului la care vreţi să vă conectaţi, localhost – hostname-ul computerului şi “1” – numarul displayului sesiunii VNC), sau krdc (specific KDE).

În caz de eşec la conectare verificaţi setările serviciului precum şi cele ale firewall-ului ! Serviciul VNC utilizează portul 5900 (în funcţie de numărul display-ului ales acesta poate varia, de exemplu pentru displayul 1 portul va fi 5901, etc.).

Accesarea sistemului de pe o maşină MS Windows poate fi făcută utilizând aplicaţia tighvnc-viewer. De asemenea, o maşină cu MS Windows poate fi accesată de pe un sistem Mandriva Linux dacă pe maşina cu MS Windows este instalat şi configurat tightvnc-server.

p) Manipulare text la linie de comandă.
De multe ori există situaţii în care trebuie să manipulezi un text repede şi într-un mod structurat (de exemplu ai un text în care doreşti să schimbi anumite expresii în altele, sau ai un text structurat într-un fel şi ai nevoie doar de anumite informaţii specifice).

În aceste momente îţi vin de ajutor un set de comenzi foarte puternice. Unele dintre ele (de exemplu grep) am menţionat deja mai sus. Acum urmează sa tratăm şi alte astfel de comenzi mai puternice, mai performante, dar şi mai sofisticate din punctul de vedere al utilizării. Primul astfel de progrămel ce vom aborda se numeşte sed. Însă pentru a-l înţelege mai bine, întâi trebuie să abordăm un pic de teorie. :D

În GNU/Linux se foloseşte foarte des regex (Regular Expressions / Expresii Regulate) pentru manipulare text. Regex în sine nu este un program ci un set de expresii/sintaxe speciale pentru manipulare text. Regex poate fi folosit în cadrul multor programe la linie de comandă, precum şi în ferestrele de căutare (search) ale diferitelor aplicaţii grafice (editoare text, OpenOffice, KOffice, browsere web, etc). Farmecul lui Regex vine din simplitatea sintaxei sale (care la prima vedere este de neinteles, dar după 2-3 exemple şi încercări devine foarte evidentă). Pe lângă programele deja gata existente, majoritatea limbajelor de programare pot de asemenea folosi comenzile regex în cadrul sintaxei lor proprii (ex. Perl, Python, PHP, C/C++, etc.). Dar hai să trecem la treabă şi sa despicăm sintaxa lui Regex pe bucăţi. În continuare voi trata regex la mod general, anumite programe şi limbaje de programare mai modifică şi adaptează sintaxa puţin. Sintaxa generalizată:
Exemplu: s/foo/bar/g
Explicaţia exemplului:

• s – comanda de substituţie
• foo – textul cautat
• bar – testul cu care se va inlocui
• g – optiunea de a face toate substituţiile, altfel se opreşte automat la prima operaţie realizată cu succes.

Sintaxa Regex oferă o foarte mare varietate şi flexibilitate. Din pacate acest lucru duce şi la o complexitate ridicată. În continuare va voi explica bazele regexp şi sed prin exemplificare. Să luăm ca exemplu textul: “Ala bala portocala.

În general textul ce dorim să manipulăm poate fi arbitrar de lung şi conţinut într-un fişier. O expresie regulată /porto/ va determina o condiţie de potrivire, deoarece în textul nostru se găseşte şirul de litere “porto” în cuvântul portocala. Se observă că regexp caută şiruri de caractere şi nu ţine cont de faptul că e vorba de un cuvânt întreg sau doar caractere. Pentru delimitarea cuvintelor se pot folosi operatori speciali (trataţi mai jos). Dacă dorim să verificăm că un text începe sau se termină cu expresia căutată folosim operatorii ^ respectiv $, astfel avem pentru a vedea dacă textul nostru începe cu Ala expresia /^Ala/, iar pentru verificarea sfârşitului /portocala\.$/.

Cu acest exemplu trecem la pasul următor: caractere speciale. Aţi observat că unele caractere sunt folosite ca şi operatori. Ce putem face dacă un astfel de caracter se află în textul nostru şi noi dorim să căutam după
aceste caractere !? Folosim un alt operator \ Acest operator determină caracterul imediat următor după el sa fie interpretat ca şi character de căutat şi nu va mai incerca să-l interpreteze ca operator.

Pornind de la exemplul precedent dacă dorim să căutăm în textul nostru expresia exactă ^Ala vom modifica sintaxa astfel: /\^Ala/ La fel vom face cu orice operator ce dorim să interpretăm ca şi caracter. În exemplul de mai sus aşa am folosit \. care va căuta caracterul punct în loc să-i interpreteze sensul de operator.

Până acum am folosit expresii concrete şi presupunând cunoaşterea exactă a textului. Dar cum putem căuta pentru mai multe lucruri în acelaşi timp !? Expresia /bala/ va căuta cuvântul respectiv. Să presupunem că dorim să găsim bala şi cala (de la sfârşitul lui portocala) dintr-o singură expresie. Aceasta va arăta aşa: /[bc]ala/. Între parantezele drepte se pot defini şi intervale: [a-f] sau [1-5] care vor determina căutare după toate literele în ordine alfabetică incluse între paranteze drepte (cazul nostru între a şi f), respectiv cu cifre între cele două specificate în paranteze drepte. Cele două paranteze drepte se pot combina într-o singură pereche pentru a obţine efectul combinat al lor: [a-f1-5]. Negarea în paranteză dreaptă se face tot cu semnul ^, astfel [^1-5] va returna orice nu este 1,2,3,4,5. Dacă dorim să identificăm un caracter de orice tip (inclusiv cifre, litere, alte caractere) folosim operatorul punct . , de exemplu /.o/ în textul nostru va returna găsit pentru po şi to. Evident, operatorul poate fi plasat oriunde în expresie: /po.to/ va căuta po urmat de orice caracter şi terminat cu to. Dacă dorim să căutăm după un număr nedefinit de caractere necunoscute, schimbăm sintaxa astfel: /po*to/ care în cazul nostru va returna tot porto, dar dacă am fi avut în text şi un cuvânt ca “poranto“, ar fi returnat şi acesta. Dacă dorim să căutăm repetat un caracter, folosim semnul + astfel: /po+to/. Această expresie va returna adevărat pentru poto, pooto, poooto … pooo…oooto, adică pentru un număr indefinit de litere o, literă aflată imediat înainte de semnul +. Combinând cele de mai sus pentru a căuta după orice caracter, dar care să existe cel puţin o dată, putem folosi /po.+to/. Implicit, căutările se fac ţinând cont de majuscule sau minuscule. Dacă dorim să devenim insensibili la majuscule, folosim operatorul i astfel: /ala/i care va returna succes chiar la începutul textului nostru cu Ala.
Caractere speciale şi explicaţia lor:

Caracter Sens
\n linie nouă (line feed)
\w caracter conținut în cuvânt (a word character [a-zA-Z0-9_] )
\W NU este caracter conținut în cuvânt (NOT a word character, that
is [^a-zA-Z0-9_] )
\s spațiu “alb” (new line, carriage return, space, tab, form feed)
\S NU este spațiu “alb”
\d cifra [0-9]
\D NU este cifr, i.e. [^0-9]
\t tab (HT, TAB)
\r enter (CR)
\f form feed (FF)
\a alarm (bell) (BEL)
\e escape (ESC)
\033 caracter octal
\x1B caracter hexazecimal
\c[ caracter de control
\l următorul caracter să fie minuscul
\u următorul caracter s fie majuscul
\L minuscule până la \E
\U majuscule până la \E
\E sfârșit modificator majuscule
\Q desființează operatorii până la \E
\b margini/capete de cuvânt
\B NU este captăt cuvânt
\A începutul șirului de caractere
\Z sfârșit șir caractere, sau linie nouă înainte de sfârșit
\z sfârșit de șir caractere
\G punctul în care expresia precedentă m//g s-a terminat
(funcționează numai cu /g)

Acum că ne-am familiarizat cu sintaxa pentru căutare, să trecem la metode de înlocuire a textului găsit. Pentru acest lucru se foloseşte opţiunea s/ şi se specifică textul de căutat urmat de textul ce trebuie pus în locul lui. Hai să înlocuim din exemplul nostru "portocala" cu "banana". Vom folosi expresia astfel: s/portocala/banana/

Exemplul de mai sus funcţionează perfect cu exemplul nostru, dar trebuie ştiut că înlocuirea (s/ = substituţie) se opreşte după primul termen găsit şi înlocuit. Dacă dorim sa înlocuim tot ce este "ala", indiferent de majuscule, cu "ulu" astfel să rezulte "ulu bulu portocala." procedăm astfel: s/.la/ulu/ig expresie în care g specifică operare globală (sensul lui i l-am discutat mai sus). Alternativ putem folosi şi varianta s/[aA]la/ulu/g astfel neaplicând opţiunea i şi referindu-ne strict la “ala” şi “Ala“.
Ultimul lucru ce-l voi aborda legat de regexp este căutarea condiţionată prin operatorul SAU: |. Cu acest operator puteţi specifica să se facă o căutare după mai multe criterii concrete. Să luăm ca şi exemplu textul: “Anna Adina Daniel Anita Dorel Annamaria Cornel Diana“. Presupunem că dorim să înlocuim “Anna” şi “Anita” cu textul “Eliminat”. Din cele prezentate până acum ar rezulta soluţia prin două expresii: s/Anna/Eliminat/ şi s/Anita/Eliminat/.

Dacă dorim să optimizăm căutarea, ne-am gândi la ceva de genul: s/An.+\s/Eliminat\s/g dar apare o problemă. Ultima expresie înlocuieşte şi “Annamaria“, ceea ce nu dorim. În astfel de situaţii este cel mai bine să recurgem la operatorul SAU în felul următor: s/An(na|ita)/Eliminat/g. Astfel se va face o căutare după “An” urmat de “na” SAU “ita“.

În încheiere un exemplu real de manipulare text cu ajutorul lui sed.
Am salvat ultimele câteva linii ale fişierului de loguri messegase într-un fişier în folderul curent, numit test.file:
[root@localhost tux]# tail /var/log/messages >> ./test.file
Extragem conţinutul lui pentru vizualizare:

[tux@localhost tux]# cat ./test.file
Nov 18 19:38:39 localhost mdkapplet[4543]: running: urpmi.update
Nov 18 19:38:44 localhost mdkapplet[4543]: Packages are up to date
Nov 18 20:01:01 localhost CROND[21947]: (root) CMD (nice -n 19 run-parts –report /etc/cron.hourly)
Nov 18 20:01:02 localhost msec: moved file /etc/issue.net to /etc/issue.net.msec
Nov 18 20:01:03 localhost msec: changed mode of /var/log/wtmp from 664 to 640
Nov 18 20:01:03 localhost msec: changed group of /var/log/wtmp from utmp to root
Nov 18 20:01:03 localhost msec: changed mode of /var/log/dmesg from 644 to 640
Nov 18 20:01:03 localhost msec: changed mode of /var/log/Xorg.0.log.old from 644
Nov 18 20:01:03 localhost msec: changed mode of /dev from 1777 to 755
Nov 18 20:07:36 localhost anacron[2506]: Job `cron.daily’ started

Ne propunem să înlocuim “localhost” în “tuxmachine“:

[tux@localhost tux]# sed ‘s/localhost/tuxmachine/g’ ./test.file
Nov 18 19:38:39 tuxmachine mdkapplet[4543]: running: urpmi.update
Nov 18 19:38:44 tuxmachine mdkapplet[4543]: Packages are up
Nov 18 20:01:01 tuxmachine CROND[21947]: (root) CMD (nice -n 19 run-parts –report /etc/cron.hourly)
Nov 18 20:01:02 tuxmachine msec: moved file /etc/issue.net to /etc/issue.net
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/wtmp from 664
Nov 18 20:01:03 tuxmachine msec: changed group of /var/log/wtmp from utmp
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/dmesg from 644 to
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/Xorg.0.log.old
Nov 18 20:01:03 tuxmachine msec: changed mode of /dev from 1777 to 755
Nov 18 20:07:36 tuxmachine anacron[2506]: Job `cron.daily’ started

Imediat se afişează pe ecran textul schimbat. Dar remarcăm că fişierul original (test.file) a rămas neschimbat:

[tux@localhost tux]# cat ./test.file
Nov 18 19:38:39 localhost mdkapplet[4543]: running: urpmi.update
Nov 18 19:38:44 localhost mdkapplet[4543]: Packages are up to date
Nov 18 20:01:01 localhost CROND[21947]: (root) CMD (nice -n 19 run-parts –report /etc/cron.hourly)
Nov 18 20:01:02 localhost msec: moved file /etc/issue.net to /etc/issue
Nov 18 20:01:03 localhost msec: changed mode of /var/log/wtmp from 664
Nov 18 20:01:03 localhost msec: changed group of /var/log/wtmp from utmp
Nov 18 20:01:03 localhost msec: changed mode of /var/log/dmesg from 644
Nov 18 20:01:03 localhost msec: changed mode of /var/log/Xorg.0.log.old
Nov 18 20:01:03 localhost msec: changed mode of /dev from 1777 to 755
Nov 18 20:07:36 localhost anacron[2506]: Job `cron.daily’ started

Aşa că redirecţionăm rezultatul către un alt fişier, de data asta numit test.modificat:

[tux@localhost tux]# sed ‘s/localhost/tuxmachine/g’ ./test.file >
./test.modificat

Observăm varianta modificată în noul fişier test.modificat:

[tux@localhost tux]# cat ./test.modificat
Nov 18 19:38:39 tuxmachine mdkapplet[4543]: running: urpmi.update
Nov 18 19:38:44 tuxmachine mdkapplet[4543]: Packages are up to date
Nov 18 20:01:01 tuxmachine CROND[21947]: (root) CMD (nice -n 19 run-parts –report /etc/cron.hourly)
Nov 18 20:01:02 tuxmachine msec: moved file /etc/issue.net to
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/wtmp from 664 to 640
Nov 18 20:01:03 tuxmachine msec: changed group of /var/log/wtmp from utmp to ro
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/dmesg from 644 to 640
Nov 18 20:01:03 tuxmachine msec: changed mode of /var/log/Xorg.0.log.old
Nov 18 20:01:03 tuxmachine msec: changed mode of /dev from 1777 to 755
Nov 18 20:07:36 tuxmachine anacron[2506]: Job `cron.daily’ started

r) Alte referinţe on-line

● http://www.oreillynet.com/linux/cmd/
● http://www.ibm.com/developerworks/aix/library/au-badunixhabits.html ? ca=dgr-lnxw93tenunixtips S_TACT=105AGX59&S_CMP=GR
● http://www.ss64.com/bash/
● http://www.ss64.com/links/bash.html

Sursa: Mandriva Users România-Ghid Mandriva Linux.

Related posts:

  1. Configurarea conexiunii la Internet prin PPPoE din consolă
  2. TV online cu Linux Mandriva
  3. Instalarea de extensii pentru OpenOffice.org
  4. Verificarea unei imagini ISO folosind md5sum
  5. Despre Ghidul de utilizare Mandriva Linux
Categories: Linux Tags:
  1. martie 3rd, 2010 la 00:17 | #1

    Esti cel mai pasionat om din domeniu. Altfel nu imi explic acest articol urias, documentat, cu privire la un subiect ce mie nici nu imi trecea prin cap.

  2. gravatar
    YO9FAH
    martie 3rd, 2010 la 00:24 | #2

    Salut Emil și mulțumesc foarte mult pentru comentariu și pentru aprecieri ! Așa este, parcă din ce trece timpul am cu mult mai multe de învățat ! Pasiunea pentru Linux – totul a pornit din pură curiozitate !

  3. gravatar
    bubu
    martie 5th, 2010 la 15:29 | #3

    Scurt si la obiect ! Ma intreb din 10 utilizatori care intra pe acest articol cati il citesc pana la capat? Scurt si la obiect !

  4. gravatar
    YO9FAH
    martie 5th, 2010 la 15:43 | #4

    @bubu: articolul este foarte bun, după opinia mea ! Acest articol este parte integrantă din Ghidul Mandriva Linux și este în mare parte explicat foarte bine de către un Administrator de Sistem, în adevăratul sens al cuvântului, respectiv de către un inginer în rețelistică Patkos Csaba – unul din numeroșii membrii ai comunității Mandriva Users România !
    Scopul acestui articol nu este unul care a fost postat … “așa ca să fie”, … cine are nevoie de el, te asigur că-l va citi TOT !
    Scurt și la obiect ! ;)
    Mulțumesc pentru comentariu și te mai aștept pe aici !

  5. martie 16th, 2010 la 19:15 | #5

    @bubu
    Ce conteaza cati utilizatori sunt (ai date care confirma ce zici) cat despre articol ,pe cei ce ii intereseaza citesc tot articolul ca doar de aceea intra nu ?

  1. Nici un trackbacks momentan.