Sunteți pe pagina 1din 41

Introducere & Instalare 1.1 Istorie Unix/Linux 1.2 Consideratii Hardware 1.3 Boot Loader/Boot Manager 1.

4 Instalare 1.5 Console/terminale virtuale 1.6 Linux rescue Important Linux este un sistem de operare profesional, construit avand securitatea si performanta pe prim plan. Cele mai mari corporatii, site-uri si aplicatii web din lume se bazeaza mult pe Linux. Exemplu: Facebook, Google, Wikipedia etc.

Nota Toate exemplele acestui curs se vor realiza in Ubuntu, distributie solida si recomandata tuturor incepatorilor si nu numai. Ubuntu este o distributie derivata din Debian, iar din aceeasi familie fac parte mai multe distributii precum Kubuntu, Knoppix, Kanotix, Xandros, Damn Small Linux etc.

Istorie Unix/Linux Anii 60 Bell Laboratories (divizie de cercetare a AT&T) formeaza un consortiu impreuna cu MIT (Massachusetts Institute of Technology) si General Electric pentru a dezvolta un sistem de operare interactiv, multiuser si multi-tasking numit Multics (Multiplexed Information and Computing Service) care sa ruleze pe Mainframe-uri GE-645. Proiectul nu a avut succesul scontat, iar Bell Labs se retrage. Un programator pe nume Ken Thompson nu renunta si continua dezvoltarea proiectului impreuna cu un alt programator pe nume Dennies Ritchie. 1970 Noul proiect este numit Unics (Uniplexed Information and Computing Service). Numele este atribuit de Brian Kernighan, iar mai tarziu este schimbat in UNIX. Sistemul de operare este scris in limbaj de asamblare. 1973 Unix este rescris in C pentru a putea fi portabil (sa ruleze si pe alte masini). Acest lucru a dus la o dezvoltare accelerata. AT&T distribuie noul sistem universitatilor, marilor firme dar si guvernului USA. 1973-1979 Unix-ul este in continuare dezvoltat in cadrul Universitatii Berkeley din California. Printre imbunatatiri sunt shell-ul C, editorul VI precum si alte utilitare necesare. Tot aici este adaugat suportul pentru lucrul in retea. 1980-1983 AT&T lanseaza prima versiune comerciala de UNIX fara a introduce modificarile aduse de Berkeley. 1982 Un programator din cadrul proiectului BSD (Berkeley Software Distribution - Berkeley Unix) impreuna cu cativa colegi de la Stanford University creaza firma SUN - Stanford University Network. Prima lansare de Unix are loc in 1983 si se numeste SunOS. Printre altele sunt introduse NFS (Network File System) care devine un standard.

1984 Richard Matthew Stallman (nickname RMS) paraseste MIT (care crea doar software proprietar) pentru a crea un sistem de operare complet FREE (Free as in Freedom) - FREE (Free as in Freedom). Noul proiect poarta numele de GNU (GNU's not UNIX). Primul program creat a fost editorul emacs. In 1985 RMS creaza fundatia FSF - Free Software Foundation. Scopul acesteia este ca software-ul sa fie free in sensul de liber si oricine sa poata avea acces liber si fara restrictii la sursa. Acest tip de licenta se numeste GPL General Public License. 1988 SunOS/BSD, AT&T System V Release 3 si Xenix ( Microsoft version of Unix pentru PC cu procesoare Intel cumparat de la AT&T in 1979) au fost combinate in System V Release 4 (SVR4). Nota Xenix a fost versiunea Microsoft de Unix pentru PC cu procesoare Intel cumparata de la AT&T in 1979. Aceasta a fost ulterior vanduta firmei Santa Cruz Operation(SCO) si a devenit SCO UNIX. 1990 GNU continea aproape toate componentele necesare unui nou sistem de operare, mai putin kernel-ul. 1991 Profesorul olandez Andrew Tanenbaum scrie o carte intitulata "Operating System" in care explica conceptul unui nou sistem de operare numit Minix. Un student finlandez pe nume Linus Torvalds de la Universitatea din Helsinki scrie un Kernel pentru GNU care sa ruleze pe calculatoarele AT-386 si 484, bazandu-se pe anumite concepte din cartea lui Tanenbaum. Ulterior intre Linus Torvalds si Andrew Tanenbaum se isca un conflict bazat pe viziunea diferita pe care acestia o aveau asupra noului Kernel. Detalii Celebrul anunt al lui Linus Torwalds precum ca a dezvoltat un kernel a fost postat pe un newsgroup comp.os.minix: Nota Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have:-(. Sistemul de operare creat astfel prin folosirea kernelului lui Linus Torvalds si a programelor si utilitarelor GNU poarta numele de GNU/Linux. Nota Numele complet si corect al sistemului de operare nu este Linux ci GNU/Linux. Detalii GNU/Linux este un sistem de operare multiuser si multitasking care ruleaza pe procesoare 32 si 64 biti pe aproape toate platformele hardware existente. Este format din kernelul lui Linus Torvalds si programele de la GNU. Intre Linux si Unix exista o mare diferenta. Unix-ul este un sistem de operare

proprietar cu sursa inchisa, iar GNU/Linux este un sistem de operare FREE cu sursa deshisa care la inceput a incercat sa imite sistemul Unix original. Marile firme private si-au dezvoltat propriile sisteme de operare Unix astfel: - HP-UX - Unix-ul celor de la Hewlett-Packard (SVR4). Versiunea actuala este 11.i - AIX - Unix-ul celor de la IBM bazat pe SVR4 - BSD - Unix-ul celor de la universitatea din California. In prezent exista FreeBSD, OpenBSD, NetBSD Prima distributie de Linux a fost Slackware lansata in 1993. Ulterior au aparut multe alte distributii fiecare avand specificul sau: RHEL (RedHat Enterprise Linux - Sistem Comercial) Fedora (varianta free de la RedHat) SuSE (cumparat de Novell, Sistem Comercial) Debian Ubuntu Gentoo Mandriva CentOS (bazat pe RHEL, necomercial) Knoppix (prima distributie de Linux care ruleaza direct de pe CD - LiveCD) Puppy MEPIS Nota Sistemul de operare Android folosit pe Smartphone-uri si tablete este o versiune de Linux aflata sub mentenanta Google. Detalii.

Exista in prezent mai multe sute de distributii de Linux. Detalii

1.2 Consideratii Hardware ACPI ACPI (Advanced Configuration and Power Interface) este un standard dezvoltat de un consortiu format din HP, Intel, Microsoft, Phoenix si Toshiba in 1996. Ultima versiune dateaza din Noiembrie 2011. ACPI reprezinta un standard prin care OS are controlul asupra recunoasterii elementelor hardware si power management. Folosind aceasta interfata BIOS-ul furnizeaza OS toate mecanismele necesare pentru controlul low-level al componentelor hardware. OS poate determina ca sistemul sa consume putina energie in anumite perioade si multa energie cand este cazul (ca si in cazul laptop-urilor). Exista pe tastatura "power management keys" pentru oprirea sistemului, cresterea luminozitatii monitorului etc. Hardware-ul (placa de baza si chiar CPU) trebuie sa fie compatibil cu acest standard.

Un sistem compatibil ACPI poate sa se gaseasca in urmatoarele stari: a) G0 - Working - starea normala de operare a unui calculator cand aplicatiile ruleaza, CPU executa instructiuni etc b) G1 - Sleeping - are 4 substari ( Standby, Hybernation etc) c) G2 - Soft off - Aproximativ asemanator cu G3 (mechanical off) doar ca anumite componente raman alimentate cu energie astfel incat diferite evenimente sa poate aduce statia in starea G0 (keyboard, LAN, USB). Din aceasta stare sistemul trebuie sa buteze pentru a intra in starea G0. d) G3 - Mechanical Off - Nivelul de energie consumat este aproape zero. Wake on LAN (WoL) WoL este o tehnologie care permite pornirea unui calculator de la distanta prin trimiterea unui frame Ethernet special. Placa de retea este alimentata continuu cu energie si asculta primirea frame-ului special. Supportul pentru Wake on Lan (WoL) este implementat pe placa de baza. NIC-ul (care inca primeste energie) asculta dupa acel pachet special numit "Magic Packet". Daca acesta este valid buteaza calculatorul. Magic Packet: se trimite pe adresa de broadcast folosind UDP si portul 0 (la inceput), 7 sau 9 (mai recent). Datele din MagicPacket: FFFFFFFFFFFF urmat de 16 repetitii ale MAC-ului targetului si eventual o parola formata din 4 sau 6 bytes In afara de hardware (placa de baza) compatibil exista si componenta software si anume programul care genereaza si trimite target-ului magic packet. Exista mai multe astfel de aplicatii atat pentru Windows cat si pentru Linux. Un exemplu de astfel de program este Wake on LAN GUI Nota Daca se doreste pornirea calculatorului dintr-o alta retea de exemplu Internet, Routerul trebuie configurat pentru redirectarea pachetelor "Directed Broadcast" Hard Disks In prezent pentru PC-uri exista 2 standarde de conectare a hard disk-urilor la placa de baza: SATA si PATA ATA - Advanced Technology Attachment reprezinta o interfata prin care hard disk-urile, CD/DVD se conecteaza la placa de baza. Odata cu introducerea SATA (Serial ATA) in 2003, ATA a fost redenumita PATA (Parallel ATA). Pe placa de baza a arhitecturii X86 exista 2 sloturi pentru conectarea hardiskurilor PATA. Pe fiecare cablu paralel se pot conecta 2 hdd. Avem astfel in total maxim 4 hdd. Ele sunt reprezentate in Linux astfel: /dev/hda - primary master hard disk /dev/hdb - primary slave hard disk /dev/hdc - secondary master /dev/hdd - secondary slave Important Fiecare Hard Disk poate contine partitii primare care pot fi maxim 4 si partitii logice care se gasesc in cadrul unei partitii extinse. A 4-a partitie primara este considerata partitia extinsa, este unica si va contine restul partitiilor logice.

Nota In cazul hard disk-urilor SATA sau SCSI acestea sunt reprezentate prin fisierele /dev/sda, /dev/sdb, /dev/sdc si /dev/sdd. Notiunile de primary master, primary slave etc nu mai exista. De asemenea ultimele versiuni de kernel folosesc o interfata standard de accesare atat pt. PATA cat si pt. SATA si reprezinta inclusiv partitiile hard diskurilor PATA sub forma sda1, sda2 etc. USB stick-urile vor fi reprezentate de kernel tot sub forma sda. RAID RAID (Redundant Array of Inexpensive/Independent Disks) Definitie RAID reprezinta o metoda prin care mai multe hard diskuri fizice se grupeaza intr-o singura unitate logica. Tehnologia RAID a fost definita prima data de catre un grup de cercetatori de la universitatea Berkeley din California. Exista 2 categorii de configuratii 1. Software RAID. Hard diskurile sunt combinate intr-o singura unitate logica de catre sistemul de operare. OS vede fiecare disk si trebuie configurat sa le foloseasca ca un singur ansamblu. 2. Hardware RAID. Hard diskurile sunt combinate intr-o singura unitate logica de catre un controller. OS (Operating System) vede ansamblul ca un singur hard disk. Nu este nevoie de nicio configuratie la nivel de sistem de operare. Hardware RAID ofera mai multa securitate si performanta a datelor dar este mult mai scump. Nivele RAID - RAID 0 (Data Striping without redundancy). Acest nivel este cel mai eficient ca si performanta dar nu ofera protectia datelor. Se formeaza din minimum 2 hard disk-uri. Informatia este "sparta" in fragmente si redistribuita pe mai multe diskuri din array (ansamblul de diskuri fizice care pentru sistemul de operare reprezinta o singura unitate logica). Se poate scrie/citi in paralel. Daca un singur disk se defecteaza intreg sistemul devine inutilizabil. - RAID 1 (Disk Mirroring). Nr. minim de diskuri din array este 2. Datele sunt salvate pe fiecare dintre cele 2 hard diskuri. Securitatea datelor este maxima iar performantele de citire/scriere sunt mari. Singurul dezavantaj este ca acest nivel necesita de doua ori mai mult spatiu de stocare. - RAID 2 - Nu se foloseste. - RAID 3 si RAID 4 (Striped Set with dedicated parity) - minimum 3 discuri. - RAID 5 (Striped Set with Distributed Parity). Nr. minim de diskuri este 3. O defectiune a unui disk nu duce la distrugerea tuturor datelor. Datele aflate pe diskul defect pot fi recuperate de pe celelalte diskuri. - RAID 0/1, RAID 10 - reprezinta o combinatie intre RAID 0 si RAID 1. Nr. minim de discuri este 4. Pentru RAID 0 si RAID 1 avem nevoie de cel putin 2 partitii pe 2 hard diskuri diferite. RAID 5 necesita 3 partitii. Se recomanda folosirea partitiilor de aceeasi marime. Nota Exista si posibilitatea folosirii unui singur hard disk, doar ca beneficiile RAID dispar. LVM

LVM (Logical Volume Management)

Reprezinta posibilitatea prin care se pot crea "Logical Volumes" care se intind pe mai multe diskuri si partitii. Un volum logic poate fi folosit ca o partitie si anume se poate formata cu un sistem de fisiere si monta intr-un anumit mount-point. Mai multe "physical partitions" - hard diskuri intregi sau partitii se combina intr-un singur "volume group". LVM nu trebuie confundat cu RAID. Acestea sunt 2 tehnologii diferite care se completeaza. EVMS (Enterprise Volume Management System) reprezinta o interfata comuna pentru LVM si RAID.

Avantaje LVM: se pot combina mai multe partitii sau hdd intr-un singur "volume group" un "logical volume" poate fi largit cand este nevoie de mai mult spatiu intr-un mod foarte simplu. se pot adauga noi "logical volumes" la "volume group" fara a fi nevoie de oprirea sistemului sau demontarea partitiilor. se pot adauga noi hdd la "volume group" intr-un "running system" Boot Loader/Boot Manager Aceasta prezentare face referire la userul root. In Linux exista 2 categorii de useri: useri neprivilegiati (toti ceilalti) si userul root. root este un utilizator cu drepturi depline, administratorul sistemului. Orice sarcina administrativa se realizeaza de catre userul root. Pentru detalii despre modul in care se executa comenzi cu drepturi de root cititi sub-capitolul: 'su & sudo' din capitolul 'Conturi de Utilizatori' Boot manager & Boot loader Boot Loaderul este primul program executat in momentul butarii unui calculator. Acesta este responsabil sa transfere controlul catre kernelul sistemului de operare. Acesta din urma incarca intreg sistemul de operare. Definitie Procesul de butare (booting) reprezinta incarcarea/copierea sistemului de operare de pe Hard Disk in RAM si executarea de catre acesta a diferitelor functii pentru initializarea dispozitivelor hardware (recunoasterea placii grafice pentru afisare la monitor, stabilirea rezolutiei monitorului, montarea sistemelor de fisiere de pe hard disk, initializarea porturilor seriale, usb, initializarea mouse-ului si a tastaturii etc. Detalii).

Un boot manager este un program care ajuta utilizatorul sa aleaga intre mai multe sisteme de operare, sa seteze sistemul default, timeout etc. Pe Linux se folosesc in principal 2 programe care contin atat boot loader cat si boot manager. Acestea sunt LILO - Linux Loader si GRUB - GRand Unified Bootloader. Grub este mai flexibil, este de preferat. Grub este instalat automat de multe distributii de Linux dar si Unix (ex. Solaris). Grub poate incarca si alte sisteme de operare (Windows, Solaris, etc).

Boot Loaderul se instaleaza intr-un singur sector al hard disk-ului numit sector de boot. Exista 2 categorii de sectoare de boot: 1) VBR - Volume Boot Record - reprezinta primul sector al unui hard disk care nu a fost partitionat sau primul sector al unei partitii a unui hard disk care a fost partitionat. Contine cod pentru a incarca sistemul de operare de pe acel hard disk sau de pe acea partitie. 2) MBR - Master Boot Record - reprezinta primul sector al unui hard disk care a fost partitionat. Contine cod pentru a identifica partitia activa si a invoca Volume Boot Record al acelei partitii. Dimensiunea MBR este 512 bytes din care maximum 446 reprezinta cod executabil.

Exista 2 versiuni Grub: Grub sau Grub1 (Grub Legacy) si Grub2. Acestea difera fundamental prin modul de configurare si operare. Ultimele distributii de Linux folosesc Grub2, care incetul cu incetul va inlocui Grub1. In prezent (anul 2011) Grub legacy este inca folosit in special datorita faptului ca este un program stabil, testat in multi ani. Pentru a detecta versiunea de Grub instalata se ruleaza din consola comanda grub-install -v Exemplu

Versiunea 1.98 nu inseamna Grub1 ci versiunea 1.98 a lui Grub2. In cazul Grub1 la versiune va aparea 0.97 (sau mai putin).

Grub legacy Fisierul de configurare al lui Grub Legacy este: /boot/grub/menu.lst In momentul in care dorim modificari referitoare la modul de functionare al acestuia precum adaugarea unui nou sistem de operare in meniul lui Grub afisat la pornirea calculatorului, stergerea unui sistem de operare in care sa butam, modificare timeout, setare parola pentru butare etc trebuie sa modificam fisierul precizat mai sus.

Structura acestuia este: default 0 timeout 8 title Windows XP rootnoverify (hd0,0) chainloader +1 title Fedora Core root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2 initrd /boot/initrd title Solaris rootnoverify (hd0,2) chainloader +1 Grub2 Modul de functionare al lui Grub2 este dictat de mai multe fisiere: 1. /boot/grub/grub.cfg Acesta este fisierul de configurare principal al lui Grub2 care precizeaza ce sistem de operare incarca Grub2, pe ce partitie se afla acestea, sistemul default de butare etc si inlocuieste /boot/grub/menu.lst al lui Grub1. Fisierul nu se editeaza manual nici macar de catre root. Fisierul se genereaza automat (suprascriind vechiul fisier) de fiecare data cand se ruleaza comanda update-grub pe baza fisierelor din directorul /etc/grub.d 2. /etc/default/grub Acesta este fisierul in care se precizeaza timeout, modul de display al meniului etc. # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. #precizeaza sistemul de operare default in care va buta. #reprezinta ordinea de afisare in meniu, iar numerotarea incepe de la zero GRUB_DEFAULT=0 #optiunea este valabila doar daca exista un singur sistem de operare. #daca sunt mai multe optiunea este ignorata #optiunea precizeaza cat timp asteapta grub inainte sa incarce sistemul GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true #in cazul mai multor sisteme de operare este indicat timpul (in secunde) # in care este afisat meniul inainte de butarea in sistemul default GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_LINUX_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"

3. fisierele din directorul /etc/grub.d Acestea sunt editabile de catre user (root), iar pe baza lor se genereaza /boot/grub/grub.cfg (in urma rularii comenziiupdate-grub). In comparatie cu Grub1, Grub2 detecteaza automat sistemele de operare instalate si actualizeaza corespunzator/boot/grub/grub.cfg Fisierele importante din acest director sunt: - 10_linux -> detecteaza kernel linux; - 30_os-prober -> cauta automat sisteme de operare Linux si Windows instalate si actualizeaza /boot/grub/grub.cfg; - 40_custom -> fisier care se editeaza de catre user cu sistemele de operare pe care dorim sa le butam. In acest fisier se adauga sistemele Windows, Solaris etc daca nu dorim detectarea lor automata; In comparatie cu Grub Legacy, Grub2 incepe numerotarea partitiilor de pe un hard disk de la 1 in loc de 0. Diskurile se numeroteaza in continuare de la zero. Exemplu: (hd0,1) reprezinta prima partitie de pe primul hard disk, iar (hd1,3) reprezinta a 3-a partitie de pe al doilea hard disk. Exemplu: 40_custom in cazul in care se doreste configurarea Grub2 sa buteze un sistem Windows care se gaseste pe prima partitie de pe primul hard disk. menuentry "Windows XP SP3" { set root=(hd0,1) chainloader +1

} In cazul in care adaugam manual in 40_custom un sistem de operare, acesta poate fi identificat si automat astfel avem in lista meniu acelasi sistem de 2 ori. Daca nu dorim sa mai se detecteze automat sisteme de operare se poate sterge fisierul30_os-prober sau i se poate lua dreptul de executie (chmod -x 30_os-prober). Nota De cele mai multe ori reconfigurarea GRUB-ului (ex: dupa instalarea unui noi sistem de operare) are loc automat prin rularea comenzii upate-grub de catre userul root. Instalare Instalarea unui sistem de operare Linux modern decurge asemanator cu instalarea sistemului Windows. Installer-ul recunoaste componentele hardware, instaleaza drivere pentru acestea, partitioneaza hard disk-ul, creaza utilizatori, configureaza reteaua etc. La sfarsit avem un sistem de operare Linux perfect functional. Nota In comparatie cu Windows, o distributie Linux contine aproape toate programele necesare utilizatorului. Acestea sunt incluse pe DVD-ul sau CD-urile de instalare, iar daca sunt alese de utilizator sunt instalate o data cu sistemul de operare. La final vom avea acces la majoritatea programelor necesare precum: editoare de text, playere video, mp3 player, program de copiere CD-uri, program de Backup, client de E-mail, Browser, client de messenger etc. Pentru o echivalenta a programelor Windows-Linux cititi sectiunea capitolului "Mediul Grafic" a acestui curs numita"Programe Desktop".

Aspecte care trebuie avute in vedere inaintea inceperii instalarii unui sistem de operare Linux: 1. Linux are nevoie de propria partitie pe care sa se instaleze. Aceasta poate fi creata anterior din Windows folosind un program precum Partition Magic sau in timpul instalarii Linux. Dimensiunea partitiei se recomanda sa fie de minim 10 GB pentru o folosire normala a sistemului Linux. In cazul in care aceasta se creaza din Windows poate sa fie formatata cu orice sistem de fisiere (fat, ntfs etc), iar in timpul instalarii Linux aceasta trebuie formatata cu un sistem de fisiere specific precumext3/ext4 sau reiserfs. 2. Pentru performante crescute, Linux necesita o partitie speciala de tip swap. Se recomanda ca dimensiunea partitiei sa fie mai mare decat dimensiunea memoriei RAM. Partitia de swap trebuie creata anterior din Windows sau in timpul instalarii Linux. Se va formata ca swap in timpul instalarii. Partitia de swap NU este obligatorie. 3. Dupa downloadul fisierului ISO si inainte de copierea acestuia pe un CD/DVD si instalare, se recomanda verificarea hash-ului acestuia folosind md5sum sau sha1sum. Hash-ul este un rezumat criptografic unic pentru fiecare fisier (nu exista 2 fisiere cu acelasi hash). Fiecare fisier are mereu acelasi hash (daca dorim sa calculam hash-ul de mai multe ori). Astfel se compara hash-ul calculat local cu hash-ul de pe site-ul producatorului. In cazul in care acestea sunt egale putem trage 2 concluzii: fisierul a fost downloadat fara erori (este integru) si a fost nemodificat fata de versiunea originala de pe site-ul producatorului. In Linux exista comenzile md5sum sisha1sum pentru calcul de hash-uri, iar in Windows trebuie instalate. Detalii.

Console/terminale virtuale

In Linux si Unix exista conceptul de Consola Virtuala si Terminal Virtual sau Terminal Text. Considerente istorice Initial se folosea un singur calculator de tip mainframe sau similar la care se conectau mai multi useri simultan folosind fiecare o consola. O consola era reprezentata printr-un ansamblu de tastatura si monitor. Linux pune la dispozitia utilizatorului 7 console virtuale (logice) care pot fi accesate folosind combinatia de taste CTRL+ALT+F1 pt consola 1, CTRL+ALT+F2 pentru consola 2 etc. In consola 7 este pornit mediul grafic. Nota Fizic, cele 7 console virtuale sunt reprezentate prin fisierele /dev/tty1-7, iar terminalele virtuale sunt reprezentate prin fisierele /dev/pts* Fisierul /etc/securetty contine pe fiecare linie locatiile de unde userul root are voie sa se logheze Terminal windows, terminal emulator sau terminal virtual reprezinta o consola pornita din modul grafic. Un terminal virtual se porneste in Ubuntu (Gnome): Start->Accessories>Terminal

In momentul in care deschidem un terminal virtual porneste shell-ul default al sistemului (Bash) care

asteapta rularea de comenzi. Toate comenzile se scriu in Linux intr-un terminal virtual (sau consola virtuala).

Sisteme grafice Un sistem grafic (graphical environment/desktop environment) consta in icoane, ferestre, toolbars, foldere, panels, widgets si influenteaza modul de lucru si experienta al utilizatorului. In cazul unui server Unix/Linux administrarea si configurarea acestuia se realizeaza folsind CLI (command line interface) sau linia de comanda pentru un control total. Chiar daca anumite aspecte ale sistemului pot fi configurate grafic (daca exista instalat un sistem grafic) cunosterea in profunzime a CLI este obligatorie pentru orice administrator performant. Nota Pe multe servere dedicate mediul grafic nu este instalat (Ex: Ubuntu Server) astfel incat administrarea sistemului are loc doar prin consola, de cele mai multe ori remote folsoind ssh.

Existe mai multe Desktop Environments (DE), printre cele mai cunoscute si apreciate fiind: 1. Unity Acest DE modern realizat de Canonical Ltd special pentru Ubuntu se bazeaza pe GNOME. Este default pentru Ubuntu incepand cu versiunea 11.04. Resursele hardware necesare sunt considerabil mai mari in comparatie cu alte DE. Cerinte hardware: CPU 1GHz, RAM 1 GB

2. Gnome (GNU Network Object Model Environment) A aparut in 1997 ca o alternativa la KDE. Este DE default pentru multe distributii printre care: Ubuntu (pana la versiunea 11.04), Debian, Mint, Fedora, CentOS, etc.

Exista in prezent doua versiune principale: Gnome 2 si Gnome 3.

Nota Daca se doreste folosirea Gnome in Ubuntu acesta trebuie instalat: sudo apt-get install gnomeshell Trebuie ales apoi din ecranul de login pentru a fi folosit:

3. KDE Este primul DE complex pentru Linux si este considerat cel mai configurabil si cu cele mai multe optiuni.

Multe destributii folosesc default KDE: Kubuntu, Mandriva, etc.

Nota Daca se doreste folosirea KDE in Ubuntu acesta trebuie instalat: sudo apt-get install kubuntudesktop Trebuie ales apoi din ecranul de login pentru a fi folosit. Kubuntu este o distributie bazata default pe Kde.

4. Xfce Reprezinta o alternativa la Gnome sau Kde. Aceste DE se axeaza pe performanta in loc de feature-uri. Are un "look" clasic iar resursele consumate sunt minime. Este ideal pentru calculatoarele mai vechi sau pentru utilizatorii care sunt interesati doar de performanta.

Cerinte hardware: CPU 300 MHz, RAM 192 MB.

Nota Daca se doreste folosirea Xfce in Ubuntu acesta trebuie instalat: sudo apt-get install xfce4 Trebuie ales apoi din ecranul de login pentru a fi folosit. Xubuntu este o distributie bazata default pe Xfce. Programe Desktop Un sistem de operare Linux modern poate inlocui COMPLET, eficient si fara probleme pentru majoritatea utilizatorilor un sistem de operare Windows. Veti avea astfel un sistem de operare mult mai stabil, mai sigur, cu mai multa functionalitate dar sicomplet gratuit. Nota Majoritatea aplicatiilor prezentate se instaleaza automat folosind un manager de pachete precum apt-get. Exemplu: sudo apt-get update sudo apt-get install wireshark putty gns3 Pentru mai multe detalii despre instalarea de programe cititi sub-capitolul Administrarea pachetelor software a acestui curs.

In tabelul de mai jos gasiti o mica descriere a celor mai importante programe Desktop pe Linux precum si programul echivalent din Windows pentru o tranzitie cat mai usoara. Nr. Program Linux Crt. Echivalent Windows Nota Suita de program LibreOffice reprezinta o alternativa eficienta la MS Office. Poate lucra cu fisiere word, excel, PowerPoint create cu MS Office. Proiectul LibreOffice este urmasul lui OpenOffice. LibreOffice ruleaza inclusiv pe Windows. Program de partitionare, modificare partitii etc Programe folosite pentru backup sau pentru clonarea unei partitii. PING este un live CD extrem de eficient care poate clona orice tip de partitie (inclusiv NTFS). Program pentru scrierea de CD-uri, DVDuri, imagini iso etc Programe pentru redarea de fisiere mp3 sau alte fisiere muzicale. Programe folosite pentru vizualizare de filme in orice format (divx, xvid, wma, dvd etc). Codec-urile necesare se instaleaza de cele mai multe ori automat. Twin File manager cu functionalitate multipla(client ftp, arhivator/dezarhivator zip, rar etc)

LibreOffice

MS Office

qtparted, gparted

Partition Magic

PartImage, PING

Norton Ghost

4 5

k3b, brasero xmms, amarok, banshee,exaile

Nero Winamp

mplayer, xine, vlc, totem

Windows Media Player

Krusader Mozilla Firefox, Google Chrome, Opera, Lynx - Web Browser text util pentru lucrul in consola Mozilla Thunderbird gaim/pidgin

Total Commander

Internet Explorer Web Browser

9 10

Outlook Express Yahoo Messanger, MSN, ICQ Notepad, Wordpad

Client de e-mail Client de chat

11 12

gedit, kate xchm, gnochm

Editor text Vizualizator pentru fisierele chm

13

clamav, clamwin

Norton Antivirus, Bit Defender, Antivirus complet free. ClamAV este AVG, Kaspersky varianta care ruleaza pe Windows etc Windows Firewall, Norton Firewall, Kerio etc itunes Adobe Photoshop BitTorrent, uTorrent Acrobat Reader Ftp Commander Firewall extrem de eficient folosit cu succes pe servere Enterprise. Ofera facilitati de rutare/nat, modificare a pachetelor(mangle) etc. Reprezinta SINGURA solutie tip firewall disponibila pe Linux Program pentru ipod Editor de imagini Torrent client PDF Viewer

14

netfilter/iptables

15 16 17 18 19 20

gtkpod GIMP Ktorrent, Transmission evince gftp Lame, Grip, CD Paranoia

21

Quanta Plus, BlueFish

HomeSite, Adobe Dreamweaver

IDE (Integrated development environment) folosit pentru dezvoltarea de aplicatii web (html, javascript, php, css etc)

Alte programe utile, recomandate a fi instalate pe Linux sunt: GNS3 - Graphical Network Simulator - Emulator pentru echipamente Cisco (Routers, Switches, ASA) Password Gorilla - Password Manager Putty - telnet/ssh client Calibre - E-Book (mobi, epub etc) Manager recordmydesktop - Desktop Recorder Wireshark - Sniffer si analizator de pachete Audacity - Audio Editor & Recorder PdfEdit - PDF Editor Nota Multe programe folosite pe Windows ruleaza de asemenea si pe Linux. Dintre acestea enumeram: Acrobat Reader - PDF Viewer Google Earth Eclipse, NetBeans - IDE pentru aplicatii Java VMware, VMware Player, VirtualBox - Virtualizare Pentru rularea de programe native Windows pe Linux cum ar fi jocuri, Adobe Photoshop, Visual

Studio etc se foloseste WINE. Pentru a monta partitii de Linux precum ext3 pe Windows se poate folosi EXT2ifs

Structura Linux Un sistem de operare este format din urmatoarele componente: 1. Kernel Reprezinta partea cea mai importanta a OS, cea care lucreaza cu CPU si este cea mai apropiata de Hardware. Fizic kernelul se regaseste intr-un fisier iar de cele mai multe ori acesta este /boot/vmlinuzversion_no Functii: I/O Management; managementul memoriei RAM si SWAP; apelarea functiilor de sistem; lucrul cu echipamentele periferice prin drivere; managementul sistemului de fisiere si al proceselor care ruleaza;

Memoria SWAP reprezinta un tip special de memorie care se gaseste pe Hard disk, dar care este folosita de Kernel ca si cand ar fi memorie RAM. Dimensiunea acesteia se recomanda a fi egala sau mai mare decat memoria RAM. Pe Linux se foloseste o partitie speciala pentru memoria de tip Swap. Aceasta memorie este optionala. 2. Shell Utilizatorul nu poate comunica direct cu Kernelul. Accesul la functiile kernelului se face prin intermediul shell-ului. Acesta este un program care primeste comenzi de la user sau alte aplicatii, le interpreteaza si le transmite kernelului pentru a le executa. Printre functiile shell-ului se afla si customizarea intregului environment (mediu de lucru) precum si programarea folosind shell scripts. Exista mai multe shell-uri printre cele mai importante amintim: a) Bourne Shell (sh) - Primul shell pentru Unix. A fost dezvoltat de Stephen Bourne la AT&T. Nu are foarte multe optiuni. b) Korn Shell (ksh) - A fost dezvoltat de David Korn la Bell Labs. c) C Shell (csh) - A fost dezvoltat de Bill Joy la Sun si se bazeaza pe limbajul de programare C. d) Enhanced C Shell (tcsh) e) Z Shell (zsh) - Este asemanator de Korn shell dar are mai multe functii. f) Bash (bash) - Bourne Again Shell - Default pe Linux. Cel mai folosit si mai puternic shell.

3. Sistemul de fisiere . Pentru detalii cititi subcapitolul "Sistemul de fisiere" al acestui curs. Structura unei comenzi

Pentru managementul sistemului Linux (copiere de fisiere sau directoare, stergere, redenumire, afisare continut, listare, editare etc) se folosesc comenzi. Exista peste 400 comenzi de baza in Unix/Linux. Exista comenzi incluse in shell ( Exemplu: alias, cd, umask) si comenzi independente reprezentate prin programe (Exemplu: ls, cp, rm etc). Structura unei comenzi este urmatoarea: NUME_COMANDA OPTIUNI [ARGUMENT 1] [ARGUMENT 2] NUME_COMANDA = reprezinta numele comenzii. Trebuie sa apara primul. Directorul in care se gaseste comanda trebuie sa fie in variabila PATH (la fel ca si in WINDOWS). Nota In contrast cu Windows, in Linux directorul curent reprezentat prin . (punct) nu se gaseste in PATH. Pentru a executa o anumita comanda nu este suficient sa ne mutam in directorul care contine programul respectiv sau comanda si sa executam respectiva comanda. OPTIUNI pot fi scurte (o litera). Exemplu: ls -R sau pot fi combinate mai multe litere. Exemplu: ls -Fal pot fi formate din unul sau mai multe cuvinte. Exemplu: smart --ignore-locks ARGUMENTE reprezinta scopul comenzii. Pot fi fisiere sau directoare, adrese IP, nume de domenii DNS etc Nota Comenzile se scriu cu litera mica, iar argumentele pot fi cu litera mica sau litera mare, de cele mai multe ori cu litera mica. Litera mica difera intotdeauna de litera mare. Important Apasarea tastei TAB o singura data dupa primele caractere dintr-o comanda sau fisier, are ca efect completarea comenzii sau a fisierului daca comanda sau fisierul se identifica unic. Apasarea tastei TAB de 2 ori determina afisarea tuturor comenzilor sau a fisierelor care incep cu literele scrise deja. Daca tasta TAB nu completeaza comanda sau fisierul inseamna ca fisierul sau comanda nu exista ori sunt scrise partial gresit. Este foarte important sa se foloseasca tasta TAB pentru auto-completare atat pentru cresterea eficientei cat si pentru elimitarea erorilor. Comenzile ls si less 1. Comanda ls Una dintre cele mai folosite comenzi in Linux este ls (list). Aceasta afiseaza informatii diverse despre fisiere si directoare. ls OPTIONS FILE - listeaza continut -l listare lunga, sortare dupa nume -F afiseaza tipul fisierului -t sortare dupa mtime -h human readable -i afiseaza inode -R afiseaza recursiv

-S sortare dupa marime -d afiseaza informatii despre director in loc de continutul acestuia -c afiseaza ctime (in combinatie cu -l) -u afiseaza atime (in combinatie cu -l) -a afiseaza hidden files 2. Comanda less Intreaga configuratie a unui sistem Linux, fie ca ne referim la servere care ruleaza, firewall sau la rezolutia monitorului se gaseste aproape exclusiv in fisiere text. Una dintre sarcinile cele mai frecvente ale unui admin este vizualizarea diferitelor fisiere text. Cea mai folosita comanda pentru vizualizare care se gaseste pe orice distributie de Linux sau chiar de Unix este less. less FILE - afiseaza continut fisier text In timpul vizualizarii continutului fisierului putem folosi urmatoarele taste: enter space d u /sir ?sir n N g G q h afisare urmatorul rand afisare urmatoarea fereastra afisare urmatoarea jumatate de fereastra afisare jumatatea de fereastra anterioara cautare sir forward cautare sir backward urmatoarea aparitie a sirului aparitia anterioara a sirului salt la inceputul fisierului salt la sfarsitul fisierului quit help

Runlevel Reprezinta starea in care se afla si opereaza sistemul de operare la un anumit moment dat. Exemplu: un sistem de operare Linux care intra in runlevel 0 se opreste, daca intra in runlevel 6 tocmai se restarteaza. In functie de runlevel-ul in care opereaza sistemul de operare exista anumite facilitati oferite si anumite procese care ruleaza. Un sistem de operare Linux se poate afla la un moment dat intr-un singur runlevel.

Linux runlevels Runlevel Semnificatie 0 Halt, Shut down Descriere Oprirea sistemului, aducerea lui in starea in care se intrerupe alimentarea cu energie electrica Modul administrator folosit pentru mentenanta. Nu exista retea, mediu grafic si doar sistemele de fisiere locale sunt montate. Exista un sigur user care se poate loga in sistem si anume root. Este echivalentul lui Safe-Mode din Windows Modul multi-user fara retea. Runlevel default pentru servere. Nu exista Run level default pentru Desktop Restartarea calculatorului

single-user

2 3 4 5 6

multi-user multi-user + retea N/A multi-user + retea + mediul grafic reboot/restart

Mai poate exista runlevel-ul S sau s, care nu este folosit direct ci de catre programe si scripturi care se executa cand se intra in runlevel 1. Pentru trecerea dintr-un runlevel in altul se foloseste comanda: init noul_runlevel Exemplu 1. Restartare calculator /sbin/init 6 2. Oprire calculator /sbin/init 0 3. Intrare in single-user mode /sbin/init 1 4. Revenire in runlevel 5 /sbin/init 5 Nota In cazul distributiilor bazate pe Debian precum Ubuntu runlevel-urile existente au o alta semnificatie si anume nu se diferentiaza intre runlevel 2,3,4 si 5 iar default este runlevel 2.

SISTEMUL DE FISIERE Prezentare generala

Sistemul de fisiere reprezinta modul de organizare, structurare si accesare a fisierelor, directoarelor si linkurilor pe hard disk. Modul de organizare, accesare si recunoastere a particularitatilor fiecarui sistem de fisiere cade in sarcina Kernelului. Acesta trebuie sa "ofere suport" pentru acel sistem de fisiere. In prezent Kernelul de Linux recunoaste majoritatea sistemelor de fisiere existente: fat16, fat32, ntfs, ext2, ext3, ReiserFS, nfs, smb, iso9660 etc. Pentru majoritatea distributiilor de Linux default este ext4 - Fourth Extended File System (default pentru RedHat, Fedora, Ubuntu, Mint etc) sau ReiserFS (default pentru Slackware, SuSE, Xandros, Yoper). De multe ori in studiul sistemelor de operare Unix/Linux gasim sintagma - "everything is a file". Acest lucru se refera la faptul ca fiecare program, sau dispozitiv hardware este reprezentat printr-un fisier. Nu mai exista alta modalitate de reprezentare a informatiei. In Linux fisierele sunt case sensitive - se face distinctie intre litera mare si mica. Un fisier se considera ascuns (hidden) daca numele sau incepe cu "." (punct). Exemplu /dev/sda1 reprezinta prima partitie de pe hard disk-ul primary master /dev/cdrom reprezinta CD-ROM-ul. O scriere sau o citire de pe hard disk sau CD inseamna de fapt o scriere sau citire din fisierul respectiv. In Linux un director este tot un fisier (dar special care are anumite proprietati). Sistemul de fisiere in Linux este arborescent (ca si in windows) doar ca avem un singur arbore chiar daca avem mai multe partitii sau hard disk-uri. Radacina sistemului de fisiere se numeste ROOT si se noteaza cu "/". Atentie: a nu se confunda userul numit root cu radacina sistemului de fisiere care se numeste tot root. Intre cei 2 termeni nu exista nicio legatura. FHS De-a lungul timpului s-a incercat standardizarea sistemului de fisiere pentru sistemele Unix/Linux luand nastere astfel FHS - Filesystem Hierarchy Standard. Cu toate acestea nu exista un standard general acceptat in prezent. Principalele directoare care exista in majoritatea distributiilor de Linux si Unix sunt: /sbin - utilitare pentru administrarea sistemului, multe accesibile doar lui root /bin - utilitarele sistemului care trebuie sa fie disponibile atat userilor normali cat si lui root /dev - fisiere speciale care reprezinta dispozitivele din sistem /lib - librarii de functii folosite de aplicatii, kernel etc /var - fisiere care in general isi modifica continutul (loguri, mailuri etc) /usr - o ierarhie asemanatoare cu "/" ( /usr/sbin, /usr/bin, /usr/etc ) /etc - fisierele de configurare ale sistemului, ale serverelor care ruleaza etc /root - home directory userului root /home - home directory pentru userii din sistem. Fiecare user are home directory un director in interiorul lui /home (de cele mai multe ori directorul poarta numele userului) /proc - printre functiile principale ale kernelului este si aceea de a controla dispozitivele fizice si de a coordona modul in care procesele folosesc aceste resurse. In /proc se gaseste statusul curent al kernelului cu toate informatiile pe care acesta le cunoaste. Aceste fisiere si directoare sunt create automat la butare. Ele se numesc virtuale. De aici vine si numele de "Sistem de Fisiere Virtual" (acesta

este proc). Aceste fisiere contin multe informatii utile, iar cu toate acestea dimensiunea lor este de 0 bytes. Nota Fisierele din /proc pot fi modificate pentru a configura sistemul "on-the-fly". Exemplu: echo "new-hostname" > /proc/sys/kernel/hostname /media - mount point pt. sisteme de fisiere temporare /mnt - mount point pentru sisteme de fisiere remote /lost&found - fisiere care au fost salvate in timpul unui "failure" /boot - fisiere necesare boot loader-ului, kernel-ului /opt - programe si aplicatii adaugate ulterior care nu fac parte din distributie /cdrom - mount point pt CD

Mount Point - reprezinta locul (directorul) din sistemul de fisiere UNIC in care se alipesc sisteme de fisiere de pe alte partitii locale sau externe, de pe CD-ROM/DVD-ROM, USB Stick etc. Exemplu: la introducerea unui stick usb acesta se va monta automat intr-un subdirecor al directorului /media. Respectivul subdirector se numeste mount point. Nota Partitia swap nu are mount point Structura sistemului de fisiere Sistemul de fisiere in Linux este arborescent si unic. Radacina se numeste root si se noteaza cu "/". In Linux fisierele sunt case-sensitive - se face distinctie intre litera mare si mica.

In Linux "totul este un fisier". Nu mai exista alta forma de reprezentare a informatiei. Un sistem de fisiere poate fi impartit in 4 parti distincte in urmatorea ordine: 1. Boot Block - aflat la inceputul partitiei si care contine cod (Boot Loader) pentru a incarca sistemul de operare. 2. Super Block - contine informatii actuale despre sistemul de fisiere: marimea acestuia, nr. de blocuri de date libere, locatia acestora, marimea lui inode table, nr maxim de inoduri etc. 3. Inode Table (List) - Lista statica definita initial la instalare si care nu se poate schimba si care contine inodurile din sistem. 4. Data Blocks - Datele sunt salvate in blocuri (in general 1 block = 512 bytes). Boot Block Super Block Inode Table Data Block Structura unui fisier Un fisier consta in informatia pe care acesta o contine (text, date, imagine, sunet etc) dar si o structura de date care se numeste inode (index node) si care contine informatii suplimentare despre acel fisier. Standardul POSIX stabileste ca fiecare inode sa contina urmatoarele informatii: tipul de fisier owner group owner drepturile de acces (citire, scriere, executie) pentru owner, group si others nr. de hard linkuri catre aceeasi informatie atime ctime mtime marimea unui fisier (size) pointer catre blocurile de date care reprezinta informatia tinuta de fisier. inum - nr. intreg care identifica unic fiecare inode Nota Atentie !!! Numele fisierului nu este pastrat in structura inodului.

Un director este un fisier de tip container care contine perechi de nume_fisier si inode-ul corespunzator. In momentul in care ne referim (utilizatorul sau un proces) la un fisier, kernelul cauta in structura de directoare conform cu calea relativa sau absoluta de referire la fisier, inode-ul corespunzator pentru acel nume. Fiecare inode se identifica unic printr-un numar de tip intreg numit "inode number" sau i-number. Acesta poate fi vizualizat folosind comanda ls -i Exista un nr. maxim pt. acest i-number care se defineste automat la instalarea sistemului in functie de dimensiunea partitiei si deci exista un nr. maxim de fisiere (comanda df -i). In Linux fiecarui fisier sau director i se ataseaza 3 (trei) timpi:

ctime (change time) - reprezinta data la care s-au modificat informatiile continute in inode-ul fisierului sau directorului (permisiuni, owner, group etc). Nu se refera la timpul cand au avut loc modificari ale continutului. Se afiseaza cu comanda ls -lc mtime (modify time) - data la care s-a modificat informatia din fisier. Se afiseaza cu ls -l atime ( access time ) - data la care s-a afisat continutul fisierului. Se afiseaza cu ls -lu Comanda stat afiseaza de asemenea acesti 3 timpi. Pentru modificarea celor 3 timpi ai unui fisier sau director se foloseste comanda touch touch OPTIONS FILE - listeaza continut fara optiuni -t DATE_TIMESTAMP -d DATE_STRING -a -m -r REFERENCE_FILE Nota ctime nu poate fi setat in mod expres si independent de catre user ipuri de fisiere In Unix si Linux fisierele se impart in urmatoarele categorii: 1) fisiere standard (regular files). Acestea pot fi text, executabile, binare etc 2) directoare. Acestea sunt tot fisiere care au rol de container pentru alte fisiere sau directoare. Ele reprezinta un tip special de fisier (container) folosit pentru formarea structurii arborescente. 3) link-uri. Pot fi soft links/sym links (echivalentele shortcut-urilor din windows) si hard links - se refera la aceeasi zona de date, dar identificata prin nume diferite. 4) fisiere speciale (device files). Toate dispozitivele fizice (hard disk, RAM, etc) sunt reprezentate printrun fisier. Accesul la aceste dispozitive se realizeaza prin scrierea/citirea din aceste fisiere. modifica atime, mtime si ctime cu timpul curent motifica atime si mtime cu DATE_TIMESTAMP in loc de data curenta ex: touch -t 200301231230 a.txt modifica atime si mtime cu DATE_STRING ex: touch -d '1 May 2006 10:22' /etc/group modifica doar atime cu data curenta sau cu o alta data daca este specificata ex: #touch -a -d '23 May 2006 10:22' /etc/group modifica doar mtime cu data curenta sau cu o alta data daca este specificata schimba atime si mtime cu cele ale lui REFERENCE_FILE ex: touch -r b.txt a.txt

Exista mai multe feluri de fisiere (dispozitive) speciale: a) de tip caracter - folosite pentru accesarea byte cu byte a fisierului care reprezinta dispozitivul hardware ( Exemplu:/dev/pts/0) b) de tip bloc - folosite pentru accesarea in blocuri de date a fisierului care reprezinta dispozitivul hardware ( Exemplu:/dev/sda1) c) named pipes - procesele in Linux comunica cu ajutorul unui pipe (conducta) care se creaza cu ajutorul caracterului "|". In acest mod outputul unui proces poate fi directionat ca input pentru un alt proces. Acest tip de pipe exista doar pe timpul executiei comenzii. Exista un al doilea tip de pipe numit "named pipe" introdus initial in Unix-ul de tip AT&T si care este folosit pentru comunicarea dintre procese prin

intermediul unei cozi de tip FIFO (First In First Out). Acest tip de fisier se creaza de catre administratorul sistemului pentru a interconecta 2 procese cu comanda mkfifo d) Socket (unix domain socket) este asemanator cu pipe-ul, adica se foloseste pentru a conecta doua procese. Exista o oarecare asemanare cu socketul TCP/IP chiar daca este vorba despre un alt concept. Comanda ls -lF afiseaza diferitele tipuri de fisiere folosind anumite simboluri: Simbol Descriere nimic / * @ = | fisier standard director fisier executabil (ex: /bin/ls) sym link (ex: /etc/grub.conf) socket (ex: /dev/log) - procesele scriu in /dev/log pentru a comunica cu syslogd named pipe (ex: /dev/initctl) - folosit pentru a comunica cu init

Links In Linux, comparativ cu Windows exista 2 categorii de linkuri: 1) hard links se refera la asocierea unui nume de fisier cu un inode number (asocierea va fi prezenta intr-un director). Avem astfel doua sau mai multe nume care sunt asociate cu aceeasi structura de tip inode; nr. de hard linkuri din structura inodului este incrementat de fiecare data cand se creaza un nou hard link; in momentul in care se sterge un fisier, se decrementeaza nr. hard linkurilor din inode, iar cand se ajuge la zero este dealocat inodul si marcat ca liber; nu se pot crea MANUAL hard linkuri catre directoare. Un director nou creat are default 2 hard linkuri, 2 denumiri si anume numele directorului si . din director. De fiecare data cand se creaza un subdirector, numarul de hard linkuri al directorului parinte este incrementat fiindca se creeaza o noua referinta catre acesta si anume ".." care exista in orice director. Daca un director are 17 hard linkuri inseamna ca acesta contine 15 subdirectoare. nu se pot crea hard linkuri intre fisiere de pe partitii diferite; daca fisierul initial este sters, redenumit sau mutat hard linkul nu este influentat; un hard link se creaza folosind comanda ln 2) soft links / sym links echivalentul shortcuts din Windows; daca fisierul sau directorul initial este sters, mutat sau redenumit soft linkul nu mai functioneaza; listarea continutului folosind comanda ls -F identifica un symlink dupa caracterul "@" de la sfarsitul numelui; se pot crea symlinkuri catre directoare sau fisiere de pe alte partitii; un symlink se creaza folosind comanda ln cu optiunea -s Piping & Redirectare Unix/Linux este un sistem de operare care se bazeaza pe comenzi foarte specializate care lucreaza impreuna. Astfel mai multe comenzi pot fi combinate si se poate crea astfel o comanda complexa.

Se foloseste astfel caracterul pipe "|". Exemplu ls -l | less - outputul comenzii ls -l este trimis lui less pentru paginare ls -a | sort - outputul comenzii ls -l este trimis comenzii sort care sorteaza in ordine alfabetica ps -aux | grep init Redirectarea outputului

In general scopul unei comenzi este de a trimite outputul catre standard output care este monitorul. Este posibil ca outputul unei comenzi sa fie redirectat catre un fisier care exista sau nu. Se foloseste ">" sau ">>" Exemplu ls -l /bin > /home/student/binaries.txt - creaza fisierul /home/student/binaries.txt (daca acesta exista il suprascrie) care va contine outputul comenzii ls -l /bin ls -l /sbin >> /home/stud/binaries.txt - adauga outputul comenzii ls -l /sbin fisierului/home/student/binaries.txt (daca acesta nu exista il creaza) Outputul unei comenzi poate fi redirectat in afara de standard output si catre standard error. Pentru acesta se foloseste "2>". Pentru a combina standard output cu standard error se foloseste "&>" Exemplu gcc program.c > output.txt 2> errors.txt - redirecteaza outputul compilarii fisierului program.c catreoutput.txt, iar erorile sunt redirectate catre fisierul errors.txt gcc program.c &> output.txt - redirecteaza catre fisierul output.txt atat standard output cat si standard error. Editorul VI In Unix/Linux exista mai multe editoare de text acestea impartindu-se in editoare grafice ( gedit, kate ) si editoare care ruleaza in consola ( vi, vim, emacs, joe, pico, nano etc). Editorul omniprezent pe orice sistem Unix/Linux este VI (Visual Editor). Acesta este extrem de flexibil, complex si plin de optiuni. Nota VIM (VI Improved) reprezinta o varianta imbunatatita a lui VI care ofera multe facilitati suplimentare si este de recomandat sa fie folosit atunci cand se poate. Toate regulile din VI raman valabile. In Ubuntu VIM nu este instalat default. Trebuie rulata comanda: sudo apt-get install vim

Se caracterizeaza prin 3 modalitati de operare: 1. Command Mode In momentul in care se deschide VI suntem introdusi in "command mode". Se foloseste pentru a accesa

celelalte moduri, pentru a vizualiza si edita fisierul curent, copy/paste, search etc. Pentru a schimba intre celelalte 2 moduri de operare ( Insert Mode si Last Line Mode) trebuie sa trecem prin Command Mode. Se foloseste tasta ESC. Modul comanda se foloseste pentru a sterge un caracter, un cuvant, un grup de cuvinte sau litere precum si pentru a inlocui un text. In modul command ne gasim dupa deschiderea unui fisier ( Exemplu: vim /etc/passwd) sau din celelalte moduri apasand tasta ESC. In timp ce ne aflam in modul comanda avem urmatoarele optiuni: r - replace a char x - sterge caracterul de sub cursor. cw - change word - sterge cuvantul incepand cu litera de unde este pozitionat cursorul si ne introduce in Insert Mode. dd - sterge o linie (de fapt efectul este de cut, putem face paste ulterior) 7dd - sterge 7 linii dw - sterge cuvantul de sub cursor incepand cu caracterul care se gaseste sub cursor. u - undo G - se duce la sfarsitul fisierului $ - muta cursorul la sfarsitul liniei 0(zero) sau ^(carret) - muta cursorul la inceputul unei linii :x - muta cursorul pe linia nr. x. Exemplu: :37 - muta pe linia 37 shift+v, alt+v si ctrl+v ne introduce intr-un sub mod in care putem selecta vizual un bloc de text sau mai multe randuri (valabil doar in VIM). y(yank) - echivalentul lui copy din Windows p(paste) /(slash) - search forward. ? - search backward n - urmatoarea aparitie N - aparitia anterioara ZZ (z mare, z mare) - salvare cu iesiere din fisier 2. Insert Mode Este folosit pentru a insera text in documentul curent. Pentru a intra in Insert Mode din Command Mode se pot folosi urmatoarele taste: i - insereaza inaintea caracterului de sub cursor I - insereaza la inceputul unui rand a - insereaza dupa caracterul de sub cursor A - insereaza la sfarsitul randului o - insereaza pe randul urmator. 3. Last Line Mode Se foloseste pentru a salva documentul curent, pentru revenire la varianta de la ultima salvare a fisierului sau pentru a executa diferite comenzi (text substitution, afisarea nr. de linii etc). Pentru a intra in acest mod se foloseste : (doua puncte) din Command mode.

In Last Line mode utilizatorul are la dispozitie urmatoarele comenzi: wq - write and quit q! - quit fara salvare w! - salvare fara quit e! - undo set nu - numeroteaza liniile Editorul VIM foloseste fisierul de configurare ~/.vimrc si/sau ~/.exrc. Acestea pot fi modificate pentru customizarea editorului astfel incat setarile sa ramana permanente. Daca aceste fisiere nu exista se pot crea (fosind touch/vim), iar VIM le va folosi. Comenzi de baza In Linux exista peste 400 de comenzi folosite pentru managementul sistemului. Nu toate sunt insa utilizate pentru taskurile zilnice ale unui administrator de sistem. Mai jos ne-am propus sa explicam cele mai folosite comenzi din Linux. O intelegere buna a acestora este extrem de importanta pentru a putea avansa in studiul unui sistem de operare Linux. Important Cunoasterea tuturor comenzilor si a tuturor optiunilor acestora este imposibila chiar si pentru cei mai experimentati admini. Documentatia comenzilor se gaseste in man page-uri care trebuie folosite intesiv in momentul in care se doreste aflarea efectului unei comenzi sau a unei optiuni a comenzii. Exemplu: man ls

pwd - Print Working Directory Afiseaza directorul curent. Nu are optiuni sau argumente. cd - Change Directory Schimba directorul curent. cd NEW_DIRECTORY - mutare in directorul NEW_DIRECTORY .. = directorul parinte . = directorul curent ~ = home directory Exemplu 1. Directorul curent se schimba cu /etc/ cd /etc 2. Viitorul director curent va fi parintele directorului curent actual cd .. 3. Directorul curent devine Home Directory al userului care executa comanda. Daca se ruleaza comanda cd fara argumente se schimba directorul curent cu Home Directory. Cele 2 comenzi sunt

echivalente cd ~ cd 4. Directorul curent devine ultimul director in care ne-am aflat cd - = mutare in directorul anterior

mkdir - Make Directory

mkdir OPTIONS DIRECTORY Optiuni: -p = creaza atat directorul cat si directoarele parinte daca acestea nu exista. Daca directorul parinte nu exista comandamkdir returneaza eroare daca se foloseste fara optiunea -p -v = verbose Exemplu: mkdir /home/stud/documents/privat ls - List Listeaza continut director sau listare informatii despre fisier. ls OPTIONS FILE/DIRECTORY Detalii mv - Move Muta sau redenumeste (in functie de context) fisiere si directoare. In Linux nu exista comenzi diferite pentru mutare respectiv redenumire. mv OPTIONS SOURCE DESTINATION Optiuni: -f = force (do not prompt before overwriting) -i = interactive (prompt before overwriting) -u = update (muta doar daca sursa este mai noua ca destinatia sau destinatia lipseste) -v = verbose Exemplu 1. Muta fisierul file1.txt din /home/paul/ in /home/dan/ sub numele de file2.txt mv /home/paul/file1.txt /home/dan/file2.txt 2. Redenumire director mv /home/dan /home/andrei

cp - Copy Copiaza fisiere sau directoare din sursa in destinatie. cp OPTIONS SOURCE DESTINATION Optiuni: -i = interactiv -p = pastreaza owner, group si permisiuni pt. fisierul destinatie creat -r = copiaza recursiv (obligatoriu pentru directoare) -f = force (do not prompt before overwriting)

rm - Remove Sterge fisiere sau directoare. rm OPTIONS FILES/DIRECTORIES Optiuni: -i = interactiv -r = sterge recursiv, obligatoriu pentru directoare -f = force Nota Comanda rm (ca si comenzile asemanatoare din Windows) nu sterge efectiv informatia reprezentata de fisier ci doar marcheaza inode-ul si blocurile de date catre care acesta pointeaza ca fiind "libere pentru a fi utilizate din nou". Folosind programe speciale informatia stearsa poate fi recuperata FOARTE USOR. Programe cunoscute si folosite pentru investigarea unui sistem dupa compromiterea sa de catre un Black Hat Hacker si care contin inclusiv utilitare pentru recuperarea informatiei sterse accidental sau intentionat sunt The Sleuth Kit, Autopsy Browser si The Coroner's Toolkit (TCT). Important Un fisier sau director sters folosind comanda rm nu mai poate fi recuperat in mod standard din Recycle Bin. In Linux pentru fisierele si directoarele sterse folosind cumanda rm nu exista Recycle Bin. Un fisier odata sters nu mai poate fi recuperat in mod conventional.

shred Sterge securizat fisiere. shred OPTIONS FILES Exemplu

Suprascrie fisierul a.txt cu date aleatoare de 100 ori (optiunea -n) dupa care il sterge. shred -vu -n 100 a.txt

touch Creaza un fisier gol daca FILE nu exista sau reseteaza atime, mtime si ctime pentru FILE daca acesta exista. touch OPTIONS FILE Detalii cat Concateneaza si/sau afiseaza continutul unui fisier cat OPTIONS FILES Optiuni: -b = no. of nonblank lines -n = no. of output lines Exemplu 1. Afiseaza fisierul /etc/passwd la consola cat /etc/passwd 2. Concateneaza fisierele /etc/passwd si /etc/shadow in fisierul /home/dan/passwd-shadow pe care il si creaza daca nu exista sau il suprascrie daca exista. cat /etc/passwd /etc/shadow > /home/dan/passwd-shadow

more & less Programe de paginare. more FILE less FILE Detalii head Afiseaza primele linii (default 10) dintr-un fisier head OPTIONS FILE Optiuni: -n nr = afiseaza primele 'nr' linii

tail Afiseaza ultimele linii (default 10) dintr-un fisier tail OPTIONS FILE Optiuni: -n nr = afiseaza ultimele 'nr' linii -n +nr = afiseaza incepand cu linia 'nr' -f = afiseaza in timp real ultimele linii dintr-un fisier. tail -f fisier este cea mai importanta comanda pentru urmarirea modificarii in timp real a logurilor. Exemplu 1. Afiseaza fisierul /etc/passwd incepand cu linia nr. 5 si pana la final tail -n +5 /etc/passwd tail -n 5 /var/log/auth.log 3. Afiseaza in timp real ultimele 10 linii din fisierul cu loguri /var/log/auth.log tail -f /var/log/auth.log

strings Afiseaza caracterele printabile/ascii dintr-un fisier binar. strings FILE Exemplu: strings /bin/ls wc Afiseaza nr. de randuri, caractere sau cuvinte dintr-un fisier wc OPTIONS FILE Optiuni: -l = nr. de linii -w = nr de cuvinte -m = nr de caractere Exemplu: 1. Afiseaza nr. de useri din sistem wc -l /etc/passwd 2. Afiseaza nr. userilor logati in sistem who | wc -l file

Determina tipul fisierului file OPTIONS FILE Optiuni: -p = preserve atime du - disk usage Afiseaza marimea unui fisier sau director du OPTIONS FILE Optiuni: -k = adauga prefixul KB -s = sum (summarize) -h = human readable format Exemplu: du -ksh /etc/ df - disk free Afiseaza spatiul total, spatiul ocupat si spatiul liber de pe fiecare partitie de pe hard disk. df OPTIONS Optiuni: -h = human readable -i = print used/free inodes Exemplu: df -hi cmp - compare Compararea a 2 fisiere fara afisarea diferentelor dintre ele. cmp FILE1 FILE2 diff Compara FILE1 si FILE2 dupa continut si afiseaza diferentele diff OPTIONS FILE1 FILE2 Optiuni: -i = case insensitive -B = ignora liniile goale (blank lines) -w = ignora spatiile libere (white spaces) -c = comparare detaliata

-y = afiseaza pe coloane stat - statistics Afiseaza informatii despre FILE (size, type, atime, mtime, ctime) stat FILE history Afiseaza comenzile din history history OPTIONS Optiuni: -c = sterge comenzile din history -d nr = sterge linia nr. din history which Cauta si afiseaza calea catre o comanda which whereis Cauta si afiseaza calea catre o comanda, man page sau sursa whereis uptime Afiseaza timpul de cand hostul este pornit precum si load-ul din ultimul minut, ultimele 5, respectiv ultimele 15 minute uptime date Afiseaza/modifica data date free Afiseaza informatii despre RAM si SWAP free OPTIONS

Optiuni: -t = total -m = MB -k = KB

uname Afiseaza informatii despre sistem (kernel version etc) uname OPTIONS Optiuni: -a = all info -s = kernel name -r = kernel release -v = kernel version -m = machine -p = processor -o = operating system Exemplu: uname -a uname -s -r -v -m vmstat - virtual memory statistics Afiseaza informatii despre despre memorie, cpu, I/O blocks etc vmstat Informatiile afisate sunt documentate in man page-ul comenzii. ifconfig - Interface configuration Afiseaza informatii despre interfetele de retea. Se foloseste si pentru a seta caracteristicile interfetelor de retea (IP, Network Mask, MAC etc). ifconfig OPTIONS INTERFACE Exemplu 1. Afiseaza informatii despre toate interfetele (active sau inactive) ifconfig -a 2. Afiseaza informatii doar despre interfetele active ifconfig 3. Afiseaza informatii doar despre interfata eth0 ifconfig eth0

Nota Pentru exemple referitoare la modul in care se pot seta parametri placii de retea folosind comanda ifconfig cititi sub-capitolul Configurare retea din capitolul TCP/IP & Networking.

netstat Afiseaza informatii despre porturile deschise precum si despre conexiunile existente. netstat OPTIONS Optiuni: -t = porturile tcp -u = porturile udp -p = afiseaza numele programului(client sau server) care foloseste portul -a = all -n = afisare numerica Exemplu: netstat -tupan lshw Afiseaza informatii despre hardware. Exemplu: lshw | less lspci Afiseaza informatii despre dispozitivele PCI. acpi -V Afiseaza informatii despre baterie in cazul laptopurilor. iftop Afiseaza informatii despre conexiunile din retea inclusiv Bandwidth. Se poate folosi si pe post de "Bandwidth Meter". In cazul in care nu este instalat default trebuie rulat: sudo apt-get install iftop Exemplu: iftop -i wlan0 -B -P -n wodim -prcap Afiseaza informatii despre capabilitatile CD/DVD Rom.

Nota Multe exemple din aceasta pagina au folosit fisierul /etc/passwd. Acesta este unul dintre cele mai importante fisiere din sistem in care se gasesc utilizatorii sistemului, cate unul pe fiecare linie,

impreuna cu multe informatii despre acestia.

Regular Expressions O expresie regulata (regex) reprezinta o modalitate (metoda) de identificare a unui string (sir de caractere) dintr-un text dat conform anumitor reguli. Un regex este reprezentat fizic printr-un string format din caractere speciale. Reguli: 1. Blocul fundamental reprezinta un singur caracter si se selecteaza pe sine 2. O expresie paranteza patrata (bracket expression) reprezinta o lista de caractere cuprinsa intre "[" si "]" si descrie un singur caracter din acea lista. 3. Daca primul caracter este ^ (caret) descrie orice caracter care nu se gaseste in lista. Exemplu: regex-ul [0123456789] - reprezinta o singura cifra iar [^0123456789] reprezinta orice caracter care nu este cifra. 4. In interiorul unei expresii paranteza patrata un "range expression" reprezinta 2 caractere separate prin -(minus) si selecteaza(identifica) orice caracter care se gaseste intre cele 2 caractere din range expression. 5. ^ (caret) in afara parantezelor drepte reprezinta un metacaracter care identifica inceputul unei linii (daca este primul caracter din regex). 6. $ reprezinta un metacaracter care identifica sfarsitul unei linii (daca este ultimul caracter din regex) Exemplu ^ab - linie care incepe cu ab ab$ - linie care se termina cu ab ^$ - linie goala ^a[a-z0-9] - linie care incepe cu "a" urmat de orice caracter intre "a" si "z" sau "0" si "9" 7. backslash ("\") urmat de un caracter special selecteaza caracterul special respectiv. Caractere speciale sunt: ., *, [, \ (punct, asterisc, paranteza dreapta deschisa si backslash). Caracterul special "." (punct) selecteaza orice caracter mai putin NEWLINE (linie goala) 8. "?" (semnul intrebarii) selecteaza 0 sau 1 caractere anterioare 9. * (asterisc) selecteaza zero (0) sau mai multe caractere anterioare 10. + (doar pt. expresii regulate extinse) selecteaza caracterul anterior o data sau de mai multe ori 11. {n} Elementul precedent este selectat de n ori (exact) 12. {n,} Elementul precedent este selectat de n sau mai multe ori 13. {n,m} Elementul precedent este selectat de cel putin n ori dar nu mai mult de m ori Cand folosim acolade trebuie sa le precedam cu backslash ("\") Exemplu 1. Gasirea tuturor liniilor care contin un string de tip CNP dintr-un fisier numit file1 (se presupune ca un CNP incepe cu 1,2 sau 7 pentru cetatenii straini rezidenti). grep '[127][0-9]\{12\}' file1 Daca se doreste gasirea tuturor liniilor care contin DOAR string de tip CNP se foloseste "^" pentru ancorarea regex-ului la inceput de rand si "$" pentru ancorarea regexului la sfarsit de rand. grep '^[127][0-9]\{12\}$' file1 2. Sa se creeze un fisier care sa contina toate fisierele si doar fisiere (de tip regular file)

din /etc eliminand liniile goale liniile care contin cuvantul 'total' sau liniile care afiseaza directoare ls -lR /etc/ | egrep -v '(^$|^total|^/)' > etc_content Comenzile find si grep 1. find Comanda find cauta fisiere si directoare dupa criterii complexe in mod recursiv find [path...] [expression] Daca unul dintre argumente este numeric si are valoarea n se poate folosi: +n for greater than n -n for less than n n for exactly n

-type f = tipul este fisier -type d = tipul este director -user uname = userul este uname -group gname = grupul owner este gname -maxdepth nr = specifica cate nivele in jos, in structura de directoare sa caute. Default este infinit, cauta recursiv pana la ultimul subdirector -links n = fisierul are n hard link-uri -perm mode = permisiunile fisierului sunt exact mode (octal or symbolic). -perm -mode = all of the permission bits mode are set for the file. -perm +mode = any of the permission bits mode are set for the file. -size n = marimea fisierului este n (poate fi folosit ca sufix c=bytes, b=blocuri de 512 bytes,k=kilobytes, M=megabytes, G=gigabytes). Se poate folosi +n = mai mare decat n, -n mai mic decat n -inum inode_number = fisierul are nr. inod inode_number -name FILE = cauta dupa nume folosind -atime n = continutul fisierului a fost accesat acum n*24 ore in urma. Partea fractionara se ignora -ctime n = inodul fisierului a fost modificat acum n*24 ore in urma. Partea fractionara se ignora -mtime n = continutul fisierului a fost modificat acum n*24 ore in urma. Partea fractionara se ignora -amin n = continutul fisierului a fost accesat acum n minute in urma. Partea fractionara se ignora -cmin n = inodul fisierului a fost modificat acum n minute in urma. Partea fractionara se ignora -mmin n = continutul fisierului a fost modificat acum n minute in urma. Partea fractionara se ignora Exemplu 1. Cauta recursiv fisiere cu dimensiunea mai mare de 2M care-l au owner pe root find / -size +2M -user root -type f 2. Cauta fisierele din /etc care nu-l au owner pe root find /etc -not -user root 3. Cauta fisierele din /home/data care contin denumirea Linux in nume, 2 nivele (subdirectoare) in jos find /home/data -maxdepth 2 -name Linux 4. Cauta fisierele din / care au permisiunea SUID setata (alte detalii in capitolul Permisiuni speciale)

find / -type f -perm -4000 5. Cauta fisierele din /home al caror continut s-a modificat in ultimele 2 zile find /home -type f -mtime -3 -> -3 inseamna mai mic strict ca 3 adica modificat in ultimele 2*24 ore, iar partea fractionara din timpul asociat fisierului se omite. 6. Cauta fisierele din /home al caror continut a fost accesat in ultimele 24 ore find /home -type f -atime 0 - partea practionara se ominte. Un fisier care a fost accesat in ultimele 0.6 zile se considera ca a fost accesat in ultimele 0 zile. Criteriile comenzii find sunt asociate folosind SI logic (optiunea -a care este default) si SAU logic ( -o). 2. locate Fisierele pot fi cautate de asemenea folosind comanda locate. Aceasta comanda nu cauta direct in sistemul de fisiere ci cauta intr-un fisier de tip index care trebuie creat anterior. Pe Ubuntu fisierul este /var/lib/mlocate/mlocate.db. Modificarea fisierelor pe hard disk (stergere, creare de noi fisiere, redenumire) nu actualizeaza in timp real mlocate.db. Comandaupdatedb este cea care actualieaza indexul folosit de comanda locate cu situatia reala de pe hard disk. In general comandaupdatedb se ruleaza in mod automat din cron o data pe zi. Avantajul comenzii locate este rapiditatea cu care sunt gasite fisierele, iar dezavantajul este lipsa optiunilor complexe de cautare. locate [options] FILE -b = basename - cauta doar in numele fisierului nu si in sirul de caractere reprezentat de PATH -w = wholename (default) - cauta in tot stringul reprezentat de PATH -e = exists - verifica si existenta fisierului. Nu le afiseaza pe cele sterse din momentul ultimei rulari a lui updatedb -i = ignore case -r = regex - cauta folosind regular expressions (acestea sunt prezentate intr-o sectiune speciala) Exemplu 1. Cautare fisierele care contin doar in nume stringul 'config' locate -b 'config' 2. Cautare fisierele care contin atat in nume cat si in PATH stringul 'linux'. Va gasi de exemplu atat un fisier numit linux-77.txt cat si un fisier numit ubuntu.txt daca acesta se gaseste intr-un director numit linux (ex: /etc/linux/ubunt.txt - stringul linux e in PATH) locate -w 'linux' 3. Cauta folosind regular expressions locate -b -r '^abc.txt$'

3. grep grep [options] PATTERN [FILE...] - cauta sabloane de text (string patterns) in FILE sau in outputul unei comenzi

-i = ignore case -n = line number din fisierul in care a fost gasit patternul -R = recursive -v = invert match -w = cauta numai cuvinte -H = afiseaza numele fisierului in care a fost gasit pattern-ul Exemplu 1. Cautare cuvantul 'nameserver' in toate fisierele din /etc/ grep 'nameserver' /etc/* 2. Cautare cuvantul 'root' in /etc/passwd cu afisarea numarului liniei pe care se gaseste grep -n 'root' /etc/passwd 3. Cautarea tuturor proceselor numite httpd care ruleaza ps -ef | grep httpd

S-ar putea să vă placă și