Sunteți pe pagina 1din 23

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

Laborator 1
Notiuni introductive despre GNU/Linux

1. Istoric Linux
La bazele scrierii Linux sta incercarea de realizare a sistemului de operare
Multics (Multiplexed Information and Computer Service), initiata de Bell
Laboratories (divizie de cercetare a AT&T) in cooperare cu Massachusetts Institue of
Technology.
Proiectul a esuat, insa unul dintre programatorii implicati in proiect continua
lucrul la proiect denumindu-l Unics (Uniplexed Information and Computin Service),
schimbat apoi in UNIX. Sistemul a fost scris initial in limbaj de asamblare si rescris
mai apoi (pentru portabilitare) in C. Prima versiune de Unix lansata pe piata a fost
versinea firmei SUN (Stanford University Network), numita SunOS, soft proprietar.
Richard Stallman, (fost programator la MIT, insa MIT crea doar soft proprietar)
porneste proiectul GNU (antilopa din Africa de Sud simbol al libertatii, in acelasi
timp acronim pentru GNU is Not Unix) cu scopul de a crea un sistem de operare
complet FREE. Richard Stalmann si colaboratorii sai realizeaza shell-ul, avand nevoie
de kernel. Acesta a fost realizat de un student finlandez, Linus Torvaldis, bazandu-se
pe cartea Operating Systems si pe sistemul de operare Minix ale lui Andrew
Tanenbaum (profesor la o universitate din Olanda). Sistemul de operare astfel creat cu
kernelul realizat de Linus Torvaldis si cu utilitarele si programele GNU va purta in
continuare numele de GNU/Linux, denumit, in general, in mod gresit, doar Linux.

2. Filosofia Open Source


Despre Open Source oricine poate ajuta si contribui

Termenul de open source descrie practicile de productie si dezvoltare care


promoveaza accesul la sursele produselor finale. Conceptul de open source se poate
aplica in orice domeniu al lumii electronice sau orice domeniu de productie (ca de
exemplu bauturi, mancare, medicina, farmacie, cercetare si altele). In lumea digitala, se
folosesc termeni ca open source software sau open source hardware.
Software liber. Ce inseamna? Care sunt beneficiile? Ce inseamna copyleft?

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

Termenul free din free software nu se refera la pretul softwareului, ci la libertatea


oferita utilizatorului. Trebuie sa retinem de aici ca free software nu inseamna software
gratis ci software cu sursa deschisa ce poate fi completat, dezvoltat dupa nevoile
utilizatorului.
Software-ul liber ofera urmatoarele privilegii:

programul se poate rula dupa dorintele utilizatorului, in orice scop;

utilizatorul are libertatea de a modifica programul pentru a i se potrivi nevoilor.


(pentru ca aceasta libertate sa poata fi aplicata in practica, utilizatorul trebuie sa aiba
acces la codul sursa, din moment ce modificarea unui program fara a dispune de codul
sursa este extrem de dificila);

utilizatorul are libertatea de a redistribui copii, fie gratis fie pentru o taxa;

utilizatorul are libertatea de a distribui versiuni modificate ale programului, astfel


incat intreaga comunitate sa poata beneficia de imbunatatiri;
Software-ul liber ofera posibilitatea de a lua o bucata de software disponibila si
de a o modifica/particulariza astfel incat sa iti satisfaca cerintele.
Software-ul cu sursa deschisa (software ce este disponibil sub forma de cod)
reprezinta o modalitate pentru ca diferiti oamani sa colaboreze pentru dezvoltarea de
software fara a fi incurcati de problema proprietatii intelectuale, fara a trebui sa
negocieze contracte si a implica avocati.
Cea mai cunoscuta licenta de software open source este cea oferita de fundatia in
fintata de Richard Stallman Free Software Foundation, licenta numia GNU General
Public License (prescurtata GNU GPL).

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

3. Prezentare Linux
- sistem open-source: Aceasta este principala diferenta intre Linux si
Unix, Unix fiind un sistem de operare proprietar cu sursa inchisa.
- sistem multi-utilizator;
- sistem multi-tasking;
- portabilitate: ruleaza pe procesoare de 32 si 64 de biti si pe
aproape toate platformele hardware existente.
- distributii:
O distribuie Linux este un sistem de operare construit din nucleul Linux i o
serie de pachete asortate, precum Sistemul de Ferestre X i software din proiectul
GNU, de exemplu. Exista sute de distributii Linux.
Cele mai cunoscute, raspandite si ingrijite (este important ca distributia aleasa sa
fie sustinuta de o comunitate open source ca aceasta sa fie in continua dezvoltare)
distributii Linux sunt:
-

Distributii bazate pe Debian:


o

Ubuntu;

Knoppix (foloseste ca interfata utilizator mediul desktop KDE);

Gnoppix (fofloseste desktop GNOME).

Distributii bazate pe Ubuntu:


o

Kubuntu (foloseste implicit desktop KDE);

Xubuntu;

Lubuntu (varianta Light consuma mai putin resurse);

Kiwi Linux;

Linux Mint

Distributii bazate pe Red Hat Enterprise:


o

Fedora (varianta free de la RedHat Enterprise);

Scientific Linux (si varianta Scientific Linux for CERN)

Si lista continua. Pentru o vedere mai completa:

tp://ro.wikipedia.org/wiki/List_a_distribuiilor_Linux#Dis httribu.C8.9Bii_bazate_pe
_Debian

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

4. Instalare Linux
In trecut, sistemele de operare bazate pe Linux erau mai putin accesibile, pentru
instalarea lor fiind nevoie de cunostinte de lucru in mediu text. Astazi, majoritatea
distributiilor se instaleaza in mod asemanator Windows-ului, in mediu grafic,
utilizatorul selectand optinuile dorite.
Pentru instalare, trebuiesc create urmatoarele partitii:
-

Partitia de boot (sistem de fisiere ext4, partitie primara, aprox 100 MB)
Partita de swap:
o
nu este obigatorie, este o partitie folosita ca memorie virtuala ce
creste performantele sistemului de operare;
o
se recomanda sa fie aproximativ 2x RAM;
partita de root (/);
partita pentru Home.

5. GRUB (Grand Unified Bootloader ) Boot


loader si boot manager
Boot Loaderul este primul program executat n momentul butrii unui calculator.
Acesta este responsabil s transfere controlul ctre kernelul sistemului de operare.
Acesta din urm ncarc ntreg sistemul de operare. Boot Loaderul se instaleaz ntr-un
singur sector al hard disk-ului numit sector de boot.
Exist 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.
Procesul de butare (booting) reprezint ncrcarea/copierea sistemului de
operare de pe Hard Disk n RAM i executarea de ctre acesta a diferitelor func ii
pentru iniializarea dispozitivelor hardware (recunoaterea plcii grafice pentru afiare
la monitor, stabilirea rezoluiei monitorului, montarea sistemelor de fiiere de pe hard

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

disk, iniializarea porturilor seriale, usb, iniializarea mouse-ului i a tastaturii


etc. Detalii).
Structura unui sector de boot:

Grub este instalat automat de multe distributii de Linux.

6. Programe si utilitare pentru Linux


Majoritatea distributiilor de Linux vin cu pachete de utilitare suficiente pentru un
utilizator de baza (editor de texte, browser pentru Internet, player media, client de chat,
program de arhivare, ...)

Windows

Linux

Microsoft Office

OpenOffice
LibreOffice

Winamp

Amarok
Banshee Media Player

Internet Explorer

Firefox
Chromium
Opera

Yahoo Messenger

Notepad
WordPad

Pidgin
Gaim
Gedit
VI / VIM
Nano / Pico
LeafPad ...

Sisteme de operare

Adobe Photoshop

Laborator 1 GNU Linux:


Introducere

GIMP

Nero Burning Room


Windows Burn CD/DVD

Brasero Disc Burner


K3b

Utility
Autodesk AutoCAD
Multi dezvoltatori de software pentru Windows au realizat versiuni ce
ruleaza si pe Linux, cum ar fi:
- Adobe: Adobe Reader;
- Google Earth;
- Eclipse, NetBeans.
Pentru rularea de programe native Windows pe Linux se foloseste WINE WINdows Emulator (http://www.winehq.org/). Wine, ca majoritatea softwareului ce
ruleaza pe distributii Linux, este free software. Pentru jocuri, se foloseste WineX
pentru cele ce sub Windows ruleaza mai bine cu DirectX (pentru grafica 3-D si efecte
de sunete). WineX ruleaza si aplicatiile lui wine, deci este suficient unul dintre cele
doua, in functie de necesitatile fiecarui utilizator.
Pentru a monta partitii de Linux precum ext3 pe Windows se poate
folosi EXT2ifs.

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

Comenzi de baza in terminale


virtuale
1. Console/terminale virtuale
In Linux si Unix exista conceptul de Consola Virtuala si Terminal Virtual sau
Terminal Text.
Linux pune la dispozitia utilizatorului 7 console virtuale (logice) care pot fi
accesate folosind combinatia de taste CTRL+ALT+F1 pentru consola 1,
CTRL+ALT+F2 pentru consola 2, etc.
In consola 7 este pornit mediul grafic.
Terminal windows, terminal emulator sau terminal virtual reprezinta o consola
pornita din modul grafic.
Sunt mai multe aplicatii ce emuleaza un terminal, adica permit accesul la o
consola: Terminal, Xterm, UXTerm...
Linx este case sensitive, ceea ce inseamna ca trebuie sa avem grija atat la numele
comenzilor, cat si la numele directoarelor fisierelor din cale si la argumente cand le
scriem cu majuscula si cand nu.
Documentatie pentru fiecare comanda se gaseste in man pageul fiecarei comenzi
si se acceseaza in felul urmator:
man comanda
Nu uitati sa lasati spatu intre numele comenzii si arumente (cd .. nu cd.. ; cd..
returneaza o eroare).

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

2. Comenzi de lucru cu fisiere si directoare


1. cd change diretory
Scop: schimbarea directorului curent.
cd .. mutarea in directorul parinte al directorului curent
cd - mutarea in directorul anterior
cd ~ sau cd mutarea in directorul Home al userului logat
cd /dir1/dir2 mutarea in directorul dir2, unde dir1 se afla direct in /

2. pwd print working directory


Scop: afisarea directorului curent

3. ls list
Scop: listarea continutului unui director + informatii despre continut si director
Optiuni:
-l listare lunga, sortare dupa nume;
-F afiseaza tipul fisierelor continute;
-i afisare inode;
-S sortare dupa marime;
-d afisare informatii despre director (in loc de informatii despre continut) ;
-a afisare fisiere ascunse (fisierele ascunse sunt cele al caror nume incepe
cu .);

4. mkdir make directory


Scop: crearea de directoare noi
Optiuni:

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

p creeaza directorul dorit si directoarele din calea catre acesta in cazul in care
nu exista.

v verbose afisare detaliata.

5. touch
Scop: creare fisier nou

6. cp copy
Scop: copierea directoarelor si fisierelor
Optiuni:
-

i interactiv: intreaba utilizatorul inainte de a suprascrie;

f force: nu intreaba utiliatorul inainte de a suprascrie;

r copiaza recursiv optiune obligatorie pentru copierea directoarelor;

p pastreaza owner, grup si permisiuni pentru copia creata de la fisierul copiat.

7. mv move
Scop:

- mutarea directoarelor sau/si a fisierelor


- redenumire fisiere/directoare

Optiuni:
-

f force;

i interactive;

- u update muta doar daca sursa este mai noua decat destinatia sau destinatia
lipseste;
-

v verbose.

8.

rm remove

Scop: stergerea de fisiere si directoare


Optiuni:
- i interactiv;
- f force;
- r recursiv optiune obligatorie pentru directoare.

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

9. cat
Scop: Concateneaza si/sau afiseaza continutul unui fisier
Exemplu de afisare:
cat file
Exemplu de concatenare:
cat file1 file2 > file3
Pentru afisarea continutului unui fisier se foloseste si comanda less.

10. head
Scop: afiseaza primele 10 randuri dintrun fisier.
Optiuni:
-n nr: afiseaza primele nr linii.

11. tail
Scop: afiseaza ultimele 10 randuri dintr-un fisier.
Optiuni:
-n nr: afiseaza ultimele nr linii dintr-un fisier;
-n +nr: afiseaza incepand cu linia nr
-f: afiseaza in timp real ultimele linii dintr-un fisier se foloseste pentru
supravegherea in timp real a informatiilor modificate din loguri/rapoarte.

12. wc - word count


Scop: afiseaza numarul de linii, cuvinte si caractere dintr-un fisier.
Optiuni:
-l: pentru numarul de linii;
-w : pentru numarul de cuvinte;
-m : pentru numarul de caractere.

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

13. stat
Scop: afiseaza informatii despre fisiere (marime, tip)

14. history
Scop: afiseaza un istoric al comenzilor introduse in terminal

15. vi
Scop: deschide editorul vi

3. Exercitii
1. Deschideti aplicatia Gnome Terminal. Apasati tasta de Windows, apoi scrieti
Terminal si apasati Enter.
2. Observati forma prompt-ului din Terminal:
username@hostname:locatiacurenta>
3. Folositi comanda man pentru a afla informatii despre comanda tree.
Acum cautati cuvantul tree scriind /tree. Navigati intre rezultatele cautarii folosind
n pentru aparitia urmatoare si N pentru aparitia anterioara.
4. Aflati locatia comenzii ls folosind comanda which si a paginii de manual
folosind comanda whereis.
5. Aflati ce comanda ati putea folosi pentru a sterge un director folosind
comanda:
apropos remove
6. Mutati-va in directorul home al user-ului curent. (cd ~ / cd /home/student).
7. Afisati numele acestuia.
8. In directorul home al userului student, creati directorul S1Linux (mkdir). In
acesta, sa se creeze urmatoarele structuri arborescente de directoare:

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

9. Listati continutul directorului home al userului student folosind comenzile ls


si tree. Afisati informatii despre fiecare fisier/director din acesta folosind
listarea lunga (ls -l). Afisati dimensiunea continutului in format human
readable. Folositi comanda man ls pentru a afla informatii despre folosirea
comenzii ls.
10. Instalati folosind comanda sl folosind urmatoare comanda:
sudo apt-get install sl
Aceasta este o gluma menita a ii arata utilizatorului ca a scris gresit
comanda ls.
11. Mutati structurile realizate la punctul 3 b), c), d) in directorul s1 realizat la
punctul 3a).
12. Stergeti directorul s7 realizat la punctul 3 d) folosind comanda rmdir.
13. Stergeti directorul s1 realizat la punctul 3 d) folosind comanda rm.
14. Folosind comanda touch creati fisierele file1, file2, file3, direct in directorul
S1Linux.
Observati ca va puteti plimba printre comenzile folosite folosind sagetile (sus /
jos). De asemenea, observati ca exista functia de autocmomplete folosind tasta TAB.
Exista de asemenea cate va combinatii de taste utile pentru a completa o comanda:
- Ctrl + A: muta cursorul la inceputul comenzii editate
- Alt + . : navigheaza printre argumentele folosite in comenzile
anterioare.
15. Cu ajutorul editorului vi, scrieti in file1 numerele de la 1 la 10, cate unul pe
linie.
vi file1
apasati tasta i
scrieti cele 10 numere, cate unul pe rand, apoi apasati tasa Esc, apoi :wq.
16. Afisati continutul fisierului scris folosind comanda cat.
17. Afisati primele 5 randuri folosind comanda head / ultimele 5 randuri folosind
comanda tail.
18. Afisati primii 5 byti folosind comanda head / ultimii 5 folosind comanda tail.

Sisteme de operare

Laborator 1 GNU Linux:


Introducere

19. Afisati randurile cuprinse intre 4 si 8 folsind ambele comenzi folosite mai sus
si operatorul pipe | pentru transmiterea iesirii standard a primei comenzi ca
intrare in a doua comanda.
20. Copiati fisierele file1, fil2 si file3 in directorul s1 creat la punctul a) apoi in s2
creat la punctul b)
21. Redenumiti fisierele file1, file2, file3 din S1Linux in fisier1, fisier2, fisier3.
22. Afisati informatii despre fisier1, apoi despre file1 din s1 creat la punctul a)
folosind comanda stat.
23. Afisati spatiul ocupat de directorul S1Linux folosind comanda du. Afisati
informatii despre fiecare director din acesta, despre fiecare fisier, in format
human readable si apoi realizati o sumarizare a spatiului ocupat.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

Laborator 2
Gestiunea proceselor

1. Scurtturi n terminal
Ctrl + A
Ctrl + E
Alt + .
$_
Alt + F
Alt + B
Alt + D
Alt + Backspace
Ctrl + R cuvant

Mut cursorul la nceputul liniei


Mut cursorul la sfritul liniei
Navigheaz printre argumentele folosite
nlocuiete ultimul argument al ultimei comenzi
Mut cursorul la nceputul cuvntului precedent
Mut cursorul la nceputul cuvntului urmtor
terge cuvntul curent
terge cuvntul anterior
Reverse search
Caut n istoricul comenzilor folosite expresia cuvant
Ruleaz comanda anterioar

!!
Sgeile SUS / JOS
Navigarea ntre comenzile folosite anterior
de pe tastatur
Alt
n numele unui argument - autocomplete
Scurt recapitulare:

Listai coninutul directorului curent: ls. Realizai o listare lung a directorului curent: ls l.
Mutai-v n directorul rdcin: cd / Mutai-v napoi n directorul home al utilizatorului
curent: cd ~ sau cd /home/student. Mutai-v n directorul Documents folosind autocomplete,
adic tasta Tab, dup introducerea primelor litere ale numelui directorului. Mutai-v napoi n
home folosind cd ..
Creai n Documents structura urmtoare ntr-o singur comand folosind mkdir. Pentru
scrierea rapid nu uitai de parametrul -p:

Verificai-v munca folosind comanda tree n Documents.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

n s7 creai dou fiiere: f1 i f2 folosind comenzile touch f1 i touch f2 sau comanda touch
f1 f2. Afiai informaii despre f2 folosind comanda stat Alt + . sau stat $_ . tergei toat structura
de directoare creat anterior. Refacei-o folosind comenzile din history.

2. Procfs
Toate informatiile referitoare la procese pot fi vizualizate in sistemul de fisiere virtual procfs
localizat in /proc.
Pentru vizualizarea coninutului folosii comanda:
ls /proc
Observati structura acestui director. Exista o multitudine de directoare cu nume formate doar
din cifre. Fiecare dintre acestea stocheaza informatiile legate de procesul cu PID-ul numarul
respectiv.
In fiecare director al unui proces /proc/$PID exista o structura tipica. Intrati intr-unul dintre
acestea si faceti o listare lunga a continutului:
ls l /proc/$PID
1. Comanda ps
Comanda ps afieaz, n mod implicit, doar comenzile utilizatorului curent
Cutai n pagina de manual a comenzii ps opiunile pentru:
-

afiarea tuturor proceselor

filtrarea proceselor dup utilizator

afiarea procesului cu un anumit PID

formatarea ieirii comenzii astfel nct s includ i cmpurile: utilizator, comanda,


memorie utilizat, CPU utilizat i prioritatea procesului.

2. Comanda pstree
Rulai comanda pstree. Identificai procesele corespunztoarele terminalului curent n
arborele afiat. Afiai n dreptul fiecrui proces PID-ul acesteia. Afiai cu highlight
procesul curent. Sortai ieirea dup PID.
3. Comanda psgrep
Afiai pagina de manual a acestei comenzi. Aflai PID al procesului gedit.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

Realizai acelai lucru folosind comanda pidof.


4. Comanda kill
Rulai comanda kill l pentru a vizualiza o list de semnale posibile care pot fi transmise
proceselor.
Deschideti gedit.
Aflati pid-ul procesului gedit si rulati comanda kill -9 PID sau rulai comanda kill -9 $
(pidof gedit) echivalent cu $(pgrep gedit).
5. Comanda nohup
Deschidei din terminalul curent xeyes. Ieii din terminal folosind Ctrl + D sau exit.
Observai ce se ntmpl cu aplicaia xeyes. Deschidei un nou terminal. Deshidei xeyes
folosind comanda nohup xeyes &. Ieii din terminal i observai ce se ntmpl cu
aplicaia xeyes.
6. Comenzile nice i renice.
Comenzile nice i renice modific prioritile cu care ruleaz procesele. (nice pentru
procese care nu ruleaz nc; renice pentru procese care deja ruleaz). Prioritatea unui
proces i spune planificatorului de procese n ce ordine s aleag procesele la alocarea
timpului pe CPU. (Prioritatea modificat este cea static NI n top, prioritatea dinamic
PRI n top nu poate fi modificat de utilizatori interactivi).

3. Utilitarul TOP
ntr-un terminal rulai comanda top.
1. Apsai tasta h pentru a vizualiza opiunile utilitarului. Citii-le pe acestea i apoi apsai
orice tast pentru a putea vizualiza procesele.
2. Aflai ce rol au tastele l, t i m.
3. Afiai doar 5 procese. Afiai din nou toate procesele
4. Vizualizai doar procesele utilizatorului root folosind opiunea u. Tastai u root.
5. Sortai procesele dup memoria utilizat. Tastai f i apoi navigai cu ajutorul sgeilor pe
cmpul %mem i apsai tasta s, apoi q.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

6. Afiai primele 10 procese care consum cea mai mult memorie. Pentru acestea artai
cmpurile n ordinea urmtoare: PID, numele comenzii, memoria utilizat, CPU, timp,
utilizator, grupul utilizatorului.

4. Utilitarul HTOP
1. Instalai utilitarul htop:
sudo apt-get install htop
2. Rulai aplicaia.
3. Navigai prin meniurile aplicaiei (F1 F10).

5. Rularea proceselor n foreground / background


tim din cursul nr. 4 c procesele pot rula n foreground sau n background i c ele se pot
afla n una dintre cele 4 stri:
-

Blocked
Running
Waiting
Terminated
Utilizai comenzile bg, fg i jobs, astfel:
1. n terminalul curent rulai comanda xeyes.
2. Observai c activ este doar procesul xeyes i terminalul este inactiv.
3. Apsai combinaia de taste Ctrl+Z. Observai faptul c aplicaia xeyes nu mai este
activ nsa putei folosi din nou aplicaia de terminal.
4. Rulai comanda jobs. Observai ca xeyes se afl n background ns este oprit.
5. Pentru a porni o aplicaie n background folosii comanda bg sub forma bg
numeComand.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

Laborator 3
Editoare de text VI/VIM
Exista dou tipuri de editoare de text:
-

Editoare grafice (gedit, kate) i

Editoare care ruleaz n consol (vi, vim, emacs, joe, pico, nano)

Editoul VI este editorul care exist pe orice sistem de operare Unix, deci i n Linux. VIM VI iMproved este versiunea mbuntit a acestuia nu este instalat by default.
Editorul Vi are 3 moduri de operare:
1.
Modul Command Mode modul default, n care te afli la deschiderea editorului. Se
poate ajunge n acest mod din oricare celelalte dou moduri de operare apsnd tasta Escape. Se
folosete pentru a edita textul scris: tergere caractere, linii, cuvinte, grupuri de cuvinte, nlocuire
de text si pentru a ajunge in celelalte doua moduri de operare.
2.
Modul Insert se intr n acest mod din modul command folosind una dintre
urmtoarele taste: i/I/a/A/o i se folosete pentru introducerea de text n fiierul editat.
3.
Modul Last Line se intr n acest mod din Command mode apsnd tasta :. Se
folosete pentru ieire din editor, salvare, numerotarea liniilor scrise.

Command Mode
(Default)

Esc

i
I
a
A
o
o
Insert Mode
o

:
Esc

Last Line Mode

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

1. Comenzi uzuale pentru modul de operare Command


Mode
n momentul n care se deschide VI suntem introdui n "command mode". Se folosete
pentru a accesa celelalte moduri, pentru a vizualiza i edita fiierul curent, copy/paste, search etc.
Pentru a schimba ntre celelalte 2 moduri de operare ( Insert Mode si Last Line Mode)
trebuie s trecem prin Command Mode. Se folosete tasta ESC.
Modul comanda se folosete pentru a terge un caracter, un cuvnt, un grup de cuvinte sau
litere precum i pentru a nlocui un text.
n modul command ne gsim dup deschiderea unui fiier ( Exemplu: vim /etc/passwd) sau
din celelalte moduri apsnd tasta ESC.
In timp ce ne aflam in modul comanda avem urmtoarele opiuni:

r - replace a char

x - sterge caracterul de sub cursor.

cw - change word - terge cuvntul ncepnd cu litera de unde este poziionat cursorul
si ne introduce in Insert Mode.

dd - terge o linie

7dd - terge 7 linii

dw - terge cuvntul de sub cursor ncepnd cu caracterul care se gsete sub cursor.

u - undo

G - se duce la sfritul fiierului

$ - muta cursorul la sfritul liniei

0(zero) sau ^(carret) - muta cursorul la nceputul unei linii

:x - muta cursorul pe linia nr. x.

Exemplu: :37 - muta pe linia 37

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

2. Comenzi uzuale pentru modul de operare Insert


Este folosit pentru a insera text in documentul curent.
Pentru a intra in Insert Mode din Command Mode se pot folosi urmtoarele taste:

i - insereaz naintea caracterului de sub cursor

I - insereaz la nceputul unui rnd

a - insereaz dup caracterul de sub cursor

A - insereaz la sfritul rndului

o- insereaz pe rndul urmtor.

3. Comenzi uzuale pentru modul de operare Last Line

Se folosete pentru a salva documentul curent, pentru revenire la varianta de la ultima salvare
a fiierului sau pentru a executa diferite comenzi (text substitution, afiarea nr. de linii etc).
Pentru a intra n acest mod se folosete : (doua puncte) din Command mode.
n Last Line mode utilizatorul are la dispoziie urmtoarele comenzi:

wq - write and quit

q! - quit fr salvare

w! - salvare fr quit

e! - undo

set nu - numeroteaz liniile

4. Exerciii:
1. Deschidei tutorialul vimtutor, tastnd n terminal comanda vimtutor.

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

(Dac aceasta nu este recunoscut de sistem, rulai comanda sudo apt-get install vim i apoi
rencercai.)
Realizai comenzile din terminal i de fiecare dat notai ntr-o fi de lucru comenzile
folosite.
Model de fisa de lucru:
Command Mode (Normal)

Insert
Mode

x remove char
d delete char
h, j, k, l -

Last Line Mode


q quit
w write
wqa write and quit all
q! trash changes

2. Folosii comanda:
vim file.txt
pentru a porni Vim pentru editarea fiierului file.txt.
n ce mod de lucru v aflai?
3. Afiai o numerotare a liniilor
4. Copiai din laborator textul introductiv (pn la seciunea de Exerciii) i scriei-o n
fiierul deschis folosind comanda:+p
5. Salvai fiierul folosind comanda :w. n ce mod (de operare al vi) ai folosit comanda?
6. Folosii comanda G pentru a v plasa la sfritul fiierului, apoi :20 i apoi gg pentru a v
plasa la nceputul fiierului.
7. Cutai n textul introdus apariiile cuvntului vim. Folosii comanda /vim i navigai ntre
apariii folosind n (apariia urmtoare) i N (apariia anterioar - la fel ca n man pages
).
8. nlocuii toate apariiile cuvntului vim cu vi folosind comanda:
:%s/vim/vi/g

Sisteme de operare

Laborator 3 GNU Linux:


Editarea de text

9. Folosii comanda vsp file2.txt pentru a deschide o fereastr de editare alturat.


10. Copiai primele 10 linii ale fiierului file1.txt. Mutai-v n tab-ul nou deschis folosind
Ctrl +w i copiai-le acolo.
11. Pentru a salva ambele fiiere folosii :wqa.
12. Pentru a verifica dac exist diferene ntre cele dou fiiere folosii comanda vimdiff
file1.txt file2.txt.

5. Exerciii pe baza noiunilor din curs


1.

Creai un alias numit lsf pentru comanda ls care afieaz doar fiierele normale.

a.
Mai nti scriei comanda care afieaz doar fiierele normale (regular files). Cum se
identifica fiierele folosind comanda ls?
Folosind argumentul pentru listare lunga, tipurile de fiiere se identifica prin primul caracter
de pe fiecare rnd.
b.

Pentru a selecta doar fiierele normale folosii comanda grep n ieirea listrii lungi.

c.
Dup ce ai gsit comanda de listare a fiierelor normale creai un alias. Comanda alias
se folosete n felul urmtor:
alias nume_alias = comanda/comenzile pentru care se creeaz alias-ul
d.

Folosii alias-ul creat.

e.

Salvai ieirea comenzii ntr-un fiier numit regfiles.

f.

Afiai coninutul acestuia folosind comanda cat.

2.

Gsii toate fiierele din /etc care conin in numele lor a doua litera b

a.

Folosind comanda find cu parametrul name.

b.

Folosind comanda grep pe iesire comenzii ls /etc.

3.

Gsii toate fiierele din /etc al cror nume ncepe cu o cifr.

a.

Folosind comanda find cu parametrul name.

Sisteme de operare

b.

Laborator 3 GNU Linux:


Editarea de text

Folosind comanda grep pe ieire comenzii ls /etc.

Comenzile find i grep vor fi folosite mai n detaliu seminarul urmtor.

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