Unelte utilizator

Unelte site


mandriva:ghid-2011-p5

Cuprins

Prezentare - Partea I - Partea a II-a - Partea a III-a - Partea a IV-a - Partea a V-a

Partea a VI-a - Consola, prietenul nostru cel mai bun!

Probabil 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:

  • multe lucruri se pot face mai repede decât în mod grafic;
  • puteți face unele operații ce nu pot fi efectuate în mod grafic;
  • unele aplicații rulate din consolă (fie ele chiar și aplicații grafice) pot fi personalizate mai bine cu parametri decât opțiunile din meniuri;
  • 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) că interfață grafică s-ar putea să nu funcționeze din diverse motive, cum ar fi probleme de drivere video sau probleme cu aplicația în sine, consola însă funcționează tot timpul;
  • prin consolă puteți afla mai multe detalii despre sistemul dumneavoastră în pofida interfeței grafice;
  • prin consolă aveți acces mai larg la configurația sistemului…

Lista ar putea continua pe multe pagini, dar scopul acestui capitol nu este să vă convingem cât de benefică este consola, ci mai degrabă o inițiere în tainele ei. Nu vă vom prezenta un dicționar de comenzi, ci vom prezenta doar câteva lucruri utile cu cât mai multe exemple. Astfel veți afla informații despre:

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

Toate aceste puncte vor fi detaliate în cele ce urmează. 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ă.

6.1 Accesarea modului text

În orice sistem Linux aveți la dispoziție cel puțin 6 (sase) console exclusiv în mod text și un număr nelimitat de console în ferestre din cadrul interfeței grafice, consola 7 (mai nou și consola 8) este implicit dedicată interfeței grafice. Consola 12 este de obicei asignat automat logurilor.

Accesarea celor 6 console exclusiv text le puteți face astfel:

  • dacă vă aflați în interfața grafică, apăsați una din combinațiile: ALT+CTRL+F1 sau F2 până la F6. Odată ajunși în mod text, vi se va prezenta un „Login:“, introduceți numele utilizatorului și apăsați ENTER. Imediat vi se va cere parola, o introduceți și apăsați ENTER. ATENȚIE: când introduceți parola, pe ecran nu se afișează nici text și 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ă și posibilitatea declarării mai multor console, maximum 12 în principiu.

6.2 Definire CONSOLĂ și SHELL

Pentru a înțelege mai bine ce înseamnă fiecare vom recurge la un simplu grafic:

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 ,(piloții) 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 shelluri: csh, zsh etc.

De-a lungul exemplelor și explicațiilor ce vor urma se va folosi consola “xterm“ și shellul “bash“. În cazuri excepționale se va menționa varianta folosită.

6.3 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ă:

[<UTILIZATOR>@<NUME_CALCULATOR> <FOLDER_CURENT>]$

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 rulată. 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ă:

* 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 asa 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ă). Dacă cea de a doua comandă nu poate citi direct de la „standard-input“ se poate folosi comanda „xargs“ ce transforma standard input în argumente. Sintaxa va fi ceva de genul prima_comanda | xargs a_doua_comanda .

* 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/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“.

6.4 Sistemul de fișiere și foldere (directoare)

Sistemul de operare Linux se bazează pe ideea că „totul este un fișier“. Este foarte important ca un utilizator Linux să înțeleagă sistemul de fișiere, pentru că astfel va înțelege mult mai bine logica de funcționare a sistemului. 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). Acest 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 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ă (root). 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 în 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 Linux. În Windows, se știe că un fișier care se termină cu .exe este executabil. În 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

* ne mutăm 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ă parțial ș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/fișier_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 fișier_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;
  • fișier_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ă.

6.5 Folosirea unui file manager în mod text

Cel mai folosit file manager în mod text se numește „Midnight Commander“.

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 Linuxului. 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 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.

Câteva shortcut-uri mai puțin cunoscute:

  • ESC - face „escaping“ și se pot accesa diverse shortcut-uri mai ușor sau alternativ în lipsa tastelor funcționale (F). Astfel ESC urmat de un număr echivalează cu shortcut-ul prin taste funcționale: [ESC,8] = F8 - voi folosi notație [tasta1,tasta2,tasta3…] pentru a semnifica un shortcut la care se apasă taste succesiv, exemplul având semnificația de „tasta1 urmat de tasta2 urmat de tasta3…“
  • [ESC,TAB] - în editorul de text, dacă editați cod într-un limbaj de programare uzual (ex. PHP, Perl, C, etc) va arata un meniu pentru autocomplete.
  • [ESC,l] - adică „L mic“, pentru a sări la o linie după număr când editați sau vizualizați un fișier.
  • [ESC,Shift+/] - adică ESC urmat semnul întrebării pentru căutare fișier.
  • CTR+SHIFT+Insert - în editor face „paste“ din clipboard-ul sistemului

6.6 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                        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.

*Dacă ne interesează doar primele câteva linii. Atunci folosim comanda „head“:

[tux@localhost ~]$ head ./wineman

similar cu „tail“, putem folosi parametrul “-n“

[tux@localhost ~]$ head -n 30 ./wineman

Dacă dorim sa urmărim continuu cu „tail“ sau „head“ unele fișiere care se schimba mereu (ex. loguri), putem folosi pentru oricare dintre ele parametrul “-f“ urmat de valoarea în secunde a perioadei de refresh:

[tux@localhost ~]$ tail -f 0.01 /var/log/syslog

va urmări fișierul de syslog la fiecare sutime de secundă.

6.7 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 / 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 tux]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[kjournald]
root      1050  0.0  0.1   2636  1544 ?        S<s  09:16   0:00 /sbin/udevd -d
root      1901  0.0  0.0      0     0 ?        S<   09:16   0:00 [ksuspend_usbd]
root      1912  0.0  0.0      0     0 ?        S<   09:16   0:00 [khubd]
root      2291  0.0  0.0      0     0 ?        S<   09:16   0:00 [kondemand/1]
root      2488  0.0  0.0      0     0 ?        S<   09:16   0:00 [kjournald]
daemon    2964  0.0  0.0   1684   332 ?        Ss   09:16   0:00 /usr/sbin/atd
root      3268  0.0  0.0   2724   804 ?        Ss   09:16   0:00 crond -p
root      4876  0.0  0.0   4484   780 ?        S    09:16   0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
tux     6206  0.0  0.0      0     0 ?        Z    09:19   0:00 [consolehelper-g] <defunct>
root      6393  0.0  0.0   1668   464 ?        Ss   09:19   0:00 /sbin/ifplugd -b -i eth0
**tux     6573  1.3 12.2 304920 125204 ?       Sl   09:19   1:48 /usr/lib/opera/9.50-20071024.6/opera -style ia_ora**
**tux     6967  0.0  0.0   2780   692 ?        S    09:26   0:00 /usr/lib/opera/9.50-20071024.6/operaplugincleaner 6573**
tux    11767  0.1  2.4  44540 25112 ?        S    11:07   0:01 konqueror /home/tux
tux    12011  0.0  0.5  30488  5240 ?        S    11:12   0:00 kio_file [kdeinit] file /home/csabi/tmp/ksocket-csabi/klau
tux    12104  0.0  1.0  32832 10768 ?        S    11:14   0:00 kio_uiserver [kdeinit]
tux    12208  0.0  0.1   3596  1224 ?        S    11:16   0:00 /bin/sh /usr/lib/ooo-2.2/program/soffice -writer /home/tux/Personal/consol
tux    12223  1.0  7.7 208036 79220 ?        Sl   11:16   0:07 /usr/lib/ooo-2.2/program/soffice.bin -writer /home/tux/Personal/consola_al
tux    12236  0.0  1.7  39772 17596 ?        S    11:16   0:00 kwrite [kdeinit] /home/tux/Personal/consola_cuprins
root     12782  0.0  0.0   2580   852 pts/3    R+   11:27   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“ (un webbrowser ce tocmai este pornit). Dacă ne interesează doar acest lucru, folosim comanda „grep“. Aceasta are următoarea sintaxă:

grep text_de_cautat

Sintaxa menționata va căuta în asa numitul „stdout“ (Standar Output - Ieşire Implicită) care în cele mai multe cazuri este ecranul.

[root@localhost tux]# ps aux | grep opera
tux     6573  1.3 12.2 304920 125204 ?       Sl   09:19   1:48 /usr/lib/opera/9.50-20071024.6/opera -style ia_ora
tux     6967  0.0  0.0   2780   692 ?        S    09:26   0:00 /usr/lib/opera/9.50-20071024.6/operaplugincleaner 6573
root     13143  0.0  0.0   3068   736 pts/3    R+   11:35   0:00 grep --color opera

Evident în listă s-a strecurat pe ultima linie chiar comanda rulată de noi, care conține de asemenea cuvântul opera. Pentru a evita acest lucru putem adăuga încă o comandă grep negativă:

[root@localhost tux]# ps aux | grep opera | grep -v "grep"
tux     6573  1.3 12.2 304920 125204 ?       Sl   09:19   1:48 /usr/lib/opera/9.50-20071024.6/opera -style ia_ora
tux     6967  0.0  0.0   2780   692 ?        S    09:26   0:00 /usr/lib/opera/9.50-20071024.6/operaplugincleaner 6573

Alternativ, grep știe să caute direct în fișiere. Și în acest caz, returnează linia/liniile ce conțin textul căutat. În acest context, sintaxa se modifică astfel:

grep text_de_cautat nume_fișier

Alte comenzi utile pentru formatare output:

  • wc - numara cuvintele, sau liniile (cu parametrul “-l“)
  • sed - cauta și executa expresii regulate pe stdout
  • awk - conține funcții avansate de formatare/prelucrare a textului de pe stdout

6.8 Cum să verificați ce procese/programe rulează pe sistem, cât consumă din resursele sistemului și cum să le opriţi

Lista tuturor proceselor / 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 / programul efectiv rulat.

Dacă dorim sa vedem topul proceselor în funcție de utilizare procesor, ne folosim de progrămelul „top“:

[root@localhost tux]# top
top - 10:52:57 up  1:37,  1 user,  load average: 0.10, 0.22, 0.18
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie
Cpu(s): 15.3%us,  2.0%sy,  7.1%ni, 70.4%id,  5.0%wa,  0.2%hi,  0.0%si,  0.0%st
Mem:   1026100k total,  1012036k used,    14064k free,    25680k buffers
Swap:  1020116k total,        0k used,  1020116k free,   423000k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
7273 tux     39  19 94532  44m  10m S   21  4.5   3:16.55 operapluginwrap
10338 tux     20   0  276m  80m  57m S   19  8.1   0:10.48 soffice.bin
5115 root      20   0  455m 107m 6464 S    7 10.7   4:13.41 X
6271 tux     20   0 92456  11m 4076 S    1  1.1   0:38.95 compiz
6290 tux     20   0 44632 6732 4936 S    1  0.7   0:31.29 artsd
6310 tux     20   0 68752  28m  15m S    1  2.9   0:33.13 superkaramba
6547 tux     20   0  213m 126m  17m S    1 12.6   1:21.69 opera
5207 mysql     20   0  108m  14m 3580 S    0  1.5   0:01.80 mysqld
6272 tux     20   0 18760 9300 5908 S    0  0.9   0:05.29 emerald
6274 tux     20   0 40376  16m  12m S    0  1.6   0:04.09 kdesktop
6277 tux     20   0 39660  17m  13m S    0  1.7   0:06.92 kicker
6479 root      20   0 32876  13m  10m S    0  1.3   0:01.70 yakuake
11195 root      20   0  2328 1012  764 R    0  0.1   0:00.03 top

„top“ afișează doar atâtea procese câte încap în ecran. Cel mai 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. Hotkeys:

  • 1 - apăsând tasta „1“ în top puteți vedea consumul de resurse pe fiecare core/procesor în parte
  • s sau d - vă permite setarea perioadei de reîmprospătare a interfeței, se specifică în secunde sau fracțiuni ale acestuia
  • o - vă permite modificarea coloanelor
  • q - ieșire din top
  • h - help, o lista cu toate comenzile posibile în top

Dacă un proces trebuie oprit și nu există altă metodă decât linia de comandă pentru acest lucru (ex. se blochează o aplicație și nu mai reacționează la click-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 omorî 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.

6.9 Cum să aflați mai multe despre sistemul vostru

Un mic sumar despre Linuxul instalat, numele computerului, versiunea de kernel și procesor se poate afla astfel:

[root@localhost tux]# uname -a
Linux localhost 2.6.22.18-laptop-1mdv #1 SMP Mon Feb 11 15:20:57 EST 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, asa că îl puteți pune cu comanda:

[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: "Hewlett-Packard Company 82801G (ICH7 Family) High Definition Audio Controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x27d8 "82801G (ICH7 Family) High Definition Audio Controller"
SubVendor: pci 0x103c "Hewlett-Packard Company"
SubDevice: pci 0x30bb
Revision: 0x02
Driver: "HDA Intel"
Driver Modules: "snd_hda_intel"
Memory Range: 0xd8240000-0xd8243fff (rw,non-prefetchable)
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

Alte comenzi pentru informații despre componentele calculatorului:

  • lshw
  • lsusb
  • lspci
  • lmsensors

6.10 Unde se ascund fișierele de configurare ale diferitelor componente hard și soft

Deoarece fiecare program are configurațiile într-un mod specific, în acest capitol 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ă parametri specifici doriți. Parametri 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.

6.11 Cum să faceți un program să ruleze la pornirea sistemului (ca serviciu)

Există mai multe metode. Pentru a putea alege cea mai potrivită metodă în cazul vostru, iată principiul.

Un sistem 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.

Toate fișierele din acest folder init.d au un link corespunzător in folderul cu nivelul de rulare asociat (rc.1…6). Pentru a face managementul rulării scripturilor la diverse nivele se folosește comanda „chkconfig“. Nu vom intra in detaliu, cei interesați pot consulat „man chkconfig“ si „chkconfig –help“.

:!: Alternativ serviciile pot fi pornite/oprite cu comanda service

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.

3) Pentru rularea programelor automat de către utilizator la logarea în interfața grafică se folosesc folderele specifice interfețelor grafice. De exemplu, pentru KDE, 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-click 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 eficienta maximă, recomand să puneți în Autostart link către fișierul ce se dorește a fi rulat.

O modalitate la îndemâna oricui este folosirea systemsettings pentru pornirea unei aplicații sau a unui script la boot: systemsettings (Configure Your Desktop)- Startup and Shutdown- Autostart- Add Program (pentru aplicații precum konsole, firefox, ktorrent, etc) sau Add Script (pentru scripturi)- alegem aplicația sau scriptul- Ok- Ok.

6.12 Cum accesați manualul inclus în Linux pentru toate aplicațiile

Foarte pe scurt, pentru că s-a mai discutat în capitolele 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: /usr/share/doc/

6.13 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 și 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ța grafică;
  • gmplayer - variantă ce conține atât mplayer cât și o interfața 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.

Propun 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“. „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 și va cânta.

2) iată cum se pornește un film cu parametri speciali:

mplayer /nume/film.mkv -lavdopts skiploopfilter=all -autosync 1 -framedrop

3) sau asa poți asculta toate piesele din folderul curent și subfolderele sale într-o ordine aleatoare:

find . | mplayer -shuffle -playlist

6.14 Cum să vă accesați calculatorul de la distanță

În acest capitol ne vom referi la două metode de accesare a computerului de la distanta. Prin definiția de „distanta“ se înțelege 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 (Secure Shell). Tehnologia folosită este una destul de sofisticată. Pentru utilizator este suficient să știe că această comunicare este criptată și securizată. Cu alte cuvinte nu poate o 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“.

Dacă clientul este tot pe un calculator cu Linux și rulează interfață grafică, se pot porni și programe grafice (ex. Firefox). Fereastra va apărea la client, în sistemul lui de ferestre/interfață grafică, dar va rula la fel cum a fost specificat mai sus, pe server.

Configurațiile se țin în /etc/ssh/sshd.conf, iar serverul sshd se pornește cu comanda:

#service sshd start

Clientul ssh se pornește cu comanda:

ssh utilizator@nume_server

sau

ssh utilizator@ip_server

Mai multe despre configurarea clientului ssh găsiți la configurarea_ssh_client

2) VNC este un sistem prin care se poate conecta în mod grafic la server. 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 că 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.

6.15 Alte referințe on-line

6.16 Firewall și comunicări în rețea


În acest capitol vă vom prezenta tehnologia de firewall din Linux. În Mandriva Linux există mai multe metode de a configura și controla firewall-ul, dar toate interfețele grafice și de text de fapt controlează același program, numit iptables. Noi vom trata direct configurarea acestuia din urmă, iar dacă un utilizator dorește să se folosească de orice altă aplicație, asta rămâne la alegerea lui.
Dar înainte să ne apucăm de firewall trebuie să facem o mică introducere în comunicări în rețea. Astfel, toate comenzile și parametrii de la firewall vor fi mai ușor de înțeles.
Comunicarea în rețea (inclusiv Internet) se face pe protocolul TCP/IP și/sau UDP. Sunt și alte tehnologii, dar acum ne vom rezuma la ce e mai important. Astfel comunicarea se realizează întotdeauna între 2 părți. Fiecare comunicare în parte are o sursă și o destinație. Evident, părțile pot realiza mai multe comunicări simultan pe baza unei reguli clare. Fiecare parte (sursă și destinație) are un identificator unic, o adresă unică, numită adresă IP. Mai mult, fiecare comunicare, în funcție de caracterul ei se desfășoară pe un port anume. Pentru a înțelege mai bine ce se întâmplă, vom studia graficul următor:


Pentru cineva care nu cunoaște rețele, cea mai bună analogie din viața reală se poate face cu poșta. Fiecare calculator (dreptunghi albastru) reprezintă o casă (de expeditor sau destinatar) și fiecare port reprezintă o poartă prin care se poate intra în sau ieși din casa respectivă. Fiecare pachet trimis de la o casă la alta are o adresă (casa, adresa IP) și o poartă (portul).
Porturile pot fi de două feluri: porturi prin care se primește un pachet (adică o legătură nouă de rețea, o comunicare nouă, etc) sau porturi prin care se trimit pachete (se inițiază legături de rețea). Ca să poți recepționa un pachet pe o poartă, trebuie cineva să stea în spatele ușii și să preia pachetul. La fel este și cu rețelele, pentru a accepta o conexiune nouă, trebuie să existe un program care ascultă pe portul respectiv. De exemplu, când vizionați o pagină web cu browserul vostru preferat, de fapt inițiați o legătură către portul 80 al unui server web. Acel server ascultă pe portul respectiv și vă va răspunde. Portul ce îl folosiți pe computerul propriu pentru a ”ieși” este primul port nefolosit.
Pe un computer exista 65536 (2^16) porturi pentru comunicări pe rețea. Acesta este numărul total și trebuie să deservească atât porturile pentru intrare, cât și cele pentru ieșire.
Un port pentru intrare poate accepta mai multe conexiuni simultane, iar un port pentru ieșire poate deservi o singură conexiune la un moment dat. După terminarea conexiunii, portul devine liber. În principiu, porturile între 0 și 1024 sunt destinate intrărilor, adică diferitelor aplicații care ascultă pe aceste porturi (de exemplu, ftp/21, ssh/22, http/80, share windows sau samba / 139, 140, etc). Porturile peste 1024 sunt în principiu destinate ieșirilor. Această regulă nu este însă bătută în cuie. Orice program poate fi setat să folosească un alt port (ex. ssh/12345 este valid), în aceste cazuri, sistemul va ști că portul este ocupat și nu va încerca să-l folosească pentru ieșire.


Un firewall nu face altceva decât permite utilizatorului un control asupra comunicării pe diferite porturi dinspre/către diferite adrese IP.


iptables – programul de firewall din Linux – lucrează cu 3 chain-uri (lanțuri) principale: INPUT (intrare), OUTPUT (ieșire) și FORWARD (trimitere mai departe). Fiecare chain are o regulă implicită: ACCEPT (permite) sau REJECT (interzice). Pentru setări mai sofisticate se pot defini chain-uri personalizate și reguli auxiliare.
În Mandriva Linux, setarea implicită este ACCEPT pentru toate chain-urile. Adică se permite comunicarea pe toate direcțiile pentru toți și către oricine. Starea curentă a firewall-ului se verifică cu comanda: # iptables -L Dacă se dorește ca să nu se rezolve numele de domeniu se poate adăuga și parametrul -n:

# iptables -L -n

iar rezultatul pentru un iptables cu setările implicite este:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Pentru a introduce reguli folosiți comanda iptables cu opțiunea -A sau -I (i mare). -A va adăuga regula la capătul listei, iar -I la începutul listei. De ce este asta important? Pentru că iptables parcurge listele de sus în jos și se oprește în momentul în care găsește o regulă ce este adevărată. În caz de nici o regulă nu este adevărată, se aplică regula implicită (cea de la ”policy” din exemplul de mai sus).
Deja puteți intui mai multe logici principale de control al accesului de rețea. Cele mai des folosite 3 logici sunt:

  • implicit ACCEPT și reguli pentru interzicerea comunicării;
  • implicit REJECT sau DROP și reguli pentru permiterea comunicării;
  • implicit ACCEPT, reguli pentru permiterea comunicării și o ultima regulă ce să fie adevărată tot timpul și să interzică comunicarea.


Să presupunem că avem un calculator Linux ce este un server WEB, server mail și SSH. O configurație de iptables se face astfel:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 11.22.33.44 --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 1:1024 -j REJECT


Haideți să explicăm pas cu pas ce se întâmplă:
presupunem regulă implicită ACCEPT
prima comandă permite accesul pe portul 80 (HTTP/WEB) pe placa de rețea eth0 de la orice sursă
a doua comandă la fel, pentru serverul de mail, port 25 (protocolul SMTP)
a treia linie permite accesul către portul 22 (SSH) numai din partea computerului cu adresa IP 11.22.33.44
ultima linie interzice accesul pentru toată lumea pe placa de rețea eth0 pentru toate porturile între 1 și 1024


Când un calculator va încerca să se conecteze la computerul nostru, iptables parcurge lista de sus în jos și compară fiecare regulă cu noua conexiune. Astfel, să zicem că cineva vrea să se conecteze prin SSH la computerul nostru. Prima regulă nu va corespunde, iptables merge mai departe, a doua regulă tot nu va corespunde, iptables merge mai departe, la a treia regulă se verifică adresa IP a celui ce vrea să se conecteze la noi prin SSH, dacă acest computer are IP-ul din regula noastră, se permite conexiunea și nu se mai face nici o altă verificare pentru conexiunea curentă. Dacă adresa IP este alta, se trece la ultima regulă, care este adevărată, și se refuză conexiunea.

\\La fel se specifică și regulile pentru OUTPUT și FORWARD. Parametrii cei mai importanți pentru iptables sunt:


-A specifica chain-ul dorit
-i interfața (placa) de rețea la care se referă regula
-p protocolul pentru care se aplică regula (tcp în exemplul nostru)
–dport portul destinație al comunicării
–sport portul sursă al comunicării (nu apare în exemplu)
-s adresa IP a sursei comunicării
-d adresa IP a destinatarului comunicării
-j acțiunea de luat


Mai multe detalii puteți afla din manualul iptables. $ man iptables

Partea a VII-a - Terminalul pentru toți

Consola este un instrument foarte util în folosirea și administrarea unei distribuții Gnu/Linux, dar aspectul tern displace multor utilizatori. Dar consola poate fi personalizată, făcută atractivă. În continuare ne vom referi la câteva aspecte: transparență, mesaj de întâmpinare, prompt personalizat, schimbare nume sistem, aplicații utile sau interesante. Poate ați auzit și veți mai auzi vorbindu-se despre puterea consolei, utilitatea acesteia, importanța ei. Noi ne vom referi la frumusețea și la simplitatea consolei, la ușurința în utilizare. Vom încerca să vă prezentăm aplicații interesante, precum și lucruri inedite despre consolă. Contrar ideilor preconcepute linia de comandă poate fi atât distractivă cât și simplu de utilizat.

În acest material: -consolă= terminal= konsole= gnome-terminal= e-term= x-term= yakuake= orice consolă în mediul grafic, dar baza este konsole, terminalul implicit în mediul grafic KDE, setările/ modificările se referă la konsole;
-tty= unul din cele șase terminale în mod text, apelabile prin combinația Ctrl+ Alt+ F1 (tty1), sau Ctrl+ Alt+F2 (tty2), până la Ctrl+Alt+ F6 (tty6). Mutarea între tty-uri se face cu combinația Alt+Fn (Alt+ F3 de exemplu pentru tty3, Alt+F6 pentru tty6…), iar revenirea în mediul grafic cu combinația de taste Alt+F7 sau Alt+F8;
-ne vom referi la un sistem localizat în limba română;
-semnul # din fața unei comenzi înseamnă că acea comandă trebuie dată ca root (su+ parola de root), sau cu drepturi temporare de root ( precedată de sudo+ parolă utilizator la cerere); o comandă fără # sau precedată de caracterul $ se va da ca user obișnuit;
-semnul ~ indică întotdeauna directorul /home/user, de exemplu: ~/.bashrc este același lucru cu /home/user/.bashrc !

7.1 useradd

Dacă avertismentul nostru de la început vă pune pe gânduri, poate e bine să începeți prin a crea un cont de utilizator nou, cont în care să verificați acuratețea informațiilor oferite. Știm că se poate face acest lucru în MCC, totuși discutăm despre consolă, așa că puteți crea un cont nou cu o singură comandă:

#useradd -m -g users -G audio,root,video,wheel -s /bin/bash user_nou 

unde: -m= crează director home: /home/user_nou; -g= grupul de bază la care va fi adăugat noul utilizator (în acest caz grupul users); -G= grupuri adiționale din care va face parte noul utilizator; -s= shellul implicit folosit de utilizator; -user_nou= înlocuiți cu numele dorit. După ce setați și o parolă noului utilizator (#passwd user_nou), aveți configurat un cont nou, cu toate facilitățile, gata de utilizat. Pentru ca noul utilizator să facă parte dintr-un grup cu același nume, mai întâi trebuie creat acel grup (#groupadd user_nou), și apoi noul cont de utilizator, caz în care vom înlocui în comanda dată grupul users cu grupul cu același nume cu utilizatorul.

7.2 dd

În eventualitatea că nu vă mulțumește măsura precedentă, vă sugerăm să vă salvați datele de pe partiția /, sistemul de operare adică, prin ceea ce este cunoscut ca backup. Tot în linia de comandă evident, folosind dd (disk dump). Pe lângă mai cunoscutele Clonezilla, Acronis, Ghost4Lin, există dd, un utilitar ce realizează copieri bit cu bit (clonări). Structura de bază a comenzii este: dd if=sursă of=destinație , unde: if= input file= datele ce vor fi copiate(disc, partiție, director) of= output file= destinație= locul unde vor fi scrise/ copiate datele

Să vedem cam ce putem face cu dd: putem copia o partiție pe un alt disc, putem crea imaginea ISO a unui cd/dvd, crea un drive USB bootabil, clona un hard disc întreg și multe altele. Ceea ce ne interesează pe noi este copierea unei partiții pe altă partiția a discului, deci backup, salvarea partiției root. Partiția root trebuie să fie demontată, de aceea pornim o sesiune live-cd, cu un live-cd Mandriva sau alt distro și realizăm salvarea datelor:

1- Backup fără compresie:

dd if=/dev/sdax of=/dev/sday/backup



unde:/dev/sdax este partiția root (înlocuiți x cu 1, 2, 3 sau după caz cu cifra corectă, de pildă /dev/sda3) /dev/sday este partiția destinație, cea pe care salvăm datele (înlocuiți y cu cifra corectă) backup este directorul unde salvăm. Dacă nu știți exact care sunt partițiile implicate, partiția / și partiția destinație, într-o consolă dați comanda: df. Outputul comenzii vă va indica toate partițiile sistemului, și va arăta cam așa:

[alex@stressat ~]$ df
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             9.0G  6.9G  1.6G  82% /
/dev/sda6             251M   67M  172M  29% /boot
/dev/sda8              68G   36G   29G  56% /home
/dev/sda1              11G  6.1G  4.7G  57% /media/win_c
/dev/sda2              49G   26G   24G  52% /media/win_d

În acest caz partiția / este /dev/sda7, /boot este /dev/sda6, /home este /dev/sda8, etc.

Restaurare partiție root:

dd if=/dev/sday/backup of=/dev/sdax

2- Backup cu compresia datelor:

dd if=/dev/sdax | gzip > /dev/sday/backup.gz

Restaurare:

gunzip /dev/sday/backup.gz | dd of=/dev/sdax

Atenție!!!

Trebuie să fiți extrem de atenți la sintaxa folosită, dacă greșiți partiția destinație puteți pierde toate datele de pe aceasta, dacă inversați partițiile pierdeți partiția root, orice greșeală este FATALĂ ! Am prezentat dd doar pentru a arăta posibilitățile CLI, începătorii ar face bine să evite folosirea sa, Clonezilla este mult mai permisiv, deci recomandat. Un ghid de utilizare Clonezilla în limba româna puteți descărca de aici: http://queen-soft.blogspot.com/2009/02/clonezilla-alternativa-gratuita-la.html .

7.3 Funcții bash utile

Ne putem ușura viața în linia de comandă, adăugând anumite funcții bash in .bashrc .

7.3.1. Funcția **unp** :

Funcția unp permite dezarhivarea rapidă pentru orice tip de arhivă, fără a ști pe dinafară sintaxa de dezarhivare.

Astfel în loc de :

tar zxvf arhiva.tar.gz
tar jxvf arhiva.tar.bz2
unrar x arhiva.rar
7z x arhiva.7z
ar x arhiva.deb

Se va utiliza :

unp arhiva.tar.gz
unp arhiva.tar.bz2
unp arhiva.rar
unp arhiva.7z
unp arhiva.deb

Funcția este următoarea :

# usage: unp <file>
unp ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar vxjf $1   ;;
      *.tar.gz)    tar xvzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xfv $1    ;;
      *.tbz2)      tar xjfv $1   ;;
      *.tgz)       tar xzfv $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *.deb)	   ar x $1	;;
      *)           echo "'$1' cannot be extracted" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

Și un exemplu de .bashrc cu ea activă :

if [ -f /etc/bash_completion ]; then
	    . /etc/bash_completion
fi

xhost +local:root > /dev/null 2>&1

complete -cf sudo

shopt -s cdspell
shopt -s checkwinsize
shopt -s cmdhist
shopt -s dotglob
shopt -s expand_aliases
shopt -s extglob
shopt -s histappend
shopt -s hostcomplete
shopt -s nocaseglob

export HISTSIZE=10000
export HISTFILESIZE=${HISTSIZE}
export HISTCONTROL=ignoreboth


LACK='\e[1;30m'
RED='\e[0;31m'
LIGHTRED='\e[1;31m'
GREEN='\e[0;32m'
LIGHTGREEN='\e[1;32m'
BROWN='\e[0;33m'
YELLOW='\e[1;33m'
BLUE='\e[0;34m'
LIGHTBLUE='\e[1;34m'
PURPLE='\e[0;35m'
LIGHTPURPLE='\e[1;35m'
CYAN='\e[0;36m'
LIGHTCYAN='\e[1;36m'
WHITE='\e[1;37m'
#echo -ne "${LIGHTBLUE}""Salut, $USER! Azi e "; date
#echo -e "${LIGHTBLUE}"; uname -a ; 
#echo -e "${LIGHTBLUE}";cat /etc/release ; echo ""
#echo -ne "${LIGHTBLUE}Sysinfo:";uptime ;echo ""
#echo -e "${LIGHTPURPLE}"; cal -3 
#echo -e "${LIGHTCYAN}"; fortune maxime  ; 
#echo -e "${YELLOW}"; cal -3;


alias ls='ls -h --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias lls='ls -lh --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias llls='ls -lha --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias grep='grep --color=tty -d skip'
alias cp="cp -i"                          # confirm before overwriting something
alias df='df -h'                          # human-readable sizes
alias free='free -m'                      # show sizes in MB
alias src='rpm -qa --qf %{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}\\n'
alias lynx='lynx -accept_all_cookies'
alias pkginstall='sudo urpmi'
alias pkgremove='sudo urpme'
alias pkgsearch='sudo urpmq -YSa'
alias pkgupdate='sudo urpmi --auto-update'
alias pkgclean='sudo urpme --auto-orphans'
alias pkglist='rpm -qa'
alias pkgflist='rpm -ql'
alias lsmod='sudo lsmod'
alias ifconfig='sudo ifconfig'
alias lsusb='sudo lsusb'
alias traceroute='sudo traceroute'
alias die='kill -9'
alias sudoers='sudo EDITOR=mcedit visudo'
# unp - archive extractor
# usage: unp <file>
unp ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar vxjf $1   ;;
      *.tar.gz)    tar xvzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xfv $1    ;;
      *.tbz2)      tar xjfv $1   ;;
      *.tgz)       tar xzfv $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *.deb)	   ar x $1	;;
      *)           echo "'$1' cannot be extracted" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

# prompt
PS1='\[\033[0;32m\]┌─[ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ] - [ \[\033[0m\]\w\[\033[0;32m\] ]\n\[\033[0;32m\]└─[\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]]>\[\033[0m\] '

7.3.2. Funcția **mdvup** :

Funcția mdvup permite actualizarea sistemului printr-o singură comandă, fără a mai fi nevoie de tastarea parolei.

Astfel în loc de :

urpmi.update -a
su -l
urpmi --auto-select

Se va utiliza :

mdvup

Funcția este următoarea :

mdvup () {
urpmi.update -a
/usr/bin/expect -c 'spawn su -l -c "urpmi --auto-select";expect "?*assword*";send -- "Parola_ROOT";send -- "\r";interact'
}

Pentru a funcționa trebuie sa aveți instalat expect și să înlocuiți Parola_ROOT cu parola contului root.

ATENȚIE : Această metodă implică păstrarea parolei de root în formă text. În cazul serverelor poate reprezenta un risc.

7.4 sudo

Comanda sudo este în opinia noastră extrem de utilă, datorită faptului că datorită ei căpătăm drepturi de root pentru o perioadă limitată de timp folosind parola de utilizator, sau chiar fără parolă. Să presupunem că doriți să folosiți sudo fără parola de utilizator pentru instalări, actualizări de sistem, rulări scripturi… Ne vom referi la activarea sudo pentru toți userii care fac parte din grupul wheel, în așa fel încât să nu fie nevoiți să pună parola de utilizator. Activarea sudo pe Mandriva se realizează destul de simplu: 1- instalăm sudo: #urpmi sudo . Dacă ați încercat să adăugați un alt utilizator cu comanda arătată anterior ( #useradd -m -g users -G audio,root,video,wheel -s /bin/bash user_nou ), acel utilizator face parte deja din grupul wheel, dacă nu, atunci puteți adăuga userul în grupul wheel cu următoarea comandă: #gpasswd -a user wheel . 2- permitem userilor din grupul wheel folosirea sudo fără parolă: edităm fișierul /etc/sudoers (#kwrite /etc/sudoers ), sau dacă preferați cu alt editor de text (kate, gedit, nano, vim…) și decomentăm linia:

## Same thing without a password
# %wheel	ALL=(ALL)	NOPASSWD: ALL

adică ștergem caracterul # din fața liniei, astfel încât linia va arăta:

%wheel	ALL=(ALL)	NOPASSWD: ALL

Dacă doriți totuși să utilizați sudo cu parola de utilizator, atunci în același fișier /etc/sudoers, după liniile:

## Allow root to run any commands anywhere 
root	ALL=(ALL) 	ALL

adăugați o linie nouă de forma:

user	ALL=(ALL) 	ALL

linie în care înlocuiți user cu numele de utilizator.

Fișierul

/etc/sudoers

editat cu mcedit

Acum putem trece la treabă, vom începe cu aspectul consolei.

7.5 Transparență

Deschidem o consolă (Meniu- Unelte- Konsolă) și din bara de meniuri a consolei apăsăm succesiv butoanele: Configurări- Editează profilul curent- Aspect- Editare: setăm o valoare la Transparență fundal- Ok. După cum ați observat la Aspect putem schimba radical aspectul consolei, atât culoarea fundalului cât și a fonturilor folosite, dimensiunea fonturilor, forma și culoarea cursorului. O modificare utilă privind consola putem face în Dolphin, astfel încât să pornim o consolă în directorul în care ne aflăm în Dolphin: Dolphin→ Configurări→ Configurează barele de unelte→ dublu click pe Deschide terminal (sau îl tragem cu mouse-ul din partea stângă a ferestrei apărute în cea dreaptă)→ Aplică- Ok. Astfel în bara de unelte din Dolphin, în partea de sus a acestuia vom avea un buton ¨Deschide terminal¨. Prin click pe acesta vom deschide o consolă în directorul curent. Alternativ, apăsând tasta F4 în Dolphin în partea de jos a acestuia se va deschide o mică fereastră Konsole, în directorul curent, consolă în care putem da comenzi.

Un alt mod de a obține transparența ferestrelor în mod global (deci nu doar consola ci toate categoriile de ferestre) este din Compiz-fusion/CCSM. Urmați calea: CCSM→ Accesibility→ Opacity, brightness and saturation→ Opacity→ Window specific settings→ New→ scrieți la Type: Normal | Unknown și puneți o valoare în jur de 80-95.

ATENȚIE: o valoare prea mică va face ferestrele INVIZIBILE !!!

7.6 MC - Midnight Commander

Pentru cei care utilizează mc/ GNU Midnight Commander (există cineva care nu-l folosește?) se poate modifica aspectul aplicației atât de utile. În ~/.mc/ini se pot face modificari la culori, layout, alte setări. Mai simplă este înlocuirea temei implicite cu alta. Temele/ skin-urile pentru mc se găsesc în /usr/share/mc/skins. Automat mc pornește cu skin-ul implicit, cel definit în “default.ini”. Pentru a încerca alt skin rulați comanda mc -S nicedark sau mc -S darkfar ( mc -S nume_temă / nu trebuie pus .ini și nici calea nu trebuie definită). Pentru a seta mc să pornească automat cu tema preferată, creați folderul ~/.mc/skins, acesta va fi răsfoit inainte sa caute in /usr/share.mc/skins. Astfel, pentru a face un skin personalizat și a-l rula fără parametri la mc, creați ~/.mc/skins/default.ini . O idee bună este să porniți prin a copia si modifica /usr/share/mc/skins/default.ini in locația sus-amintită. În același mod putem seta aspectul mc pentru contul de root, contul în care bănuim că este cel mai folosit mc,prin crearea unui fișier /root/.mc/skins și copierea temelor din /usr/share/mc/skins în /root/.mc/skins.

Pentru cei ce nu vor să riște, să se complice sau nu se pricep recomandăm crearea unui alias de forma: alias mc='mc -S temă_preferată', de exemplu alias mc='mc -S darkfar' în fișierul ~/.bashrc , iar pentru contul de root în fișierul /root/.bashrc. Mai mult de atât, în sursa indicată mai jos gășiți un fișier temă configurat, trebuie doar copiat, sau vă puteți inspira după acesta:

[skin]
    description=Standart skin

[Lines]
    horiz=─
    vert=│
    lefttop=┌
    righttop=┐
    leftbottom=└
    rightbottom=┘
    topmiddle=─
    bottommiddle=─
    leftmiddle=├
    rightmiddle=┤
    cross=┼
    dhoriz=─
    dvert=│
    dlefttop=┌
    drighttop=┐
    dleftbottom=└
    drightbottom=┘
    dtopmiddle=─
    dbottommiddle=─
    dleftmiddle=├
    drightmiddle=┤

[core]
    _default_=lightgray;
    selected=black;lightgray
    marked=yellow;
    markselect=yellow;cyan
    gauge=white;black
    input=lightgray;black
    reverse=black;lightgray

[dialog]
    _default_=black;lightgray
    dfocus=white;black
    dhotnormal=red;lightgray
    dhotfocus=brown;black

[error]
    _default_=white;red
    errdhotnormal=yellow;red
    errdhotfocus=yellow;lightgray

[filehighlight]
    directory=white;
    executable=brightgreen;
    symlink=lightgray;
    stalelink=brightred;
    device=brightmagenta;
    special=blue;
    core=red;
    temp=gray;
    archive=brightmagenta;
    doc=brown;
    source=cyan;
    media=green;
    graph=brightcyan;
    database=brightred;

[menu]
    _default_=white;black
    menuhot=brown;black
    menusel=black;lightgray
    menuhotsel=red;lightgray
    menuinactive=lightgray;black

[buttonbar]
    hotkey=brown;
    button=grey;

[help]
    _default_=black;lightgray
    helpitalic=red;lightgray
    helpbold=blue;lightgray
    helplink=black;cyan
    helpslink=yellow;blue

[editor]
    _default_=white;
    editbold=yellow;brightgreen
    editmarked=black;lightgray
    editwhitespace=brightblue;
    editlinestate=lightgray;black
    bookmark=white;red
    bookmarkfound=black;green
    editrightmargin=brightblue;black

[viewer]
    viewunderline=brightred;

[diffviewer]
    added=white;green
    changedline=blue;
    changednew=red;
    changed=white;
    removed=white;red
    folder=blue;black
    error=red;white

[widget-common]
    sort-sign-up = '
    sort-sign-down = ,

SURSA: http://www.mandrivausers.ro/node/6154

Pentru mesaj de întâmpinare și prompt shell personalizate vom folosi două comenzi: echo (comandă care afișează o linie de text) și export (comandă care setează variabilele de mediu cum sunt promptul shell-ului, editorul de text, etc.). Pentru a vedea toate variabilele de mediu dați comanda env în consolă! Toate modificările se vor face în fișierul /home/user/.bashrc (altfel scris ~/.bashrc), care este fișierul de configurare al shell-ului Bash, interpretorul de comenzi implicit în Mandriva și majoritatea distribuțiilor Gnu/Linux, pentru setări locale (la nivel de utilizator) sau în fișierul /etc/skel/.bashrc pentru setări globale (valabile pentru toți utilizatorii sistemului), bineînțeles dacă nu dorim setări diferite pentru useri diferiți, caz în care configurăm fișierele .bashrc al fiecărui user după dorință. Comanda cu care edităm acel fișier este: kwrite .bashrc, kate .bashrc sau gedit .bashrc. Adăugăm linia/liniile dorite, salvăm și închidem. Putem să facem backup la fișier înainte de a face modificări (cp .bashrc .bashrc-vechi). În caz de probleme ștergem fișierul și-l înlocuim cu copia de siguranță. Dar nu este neapărat necesar să facem noi backup, deoarece editoarele text kwrite, kate, gedit fac o copie de siguranță fișierelor text editate, copie ce are exact același nume cu fișierul original plus caracterul tilda (~). Nu vă panicați, este foarte simplu, puteți pur și simplu copia (copy-paste) liniile dorite sau eventual tot fișierul .bashrc pe care le veți găsi în acest material…

7.7 Mesaj de întâmpinare

Folosind comanda echo putem seta apariția unui mesaj de întimpinare în shell, mesaj care poate fi unul de salut și/sau un mesaj cu informații utile. Mesajele acestea vor apărea în partea de sus a consolei și pot fi colorate cu culoarea implicită a textului din shell (alb, verde, etc.), sau pot fi colorate după preferință. În primul rând vom defini culorile necesare adăugând definițiile în .bashrc:

BLACK='\e[1;30m'                                          
RED='\e[1;31m'                                              
GREEN='\e[1;32m'                                         
BROWN='\e[1;33m'
BLUE='\e[1;34m'
PURPLE='\e[1;35m'
CYAN='\e[1;36m'
WHITE='\e[1;37m'

Am ales variantele light ale culorilor, culori strălucitoare și font mai gros.
Pentru un mesaj de salut de genul: Salut user! , trebuie să adăugăm în fișierul .bashrc următoarea linie: echo Salut $USER! ( pe o singură linie). Dacă dorim colorarea mesajului într-o culoare anume, este necesară definirea culorilor,apoi ne folosim de opțiunile comenzii echo, și adăugăm o linie de formatul: echo -e „${GREEN}“ „Salut, $USER! “. Se poate modifica culoarea, în funcție de dorință.
Deasemeni putem avea mesaje cu diferite informații despre sistem, dată, oră, calendar și multe altele.Voi adăuga o mică listă cu linii ce pot fi inserate în .bashrc, cu scurte comentarii:

echo -ne "${GREEN}" "Hello, $USER. Azi e "; date    =afișează salutul, data și ora(în verde)
echo -e "${YELLOW}"; cal ;                                           =afișează calendarul lunii
echo -e "${YELLOW}"; cal -3;                                        =afișează calendarul pe 3 luni(precedentă, curentă și următoare)
echo -ne "${PURPLE}Sysinfo:";uptime ;                      =informații uptime
echo -e "${WHITE}"; uname -a ; cat /etc/release;        =informații sistem, arhitectură procesor, versiune, kernel
echo -e "${CYAN}"; fortune ;                                         =fortune este o aplicație interesantă care afișează în mod aleatoriu un proverb, maximă, o glumă.

Este suficient să instalați fortune: #urpmi fortune-mod plus unul sau mai multe din pachetele cu texte (fortune-movies, fortune-murphy, fortune-starwars, fortune-top 100, etc.) și să plasați în .bashrc o linie fortune. Dacă preferați ca și citatul dat de fortune să fie colorat în loc de linia fortune puneți o linie de forma: echo -e „${BLUE}“; fortune ; . Dacă doriți să limitați numărul de caractere afișat de fortune, pentru a nu ocupa prea multe linii comanda este echo -e „${BLUE}“; fortune -n 80; (implicit numărul de caractere este 160). Este posibil să vă faceți singuri o bază de date cu texte care să apară în consolă.
Căutați pe internet maxime, glume sau altceva, le copiați într-un fișier text numit de exemplu maxime, textele fiind despărțite de câte un rând în care este caracterul %, fișier pe care-l copiați în directorul home și îl transformați într-o bază de date (cu comanda #strfile maxime). Pentru ca fortune să afișeze textele din baza de date nou apărută (maxime.dat) linia din ~/.bashrc va fi: echo -e „${LIGHTCYAN}“; fortune maxime ;

În imaginea următoare puteți observa efectul acestor linii asupra aspectului consolei. Bineînțeles puteți păstra toate liniile sau doar una, două, după plac. În plus observați o modificare asupra promptului, modificare descrisă la punctul următor. Fortune poate fi folosit în combinație cu cowsay, o mică aplicație care face ca expresia respectivă să fie “spusă” sau “gândită” de un desen ASCII în formă implicită de vacă, sau de alte animale: oaie, broască, pinguin, koala, etc. Pentru aceasta trebuie modificată linia cu fortune în unul din modurile următoare:

echo -e "${CYAN}"; fortune | cowsay ;                             = varianta clasică: vaca vorbitoare;
echo -e "${CYAN}"; fortune | cowsay -f tux ;                   = vaca este înlocuită de un pinguin;
echo -e "${CYAN}"; fortune | cowsay -f sheep ;              = varianta cu oaie;
echo -e "${CYAN}"; fortune | cowthink -f turkey ;           = afișează “gândurile” unui curcan.

Mai multe detalii: http://www.flamingtext.com/tools/cowsay/ .

Un exemplu de conținut de fișier personal pentru fortune:

%
Cand un barbat iți fură nevasta, nu e răzbunare mai bună decât să-l lași să o păstreze (Sacha Guitry)
%
Nu ești beat atâta timp cât poți să zaci întins pe parchet, fără să te sprijini.  (Murphy)
%
O fi bine in Rai, dar cele mai interesante persoane nu ajung acolo. (Nietzsche)
%
Prima carte care trebuie interzisă este catalogul cărtilor interzise.  (Murphy)
%
In viață nu contează dacă pierzi sau câștigi. Contează dacă pierd sau câștig eu... (Winston Churchill)
%
Tot ce e bun: ori e imoral, ori este ilegal, ori ingrasă.    (Murphy) 
%  
Ce ție nu-ți place, altuia nu-i face. Că nu toată lumea are aceleași gusturi. (G.B. Shaw)
%
Dacă ceva funcționează, nu încerca să-l repari.  (Murphy)
%
Paradoxul homosexualilor este că, deși nu reușesc să se reproducă, sunt în fiecare an din ce in ce mai mulți. (Tristan Bernard)
%
Un program pentru calculator face ceea ce îl pui tu să facă, nu ceea ce vrei tu să facă.  (Murphy)
%
Statisticile sunt precum costumele de baie: iți arată ce știe toată lumea și iți ascund exact ceea ce ai fi vrut sa afli. (Georges Vedel)
%
Inteligența artificială nu se poate compara cu prostia naturală.   (Murphy)
%
Bravura nu-i decât o vorbă goală. Brav e doar cel ce ține arma de partea unde e trăgaciul!    (Sven Hassel)
%
Un bărbat nu este complet daca nu este însurat. Abia atunci este terminat. (Robert Frost)
%
 Toate ciupercile sînt comestibile. Cel puțin o dată.  (Anonim)
%
Cine a zis că sexul este un raspuns? Sexul este o intrebare. "Da" este raspunsul. (Woody Allen)
%
Experiența este cel mai dur profesor, pentru că întâi iți dă testul și abia apoi iți spune care era lecția.  (Vernon Law) 
%
Daca te lași de fumat, de băut si de femei nu traiești mai mult... doar că timpul trece mult mai greu. (Clement Freud)
%
 A vorbi despre salariul brut ca și cum ar fi salariul tău este ca și cum ai include lungimea șirei spinării în dimensiunea penisului.  (Anonim)
%
Nu e bine să fii obligat să alegi intre Rai si Iad. Prieteni buni gasești in ambele locuri. (Mark Twain)
%
Belladonna: în limba italiană, femeie frumoasă; în engleză, mătragună - un foarte bun exemplu de sinonime...   (Anonim)
%

Alte aplicații utile pentru afișarea unor mesaje de salut sunt banner, figlet, toilet, tput. Puteți încerca aceste aplicații în konsole dând una sau alta din comenzile următoare sau copiindu-le în .bashrc:
- banner mesaj (de exemplu banner Mandriva, deci înlocuim mesaj cu mesajul dorit!);
- figlet -tf slant mesaj;
- toilet -f mono9 -F metal mesaj;
- toilet -f mono9 -F gay mesaj.


7.8 Prompt modificat

Pentru a seta variabila de mediu care determină promptul afișat în consolă (PS1), precum și alte variabile de mediu se folosește comanda ¨export¨. Veți observa că pe lângă aspectul inedit, modificarea promptului este utilă, observând mult mai ușor dacă sunteți logat ca root ori user,sau dacă comanda dată a fost executată și avem consola liberă pentru alte sarcini.
Promptul este acel scurt mesaj din consolă, care de obicei ne prezintă informații despre utilizator, numele mașinii și directorul curent (cam așa ceva: [dan@stressat ~]$ ⇒ unde dan=utilizator, stressat=nume sistem și ~=directorul home al userului curent, în acest caz /home/dan). Pentru a afla structura promptului într-o consolă dăm comanda:

echo $PS1
[\u@\h \W]\$

Dar pe lîngă user, hostname și director putem pune orice altceva: oră, dată, etc. Să presupunem că dorim ca promptul să ne arate și ora exactă. Pentru asta adăugăm în /home/user/.bashrc o linie de genul:

export PS1="[\u@\H \W \@]\$"

sau putem verifica mai întâi aspectul promptului dând in consolă comanda

export PS1="[\u@\H \W \@]\$"

Dacă suntem mulțumiți de prompt punem linia respectivă în ~/.bashrc.
Dacă dorim ca promptul să fie colorat avem câteva posibilități. În primul rând în mediile Mandriva găsim o aplicație numită colorprompt care odată instalată va colora promptul de user în verde și cel de root în roșu.Deci ajunge rularea comenzii #urpmi colorprompt în consolă, iar la repornirea consolei vom avea promptul colorat. Poate preferați alte culori pentru prompt, sau chiar ca fiecare termen al promptului să aibă o culoare diferită ? Este simplu… Toate aceste modificări se pot face în același director .bashrc, cu același tip de linie adăugată: export PS1=“[\u@\H \W \@]\$“ la care adăugăm parametrii pentru colorare:

\e[x;ym           =>pornește schema de colorare;
\e[m                =>oprește schema de colorare;

x;y reprezintă culoarea dorită(dacă înlocuim 0 cu 1 obținem varianta light a culorii- nuanță mai vie și font puțin mai gros, iar dacă înlocuim cu 4 obținem prompt subliniat/underline):

0;30       =culoarea neagră;
1;30       =culoarea gri închis;
0;31       =culoarea roșie;
0;32       =verde;
0;33       =maron (1;33 este galben);
0;34       =albastru;
0;35       =magenta;
0;36       =cyan;
0;37       =alb;
0;30       =negru;
1;31       =roșu strălucitor/ lightred;
4;31       =roșu subliniat/ underline red;
5;31       =roșu clipitor/ blink red;
7;31       =culori inversate între fundal și text.


\u  =user;
\h  =hostame;
\w =director curent;
\$ =variabilă care setează afișarea caracterului $ pentru user și # pentru root;
\d =data;
\A =ora curentă în format 24 de ore
\@ =ora în format 12 ore Am/Pm.

Deci dacă vrem un prompt de user de culoare albastră și care să indice userul, gazda, directorul curent și ora curentă în format 24 ore, este suficient să adăugăm în fișierul ~/.bashrc următoarea linie:

export PS1="\[\e[0;34m[\u@\h \W \A]\$ \e[0m\] "

pentru un albastru puțin mai deschis înlocuim 0;34 cu 1;34, pentru verde cu 0;32, etcetera. Este posibil să avem promptul cu fiecare termen de altă culoare. Pentru aceasta trebuie să încadrăm fiecare termen în propria schemă de colorare, folosind culoarea dorită,de exemplu:

export PS1="\[\e[1;32m[\u\e[0m\e[1;36m@\e[0m\e[1;33m\h\e[0m:\e[1;35m\w\e[0m \e[1;36m\@]\e[0m\e[1;31m\$\e[0m\] " 

(aceasta este o singură linie, aici nu încape pe un singur rând, cum ar trebui pusă în .bashrc). Aspectul dat de această ultimă comandă îl vedeți în imaginea următoare.

Un prompt ceva mai complex este următorul :

export PS1='\[\033[0;32m\]┌─[ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ] - [ \[\033[0m\]\w\[\033[0;32m\]]\n\[\033[0;32m\]└─[\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]]>\[\033[0m\] '

Sau, în caz ca folosiți mai multe sisteme în chroot, pentru a ști în care sistem vă aflați :

export PS1='\[\033[0;32m\]┌─[ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ] - [ \[\033[0;31m\]ArchLinux\[\033[0;32m\] ] - [ \[\033[0m\]\w\[\033[0;32m\] ]\n\[\033[0;32m\]└─[\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]]>\[\033[0m\] '
export PS1='\[\033[0;32m\]┌─[ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ] - [ \[\033[0;31m\]Ubuntu\[\033[0;32m\] ] - [ \[\033[0m\]\w\[\033[0;32m\] ]\n\[\033[0;32m\]└─[\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]]>\[\033[0m\] '

Pentru cei ce sunt la început și evident nu se prea pricep (deocamdată), vom adăuga în acest material un fișier .bashrc pentru inspirație. Am adăugat mai multe linii pe care nu le folosim, comentate (au simbolul # în față). Ștergând caracterul # din fața unei linii o decomentăm și ca atare va fi luată în considerație de sistem, fiind afișat în konsole outputul comenzii respective. Similar putem comenta o linie nedorită prin adăugarea în fața acesteia a caracterului #. Puteți copia conținutul acestui fișier în propriul dumneavoastră fișier .bashrc (~/.bashrc pentru setări locale):

# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc

#Mesaj întâmpinare
BLACK='\e[1;30m'
RED='\e[0;31m'
LIGHTRED='\e[1;31m'
GREEN='\e[0;32m'
LIGHTGREEN='\e[1;32m'
BROWN='\e[0;33m'
YELLOW='\e[1;33m'
BLUE='\e[0;34m'
LIGHTBLUE='\e[1;34m'
PURPLE='\e[0;35m'
LIGHTPURPLE='\e[1;35m'
CYAN='\e[0;36m'
LIGHTCYAN='\e[1;36m'
WHITE='\e[1;37m'
echo -ne "${LIGHTRED}" "Salut, $USER! Azi e "; date
echo -e "${YELLOW}"; uname -a ; 
#echo -e "${LIGHPURPLE}";cat /etc/release ;
#echo -ne "${LIGHTBLUE}Sysinfo:";uptime ;echo ""
#echo -e "${LIGHTPURPLE}"; cal -3 
echo -e "${LIGHTCYAN}"; fortune maxime ; 

#Aliasuri
alias mplay='mplayer -zoom -x 600 -y 460 -playlist ~/Music/Videoclipuri/playlist.m3u'
alias fbterm1='./fbterm-bi ~/Pictures/tux.jpg'
alias fbterm='./fbterm-bi ~/Pictures/5.jpg'
alias fbterm2='./fbterm-bi ~/Pictures/desen.jpg'
alias grep='grep --color=tty -d skip'
alias src='rpm -qa --qf %{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}\\n | grep -i '
alias die='kill -9'
alias x='exit'
alias rd='rmdir'
alias md='mkdir'
alias h='history' 
alias ls='ls -h --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias lynx='lynx -accept_all_cookies'
alias moc='mocp -T ~/.moc/moca_theme'
alias ffmpeggbox='ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x960 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 captura.avi'
alias ffmpeggmic='ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x960 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 capmic.avi'
alias glmatrix='xwinwrap -ni -fs -s -st -sp -b -nf -- /usr/lib64/xscreensaver/glmatrix -root -window-id WID'
alias xwinwrapf='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -wid WID -vo gl2 -ao alsa -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0'
alias xwino='xwinwrap -ov -g 900x600+200+200 -sh circle -- mplayer -wid WID -vo gl2 -ao alsa -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0 '
alias xwinc='xwinwrap -ov -g 700x700+300+150 -sh circle -- mplayer -wid WID -vo gl2 -ao alsa -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0 '
alias xwint='xwinwrap -ov -g 900x600+200+200 -sh triangle -- mplayer -wid WID -vo gl2 -ao alsa -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0 '
alias xwind='xwinwrap -ov -g 900x600+200+200 -- mplayer -wid WID -vo gl2 -ao alsa -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0 '
alias meteo='weather --id=LRIA'

#Radio
alias mpe='mplayer -playlist ~/Downloads/live.m3u'                                        #radio europafm
alias mpk='mplayer -playlist ~/Downloads/radio/listen.pls'                               #radio kissfm
alias mpz='mplayer -playlist ~/Downloads/radio/live.m3u'                                #radio zu
alias mpc='mplayer -playlist ~/Downloads/radio/cityfm_128.m3u'                    #radio cityfm
alias mpp='mplayer -playlist ~/Downloads/radio/profm.mp3.m3u'                    #radio profm

#export PATH=/usr/share/cw:$PATH 
export PATH=~/.cw:$PATH

# prompt
#PS1='[\u@\h \W]\$ '
#PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
PS1='\[\033[0;32m\]┌─[ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ] - [ \[\033[0m\]\w\[\033[0;32m\] ]\n\[\033[0;32m\]└─[\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]]>\[\033[0m\] '

fi

Nu uitați că pentru a avea efect setările și aliasurile din fișier trebuie să instalați aplicațiile la care ne referim !

Putem merge chiar mai departe și să colorăm outputul comenzilor, în așa fel încât să avem consola mai interesantă folosind cwrapper, ceva oarecum asemănător cu felul cum sunt afișate în Sabayon.
1- Instalăm cwrapper:

#urpmi cw

2- trebuie adăugată calea în fișierul ~/.bashrc sau în fișierul ~/.bash_profile (dacă nu avem acest fișier îl facem noi: touch /home/user/.bash_profile) și adăugăm linia următoare:

export PATH=/usr/share/cw:$PATH

.

Cwrapper va colora ieșirile comenzilor după setările sale implicite, în mod aleatoriu, dar putem modifica culorile pentru outputul fiecărei comenzi în parte în fișierele de configurare aflate în directorul /usr/lib/cw (de exemplu pentru culori personalizate pentru otputul comenzii date trebuie modificat fișierul date). Totuși este preferabil să setăm cwrapper pe plan local, în directorul nostru home. Pentru aceasta creăm un fișier .cw în care copiem fișierele de configurare din /usr/share/cw, facem modificările dorite de noi și în final setăm calea pentru aplicație adăugând linia următoare în ~/.bashrc sau în ~.bash_profile :

export PATH=~/.cw:$PATH

După repornirea interfeței grafice sau restart, vom avea un terminal/ tty plin de culoare. Dacă folosiți mesaj de întâmpinare în consolă cu vreuna din comenzile ce sunt afectate de cwrapper (comenzile ce au fișiere de configurare în /usr/share/cw sau ~/.cw, cum sunt uname -a, date, cal, clock) veți observa că mesajul de întâmpinare respectiv este afectat de schema de colorare folosită de cwrapper, astfel încât putem ajunge la rezultate chiar mai spectaculoase, având cuvintele de o anumită culoare, cifrele de altă culoare, simboluri precum , . / - : # de alta… Colorarea outputului comenzilor e valabilă și în interiorul fbterm și screen, deci vom obține un terminal în mod text/ tty mult mai colorat și mai agreabil.
Un exemplu de setare cw, fișierul ~/.cw/uname:

#!/home/alex/.cw/bin/cw
path /bin:/usr/bin:/sbin:/usr/sbin:<env>
random cyan:green:purple:grey+
base yellow
digit red+:default
match red+:default /
match red+:default :
match red+:default .
match red+:default -
match red+:default #
ifnarg --help:--version
token purple+:default 0 32
ifnarg -a:-all
nopipe

Comparând acest fișier cu cel din propriul director .cw veți vedea cum se fac modificările. În mod similar puteți modifica celelalte fișiere cw. Pentru cei care au o versiune de Mandriva mai veche sau au altă distribuție (în paralel ori în loc de Mandriva), sau doresc să-și instaleze ultima versiune a uneia din aplicațiile următoare, ori pur și simplu vor să-și compileze singuri, vom expune și instalarea din surse a aplicațiilor. Pentru cwrapper:

wget http://cwrapper.sourceforge.net/cw-1.0.16.tar.gz 
tar xzf cw-1.0.16.tar.gz
cd cw-1.0.16
./configure --prefix=/usr
make installlocal

După cum suntem anunțați la instalare trebuie adăugată calea în fișierul ~/.bash_profile (dacă nu avem acest fișier îl facem noi , ca si utilizator: touch .bash_profile) și adăugăm linia următoare:

export PATH="~/.cw/def:$PATH"

Setările se fac în directorul ~/.cw/def, în care veți găsi fișierele de configurare, exact în același mod ca și pentru instalarea din medii.

Sursa: http://tuxtraining.com/2009/09/08/cwrapper-a-wrapper-for-colorizing-the-output-of-common-unix-commands .

7.9 Schimbare nume sistem

După cum ați observat, numele sistemului dumneavoastră este setat implicit ca ¨localhost¨. În cazul în care doriți să aveți un nume mai deosebit, ceva personal, este ceva simplu de realizat, trebuie modificate două fișiere:
a) editați /etc/hosts (comanda #kwrite /etc/hosts) și înlocuiți linia

127.0.0.1    localhost

cu linia:

127.0.0.1   nume_dorit localhost;

b) editați /etc/sysconfig/network și adăugați linia

HOSTNAME=nume_dorit

Acum avem o consolă atractivă, așa că ar fi bine să o folosim cât mai des.
Și nu numai pentru instalări sau actualizări… În linia de comandă putem face toate lucrurile care se fac de obicei în interfața grafică: putem asculta posturi de radio online, melodii .mp3, urmări filme sau videoclipuri, și chiar canale Tv transmise online, putem trimite e-mailuri, inscripționa cd-uri și dvd-uri, conversa cu prietenii pe messenger sau IRC și multe altele. Și ceea ce este mai important, putem face toate aceste lucruri foarte simplu și repede.

7.10 Fbterm

Dacă tot petrecem ceva timp în tty, ar fi plăcut să avem câteva facilități, cum ar fi o imagine de fundal, un shell care să redea diacriticele corect. Pentru asta instalăm fbterm și fbv:

#urpmi fbterm fbv

. Apoi creați un fișier numit fbterm-bi ( touch ~/fbterm-bi ) și în el copiați textul următor:

#!/bin/bash

# fbterm-bi: a wrapper script to enable background image with fbterm
# usage: fbterm-bi /path/to/image fbterm-options

echo -ne "\e[?25l" # hide cursor

fbv -ciuker "$1" << EOF
q
EOF

shift
export FBTERM_BACKGROUND_IMAGE=1
exec fbterm "$@"

Salvați fișierul, faceți-l executabil ( #chmod a+x ~/fbterm-bi ) și logați-vă într-un tty (tty1 de xemplu cu combinația de taste: Ctrl+Alt+F1). Dați comanda:

./fbterm-bi /home/user/Pictures/Space.jpg

și veți avea wallpaper în terminal. Evident putem folosi iar un alias de forma

alias fbterm='./fbterm-bi /home/user/Pictures/Space.jpg'

Pentru posesorii de plăci video Intel (poate și Ati/ AMD): dacă aveți necazuri cu afișarea imaginii de fundal și a diacriticelor creați/ editați fișierul fbterm-bi cu mcedit sau vi/ vim pentru o formatare corectă. După logarea în tty comanda fbterm (dacă am setat un alias, altfel comanda va fi ./fbterm-bi /home/user/Pictures/Space.jpg ) deschide emulatorul de terminal fbterm, în care putem obseva că sunt afișate corect diacriticele. E bine de știut că screen rulează în interiorul fbterm… Pentru o imagine clară cu scris lizibil e bine ca imaginea să fie puțin prelucrată anterior, redusă preferabil la o scală de gri și micșorată luminozitatea. Aceasta e varianta optimă. Dar mai există posibilitatea modificării culorii fundalului și a textului din fișierul de configurare .fbtermrc. Se pot modifica fontul folosit (font-names), dimensiunea acestuia (font-size), culoarea textului (color-foreground), culoarea fundalului (color-background).

Instalarea din surse fbterm: 1 - descarcam si compilam:

wget http://fbterm.googlecode.com/files/fbterm-1.7.tar.gz
tar xzf fbterm-1.7.tar.gz
cd fbterm-1.7
./configure --prefix=/usr
make

2- ne logăm ca root și încheiem instalarea:

make install

Apoi instalăm și fbv tot din surse:

wget http://s-tech.elsat.net.pl/fbv/fbv-1.0b.tar.gz
tar xzf fbv-1.0b.tar.gz
cd fbv-1.0b
./configure --prefix=/usr
make

2- ca root:

make install

În sfârșit creați fișierul numit fbterm-bi ( touch ~/fbterm-bi ) și copiați în acesta textul arătat anterior.

Sursa: http://kmandla.wordpress.com/2010/05/28/fbterm-birth-of-the-cool-for-the-console/ .

În imaginea precedentă puteți observa fbterm în acțiune. În interiorul fbterm rulează screen cu patch-ul vertical_split. În partea de sus a ferestrei este moc (Music on console- player audio), iar în parte a de jos sunt 2 shell-uri, cel din stânga nefolosit, iar în cel din dreapta am luat screenshot-ul acesta. Se poate observa afișarea corectă a diacriticelor în mesajul de întâmpinare și în mesajul Fortune. Culoarea textului este modificată în magenta în .fbtermrc.
Dacă uneori sunteți deranjat de mesajele de întâmpinare, fortune, etc., și doriți un shell liber, comanda clear va curăța shellul, lăsând doar promptul. Este util în ferestrele mici din screen.
Pentru o afișare corectă este posibil să fiți nevoiți să setați rezoluția framebufferului prin adăugarea parametrului vga=788, sau vga=793 (sau a altei valori în funcție de monitorul folosit) în /boot/grub/menu.lst (pentru Grub) sau în fișierul /boot/grub/grub.cfg (pentru Grub2) după linia cu kernel (la secțiunea Title Linux). De exemplu, pe un monitor de 19”/ rezoluție 1280×960 valoarea optimă este vga=788 pentru rezoluție de 800×600. Dacă doriți o rezoluție mai bună, de exemplu 1024×768 atunci setați vga=791, pentru 1280×1024 setați vga=794. Câteva valori:

          | 640x480    800x600    1024x768    1280x1024
      ---------------------------------------------------------------------------
      256 | 0x301=769  0x303=771  0x305=773   0x307=775
      32K | 0x310=784  0x313=787  0x316=790   0x319=793
      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
      16M | 0x312=786  0x315=789  0x318=792   0x31B=795

O variantă de a afla toate rezoluțiiile posibile pentru placa video e folosirea comenzii hwinfo –framebuffer , cu diferența că valorile vor fi afișate sub forma: Mode 0x0314: 800×600 (+1600), 16 bits. După cum este afișat în tabelul anterior 0x314=788, deci putem folosi în loc de vga=788 și vga=0x314 (sau ce valoare dorim)… Este recomandat să evitați folosirea valorilor din prima linie a graficului anterior (cea care începe cu 256), linie unde sunt arătate rezoluțiile pe 8 biți, și să folosiți rezoluțiile pe 16 biți (din linia a doua, cea care începe cu 32k) sau cele pe 24 biți (cele din ultima linia, cea care începe cu 16M). Asta deoarece rezoluțiile pe 8 biți au dezavantajul că afișează incorect culorile imaginii de fundal și deasemenea pe cel că nu mai putem folosi aplicații de luat screenshoturi precum fbgrab.

Pentru a folosi aplicațiile acestea userul trebuie să facă parte din grupul video (#gpasswd -a user video) și deasemeni trebuie date ceva drepturi (#chmod a+rw /dev/fb0 ).

Ghidul prezent este valabil și pentru Rosa 2012 LTS:

7.11 GNU Screen: multiplexare terminal

Screen este un administrator de ferestre care permite folosirea mai multor shell-uri în același terminal. Astfel putem rula mai multe sarcini consecutiv, fără să schimbăm terminalul tty (într-un shell putem asculta muzică cu moc, în alt shell putem viziona videoclipuri, în altul putem actualiza sistemul, etc.).

Instalare:

#urpmi screen

Mod de utilzare:

Combinația de taste Ctrl+a pune screen în mod așteptare comenzi, deci comenzile destinate screen vor fi precedate obligatoriu de această combinație. Altfel comenzile date sunt destinate shell-ului curent, cel în care clipește cursorul.

  1. Ne logăm în tty;
  2. Dăm comanda screen;
  3. Ctrl+a (acum screen așteaptă comenzile noastre) și apoi S (Shitf+s): screen va sparge tty în două părți, în partea de sus avem shell, în cea de jos nimic;
  4. Ctrl+a și apoi Tab: așa ne mutăm în partea de jos a ferestrei tty;
  5. Ctrl+a urmat de Ctrl+c: astfel pornim un nou shell în partea de jos a ferestrei, și avem două shell-uri funcționale (console dacă vreți) într-un singur terminal. Și putem repeta procedeul, obținând mai multe shell-uri. Ne putem muta dintr-un shell în altul, putem porni aplicații diferite în oricare shell, putem duce unul sau mai multe shell-uri în background (fundal) sau readuce în foreground (prim-plan). Ca să închidem un shell folosim combinația Ctrl+d, ca în orice consolă. Combinația Ctrl+a X înlătură/ șterge/ închide porțiunea de screen (una din porțiunile ferestrei screen) din aranjament. Combinația este utilă și în cazul în care dorim ferestre inegale ca dimensiune: deschidem 3 ferestre screen, ne mutăm de exemplu în cea din mijloc și cu Ctrl+a X o înlăturăm. Cum screen nu realocă spațiul, iar fereastra de sus este ocupată, aceasta va prelua și spațiul ocupat anterior de fereastra din mijloc. Astfel fereastra de sus ocupă acum 2/3 din ecran iar cea de jos 1/3…

Mai simplu de redimensionat ferestrele din cadrul screen este prin editarea fișierului de configurare screen: ~/.screenrc și modificarea liniilor din secțiunea key binding. De exemplu prin modificarea/ adăugarea liniilor următoare:

bind = resize =

bind / resize max

bind * resize +1

bind + resize +5

bind _ resize -1

bind - resize -5

vom putea mări/ micșora dimensiunea unui shell:

Ctrl+a + = va mări suprafeța cu 5 linii/ coloane, în funcție de poziția ferestrei;

Ctrl+a - = va micșora suprafața cu 5 linii/ coloane, etc.

În imaginea următoare în tty sunt vizibile două shell-uri. În cel de sus este mplayer cu un videoclip, în cel de jos este playerul audio moc, recent închis. Se poate observa și modul în care e luată imaginea (fbgrab).

Comenzi utile:

screen  = pornește screen;
screen -S nume = pornește o  consolă screen și îi dă un nume; 
screen -ls  = listează consolele existente;
Ctrl+a  ? (Ctrl+a urmate de ?)   = afișează lista de comenzi disponibile în screen;
Ctrl+a  p   = comută în consola anterioră, precedentă;
Ctrl+a  n   = comută în consola următoare;
Ctrl+a  N  = (unde N este un număr între 0 și 9) comută în consola desemnată de număr;
Ctrl+a  ¨   = listează consolele deschise;
Ctrl+a  -d  = detașează consola;
Ctrl+a  -r  = reatașează consola detașată anterior
Ctrl+a  H  = creează loguri de sesiune;
Ctrl+a  M  = pornește monitorizarea activității Bash/ dată din nou oprește monitorizarea;
Ctrl+a  K  = închide (omoară) sesiunea curentă a screen.
Ctrl+a V   = desparte fereastra pe verticală

Instalare din surse este utilă pentru versiunile vechi și pentru distribuțiile care au în medii screen fără patch-ul vertical split:

1- descarcam si compilam:

wget http://www.sfr-fresh.com/unix/misc/screen-4.0.3.tar.gz
tar zxvf screen-4.0.3.tar.gz
cd screen-4.0.3
wget http://vsp4sdl.yuggoth.org/wrp_vertical_split_0.3_4.0.2.diff.bz2
bunzip2 wrp_vertical_split_0.3_4.0.2.diff.bz2
patch -Np1 < wrp_vertical_split_0.3_4.0.2.diff
./configure --prefix=/usr
make

2- ca root instalăm:

make install

Screen poate fi setat astfel încât la pornirea aplicației să pornească direct aplicațiile preferate. Astfel în fișierul de configurare ~/.screenrc, la secțiunea #default windows, putem adăuga liniile următoare:

screen -t mocp 0 mocp
screen -t mc 1 mc
screen -t htop 2 htop
screen -t centerim 3 centerim
screen -t lynx 4 lynx

În acest mod, screen va porni aplicațiile sus-pomenite direct, fiecare în altă fereastră screen, maximizate, full screen, deci vizibilitatea este mult mai bună comparativ cu o fereastră mai mică. Pentru a schimba între aplicații, de fapt între ferestrele cu aplicații folosim combinația Ctrl+a urmată de numărul ferestrei: 0 pentru fereastra cu moc, 1 pentru fereastra cu mc, 2 pentru htop, etc. Evident pe lângă aplicațiile amintite se pot adăuga oricare altele, după preferințele personale…

7.12 Byobu

Un alt manager de ferestre în CLI este Byobu, o îmbunătățire adusă Screen. De fapt Byobu este doar un wrapper, o ”haină” pentru Screen, un Screen făcut mai ”prietenos”. Toate comenzile și setările Screen funcționează și-n Byobu, iar în plus există posibilitatea de a folosi unele ”scurtături”, tastele funcționale. De exemplu în loc de combinațiile de taste Ctrl+a n și Ctrl+a p pentru trecerea la fereastra următoare, respectiv cea precedentă se pot folosi tastele F3 și F4, cu F2 deschidem o nouă fereastră, F9 ne duce în meniul de configurare. Veți vedea că este foarte intuitiv meniul, imediat vă dați seama ce și cum se poate face, explicațiile sunt de prisos. Dacă folosiți htop pentru monitorizarea sistemului intervine o mică problemă, deoarece tasta F6 este alocată de Byobu pentru detașarea ferestrelor, iar htop are tasta alocată pentru alegerea criteriului de afișare a consumului: după procesor, memorie, etc. Problema se poate rezolva prin modificarea fișierului ce setează alocarea tastelor, respectiv /usr/share/byobu/keybindings/f-keys, comentând sau ștergând linia cu F6. Astfel F6 va rămâne cu scopul său din htop.

Exact ca și screen putem seta ca la pornirea byobu să pornească automat unele aplicații, fiecare într-o fereastră proprie, prin modificarea fișierului ~/.byobu/windows și adăugarea aplicațiilor dorite, în forma:
screen -t shell shell
screen -t moc mocp
screen -t htop htop
screen -t centerim centerim
screen -t rtorrent rtorrent
screen -t mutt mutt

Dacă aveți deja făcute aceste setări în fișierul de configurare al screen (~/.screenrc), aceste setări vor fi recunoscute și aplicate de byobu automat, deci riscați să aveți câte două instanțe ale aceleeași aplicații rulând în ferestre diferite.

Cea mai interesantă deosebire față de screen o prezintă bara afișată în partea de jos a ferestrei, unde sunt afișate tot felul de informații utile, precum ferestrele cu aplicații deschise, ora exactă, memorie, procesor, IP, user, hostname, distribuție folosită (plus logo-ul acesteia) și multe altele. Pentru modificări: F9- Toggle status notifications- cu tastele săgeți sus-jos navigăm, cu Space bifăm- debifăm, cu săgeată dreapta trecem la Apply sau Cancel, Enter.

Este bine de remarcat că byobu sau screen pot fi folosite cu succes și-n interfața grafică pentru comoditate: pornim screen sau byobu și avem automat în konsole toate aplicațiile setate în .screenrc sau .byobu/windows.

Byobu cu mocp, htop, centerim, rtorrent și două shell-uri:

Byobu cu calendar, lynx-mrb,moc,si asciiquarium-screensaver ( F9 pentru meniu)

7.13 Screensaver în tty

V-ar interesa să aveți și screensaver în tty/ screen??? Simplu. În primul rând trebuie instalate aplicațiile ce vor face acest lucru posibil, cmatrix, caca-utils și asciiquarium:

#urpmi cmatrix caca-utils asciiquarium

. Apoi în .screenrc fie modificăm unele linii, fie adăugăm liniile următoare, o variantă la alegere:

Pentru screensaver cu acvariu:

blankerprg asciiquarium
idle 60 blanker  

Pentru screensaver cu matrice:

blankerprg cmatrix -ab -u2
idle 60 blanker 

Pentru screensaver cu foc:

blankerprg cacafire                        
idle 60 blanker

Putem înlocui valoarea 60 (este vorba de secunde, 60= 1 minut) cu una personală, în funcție de timpul după care dorim să intre screensaverul în acțiune. La cmatrix putem schimba culoarea textului în roșu (red), galben (yellow), bleu (cyan), etc., folosind opțiunea -C (de exemplu adăugând liniei -C red textul va fi de culoare roșie), sau schimba fontul în font îngroșat, bold cu opțiunea -B.

Screensaver acvariu ascii:

Screensaver cmatrix:

Screensaver cacafire:

Sursa: http://kmandla.wordpress.com/2009/05/24/howto-patch-and-set-up-screen-vs/ .

7.14 DVTM

O alternativă interesantă la screen este dvtm (dynamic virtual terminal manager), un alt administrator de ferestre în terminal/ tty. Ca și screen, dvtm rulează în fbterm, deci vom avea diacriticele afișate corect, vom avea o imagine de fundal, putem folosi mouse-ul, putem crea ferestre în același terminal, etc.

Instalare:

#urpmi dvtm

Pornire: dvtm.

Combinația care pune dvtm în modul ascultare comenzi este Ctrl+g. După această combinație, orice comandă nu se aplică shell-ului curent, terminalului, ci dvtm, similar combinației de taste Ctrl+a din screen. Combinații utile:

- Ctrl+g c = creare fereastră nouă;

- Ctrl+g x = închidere fereastră;

- Ctrl+g l(L mic)= mărește cu 5% suprafața ferestrei curente;

- Ctrl+g h = micșorează cu 5% suprafața ferestrei curente;

- Ctrl+g m = maximizează fereastra curentă (full screen);

- Ctrl+g t = schimbă aranjamentul ferestrelor tip vertical (aspect implicit);

- Ctrl+g b = schimbă aranjamentul ferestrelor tip horizontal;

- Ctrl+g g = schimbă aranjamentul ferestrelor tip grilă;

- Ctrl+g N = schimbă fereastra curentă cu fereastra numărul N (1, 2, 3, 4, etc.), după cum veți observa fiecare fereastră are în partea de sus un număr ce o individualizează;

- Ctrl+g q = închidere dvtm.

După cum vă spuneam putem folosi și mouse-ul pentru lucrul în dvtm: - clic stânga = selectăm fereastra;

- ținând apăsată tasta Shift și butonul 1 (stânga) marcăm textul pentru copiere;

- clic dreapta = lipim textul.

În imaginea precedentă în tty rulează fbterm+fbv+dvtm, deci avem wallpaper, diacritice redate corect, iar în dvtm avem pornite următoarele aplicații: în partea stângă mc, in partea dreaptă de sus în jos centerim, htop, și shellul unde este luat acest screenshot.


7.15 Vizualizare imagini în tty

Putem vedea în terminal imagini jpeg, png, gif, bmp, etc., folosindu-ne de aplicația fbi (#urpmi fbida pentru instalare- pachetul fbida conține atât fbi cât și fbgs). Comanda necesară este: fbi opțiuni fișier Presupunând că vrem să vedem o imagine numită 1.png intr-un terminal tty, ne logăm și dăm comanda

fbi 1.png

Amănunte privind opțiunile vă dau comenzile fbi –help și/sau man fbi. Deoarece fbi nu rulează în fbterm, vom folosi fbv, aceeași aplicație care pune și wallpaper în fbterm. Pentru a vedea o imagine, dăm comanda fbv cale_către_imagine. Atât fbi cât și fbv pot expune o serie întreagă de imagini, una după alta. Presupunând că avem fotografii în directorul ~/Pictures, putem vedea aceste fotografii dând comanda:

fbv ~/Pictures/*.jpg

. Va apărea prima fotografie din director, iar prin apăsarea tastei Space putem schimba la următoarea imagine. Pentru închiderea fbv folosim tasta q.

Alternativă: fim, zgv.

7.16 Vizualizare fișiere PDF în tty

Cu aplicația fbgs putem citi documente în format PDF în terminal. Comanda necesară:

fbgs fișier.pdf

deci pentru a citi ¨ghidmandriva2010.pdf¨ dăm comanda

fbgs -c -a ghidmandriva2010.pdf

unde opțiunea -c se referă la afișarea documentului în culori, iar -a inseamnă autozoom/autodimensionare.
Toate opțiunile fbi sunt valabile și pentru fbgs. Cu +/- mărim/ micșorăm dimensiunea paginii, cu săgețile sus/jos derulăm pagina curentă, Page Up/ Page Down derulează paginile documentului pdf, apăsând tasta q închidem.
Alternative: pdftotext (pdftotext ghid* ghid.txt ⇒ transformă pdf în fișier text pe care îl putem citi cu mc, vim), pdftohtml (transformă pdf în html, pe care îl putem citi cu lynx sau elinks).

7.17 Screenshot în tty

Dacă sunteți mulțumiți de ceea ce ați făcut până acum este posibil să doriți să ¨imortalizați¨ momentele respective. O puteți face folosind fbgrab (#urmpi fbgrab pentru instalare), aplicație cu care putem lua capturi de ecran în terminal. Comanda:

fbgrab screen.jpg

unde înlocuiți numele screen cu cel dorit.
Alternative: fbshot, fbdump.

Pentru folosirea fără probleme a utilitarelor fbi, fbgs, fbgrab și fbterm (vedeți punctul 9) este necesară adăugarea userului nostru în grupul video (#gpasswd -a user video), precum și setarea permisiunilor pentru framebuffer/ memoria de ecran (#chmod a+rw /dev/fb0).

7.18 Trimitere e-mail din consolă

7.18.1

O modalitate simplă prin care se pot trimite e-mailuri din consolă este folosirea clientului de poștă electronică mail. Comanda va fi mail dând ca parametru adresa de e-mail la care dorim să trimitem mesajul respectiv:

mail id@provider.com evident înlocuim id@provider.com cu adresa dorită). Ni se va cere să punem subiectul mesajului și mesajul. Când terminăm de scris mesajul apăsăm Enter, în linia de sub mesaj punem un punct ¨.¨ și apăsăm Enter, semn că am terminat și e-mailul poate fi expediat.

[dan@stressat ~]$ mail id@provider.com
Subject: Probă mail
Așa trimitem mail din consolă.
.
EOT
[dan@stressat ~]$

Este posibil ca portul 25 să fie blocat de ISP, caz în care nu veti putea folosi mail din linia de comandă. Deci trebuie să luați legătura cu furnizorul de net pentru deblocarea portului. Pentru clientii RDS deblocarea portului 25 e simplă! Trebuie accesat http://www.rdslink.ro/admin/admin.php, pentru logare se folosesc datele contului Pppoe (user, parolă), şi trebuie completată o cerere Deblocare Smtp, apoi aşteptați 24 de ore.
Pentru cei ce au alt furnizor care blochează portul 25 cred că o posibilă soluție ar fi schimbarea portului 25 cu alt port neinteresant pentru providerul de net.
De asemeni putem trimite prin e-mail outputul unei comenzi, fișiere text, audio, video și orice altceva: cat file | mail id@provider.com Alternative: sendmail, mutt, alpine.

7.18.2 Alpine

Un client complet şi simplu de folosit pentru e-mail în linia de comandă este alpine. Alpine poate folosi şi alt port, nu neapărat 25, astfel încât nu suntem la ”mila” furnizorului de net pentru deblocarea portului 25. Se instalează cu #urpmi alpine, eventual din MCC- Install & Remove Software şi se porneşte în tty/ konsole cu comanda alpine. La prima utilizare a aplicaţiei vom fi întâmpinaţi de un mesaj de întâmpinare (ieşim din fereastra respectivă cu E, intrând astfel în fereastra cu meniul principal, foarte intuitiv), şi apoi este necesar să facem câteva setări. După cum veţi observa, chiar şi-n fereastra cu meniul principal, alpine are în partea de jos a ferestrei un oarecare fel de bară- meniu conţinând comenzile/ combinaţiile de taste folosite de alpine. Singura parte puţin mai dificilă poate fi considerată cea referitoare la configurarea alpine, dar urmând instrucţiunile următoare în câteva minute puteţi folosi alpine. Deci, pornim alpine în CLI, va fi afişat mesajul de mulţumire/ întâmpinare, ieşim din mesaj cu E (Shift+e), astfel intrăm în fereastra meniului principal, unde găsim opţiunile posibile. Cu S intrăm în meniul de setări, unde vom vedea opţiunile privitoare la configurarea alpine. Apăsăm C şi completăm datele necesare. În continuare găsiţi un exemplu de urmat, tot ce trebuie modificat este punerea numelui corect, a contului de e-mail corect. Alternativ, aceste date pot fi completate direct în fişierul de configurare alpine: ~/.pine.rc.

personal-name=numele_real
user-domain=gmail.com
smtp-server=smtp.gmail.com:587/tls/user=nume_utilizator@gmail.com
inbox-path={imap.gmail.com:993/ssl/novalidate-cert/user=nume_utilizator@gmail.com}INBOX
incoming-archive-folders={imap.gmail.com:993/novalidate-cert/ssl/user=nume_utilizator@gmail.com}INBOX
default-fcc={imap.gmail.com:993/novalidate-cert/ssl/user=nume_utilizator@gmail.com}INBOX
default-saved-msg-folder={imap.gmail.com/ssl/novalidate-cert/user=nume_utilizator@gmail.com}[Gmail]/All
folder-collections={imap.gmail.com:993/ssl/user=nume_utilizator@gmail.com}[]
image-viewer=fbv


Odată terminată această fază a setărilor putem folosi alpine pentru trimis administrarea contului de e-mail, deci putem trimite, primi, şterge mailuri direct din linia de comandă. Atenţie: la pornirea alpine vi se va cere parola contului de mail, în acest mod este asigurată intimitatea personală şi siguranţa contului. Din meniul principal, putem alege ceea ce dorim să facem: C= creare/ trimitere mesaj, I= index, putem citi mesajele primite, A= adrese, putem crea o listă cu adresele de e-mail folosite frecvent, etc.

Creare/ trimitere mesaje

Meniu- tastăm C- completăm câmpurile necesare:
To: = aici scriem adresa de e-mail la care trimitem mesajul (dacă am adăugat în lista de adrese adresa respectivă putem trece doar numele adresantului, părăsind câmpul funcţia atocomplete va completa adresa…)
Attchmnt: = aici putem ataşa mesajului ataşamente text, imagini, etc. Combinaţia Ctrl+J va deschide în partea de jos a ferestrei un sub-meniu cu ajutorul căruia putem ataşa fişiere mesajului. Avenm la dispoziţie două variante: în câmpul File to atach putem trece calea către ataşament, sau cu Ctrl+T intrăm într-un browser unde putem naviga prin directoarele/ fişierele din /home/user, alegând fişierele de ataşat mesajului. Tastând S (Shift+s) fişierul va fi ataşat, noi urmând să-i atribuim un nume. Evident, se pot ataşa mai multe fişiere.
Subject: = trebuie trecut un nume de subiect
—– Message Text = aici putem compune mesajul dorit.

După scrierea mesajului, combinaţia de taste Ctrl+X expediază acest mesaj, vom fi întrebaţi dacă trimitem, dăm Y, eventual N dacă ceva nu e-n regulă, am greşit ceva, ne-am răzgândit.

Citire/ primire mesaje

La primirea unui nou mesaj veţi primi în partea de jos a ferestrei un mesaj de anunţ de genul: [New mail! From nume_expeditor subject: subiect_mail]. Apăsând Enter veţi intra în directorul cu mesaje, INBOX fiind deja selectat, un alt Enter ne duce în INBOX, cu săgeţile sus- jos navigăm intre mesajele conţinute, selectăm ultimul mesaj, dăm iar Enter şi citim mesajul primit. Cu < mergem iar în INBOX şi apoi Folder List, Meniu. Alpine chiar este foarte uşor de folosit, chiar şi de către începători, este suficient să citim banda cu combinaţii de taste din partea de jos aferestrei pentru a şti cum anume putem face ceva, asemănător cu mc, htop şi alte aplicaţii care afişează aşa ceva direct în fereastră, nici măcar nu e nevoie să le memorăm!

Listă adrese

Din meniu apăsăm A (Shift+a), astfel intrăm în meniul de configurare listă adrese folosite frecvent. Ca şi până acum veţi descoperi că totul este simplu şi intuitiv. Apăsând @ vom primi o fereastră unde putem trece datele necesare: nume real, nickname, adresă, iar cu Ctrl+x salvăm şi ieşim, după ce confirmăm cu Y.

Meniu principal alpine:






Setări cont:






Compunere/ expediere mesaj:












7.19 Playere multimedia in consola

7.19.1 MOC

Music on console (MOC) este un player în linie de comandă ușor de folosit și intuitiv. Se găsește în mediile Mandriva, deci îl putem instala cu

#urpmi moc

și apoi îl putem porni în konsole sau în una din cele 6 terminale virtuale/ tty deschise cu Ctrl+Alt+F1 până la F6 cu comanda

mocp

Navigăm printre directoare cu săgețile sus-jos și intrăm în directorul cu melodii cu tasta Enter. Tot cu săgețile sus-jos navigăm în director printre melodii, Enter pornește redarea melodiei alese. Taste și combinații utile:

mocp               =pornire moc;
p sau Space    =pauză/repornire;
q                      =trimite playerul în background(fundal) lăsând consola liberă pentru comenzi;
o                      =redă URL (de exemplu un post de radio online);
Q                     =închide moc;
s                      =stop/oprește redarea;
l (L mic)           =schimbă aspectul pe una sau două coloane (layout);
Shift+t             =schimbare temă;
<                     =micșorare volum;
>                     =creștere volum;
l                      =schimbă între fereastră cu unu sau două panouri;
mocp -p          =pornește redarea unui playlist.

Moc consumă puține resurse, redă formatele populare fără probleme, odată selectat un fișier audio continuă redarea cu celelalte fișiere din director fără pauze enervante între melodii și memorează locația de unde ați ascultat muzică, deci la repornire intră automat în acel director. Pentru a avea default o altă temă decât cea implicită trebuie copiat fișierul /usr/share/doc/moc/config.example în /home/user/.moc schimbându-i numele în config :

cp /usr/share/doc/moc/config.example  ~/.moc/config

Decomentăm linia următoare(ștergem #):

# XTermTheme	= transparent-background

și înlocuim tema transparent-background sau example sau ce temă e trecută cu tema dorită. Pentru a avea aspectul din imagini și nu cel pe două coloane implicit decomentăm linia

# Layout1 = "playlist:50%,50%,50%,50%"

După cum veți putea observa în acel fișier puteți face și alte setări, după preferințe.

Altă modalitate de a rula moc cu o temă anume, utilă mai ales în tty, unde moc pornește tot cu tema implicită este să folosim la comandă opțiunea -T, setând tema. De exemplu pentru ca moc să pornească cu tema moca_theme, temă pe care o avem în directorul /usr/share/moc/themes, copiem această temă în directorul local de setări moc ca si utilizator :

cp /usr/share/moc/themes/moca_theme ~/.moc

iar comanda va fi:

mocp -T ~/.moc/moca_theme

eventual setăm un alias în .bashrc:

alias moc='mocp -T ~/.moc/moca_theme'

În același fel putem proceda și cu celelalte teme disponibile.

Pentru ascultarea unui post de radio online, porniți moc cu comanda moc stream_radio, de exemplu pentru a asculta postul de radio europafm

mocp http://89.238.252.130:7000

sau

mocp http://stream.profm.ro:8012/profm.mp3

pentru profm. Moc va reține adresa ultimului post de radio, exact ca și cu playlistul. Dacă doriți să schimbați între lista cu melodii de pe calculator și postul radio sau invers, apăsați Space sau p (deci puneți pauză), schimbați între canal radio și playlist (sau invers) cu tasta Tab și apăsați Enter, eventual în playlist navigați mai întâi la melodia preferată. După cum observați în imaginea următoare, dacă ați setat aspectul moc după metoda prezentată, aveți un singur panou în fereastră, iar canalul radio va apărea într-un panou mai mic în partea dreapta-jos. Chiar dacă porniți moc cu comanda mocp, deci cu playlistul implicit, punând pauză și apăsând Tab va apărea panoul cu postul radio, apăsând Enter porniți redarea.

Alternative: mp3blaster, mpg123.

Sursă și informații suplimentare: http://polishlinux.org/apps/cli/moc-audio-player-advanced-tricks/.

7.19.2 Posturi radio online

La fel de simplu este să ascultăm un post de radio preferat în consolă folosind playere ca mplayer, cvlc (varianta în linie de comandă a vlc) sau moc. Mai întâi trebuie să căutăm pe net streamuri ale posturilor ce emit online. Descărcăm un stream, în funcție de setările browser-ului folosit îl găsim în directorul Downloads, Desktop sau /home/user sub numele de listen.pls, live.m3u sau altceva asemănător. Pentru a evita comenzile lungi (gen: cvlc /home/user/Downloads/live.m3u ), e preferabil să mutăm fișierul respectiv în directorul /home/user. Dăm într-o consolă una din comenzile următoare în funcție de playerul preferat și de numele fișierului: cvlc live.m3u, cvlc listen.pls, mplayer -playlist live.m3u sau mplayer -playlist listen.pls. În eventualitatea că vi se pare complicată sintaxa comenzii, greu de memorat sau sunteți comozi există soluții. Una din variante este setarea unui alias (o altă denumire a unei comenzi, o prescurtare), cealaltă este crearea unui script bash (un fișier text, care făcut executabil și rulat în consolă, execută comanda dorită). Varianta aliasurilor este preferabilă, cea a scripturilor bash este dată mai mult cu titlu informativ, ca o alternativă posibilă.

Aliasurile se pun de obicei în fișierul dedicat .bash_aliases sau în .bashrc pentru comoditate. Asă că vom adăuga linia ce urmează în .bashrc:

alias mpp=”mplayer -playlist listen.pls”

și la rularea comenzii mpp în consolă shell-ul bash înțelege că de fapt comanda este mplayer -playlist listen.pls și se comportă ca atare:realizează conexiunea cu postul de radio… Pentru alt post setăm:

alias mpl=”mplayer -playlist live.m3u”

Numele pot diferi, important este să puteți memora aliasurile. În același mod facem și alte aliasuri! Scripturile bash sunt fișiere text care, simplist exprimat, conțin o comandă pe care dorim s-o executăm. Deci creăm un nou fișier text cu conținutul:

#!/bin/bash
mplayer -playlist listen.pls

Salvăm fișierul în directorul /home sub numele radio.sh, sau listen.sh, sau sub alt nume, îl facem executabil cu comanda:

#chmod +x radio.sh

și putem rula scriptul (și implicit comanda ce ne interesează pe noi) cu una din comenzile următoare date în consolă:

sh radio.sh

sau

./radio.sh

Eventual mai putem scurta comanda puțin cu ajutorul simbolului *, care poate înlocui orice simbol sau grup de simboluri (litere, cifre, simboluri non-alfanumerice). Comanda poate fi:

sh ra*

sau

./ra*

Streamuri radio online: http://www.romaniaradio.ro/Radio-Romania.html.

7.19.3 Videoclipuri sau filme în tty

Putem deschide fișiere video în formate diverse (.avi, .mpeg, .wma, mp4, etc.) în linia de comandă, fie că suntem în interfața grafică/în konsole, fie că suntem într-una din cele șase terminale în mod text deschise prin combinația Ctrl+Alt+F1, Ctrl+Alt+F2, până la Ctrl+Alt+F6 (pentru revenirea în interfața grafică folosim Alt+F8 sau Alt+F7), fie că ne-am logat direct în terminal, nu în GUI. Playerele folosite sunt mplayer și/sau cvlc. Pentru vizionarea unui fișier video comanda este: mplayer -playlist /calea_către_fișier, sau cvlc /calea_ către_fișier. Dacă fișierul se află în /home/user/Music/Videoclipuri comanda va fi :

mplayer -playlist /home/user/Music/Videoclipuri/fișierul_dorit

sau

cvlc  home/user/Music/Videoclipuri/fișierul_dorit

Pentru filme este bine, dificultățile apar dacă vrem să vizionăm mai multe fișiere video consecutiv, videoclipuri sau episoadele unui serial. Pentru a face așa ceva trebui să facem un playlist. Într-o consolă ne mutăm în directorul cu videoclipuri (cd /home/user/Music/Videoclipuri) și dăm comenzile următoare:

find -name *.avi > playlist.m3u sau locate *.avi > playlist.m3u
find -name *.mpg » playlist.m3u sau locate *.mpg » playlist.m3u
find -name *.wma » playlist.m3u sau locate *.wma » playlist.m3u
find -name *.asf » playlist.m3u sau locate *.asf » playlist.m3u

Astfel căutăm toate fișierele .avi, mpg, etc., și formăm o listă de redare numită playlist.m3u. Mutăm lista de redare în /home/user (cp /home/user/Music/Videoclipuri/playlist.m3u /home/user). Acum putem urmări videoclipurile consecutiv cu comanda: mplayer -playlist playlist.m3u (sau cvlc playlist.m3u). Putem seta direct din comandă dimensiunea ferestrei video, fie că vizionăm un fișier sau o listă de fișiere video:

mplayer -zoom -x 640 -y 480 video.avi

sau

mplayer  -zoom -x 640 -y 480 -playlist playlist.m3u

(cifrele reprezintă dimensiunile ferestrei și pot fi modificate după plac). Și în acest caz putem crea aliasuri sau scripturi bash… Și încă ceva: chiar în tty mplayer ascultă de comenzile clasice din tastatură: p= pauză, cu săgețile derulăm înainte-înapoi, etc.

Pentru vizionat fișiere video de pe youtube folosim cvlc: - Instalare vlc:

#urpmi vlc vlc-plugins

-Vizionare: cvlc stream_video ( de exemplu cvlc http://www.youtube.com/watch?v=uelHwf8o7_U va face să ruleze în terminal Eminem-Love The Way You Lie).

7.19.4 TV

Doriți ca uneori să urmăriți un post TV? Mplayer ne ajută și cu acest aspect. Dați în consolă/ tty comanda:

mplayer adresă_tv

,și gata.

Câteva exemple:

mplayer -zoom -x 700 -y 400 mms://86.55.8.134/ant2 

pentru vizionat postul Antena2

mplayer -zoom -x 700 -y 400 http://82.208.151.248:8989/

pentru canalul Iași TV

mplayer -zoom -x 700 -y 400 mms://ns.alfanet.ro/AlfaOmegaMovies/ 

pentru canalul Alfa Omega Movies.

Pentru ecran complet eliminați din comandă opțiunea de dimensionare: -zoom -x 700 -y 400.

7.20 Script

Merită menționată o aplicație foarte utilă atunci când folosim tty: script. Script face o copie a unei sesiuni în tty/ konsole/ terminal, salvată implicit în fișierul “typescript” din directorul /home/user. Prin tastarea comenzii script, aplicația va înregistra tot ce se întâmplă în acea sesiune/ acel tty. Dacă doriți ca sesiunea să fie salvată în alt fișier comanda va fi

script fișier_dorit.txt

. Pentru alte opțiuni și amănunte vedeți man script. Să presupunem că nu puteți viziona fișiere video (filme sau videoclipuri) în tty, în loc de imagine aveți doar niște pete, doar partea audio este în redată normal. Mesajele de eroare apar și dispar prea repede pentru a le putea citi. Ce faceți, cum știți ce trebuie făcut? Soluția: dați întâi comanda script, și astfel, tot ce faceți în consolă/ tty va fi înregistrat, astfel încât să puteți citi mesajele de eroare și să găsiți rezolvarea problemei.

7.21 Lynx- browser web CLI

Se poate naviga pe net foarte simplu și comod din linia de comanda, consolă sau tty. Învățarea utilizării unui browser text gen lynx, elinks sau altul de acest fel poate fi utilă în cazul în care avem probleme cu interfața grafică și căutăm ajutor sau în cazul instalării unei distribuții cu installer in mod text (Arch, Slackware, etc.), caz în care în alt tty putem naviga cu lynx și căuta documentație necesară dacă ne-am înpotmolit. După instalarea lynx aplicația se pornește cu comanda lynx, sau intrăm direct pe google cu lynx google.com, sau chiar direct pe situl/ forumul dorit: lynx mandrivausers.ro de exemplu. Pentru a evita unele întrebări iritante e bine să dăm opțiunea -accept_all_cookies după comandă. Deci comanda va fi lynx -accept_all_cookies mandrivausers.ro. Pentru a nu ne complica inutil de fiecare dată cu tastarea e bine să punem în fișierul nostru .bashrc un alias: alias lynx='lynx -accept_all_cookies', astfel încât comanda lynx va fi percepută ca fiind lynx -accept_all_cookies . Utilizarea lynx este simplă:

- lynx= pornim lynx
- lynx mandrivausers.ro = pornire lynx direct în adresa dată
- cu săgețile sus-jos navigăm între linkuri, în pagină
- cu tasta Enter (sau săgeată dreapta)intrăm în link
- săgeată stânga (sau b sau Page Up)= mergem inapoi o pagină, la cea precedentă
- Space (sau + sau Page Down)= mergem la următoarea pagină din link
- o= intrăm în meniul de opțiuni
- r= ieșim din meniul de opțiuni
- g= apare bara de adrese unde putem tasta o nouă adresă
- Backspace= vezi istoricul (History), cu săgețile sus-jos navigăm, cu Enter intrăm
- a= facem semn de carte (bookmarks)
- v= accesăm semnele de carte existente
- m= mergem la pagina de pornire
- /= căutare în pagina curentă
- Q sau Ctrl+C sau Ctrl+D= ieșire din lynx fără confirmare
- q= ieșire din lynx după confirmare. 

Alternative: elinks, w3m, links2

Pagina de pornire în Google:

Forumul mandrivausers.ro:

Sursă și informații suplimentare: http://homes.chass.utoronto.ca/~purslow/lhfb.html .

7.22 Snownews

Ok, am rezolvat cu administrarea conturilor de e-mail, e bine, dar nu suficient… Fiecare din noi urmărim unul sau mai multe forumuri Linux, indiferent că suntem începători sau avansați, că avem nevoie de asistență sau dorim să împărțim cunoștințele. Dorim să urmărim ultimele mesaje, putem folosi unul din browserele din interfață grafică (Mozilla Firefox, Chrome, Opera, etc), putem folosi un browser CLI (elinks, lynx, w3m, etc), sau, pur și simplu putem să ne folosim ”mușchii” cu un RSS reader CLI, gen Snownews, Newsbeuter, etc. Hai să vedem cum putem folosi una din aceste aplicații CLI: Snownews. Instalăm snownews (urpmi snownews), pornim aplicația din consolă/ tty (snownews) și adăugăm adresele de unde dorim să descărcăm fluxurile RSS. De exemplu pentru forumul mandrivausers.ro avem la dispoziție două fluxuri RSS: http://www.mandrivausers.ro/crss și http://www.mandrivausers.ro/tracker/rss . Diferența dintre ele? Veți descoperi singuri asta! Deci rulăm comanda ”snownews”, va porni aplicația și urmează să adăugăm adresele dorite. După cum veți observa, fereastra snownews (similar cu alte aplicații CLI) oferă informații privind utilizarea, puteți vedea în bara de jos mesajul ”Press 'h' for help window.”, deci este suficient să apăsăm ”h” pentru a primi un meniu cu opțiunile utile.


Pentru adăugarea unei adrese apăsăm ”a” și apoi punem adresa, pentru ștergere apăsăm D și apoi y, mereu aplicația ne va da indicații care trebuie doar urmate. Să presupunem că vrem să adăugăm cele doua fluxuri RSS mandrivausers (veți avea ocazia astfel să alegeți unul), evident după pornirea snownews apăsăm a și introducem adresa corectă, deci www.mandrivausers.ro/crss , apăsăm Enter și avem adresa necesară. Repetăm procedura și cu www.mandrivausers.ro/tracker/rss , și dacă dorim și alte forumuri în listă procedăm în consecință, iar fereastra snownews va arăta cam așa:


Cu clic pe Enter putem vedea mesajele necitite de pe forumul respectiv…


Cu încă o apăsare pe Enter citim mesajul respectiv:



Se poate observa diferența de culoare din screenshot, mesajele necitite au culoarea purple/ magenta, cele citite culoarea alb. Putem modifica aceste culori în fișierul de configurare: ~/.snownews.colors, fișier unde putem seta culorile după dorință.



7.23 BashBurn

BashBurn este o aplicație pentru inscripționat cd-uri/ dvd-uri în linia de comandă, dar care dispune de un gen de interfață intuitivă, niște liste drop-down din care noi alegem opțiunile/ sarcina dorită. Instalăm aplicația cu comanda:

#urpmi bashburn

acceptăm eventualele dependențe propuse de sistem, apoi pornim aplicația în konsole/ tty dând comanda : bashburn. La prima rulare trebuie făcute câteva mici setări, apoi putem alege una din variantele disponibile: inscripționare cd audio, dvd, creare imagine ISO după cd/dvd sau din fișier, montare imagine ISO, etc. Este bine de reținut că bashburn folosește un director pentru imaginea, fișierele pe care dorim să le copiem pe disc, /tmp/burn implicit, dar dacă dorim putem alege altă locație. Să presupunem că dorim să inscriptionăm pe dvd imaginea ISO a distribuției Mandriva, imaginea respectivă trebuie copiată în directorul folosit de bashburn sau eventual trebuie făcut un link simbolic (o legătură între fișierul real și directorul pomenit).

Putem face link sau copia imaginea ISO în interfața grafică sau în CLI : 1- copiere: cp cale_spre_imagine ceva de genul

cp ~/Downloads/imagine.iso ~/tmp/burn

în cazul că imaginea se află în directorul /home/user/Downloads;
2- creere link: ln -s cale_spre_imagine, respectiv:

ln -s ~/Downloads/imagine.iso ~/tmp/burn

Dar ni se oferă opțiunea de a copia imaginea în directorul de unde își ia bashburn datele și de către aplicație.
Setări/ Configure BashBurn. În terminal dăm comanda bashburn și va apărea următoarea listă drop-down, din care putem selecta acțiunea dorită. La prima utilizare trebuie să configurăm aplicația, să setăm directorul sursă, viteza de scriere, etc., așa că apăsăm tasta 5 apoi tasta Enter.
Imagine 1- Meniul principal:

În a doua fereastră apărută luăm la rând fiecare opțiune, și apăsând 0,1, 2, etc., în funcție de numărul din fața opțiunii, urmat de apăsarea tastei Enter putem modifica setările. După cum se vede bashburn este configurat pe sistemul meu, ceva asemănător trebuie să setați și voi. În a treia imagine puteți observa că am tastat /dev/cdrom conform cu ceea ce îmi apare afișat de către sistem. În mod similar trebuie procedat cu fiecare opțiune în parte, veți observa că sunteți informați cu ceea ce trebuie scris. În cazul în care nu știți ce anume să faceți, apăsați Enter, lăsând astfel setările implicite ale bashburn. După terminarea modificării setărilor apăsăm 22+ Enter și ne reîntoarcem în meniul principal, de unde putem alege ce anume dorim să facem.

Imagine 2- Configure BashBurn:

Imagine 3- Setări cd-writter:

O alternativă foarte asemănătoare, derivată din bashburn, poate puțin mai ușor de folosit (pentru faptul că putem naviga în meniuri între opțiuni cu săgețile jus-jos, în loc să tastăm numărul opțiunii dorite) este mybashburn, aplicație aflată de asemenea în mediile Mandriva, MRB mai precis.

7.24 ffmpeg

Pentru captură video, conversie audio/ video, extragere imagini dintr-un fișier video, înlăturare stream audio sau video dintr-un video, precum și alte operații cu fișiere audio/ video vom folosi ffmpeg. Captură video:

ffmpeg -f x11grab -s 1280x960  -r 30 -b 6500 -bt 712k -sameq -i :0.0 ~/captură.avi

unde:

-f x11grab= sursa, desktopul
-s 1280x960= rezoluția
-r 30= frame rate (implicit are valoarea 25)
-b 6500= bitrate în kb
-bt 712k= toleranță la bitrate
-sameq= aceiași calitate, fără compresie
-i :0.0= sursa; se poate seta o deplasare a dreptunghiului virtual înregistrat față de colțul stânga sus 
(-i :0.0+50,60 va deplasa imaginea cu 50 de pixeli pe orizontală și 60 pixeli pe verticală)
~/captură.avi= destinația și numele fișierului video rezultat (.avi, .mpeg, .ogv, .mp4, .3gp, .flv sau ce alt format dorim).


Pentru captură audio/ video, putem alege dacă sonorul va proveni de la microfon sau va fi sonorul intern (de exemplu melodii redate de un player), deci va trebui să alegem sursa audio. O modalitate foarte comodă este prin instalarea pavucontrol/ PulseAudio Volum Control (#urpmi pavucontrol), aplicație pe care o găsim apoi în meniu- Sound & Video- PulseAudio Volum Control, sau alternativ o pornim cu Alt+ F2 ⇒ scriem pavucontrol ⇒ Enter. Să exemplificăm puțin: stabilim o comandă care va înregistra ecranul și sonorul intern:

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x960 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 captură.avi

, dar constatăm că nu s-a inregistrat sonor. Deschidem pavucontrol în timpul rulării acestei comenzi în consolă, mergem în tabul Recording și alegem audio intern (în cazul meu Monitor of CM8738 Analog Surround 5.1). Imediat se va înregistra și partea audio. Ar fi bine ca după înregistrare să resetăm pavucontrol dacă dorim ca data viitoare să înregistrăm partea audio de la microfon… Aceeași comanda poate fi folosită și pentru sonor înregistrat de la microfon, cu deosebirea că vom selecta din pavucontrol microfonul, nu audio intern.

Conversie audio/ video:

 ffmpeg -i video.avi -sameq video.mpeg
 ffmpeg -i video.mpg -sameq video.3gp
 ffmpeg -i melodie.wav -sameq melodie.mp3



Extragere stream audio din fișier video:

ffmpeg -i video.avi -sameq melodie.mp3



Extragere imagini din video:

ffmpeg -i sursă.avi -r 1 -f image2 image-%3d.jpeg

unde:

-r= frame rate
-f= formatul dorit
-s= size/ dimensiunea imaginii, implicit e cea din video, dar o putem modifica
-image-%3d.jpeg= setăm ffmprg să denumească imaginile numeric, în ordine crescătoare, cu 3 cifre, de forma:
   image001.jpeg, image002.jpeg (sau putem alege mai multe sau mai puține cifre: image-%2d.jpeg, 
   image-%4d.jpeg)



Conversie fișier video (orice format) în .3gp pentru telefoane:

ffmpeg -i input.avi -s qcif -vcodec h263 -r 20 -b 180k -acodec libfaac -ab 64k -ac 2 -ar 22050 output.3gp



7.25 h264enc

O unealtă foarte utilă pentru conversia fișierelor video o reprezintă h264enc. Folosind h264enc putem transforma un Dvd sau un fișier video în format high-quality H.264, atât pentru vizionarea acestora la un Pc, cât și pentru alte platforme: Stand-alone HW Players, Android, Sony PSP, Microsoft XBOX, Apple (iPod, iPhone, Tv), Blu-ray. Instalare:

#urpmi h264enc

Sintaxa comenzii este simplă:

h264enc -passmode -p preset

Pentru detalii și informații amănunțite vedeți man h264enc și/ sau h264enc -help, dar un exemplu de comandă este următorul:

h264enc -1p -p hq

iar apoi selectăm fișierul video dorit: fișier, director, vcd sau dvd, în funcție de tipul și locația acestuia, se alege un nume pentru fișierul rezultat (în mod contrar numele acestuia va fi H264-9581), și răspundem la întrebările puse de aplicație în legătură cu detaliile conversiei. În eventualitatea că nu știți sau nu sunteți siguri de opțiunile corecte, apăsați Enter, astfel fiind folosite opțiunile, parametrii standard, impliciți.

7.26 Jocuri

Dacă lectura v-a obosit, cu siguranță nu ar strica să vă relaxați puțin! Jucând poate un joc? De ce nu, după cum cred că deja ați auzit, orice e posibil în terminal…
1- Bsd-games: Pentru început trebuie instalate câteva jocuri, deci

#urpmi bsd-games

va aduce în tty-ul nostru câteva jocuri recreative (pornesc în terminal tastând numele jocului dorit, de exemplu backgammon, un joc de table). Iată lista completă a jocurilor cuprinse în pachetul bsd-games: adventure, arithmetic, atc, backgammon, battlestar,bcd, caesar, canfield, cfscores,cribbage,gofish,gomoku,hunt, mille, mpoly, morse, number, phantasia, pig, pom, ppt, primes,quiz, rain, random,robots, rot13, sail, snake, snscore, teachgammon,bsd-fbg, trek, worm, worms și wump.

7.26.1 - Backgammon

7.26.2 - Sjeng-free

, joc de șah: se instalează cu

#urpmi sjeng-free

se pornește cu comanda sjeng.

Sjeng

7.27 CENTERIM

Sper că mică noastră prezentare v-a plăcut, chiar impresionat. Poate doriți să împărtășiți prietenilor descoperirile? Printr-un client de messenger, eventual într-un canal IRC? Ei bine, nu este nevoie să părăsiți linia de comandă pentru interfața grafică… Bineînțeles că există asemenea aplicații și pentru terminal. Centerim este un client de IM în mod text, suportă următoarele protocoale: CQ, AIM, Gadu-Gadu, Jabber, MSN , Yahoo si IRC.
Se instalează cu comanda:

#urpmi centerim

apoi se pornește cu comanda centerim dată în konsole sau tty. La prima utilizare va fi nevoie să faceți câteva setări în meniul apărut. Este nevoie să setați conturile pentru protocoalele folosite, de exemplu pentru Yahoo Messenger trebuie puse ID-ul și parola. Dacă aveți cont pe Yahoo Messenger lista cu prieteni va apărea în panoul din stânga ferestrei, pentru a discuta cu un prieten dați clic pe numele din listă și în panoul din dreapta ferestrei veți trimite/ primi mesaje. La fel de bine merge transferul de fișiere. Pentru IRC trebuie ales un nick/ nume (parola este opțională) și un server (precum irc.frenode.net să zicem). Pentru a vă conecta la un canal IRC, după ce ați configurat serverul cu combinația de taste Ctrl+b (combinație care schimbă între contactele și canalele cu care ați întrat în legatură) schimbați la Nickserv și tastați /join #nume_canal, de pildă /join #mandrivaro pentru a intra pe canalul IRC al comunității mandrivausers.ro. Pentru părăsirea unui canal sau închiderea unei convorbiri apăsați Esc- Esc (deci apăsați de două ori tasta Escape), pentru navigarea între canale, conexiuni folosiți combinația de taste Ctrl+b. Pentru a închide Centerim apăsați tasta q după închiderea conexiunilor sau după ce navigați cu Ctrl+b până când panoul din dreapta ferestrei este gol. În bara de jos a ferestrei aveți date comenzile specifice ferestrei în care vă aflați. Pentru a trimite mesajul scris apăsați Ctrl+x sau Enter (pentru Enter trebuie setat în meniuri).

Centerim- cont Yahoo:

Centerim- cont IRC- #mandrivaro:

7.28 RTORRENT

Rtorrent- downloadare torrente în linia de comandă.
Pentru a putea descărca de pe net torrente în consolă/ tty putem folosi unele aplicații precum rtorrent.
Începem prin instalarea rtorrent (#urpmi rtorrent) și configurarea fișierelor/ directoarelor necesare funcționării rtorrent, așa că deschidem o consolă și logați ca user în directorul /home/user (cel implicit la deschiderea consolei) dăm comenzile următoare:
1- creăm o locație pentru fișierele torrent descărcate (cele de forma nume.torrent): mkdir rDownloads
2- creăm locația unde rtorrent va salva sesiunile: mkdir session
3- creăm locația unde vom descărca fișierele nume.torrent de pe net, astfel încât rtorrent să le descarce automat: mkdir watch. Deci pentru ușurință în folosirea rtorrent, când descărcăm de pe net un torrent, îl salvăm în directorul watch din /home/user. REȚINEȚI: înlocuiți peste tot în fișierul .rtorrent.rc /home/stressat/… cu /home/nume_corect_utilizator_propriu/…, adică /home/dan/watch sau /home/mihai/session, /home/alex/rDownloads…, etc.).
4- creăm fișierul de configurare al rtorrent: touch .rtorrent.rc, îl edităm cu kwrite .rtorrent.rc și copiem în acesta liniile următoare:

# This is an example resource file for rTorrent. Copy to\\
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to\\
# uncomment the options you wish to enable.\\
\\
# Maximum and minimum number of peers to connect to per torrent.\\
#min_peers = 40\\
#max_peers = 100\\
\\
# Same as above but for seeding completed torrents (-1 = same as downloading)\\
#min_peers_seed = 10\\
#max_peers_seed = 50\\

# Maximum number of simultanious uploads per torrent.\\
#max_uploads = 15\\
\\
# Global upload and download rate in KiB. "0" for unlimited.\\
#download_rate = 0\\
#upload_rate = 0\\
\\
# Default directory to save the downloaded torrents.\\
directory = /home/stressat/rDownloads\\
\\
# Default session directory. Make sure you don't run multiple instance\\
# of rtorrent using the same session directory. Perhaps using a\\
# relative path?\\
session = /home/stressat/session\\
\\
# Watch a directory for new torrents, and stop those that have been\\
# deleted.\\
schedule = watch_directory,5,5,load_start=/home/stressat/watch/*.torrent\\
#schedule = untied_directory,5,5,stop_untied=\\
\\
# Close torrents when diskspace is low.\\
#schedule = low_diskspace,5,60,close_low_diskspace=100M\\
\\
# Stop torrents when reaching upload ratio in percent,\\
# when also reaching total upload in bytes, or when\\
# reaching final upload ratio in percent.\\
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0\\
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"\\
\\
# The ip address reported to the tracker.\\
#ip = 127.0.0.1\\
#ip = rakshasa.no\\
\\
# The ip address the listening socket and outgoing connections is\\
# bound to.\\
#bind = 127.0.0.1\\
#bind = rakshasa.no\\
\\
# Port range to use for listening.\\
#port_range = 6890-6999\\
\\
# Start opening ports at a random position within the port range.\\
#port_random = no\\
\\
# Check hash for finished torrents. Might be usefull until the bug is\\
# fixed that causes lack of diskspace not to be properly reported.\\
#check_hash = no\\
\\
# Set whetever the client should try to connect to UDP trackers.\\
#use_udp_trackers = yes\\
\\
# Alternative calls to bind and ip that should handle dynamic ip's.\\
#schedule = ip_tick,0,1800,ip=rakshasa\\
#schedule = bind_tick,0,1800,bind=rakshasa\\
\\
# Encryption options, set to none (default) or any combination of the following:\\
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext\\
#\\
# The example value allows incoming encrypted connections, starts unencrypted\\
# outgoing connections but retries with encryption if they fail, preferring\\
# plaintext to RC4 encryption after the encrypted handshake\\
#\\
# encryption = allow_incoming,enable_retry,prefer_plaintext\\
\\
# Enable DHT support for trackerless torrents or when all trackers are down.\\
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),\\
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).\\
# The default is "off". For DHT to work, a session directory must be defined.\\
# \\
# dht = auto\\
\\
# UDP port to use for DHT.\\
# \\
# dht_port = 6881\\
\\
# Enable peer exchange (for torrents not marked private)\\
#\\
 peer_exchange = yes\\
\\
#\\
# Do not modify the following parameters unless you know what you're doing.\\
#\\
\\
# Hash read-ahead controls how many MB to request the kernel to read\\
# ahead. If the value is too low the disk may not be fully utilized,\\
# while if too high the kernel might not be able to keep the read\\
# pages in memory thus end up trashing.\\
#hash_read_ahead = 10\\
\\
# Interval between attempts to check the hash, in milliseconds.\\
#hash_interval = 100\\
\\
# Number of attempts to check the hash while using the mincore status,\\
# before forcing. Overworked systems might need lower values to get a\\
# decent hash checking rate.\\
#hash_max_tries = 10\\



5- Salvăm modificarea făcută fișierului .rtorrent.rc.
6- Acum să presupunem că ați făcut acești pași și ați descărcat un torrent. În acest exemplu vom descărca torrentul cu distribuția Mandriva 2010.2 (sau mai exact: /home/stressat/watch/mandriva-linux-one-2010.2-KDE4-europe3-cdrom-i586.torrent). Tot ce avem de făcut este să pornim în consolă rtorrent cu comanda: rtorrent, iar aplicația va începe automat descărcarea.

După cum bănuiți, rtorrent este mult mai complex de atât, aici s-a explicat cum poate fi folosit SIMPLU programul de către orice utilizator.

Informații detaliate: http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide .

Sursa: http://harbhag.wordpress.com/2010/06/30/tutorial-using-rtorrent-on-linux-like-a-pro/



7.29 Info sistem, info meteo, wtf, remind, etc.

7.29.1 Screenfetch


În momentul când, inevitabil, ajung să ceară pe forum ajutorul comunității, începătorii trebuie să furnizeze unele informații despre mașina lor: sistem, versiune, arhitectură, kernel, mediu grafic, etc. O mare parte din aceste informații se află foarte simplu cu ajutorul unui singur instrument, screenfetch. În plus screenfetch furnizează aceste detalii într-o formă frumoasă, afișând și sigla distribuției.

Instalare (ca root într-o consolă): #urpmi screenfetch-dev
Rulare (comandă dată ca utilizator obișnuit): sfetch
Pentru a face automat și captură de ecran: sfetch -s
Cu sfetch -s, aplicația va face un screenshot pe care îl va salva în directorul /home sub numele de screenfetch-dată-oră.png, de exemplu: screenfetch-2011-04-09_15-02-57.png, indicând astfel că a fost făcut la ora 15.02 în data de 9 aprilie 2011.

După afișarea informațiilor în consolă este suficientă copierea datelor sau chiar o captură de ecran postată pe forum ca cei ce oferă ”asistență” să cunoască detaliile necesare.

Rezultatul îl puteți vedea în captura de ecran următoare:


Din păcate screenfetch nu recunoaște managerul de ferestre Compiz, iar în Kde deocamdată, spre deosebire de Gnome, indiferent de WM nu afișează tema, icoanele sau fontul folosit, oricum informațiile esențiale sunt afișate…






7.29.2 Weather


Chiar și cei ce lucrează doar în linia de comandă, indiferent că au sau nu un mediu grafic instalat doresc uneori să afle prognoza meteo. Primul pas este instalarea pachetului weather-utils (#urpmi weather-utils), urmând ca apoi să aflăm codul localității noastre, eventual al celui mai apropiat oraș important. Acest cod din patru litere îl găsim la adresa: http://weather.noaa.gov/ , la categoria International Weather Conditions, unde selectăm prima dată țara (Select a country⇒ Go) și apoi orașul nostru (Select a location⇒ Go). În pagina cu orașul, în partea dreapta sus este codul orașului respectiv: LRIA pentru Iași, LRBS pentru București, LRTR= Timișoara, LRBC= Bacău, șamd. Astfel putem afla datele privind meteo și în browser. Dacă ați fost atenți la instalarea pachetului weather-utils, ați observat nota post-install, în care se spunea cum anume se poate afla acest cod mult mai simplu și rapid: dând comanda cat /usr/share/weather/stations.txt | grep nume_oraș_cu_majuscule, de exemplu cat /usr/share/weather/stations.txt | grep IASI (atenție fără diacritice!). Outputul comenzii va fi:

[stressat@stressat ~]$ cat /usr/share/weather/stations.txt | grep IASI
IASI LRIA 15090 47 10N 027 37E 104 X 7 RO


După cum puteți observa, după numele orașului apar câteva grupuri de litere și cifre: primul grup LRIA este codul dorit, apoi avem alte informații utile, latitudine, longitudine, și-n final codul țării.

După acești pași preliminari este suficient să deschidem o consolă și să tastăm comanda: weather –id=cod_oraș, deci pentru Iași comanda va fi weather –id=LRIA. Vom primi imediat informațiile meteo:
[stressat@stressat ~]$ weather –id=LRIA
Current conditions at Iasi, Romania (LRIA) 47-10N 027-38E 104M (LRIA)
Last updated Apr 14, 2011 - 11:00 AM EDT / 2011.04.14 1500 UTC
Temperature: 42 F (6 C)
Relative Humidity: 93%
Wind: from the NNW (330 degrees) at 9 MPH (8 KT)
Weather: rain
Sky conditions: overcast


Este util să facem un alias în .bashrc de genul: alias meteo='weather –id=LRIA' , astfel încât să ne fie mult mau ușor de reținut și tastat comanda.


7.29.3 WTF


Dacă ați instalat deja bsd-games pentru jocurile în consolă, atunci aveți ca bonus instalată o mică bijuterie: wtf. În caz contrar trebuie instalat bsd-games. Poate uneori a-ți întâlnit acronime, prescurtări ale unor expresii după inițialele cuvintelor, cel mai adesea în limba engleză, multe necunoscute. Puteți căuta pe internet un dicționar de expresii urbane, sau doar semnificația unui asemenea acronim, sau, mai simplu puteți căuta în consola proprie: wtf is ”acronim”.




7.29.4 Remind


O aplicație foarte utilă și interesantă este remind, aplicație care ne va reaminti date pe care altfel poate le-am uita. După instalarea remind (#urpmi remind), primul pas este crearea unei baze de date de unde remind să preia aniversările, sărbătorile legale sau religioase, evenimentele culturale, sportive, sociale, sau orice date pe care dorim să le cunoaștem, în acea zi sau chiar în avans. Vom crea în directorul nostru /home un fișier text, îl vom numi .reminders în acest exemplu, numele poate fi diferit. În acest fișier .reminders vom trece date importante pentru noi, aniversările celor dragi (nu doriți să uitați când este ziua prietenei sau a soției, nu???), sărbători și orice date ce au importanță pentru noi. Un exemplu de fișier .reminders:
REM 3 february MSG aniversare mama
REM 14 february MSG aniversare Alex
REM 22 july MSG aniversare Dan
REM 27 august MSG aniversare Lili
REM 1 september MSG aniversare Camelia
REM 1 december MSG Ziua Națională a României

După cum vedeți structura comenzii este simplă: REM + data dorită + MSG + ce eveniment avem în vedere. Pentru a ne fi reamintite aceste zile în avans comanda va fi: REM dată + număr zile în avans MSG eveniment %b, ceva de forma: REM 12 june +7 MSG aniversare Florin %b. Astfel, cu șapte zile înainte de această dată vom fi avertizați în consolă de acest eveniment.

La pornirea unei console vom fi atenționați de astfel de date, sau putem verifica cu comanda remind .reminders (aici puneți numele sub care salvați fișierul respectiv în loc de .reminders), sau putem chiar seta ca remind să fie afișat ca mesaj de întâmpinare în consolă. În acest ultim caz, dacă este ceva de amintit, remind o va face, altfel va apărea mesajul: ”No reminders”. Pentru acesta este suficientă adăugarea în .bashrc a unei linii ca următoarea: echo -e „${LIGHTRED}“; remind .reminders ; .



Remind poate face mult mai mult de atât, dar asta e bine s-o descoperiți personal, studiind sursa: http://www.linuxjournal.com/article/3529?page=0,0 .

7.29.5 Diverse


Alte câteva comenzi asemănătoare sunt cal (afișează calendarul lunii curente) , date (afișează data și ora curentă), clock (afișează ora/ trebuie folosită ca root sau precedată de sudo).

Deoarece din aceste trei utilitare date și clock sunt foarte simple vom prezenta puțin doar cal. Implicit cal afișează duminica prima zi a săptâmânii și calendarul lunii curente. Pentru a afișa ziua de luni ca prima zi a săptămânii, dăm parametrul -m (cal -m), pentru afișarea a trei luni (cea curentă plus cea trecută și următoarea dăm parametrul -3 (cal -3), pentru calendarul întregului an folosim -y (cal -y), iar pentru a vedea o lună anumită comanda va fi de forma: cal x y, unde x= numărul lunii (1, 2, 3, …, 12), iar y= anul. DE exemplu pentru luna martie a anului 2012 vom da comanda: cal 3 2012.

În screenshotul următor prima zi a săptămânii este luni datorită unui alias din .bashrc (**alias cal='cal -m'**).\\



7.30 MONITORIZARE PARAMETRI SISTEM

Pentru aflarea unor informații despre sistem, componente,utilizatori trebuie instalate: lm_sensors, smartmontools, sysstat, hwinfo, htop, lshw și eventual o aplicație cu interfață grafică pentru afișarea informațiilor: Gkrellm, Superkaramba, Conky.

7.30.1- id user

: informații despre utilizator, UID, GID, grupurile din care face parte:

[alex@stressat ~]$ id alex
uid=501(alex) gid=503(alex) grupuri=503(alex),0(root),4(adm),5(tty),10(wheel),81(audio  ),82(video),100(users)

7.30.2- finger user

: informații despre nume de logare, nume adevărat, director /home, shell folosit, cănd s-a logat ultima oară, dacă are mail:

[alex@stressat ~]$ finger alex
Login: alex                             Name: alex
Directory: /home/alex                   Shell: /bin/bash
On since Fri Dec 31 06:23 (EET) on :0 (messages off)
On since Fri Dec 31 06:24 (EET) on pts/1   13 minutes 5 seconds idle
     (messages off)
On since Fri Dec 31 06:24 (EET) on pts/2   2 hours 24 minutes idle
On since Fri Dec 31 08:47 (EET) on pts/3 (messages off)
Mail last read Wed Dec 29 12:21 2010 (EET)
No Plan.

7.30.3- uptime

: arată ora, durata de funcționare a mașinii (sesiunea curentă) și încărcarea sistemului:

[alex@stressat ~]$ uptime
 11:04:25 up  4:40,  4 users,  load average: 0.03, 0.10, 0.21

7.30.4- who -b

: arată data și ora ultimei porniri (bootări) a sistemului:

[alex@stressat ~]$ who -b
         demarare sistem 2010-12-31 06:24

7.30.5- uname

: informații despre mașină și sistem. Parametri ce pot fi folosiți după această comanda sunt: -a (așa aflăm toate informațiile: nume sistem, nume mașină, kernel, arhitectura mașinii, tipul procesorului, etc), -m, -s, -p, -r.

[alex@stressat ~]$ uname -a
Linux stressat 2.6.36.2-desktop-1mnb #1 SMP Tue Dec 14 21:04:23 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

7.30.6- cat /proc/cpuinfo

: informații detaliate despre procesor:

[alex@stressat ~]$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Celeron(R) CPU        E1200  @ 1.60GHz
stepping        : 13
cpu MHz         : 1600.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts
bogomips        : 3199.95
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Celeron(R) CPU        E1200  @ 1.60GHz
stepping        : 13
cpu MHz         : 1600.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts
bogomips        : 3199.79
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

7.30.7-cat /proc/meminfo

: informații detaliate despre memorie:

[alex@stressat ~]$ cat /proc/meminfo
MemTotal:        2057976 kB
MemFree:           17964 kB
Buffers:           43384 kB
Cached:          1153976 kB
SwapCached:            0 kB
Active:           750336 kB
Inactive:        1104688 kB
Active(anon):     488672 kB
Inactive(anon):   170708 kB
Active(file):     261664 kB
Inactive(file):   933980 kB
Unevictable:           4 kB
Mlocked:               4 kB
SwapTotal:       1140576 kB
SwapFree:        1140576 kB
Dirty:               192 kB
Writeback:             0 kB
AnonPages:        657716 kB
Mapped:           155576 kB
Shmem:              1708 kB
Slab:              55248 kB
SReclaimable:      30128 kB
SUnreclaim:        25120 kB
KernelStack:        3384 kB
PageTables:        39188 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2169564 kB
Committed_AS:    3197668 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      325904 kB
VmallocChunk:   34359400528 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       42624 kB
DirectMap2M:     2054144 kB

7.30.8- blkid

: aflăm UID-urile partițiilor:

[root@stressat alex]# blkid
/dev/sda7: UUID="d6ee414f-4df9-4b33-8349-9f3eb713cc8e" TYPE="ext4" 
/dev/sda5: UUID="6d74b9bc-fb50-446f-baaa-91f33387a9d5" TYPE="swap" 
/dev/sda1: UUID="845C8E205C8E0D5C" TYPE="ntfs" 
/dev/sda2: UUID="B82077B12077756A" TYPE="ntfs" 
/dev/sda3: UUID="92787a40-15d2-4088-b13e-574e73f68380" TYPE="ext4" 
/dev/sda6: UUID="b1d5330d-f9dd-4d48-9226-eadfb9713a28" TYPE="ext4" 
/dev/sda8: UUID="6691d521-68c4-49ae-8b8b-2438d102019c" TYPE="ext4"   

7.30.9- hddtemp

arată temperatura unui hard disk:

[alex@stressat ~]$ hddtemp /dev/sda
/dev/sda: SAMSUNG SP1614N: 31°C

7.30.10- sensors

arată înregistrările senzorilor privind voltajele, turația coolerelor, temperatura procesorului; trebuie să aveți instalat lm_sensors și să rulați ca root comanda sensors-detect, să răspundeți cu Yes la toate întrebările, apoi puteți folosi sensors:

[alex@stressat ~]$ sensors
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:     +1.28 V  (min =  +0.85 V, max =  +1.60 V)
 +3.3 Voltage:     +3.23 V  (min =  +2.97 V, max =  +3.63 V)
 +5 Voltage:       +5.11 V  (min =  +4.50 V, max =  +5.50 V)
 +12 Voltage:     +12.09 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:    1704 RPM  (min =  600 RPM)
CHASSIS FAN Speed:   0 RPM  (min =  800 RPM)
CPU Temperature:   +29.0°C  (high = +60.0°C, crit = +95.0°C)  

7.30.11- ifconfig

informații despre IP, DNS, adresă MAC (Hwaddr), trafic internet:

[alex@stressat ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1D:xx:xx:xx:xx  
          inet6 addr: fec0::d:21d:60ff:feda:e5d2/64 Scope:Site
          inet6 addr: 2002:5669:926a:d:21d:60ff:feda:e5d2/64 Scope:Global
          inet6 addr: fe80::21d:60ff:feda:e5d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:235067 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1309497 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:125281534 (119.4 MiB)  TX bytes:915605848 (873.1 MiB)
          Interrupt:23 Base address:0xd000 

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:86.xxx.xxx.xxx  P-t-P:77.xx.xx.xx  Mask:255.xxx.xxx.xxx
          RX packets:200161 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1305720 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:118463279 (112.9 MiB)  TX bytes:886764623 (845.6 MiB)

7.30.12- df

informații partiții (nume, dimensiune, gradul de utilizare, punctul de montare):

[alex@stressat ~]$ df
Sistem de fișiere   Dimens Utiliz Liber Uz% Montat pe
/dev/sda7             9,0G  8,2G  340M  97% /
/dev/sda8              68G   56G  8,6G  87% /home
/dev/sda1              11G  6,2G  4,7G  58% /media/win_c
/dev/sda2              49G   33G   16G  68% /media/win_d

7.30.13- capacități SMART

smartctl (urmat de un parametru precum -a, -H, -t long…): pentru verificarea stării de sănătate a unui hard disk:

  1. a- verificăm dacă hard discul suportă SMART și dacă în BIOS sunt activate capacitățile SMART:
[root@stressat alex]# smartctl -i /dev/sda
smartctl 5.39.1 2010-01-28 r3054 [x86_64-mandriva-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     SAMSUNG SpinPoint P80 series
Device Model:     SAMSUNG SP1614N
Serial Number:    S016J1BQ407704
Firmware Version: TM100-31
User Capacity:    160.041.885.696 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  ATA/ATAPI-7 T13 1532D revision 0
Local Time is:    Fri Dec 31 09:22:48 2010 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
  1. b- verificăm starea de sănătate (H=health) a discului (dacă rezultatul e PASSED totul e bine, dacă este FAILED, hardul e pe ducă):
[root@stressat alex]# smartctl -H /dev/sda
smartctl 5.39.1 2010-01-28 r3054 [x86_64-mandriva-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
  1. c- verificăm jurnalul erorilor SMART, lista erorilor detectate de SMART în timpul funcționării discului (dacă rezultatul este ¨No Errors¨ e perfect, dacă avem câteva erori mai vechi e bine, dacă sunt multe erori discul nu e în stare bună, există posibilitatea să fie pe ducă):
[root@stressat alex]# smartctl -l error /dev/sda
smartctl 5.39.1 2010-01-28 r3054 [x86_64-mandriva-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
ATA Error Count: 455 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 455 occurred at disk power-on lifetime: 4225 hours (176 days + 1 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 51 fe 00 00 00 50  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 05 fe 00 00 00 50 00      00:02:16.250  SET FEATURES [Enable APM]
  c8 00 18 a0 12 6b f8 00      00:02:16.250  READ DMA
  c8 00 88 b8 12 6b f8 00      00:02:16.250  READ DMA
  c8 00 20 80 12 6b f8 00      00:02:16.250  READ DMA
  c8 00 08 c0 c1 99 f8 00      00:02:16.250  READ DMA

Error 454 occurred at disk power-on lifetime: 4223 hours (175 days + 23 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 51 fe 00 00 00 50  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 05 fe 00 00 00 50 00      06:16:44.188  SET FEATURES [Enable APM]
  c8 00 18 a0 12 6b f8 00      06:16:44.188  READ DMA
  c8 00 88 b8 12 6b f8 00      06:16:44.188  READ DMA
  c8 00 20 80 12 6b f8 00      06:16:44.188  READ DMA
  c8 00 08 c0 c1 99 f8 00      06:16:44.188  READ DMA

Error 453 occurred at disk power-on lifetime: 4223 hours (175 days + 23 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 51 fe 00 00 00 50  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 05 fe 00 00 00 50 00      06:15:19.000  SET FEATURES [Enable APM]
  c8 00 18 a0 12 6b f8 00      06:15:19.000  READ DMA
  c8 00 88 b8 12 6b f8 00      06:15:19.000  READ DMA
  c8 00 20 80 12 6b f8 00      06:15:19.000  READ DMA
  c8 00 08 c0 c1 99 f8 00      06:15:19.000  READ DMA

Error 452 occurred at disk power-on lifetime: 4223 hours (175 days + 23 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 51 fe 00 00 00 50  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 05 fe 00 00 00 50 00      06:06:49.313  SET FEATURES [Enable APM]
  ca 00 08 60 1b 9e f8 00      06:06:48.938  WRITE DMA
  c8 00 80 29 95 ad f5 00      06:06:48.063  READ DMA
  c8 00 80 a9 94 ad f5 00      06:06:48.063  READ DMA
  ca 00 08 28 90 19 f8 00      06:06:46.938  WRITE DMA

Error 451 occurred at disk power-on lifetime: 4223 hours (175 days + 23 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 51 fe 00 00 00 50  Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 05 fe 00 00 00 50 00      06:02:08.688  SET FEATURES [Enable APM]
  ca 00 08 60 1b 9e f8 00      06:02:08.375  WRITE DMA
  ca 00 08 90 ba d4 f7 00      06:02:08.125  WRITE DMA
  ca 00 08 30 cc d3 f7 00      06:02:08.125  WRITE DMA
  ca 00 08 e8 bc d3 f7 00      06:02:08.125  WRITE DMA
  1. d- testăm discul:
[root@stressat alex]# smartctl -t short /dev/sda
smartctl 5.39.1 2010-01-28 r3054 [x86_64-mandriva-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Fri Dec 31 09:38:18 2010

Use smartctl -X to abort test.

După cum puteți observa este testul rapid, durează un minut, timp după care verificăm iar jurnalul de erori pentru a vedea dacă au apărut erori recente, lucru neplăcut. Pentru un test mult mai profund, mai amănunțit și categoric mai exact vom folosi comanda #smartctl -t long /dev/sda.

  1. e- verificăm dacă discul are porțiuni defecte, așa numitele badblocks (aveți răbdare, durează destul de mult, în jur de 45-55minute la un hdd de 160 GB):
[root@stressat alex]# badblocks -sv /dev/sda
Checking blocks 0 to 156290903
Checking for bad blocks (read-only test): done                                
Pass completed, 0 bad blocks found.

7.30.14- sysstat

a-mpstat: statistici procesor:

[alex@stressat ~]$ mpstat
Linux 2.6.36.2-desktop-1mnb (stressat)  31.12.2010      _x86_64_        (2 CPU)

10:43:38     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:43:38     all   16,33    0,05    5,59    7,32    0,00    0,55    0,00    0,00   70,16

b-iostat: statistici I/O:

[alex@stressat ~]$ iostat
Linux 2.6.36.2-desktop-1mnb (stressat)  31.12.2010      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          16,29    0,05    6,12    7,27    0,00   70,27

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             162,63     10046,85        79,18  158119076    1246124

c-vmstat: statistici memorie virtuală:

[alex@stressat ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  1   2120 346256  96600 731844    0    0  4993    39  610 1157 16  6 70  7

7.30.15- hwinfo

informații despre componentele fizice ale sistemului/ hardware; deorece outputul comenzii este foarte lung, putem cere informații doar pentru anumite aspecte, dând după comandă un anume parametru (–bios, –cdrom, –cpu, –disk, –printer, –partition, –monitor, –gfxcard, –sound, șamd.):

[root@stressat alex]# hwinfo --sound
34: PCI 8001.0: 0403 Audio device                               
  [Created at pci.318]
  UDI: /org/freedesktop/Hal/devices/pci_1106_3288
  Unique ID: FVI2.PfnGitoKusE
  SysFS ID: /devices/pci0000:80/0000:80:01.0
  SysFS BusID: 0000:80:01.0
  Hardware Class: sound
  Model: "VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller)"
  Vendor: pci 0x1106 "VIA Technologies, Inc."
  Device: pci 0x3288 "VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller)"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x8290 
  Revision: 0x10
  Driver: "HDA Intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xfbffc000-0xfbffffff (rw,non-prefetchable)
  IRQ: 17 (759865 events)
  Module Alias: "pci:v00001106d00003288sv00001043sd00008290bc04sc03i00"
  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
[root@stressat alex]# hwinfo --memory
01: None 00.0: 10102 Main Memory                                
  [Created at memory.61]
  Unique ID: rdCR.CxwsZFjVASF
  Hardware Class: memory
  Model: "Main Memory"
  Memory Range: 0x00000000-0x7d9bdfff (rw)
  Memory Size: 2 GB
  Config Status: cfg=new, avail=yes, need=no, active=unknown

7.30.16- lshw

lshw este un utilitar superb, ne dă informații detaliate despre componentele hardware ale sistemului! Outputul comenzii este extrem de detaliat (și evident lung…), de aceea mai simplu este să folosim comanda lshw -short, care ne va da informații într-o formă mult mai accesibilă și inteligibilă pentru un utilizator cu experiență și cunoștințe mai puține.

[root@stressat alex]# lshw -short
H/W path              Device      Class       Description
=========================================================
                                  system      System Product Name
/0                                bus         P5VD2-VM SE
/0/0                              memory      64KiB BIOS
/0/4                              processor   Intel(R) Celeron(R) CPU        E1200  @ 1.60GHz
/0/4/5                            memory      32KiB L1 cache
/0/4/6                            memory      512KiB L2 cache
/0/26                             memory      2GiB System Memory
/0/26/0                           memory      1GiB DIMM DDR2 Synchronous 667 MHz (1.5 ns)
/0/26/1                           memory      1GiB DIMM DDR2 Synchronous 667 MHz (1.5 ns)
/0/100                            bridge      CN896/VN896/P4M900 Host Bridge
/0/100/0.5                        generic     CN896/VN896/P4M900 I/O APIC Interrupt Controller
/0/100/1                          bridge      VT8237/VX700 PCI Bridge
/0/100/2                          bridge      CN896/VN896/P4M900 PCI to PCI Bridge Controller
/0/100/2/0                        display     NV43 [GeForce 6600]
/0/100/3                          bridge      CN896/VN896/P4M900 PCI to PCI Bridge Controller
/0/100/f                          storage     VIA Technologies, Inc.
/0/100/f.1            scsi0       storage     VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE
/0/100/f.1/0.0.0      /dev/cdrom  disk        DVDRAM GSA-H12N
/0/100/f.1/0.1.0      /dev/sda    disk        160GB SAMSUNG SP1614N
/0/100/f.1/0.1.0/1    /dev/sda1   volume      10GiB Windows NTFS volume
/0/100/f.1/0.1.0/2    /dev/sda2   volume      48GiB Windows NTFS volume
/0/100/f.1/0.1.0/3    /dev/sda3   volume      10GiB EXT4 volume
/0/100/f.1/0.1.0/4    /dev/sda4   volume      79GiB Extended partition
/0/100/f.1/0.1.0/4/5  /dev/sda5   volume      1113MiB Linux filesystem partition
/0/100/f.1/0.1.0/4/6  /dev/sda6   volume      258MiB Linux filesystem partition
/0/100/f.1/0.1.0/4/7  /dev/sda7   volume      9279MiB Linux filesystem partition
/0/100/f.1/0.1.0/4/8  /dev/sda8   volume      69GiB Linux filesystem partition
/0/100/10                         bus         VT82xxxxx UHCI USB 1.1 Controller
/0/100/10/1           usb1        bus         UHCI Host Controller
/0/100/10/1/1                     input       USB OPTICAL MOUSE
/0/100/10.1                       bus         VT82xxxxx UHCI USB 1.1 Controller
/0/100/10.1/1         usb2        bus         UHCI Host Controller
/0/100/10.2                       bus         VT82xxxxx UHCI USB 1.1 Controller
/0/100/10.2/1         usb3        bus         UHCI Host Controller
/0/100/10.3                       bus         VT82xxxxx UHCI USB 1.1 Controller
/0/100/10.3/1         usb4        bus         UHCI Host Controller
/0/100/10.4                       bus         USB 2.0
/0/100/10.4/1         usb5        bus         EHCI Host Controller
/0/100/11                         bridge      VT8237S PCI to ISA Bridge
/0/100/12             eth0        network     VT6102 [Rhine-II]
/0/100/13.1                       bridge      VT8237A PCI to PCI Bridge
/0/101                            bridge      CN896/VN896/P4M900 Host Bridge
/0/102                            bridge      CN896/VN896/P4M900 Host Bridge
/0/103                            bridge      CN896/VN896/P4M900 Host Bridge
/0/104                            bridge      CN896/VN896/P4M900 Host Bridge
/0/105                            bridge      CN896/VN896/P4M900 Security Device
/0/106                            bridge      CN896/VN896/P4M900 Host Bridge
/0/107                            bridge      VT8251 Ultra VLINK Controller
/0/108                            bridge      VT8237A Host Bridge
/0/1                              multimedia  VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller)

7.30.17- htop

dată în consolă, comanda htop ne va returna un grafic cu procesele și aplicațiile ce rulează, resursele consumate (actualizat permanent):





În partea de jos a ferestrei htop puteți observa o bară cu modul de funcționare al tastelor funcționale în cadrul htop: F1-Help, F2- Setup, etc. Cu ajutorul acestor taste putem modifica aspectul, culorile afișate, coloana monitorizată în principal (CPU, MEM, etc), putem închide un proces și multe altele.


17.1 htop -hotkeys

t :Afișează/ascunde procesele active sub formă de arbore
u : Afișează/ascunde procesele rulate de utilizatorul selecționat;
P : Afișează/ascunde procesele triate in funcție de consumul CPU in %;
M : Afișează/ascunde procesele triate in funcție de consumul memoriei in %;
T : Afișează/ascunde procesele triate in funcție de timpul parcurs;
Bara de Spaţiu : Selecționează procesele;
U : Deselecționează toate procesele.


7.30.18- vmstat



- Activitatea sistemului , informații hardware și de sistem. Comanda vmstat afișează informații despre procese , memorie, cpu și blocurile I/O, in funcție de la câte secunde dorim să fie afișate aceste informații, de exemplu :

vmstat 5

va afișa rezultatele la fiecare 5 secunde.

Pentru a afla parametri ce pot fi folosiți cu vmstat consultați „help“ cu comanda.

vmstat -h



7.30.19- ps



- Cu această comanda puteți avea un snapshot al proceselor in desfășurare în momentul lansării comenzii. (ps este cam ca și comanda top cu deosebirea că se vor obține mai multe informații) Exemple de parametri ce pot fi pasați comenzii ps:
-Afișarea tuturor proceselor în forma detaliată ( log output)

ps -Al

( sau pentru extra full mode

ps -AlF

afișează și comenzile care vin distribuite proceselor din linia de comandă)
-Afișarea tuturor sarcinilor in desfășurare

ps -AlFH

-Afișarea tuturor sarcinilor in desfășurare chemate in urma proceselor

ps -AlLm

-Afișarea arborelui proceselor si subproceselor

pstree

-Afișarea informațiilor de siguranță

ps -eo euser,ruser,suser,fuser,f,comm,label

-Afișarea primelor 10 procese in funcție de consumul de CPU

ps -auxf | sort -nr -k 3 | head -10

-Afișarea primelor 10 procese in funcție de consumul de memorie RAM

ps -auxf | sort -nr -k 4 | head -10

7.30.20- w



w este este o comandă utilă în cazul in care avem mai mulți utilizatori conectați simultan pe mașină,
pentru a vedea cine sunt și ce procese rulează fiecare. Comanda este:

w username




După cum se vede la fiecare utilizator i se atribuie un tty ( tty8 si tty9 ,in X in cazurile de față
dar nu este obligatoriu, se poate foarte bine ca unii utilizatori să fie activi doar în mod text )
deci pentru administrator ca să navigheze între utilizatori folosește combinația ctrl+alt+F8 sau ctrl+alt+F9
in prezentul exemplu, ș.a.m.d , fiecărui nou utilizator i se va atribui un shell tty de login .
Cu:

w

vor fi afișati toți utilizatorii activi în momentul lansării comenzii cu detaliile menționate mai sus.

7.30.21-dstat



Dar poate cel mai complet și unul dintre preferații mei e dstat
dstat -f in acest exemplu

Description :
Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat
overcomes some of the limitations and adds some extra features.

Dstat allows you to view all of your system resources instantly,
you can eg. compare disk usage in combination with interrupts from
your IDE controller, or compare the network bandwidth numbers
directly with the disk throughput (in the same interval).

Dstat also cleverly gives you the most detailed information in
columns and clearly indicates in what magnitude and unit the output
is displayed. Less confusion, less mistakes.

Dstat is also unique in letting you aggregate block device throughput
for a certain diskset or network bandwidth for a group of interfaces,
ie. you can see the throughput for all the block devices that make up
a single filesystem or storage system.

You can customize your dstat output from /etc/dstat.conf and you can
write your own dstat modules to plug into the dstat output.

Dstat's output, in its current form, is not very useful to be post-
processed by other tools. It's mostly meant for allowing humans to
interprete real-time data as easy as possible.




21.1- dstat -Parametri pentru a putea exploata la maxim acest utilitar

1.

 -c

abilitează statistici CPU , exemplu:

-C 0,total

include cpu0 și toate

2.

 -d

abilitează statistici hard disk, exemplu:

-D total,hde

include hde și total

3.

-i

abilitează statistici de interrupt , exemplu:

-I 5,eth0

include int5 și interrupt folosit de eth0

4.

-m 

abilitează statistici memorie

5.

-n 

abilitează statistici de rețea , exemplu:

-N eth0,total

include eth0 și total

6.

-p  

abilitează statistici procese

7.

-s  

abilitează statistici swap, exemplu:

-S swap1,total

include swap1 și total

Acestea le consider eu cele mai utile , dar bineințeles că ajunge să consultați manualul man dstat sau ajutorul dstat -h
pentru a vedea toate posibilitățile și pentru a le putea adapta necesităților voastre.

7.30.22-iptraf

Acesta este ,poate, cea mai completă aplicație pentru monitorizare trafic rețea . Se instalează simplu cu urpmi fiind prezent pe mediile mandriva , deci:

urpmi iptraf

Se lansează din root (sau sudo pentru cine are configurat sudoers), și arată cam așa

Meniul este navigabil cu sageată sus și sageată jos și cuprinde următoarele categorii :
-IP Traffic monitor care monitorizează toate interfețele de rețea configurate , (dacă nu vă mulțumește configurarea nativă accesați configure și/sau Filters și le configurați dupa preferință.)
-General Interface Statistics pornește direct monitorizarea pe toate interfețele , porturile și protocoalele.
-Detailed Interface Statistics exact ca și mai sus doar că informațiile sunt mult mai detaliate și setate pe interfața de retea pe care o alegeți.
-LAN Statistics monitor monitorizare dedicată retelelor LAN.
Câteva imagini explicative mai jos.

IP Traffic monitor(All interfaces)


Detailed Interface Statistics (pe eth0)


Prezentare - Partea I - Partea a II-a - Partea a III-a - Partea a IV-a - Partea a V-a


Echipa MandrivaUsers România are plăcerea să vă prezinte sistemul de operare Mandriva Linux 2011! Acest sistem de operare conține și folosește cele mai noi inovații software posibile, pentru a oferi utilizatorilor o experiență unică și pentru a înlocui cu succes sistemele de operare plătite.
Prezentul ghid acoperă capitolele cele mai importante, cum ar fi instalarea sistemului de operare, configurarea acestuia, instalarea aplicațiilor suplimentare, folosirea consolei, configurări pentru servere, aplicații pentru web development, etc.
Lumea Open Source nu trebuie să fie un tărâm mistic pentru nimeni. În ultimii ani, această lume a evoluat destul de mult încât să ofere fiecărui utilizator, indiferent de nivelul de experiență al acestuia, maximum de productivitate cu minimum de efort printr-o interfață simplă și intuitivă. Folosind Linux beneficiați de avantajele unui sistem de operare practic, neafectat de viruși și alte amenințări, fiind cu toate acestea gratuit, rapid, performant și foarte ușor de utilizat. De asemenea, gama de aplicații disponibilă poate deschide și edita toate tipurile de fișiere sau executa toate operațiile cu care ați fost obișnuiți în alte sisteme de operare.
În speranța că v-am trezit interesul, vă facem o invitație călduroasă să testați acest sistem de operare cu ajutorul prezentului ghid, care a fost alcătuit special pentru a face tranziția la Mandriva Linux cât mai ușoară posibil pentru oricine.

Autorii

Prezentare - Partea I - Partea a II-a - Partea a III-a - Partea a IV-a - Partea a V-a

mandriva/ghid-2011-p5.txt · Ultima modificare: 2012/05/26 13:32 de către shogun1