Documente Academic
Documente Profesional
Documente Cultură
Presupun=nd c` este acceptat, utilizatorul g1s1e1 de pe ma[ina helios se afl` \n directorul propriu (/home/g1s1e1, echivalent cu semnul ~) iar prompterul $ indic` faptul c` sistemul este gata s` primeasc` o comand`. Ie[irea din sistem se poate face cu comanda logout, dar [i exit cu efect similar (la alte sisteme UNIX este valabil [i CTRL-D).
[g1s1e1@helios g1s1e1]$ logout Red Hat Linux release 8.0 (Psyche) Kernel 2.4.18-14 on an i686 helios login:
De obicei o sta]ie UNIX func]ioneaz` non-stop, av=nd ata[at` o surs` de tensiune neintreruptibil` UPS (Uninterrupted Power Supply), ma[ina ram=n=nd \n func]iune chiar dac` to]i utilizatorii au ie[it din sistem. Dac` totu[i se dore[te
Copyright Virgil Dobrota 2013, All rights reserved 1
oprirea definitiv`, atunci se poate da comanda CTRL-ALT-DEL sau reboot \n urma c`reia au loc urm`toarele evenimente:
reboot: sending all processes the TERM signal ... reboot: sending all processes the KILL signal ... Unmounting file systems... Done.
2. Crearea unui nou utilizator [i schimbarea parolei Crearea unui nou utilizator poate fi f`cut` numai de c`tre administratorul sistemului, denumit root, sau echivalentul acestuia. Prompterul este \n acest caz # \n loc de $. |n Red Hat 8.0 utilizatorul prime[te automat la creare o parol` care poate fi eliminat`, ca \n exemplul urm`tor:
[root@helios root]# adduser g1s1e1 [root@helios root]# passwd -d g1s1e1 Removing password for user g1s1e1 passwd: Success [root@helios root]#
Presupunem \n continuare c` utilizatorul g1s1e1 are parola Parola, pe care dore[te s` o schimbe. Vom introduce mai \nt=i parola veche \n mod gre[it (de exemplu parola \n loc de Parola), iar a doua oar` \n mod corect. De notat c` parolele nu apar tip`rite \n clar [i c` \n orice versiune de Linux (sau UNIX \n general), utilizarea literelor mari \n locul celor mici [i invers nu este echivalent`, duc=nd la schimbarea semnifica]iei comenzii respective. S` presupunem c` noua parol` va trebui s` fie Ghici.
[g1s1e1@helios g1s1e1]$ passwd Changing password for user g1s1e1 Changing password for g1s1e1 (current) UNIX password: ****** passwd: Authentication token manipulation error [g1s1e1@helios g1s1e1]$ passwd Changing password for user g1s1e1 Changing password for g1s1e1 (current) UNIX password: ****** New password: ***** BAD PASSWORD: it is too short New password:
Aceasta nu a fost acceptat` fiind prea scurt` (trebuia s` con]in` minim 6 caractere). |n general parola nu trebuie s` se bazeze pe numele utilizatorului, pe cuvinte din dic]ionar [i trebuie s` aib` suficiente caractere diferite. S-a ales atunci noua parol` Ghicitoare:
[g1s1e1@helios g1s1e1]$ passwd Changing password for user g1s1e1
Copyright Virgil Dobrota 2013, All rights reserved 2
3. Director propriu, director curent Pentru Linux un fi[ier poate fi un document (text), o comand` executabil`, un dispozitiv periferic (de exemplu floppy disk, adic` /dev/fd0), un dispozitiv fictiv (/dev/null, un fel de gaur` neagr` \n sensul c` orice date trimise aici sunt ignorate) sau un director. Spre deosebire de DOS, stabilirea c`ii unde se g`se[te un fi[ier se va face exclusiv cu semnul /. De exemplu vom ilustra lansarea binecunoscutului fortune, aflat \n /usr/games, care afi[eaz` la fiecare apelare un proverb sau o maxim`. Cu comanda pwd (Print Working Directory) se poate determina directorul curent \n care ne afl`m, iar cu cd (Change Directory) se face schimbarea lui. Intruc\t comenzile sunt perfect similare cu cele din DOS nu sunt necesare explica]ii suplimentare. Singurele reguli \n plus se refer` la lucrul cu directorul propriu, care pentru utilizatorul g1s1e1 este /home/g1s1e1. |n general referirea la acesta se face prin semnul ~. Revenirea \n directorul propriu se poate face [i cu comanda cd, f`r` nici un alt parametru. |ntreruperea execu]iei unui program \n Linux se poate face cu CTRL-C, iar suspendarea cu CTRL-Z.
[g1s1e1@helios g1s1e1]$ pwd /home/g1s1e1 [g1s1e1@helios g1s1e1]$ cd /usr/games [g1s1e1@helios games]$ ./fortune Sometimes even to live is an act of courage -- Seneca [g1s1e1@helios games]$ cd .. [g1s1e1@helios usr]$ cd [g1s1e1@helios g1s1e1]$
4. Ierarhia sistemului de operare Linux Dup` o prim` familiarizare cu versiunea Red Hat 8.0 este necesar` prezentarea ierarhiei fi[ierelor sistem. Afi[area se face pagin` cu pagin` [i se opre[te cu comanda :q specific` editorului de texte implicit vi. Lista urm`toare nu e exhaustiv`, unele sisteme put=nd fi configurate [i altfel.
[g1s1e1@helios g1s1e1]$ man hier Director/subdirector / /bin Semnifica]ia directorul r`d`cin`, de unde porne[te \ntregul arbore con]ine programe executabile \n modul de lucru cu un utilizator, necesare lans`rii sistemului [i repar`rii lui.
3
/lost+found /mnt /opt /proc /root /sbin /tmp /usr /usr/X11R6 /usr/X11R6/bin /usr/X11R6/lib
/usr/include/g++ /usr/lib /usr/lib/X11 /usr/lib/gcc-lib /usr/lib/groff /usr/lib/uucp /usr/local /usr/local/bin /usr/local/doc /usr/local/etc /usr/local/games
/usr/src/linux /usr/tmp
rezervate din motive istorice informa]ii de stare variabile pentru programe date variabile pentru /usr/local. fi[iere lock care se refer` la blocarea unui dispozitiv, \n format LCK.<dispozitiv>. Ele con]in un identificator de proces (un num`r zecimal reprezentat pe 10 octe]i ASCII), urmat de caracterul LF (linie nou`). diverse fi[iere log date variabile pentru /opt. fi[iere stocate \n coad` de a[teptare pentru po[ta electronic`. |nlocuie[te /var/spool/mail. sesiuni de editare vi salvate pentru a fi reutilizate ulterior fi[iere variabile pe durata rul`rii, cum ar fi cele care p`streaz` identificatorii proceselor (PID) sau informa]ii despre utilizatorii conecta]i (utmp). De regul` aceste fi[iere s\nt [terse la \nc`rcarea sistemului. fi[iere stocate \n coad` de a[teptare pentru diferite programe fi[iere stocate \n coad` de a[teptare pentru comanda at. fi[iere stocate \n coad` de a[teptare pentru comanda cron. fi[iere stocate \n coad` de a[teptare pentru tip`rire fi[iere de ie[ire stocate \n coad` de a[teptare pentru po[ta electronic` fi[iere stocate \n coad` de a[teptare pentru subsistemul de [tiri news. fi[iere stocate \n coad` de a[teptare pentru rwhod. fi[iere stocate \n coad` de a[teptare pentru programul de livrare po[ta electronic` smail fi[iere stocate \n coad` de a[teptare pentru comanda uucp. stocheaz` pe o durat` nespecificat` fi[iere temporare, ca [i directorul /tmp fi[iere din baza de date pentru NIS.
/var/spool /var/spool/at /var/spool/cron /var/spool/lpd /var/spool/mqueue /var/spool/news /var/spool/rwho /var/spool/smail /var/spool/uucp /var/tmp /var/yp
Tabelul 1. Principalele directoare/subdirectoare ale sistemului RedHat 8.0 (continuare) 5. Vizualizare con]inut directoare cu comanda ls |n directorul curent, care \nt\mpl`tor coincide cu directorul propriu, vizualizarea
Copyright Virgil Dobrota 2013, All rights reserved 7
con]inutului s`u se va face cu comanda ls. Dup` intrarea \n sistem, conform procedurilor din paragraful 1, se va studia directorul /home/g1s1e1.
[g1s1e1@helios g1s1e1]$ ls [g1s1e1@helios g1s1e1]$ ls -l total 0 [g1s1e1@helios g1s1e1]$ ls -a ./ .bash_history .kermrc ../ .emacs .less
.lessrc .term/
Fi[ierele al c`ror nume \ncepe cu . sunt fi[iere ascunse. Op]iunea -l ofer` informa]ii complete despre fi[ierele directorului respectiv, iar -a arat` fi[ierele ascunse. Cele doua op]iuni se pot combina astfel:
[g1s1e1@helios g1s1e1]$ ls total 9 drwxr-xr-x 3 g1s1e1 g1s1e1 drwxr-xr-x 9 root root -rw-rr-- 1 g1s1e1 g1s1e1 -rw-rr-- 1 g1s1e1 g1s1e1 -rw-rr-- 1 g1s1e1 g1s1e1 -rw-rr-- 1 g1s1e1 g1s1e1 -rw-rr-- 1 g1s1e1 g1s1e1 drwxr-xr-x 2 g1s1e1 g1s1e1 -la 1024 1024 0 3016 163 34 114 1024 Oct Oct Oct May Oct Nov Nov Sep 23 16 23 14 2 24 24 24 12:43 18:33 12:43 00:39 12:37 1993 1993 17:08 ./ ../ .bash_history .emacs .kermrc .less .lessrc .term/
PROBLEM~: Ce semnific` urm`torul con]inut Drepturi de acces: -rw-rr-- ? REZOLVARE: Primul caracter este - [i indic` faptul c` nu este un director, deci este un
fi[ier. Urm`toarele 3 caractere sunt rw- [i se refer` la drepturile proprietarului: citire [i scriere. Acest fi[ier nu este executabil nici m`car pentru proprietarul lui. Urm`toarele 3 caractere sunt r-- [i indic` drepturile grupului (citire \n acest caz). Ultimele 3 caractere sunt r-- [i se refer` la drepturile celoral]i utilizatori.
6. Crearea [i [tergerea directoarelor Vom crea \n directorul propriu un subdirector numit proba, folosind comanda mkdir. Apoi se va verifica execu]ia opera]iei.
[g1s1e1@helios g1s1e1]$ mkdir proba [g1s1e1@helios g1s1e1]$ cd proba [g1s1e1@helios proba]$ ls -laF total 4 drwxr-xr-x 2 g1s1e1 g1s1e1 1024 Sep 24 17:08 drwxr-xr-x 2 g1s1e1 g1s1e1 1024 Oct 23 12:43 [g1s1e1@helios proba]$
./ ../
Conform drepturilor de acces setate, [tergerea unui director cum este /home/g1s1e1/proba se face cu comanda rmdir.
[g1s1e1@helios g1s1e1]$ rmdir proba [g1s1e1@helios g1s1e1]$
7. Copierea, redenumirea [i [tergerea fi[ierelor Ne propunem ca \n noul director creat s` copiem executabilul numit fortune, dup` care se va verifica execu]ia opera]iei.
[g1s1e1@helios proba]$ cp /usr/games/fortune ~/proba [g1s1e1@helios proba]$ ls -l fortune -rwxr-xr-x 1 g1s1e1 g1s1e1 13148 Oct 23 13:12 fortune* [g1s1e1@helios proba]$ ./fortune I have discovered that all human evil comes from this, man's being unable to sit still in a room. -- Blaise Pascal [g1s1e1@helios proba]$
Schimbarea denumirii unui fisier este de fapt o copiere cu [tergerea vechii versiuni, noul fi[ier fiind mutat fie \n acela[i director, fie \ntr-altul. Presupunem c` vom muta fi[ierul fortune \n directorul propriu [i apoi \i vom redenumi fort.
[g1s1e1@helios [g1s1e1@helios [g1s1e1@helios [g1s1e1@helios proba]$ mv fortune ~ proba]$ cd .. g1s1e1]$ mv fortune fort g1s1e1]$
Ne propunem \n continuare s` [tergem fi[ierul fort din directorul propriu. Opera]ia poate fi executat` cu confirmare dac` se pune op]iunea -ir. Se recomand` verificarea [tergerii prin comanda ls.
[g1s1e1@helios g1s1e1]$ rm -ir fort rm: remove fort ? y [g1s1e1@helios g1s1e1]$ ls [g1s1e1@helios g1s1e1]$
8. Schimbarea drepturilor, a proprietarului [i a grupului Proprietarul fi[ierului sau directorului, administratorul sau echivalentul acestuia pot modifica drepturile de acces cu comanda chmod. Sunt valabile regulile din paragraful 5 la care se adaug` urm`toarele conven]ii: + pentru atribuirea unui drept, - pentru anularea lui, = pentru setarea singurelor drepturi, u pentru referire la utilizatorul curent (user), g pentru referire la grup (group), o pentru referire la ceilal]i utilizatori din afara grupului (others), a pentru referire la to]ii utilizatorii (all). O op]iune mai rar folosit` este t, care se refer` la salvarea textului programului \n zona de swap. Unii utilizatori prefer` modul de setare numeric cu 1 p=n` la 4 cifre octale (\ntre 0 [i 7). Cifrele omise se presupun a fi 0. Prima cifr` octal` are valoarea 4 (pentru selec]ie identificator utilizator), 2 (pentru selec]ie identificator grup), 1 (pentru salvare imagine text) sau se poate omite. A doua cifr` octal` are valoarea 4 (drept
Copyright Virgil Dobrota 2013, All rights reserved 10
de citire pentru proprietar), valoarea 2 (drept de scriere pentru proprietar), valoarea 1 (drept de execu]ie pentru proprietar). A treia cifr` octal` se refer` la drepturile de citire, scriere [i execu]ie ale membrilor grupului, iar ultima cifr` se refer` la drepturile celorlal]i utilizatori din afara grupului. Cumularea unor drepturi se face prin adunarea valorilor cifrei octale. De exemplu valoarea 6 reprezint` drept de citire [i de scriere iar valoarea 7 semnific` atribuirea tuturor drepturilor (citire, scriere [i execu]ie). Presupunem c` nu am [ters directorul proba [i vrem s` anul`m toate drepurile de citire, scriere [i execu]ie pentru to]i utilizatorii, inclusiv proprietarul.
[g1s1e1@helios g1s1e1]$ chmod a-rwx proba/ [g1s1e1@helios g1s1e1]$ ls -laF proba/ ls: proba/: Permission denied [g1s1e1@helios g1s1e1]$ ls -laF total 52 [] d--------- 2 g1s1e1 g1s1e1 4096 May 7 10:18 proba/
7 10:18 proba/
Schimbarea proprietarului [i a grupului din care face parte se poate realiza cu comenzile chown, respectiv chgrp. Presupunem c` noul proprietar va fi g1s1e2, iar grupul din care face parte este g1s1e2.
[root@helios [root@helios [root@helios drwxr-xr-x 2 [root@helios g1s1e1]# g1s1e1]# g1s1e1]# g1s1e2 g1s1e1]# chown g1s1e2 proba/ chgrp g1s1e2 proba/ ls -laF proba/ g1s1e2 4096 May
7 10:23 proba/
Opera]iile de mai sus pot fi executate [i de c`tre vechiul proprietar g1s1e1 dac` administratorul permite acest lucru. |n caz contrar apare mesajul:
[g1s1e1@helios g1s1e1]$ chown g1s1e2 proba/ chown: Changing ownership of proba: Operation not permitted. [g1s1e1@helios g1s1e1]$
Copyright Virgil Dobrota 2013, All rights reserved 11
De remarcat c` utilizatorul g1s1e2 va putea s` aib` acces la noile propriet`]i (adic` directorul proba) numai dac` are drept de citire [i execu]ie \n directorul propriu al lui g1s1e1, adic` \n /home/g1s1e1 . PROBLEM~: Indica]i cel pu]in dou` variante de comenzi pe care trebuie s` le execute utilizatorul g1s1e1 pentru a da drepturi de citire [i execu]ie \n directorul propriu [i altor utilizatori (inclusiv celor din grupul s`u)? REZOLVARE: Ambele variante prezentate utilizeaz` comanda chmod, pentru /home/g1s1e1 (sau prescurtat ~), ceea ce difer` fiind op]iunile. a) |n varianta 1 se folose[te op]iunea a+rx direct pentru to]i utilizatorii: [g1s1e1@helios g1s1e1]$ chmod a+rx ~ [g1s1e1@helios g1s1e1]$ b) |n varianta 2 se lucreaz` cu op]iunea o+rx pentru al]i utilizatori [i g+rx pentru
membrii grupului:
[g1s1e1@helios g1s1e1]$ chmod o+rx ~ [g1s1e1@helios g1s1e1]$ chmod g+rx ~ [g1s1e1@helios g1s1e1]$
9. Vizualizare con]inut fi[iere Dac` se dore[te afi[area pagin` cu pagin` se folose[te comanda more.
[g1s1e1@helios g1s1e1]$ more .emacs
[]
[]
10. Metode de creare de fi[iere Un fi[ier sub sistemul de operare Linux poate fi creat \ntr-unul din urm`toarele moduri:
cu comenzile cp [i mv cu un editor de texte: se va exemplifica editorul vi cu comanda cat cu comanda touch utilitare specifice Linux: mc (Midnight Commander), joe, git etc. prin rularea unor compilatoare (de exemplu crearea unui fi[ier executabil rul=nd un compilator C)
12
OBSERVA}IE: 1. Cititorului i se recomand` s` c=[tige un minim de experien]` folosind utilitarele clasice, din linia de comand`. |n felul acesta va evita disconfortul [i deruta \n momentul \n care, av=nd de lucrat cu alte sisteme UNIX (de exemplu Solaris sau FreeBSD) va constata c` nu are la dispozi]ie nici mc, nici joe sau alt utilitar specific din Linux. 2. Este util` reluarea aplica]iilor din paragrafele precedente, precum [i manualele disponibile \n re]ea. De exemplu pentru comanda cp se poate cere manualul:
[g1s1e1@helios g1s1e1]$ man cp
Printre multiplele utiliz`ri ale comenzii cat (al`turi de afi[area continu` a con]inutului unui fi[ier) este [i func]ia de editare:
[g1s1e1@helios g1s1e1]$ cat > pisica Acesta este un fisier care se numeste pisica. El a fost creat cu comanda cat. Iesirea din program se face cu CTRL-D. <CTRL-D> [g1s1e1@helios g1s1e1]$ cat pisica Acesta este un fisier care se numeste pisica. El a fost creat cu comanda cat. Iesirea din program se face cu CTRL-D. [g1s1e1@helios g1s1e1]$
11. Editorul de texte vi O aten]ie special` se acord` \n continuare editorului vi de tip Visual Display. Acesta nu este un procesor de texte, ceea ce \nseamn` c` este necesar un formator pentru a interpreta comenzile ob]inute. |ntruc=t nu se bazeaz` pe lucrul cu ferestre poate fi utilizat pe orice terminal UNIX |n continuare este dat` o list` de comenzi grupate \n Tabelul 2.
COMANDA Deplasare cursor W B W B SEMNIFICA}IA
(word) deplasare cursor la dreapta cuv=ntului (back) deplasare cursor la st\nga cuv=ntului (Word) deplasare cursor la punctua]ia adiacent` (\nainte) (Back) deplasare cursor la punctua]ia adiacent` (\napoi) Tabelul 2. Comenzi ale editorului de texte vi
Copyright Virgil Dobrota 2013, All rights reserved 13
V. Dobrot` - SISTEME DE COMUTA}IE {I RUTARE <CR> SPACE H M L (Down) deplasare cursor la un nou \nceput de r=nd mut` cursorul la dreapt` (High) mut` cursorul \n sus (Middle) mut` cursorul la mijloc (Low) mut` cursorul \n jos (Scroll Forward) \nainte (Scroll Down) jos (Scroll Backward) \napoi (Scroll Up) sus (append) ad`ugare orice [ir de caractere \n text (Append) ad`ugare orice sir de caractere la sf=r[itul liniei (insert) inserare orice [ir de caractere \n text (Insert) inserare orice [ir de caractere la sf=r[itul liniei (open) deschide noi linii sub pozi]ia cursorului (Open) deschide noi linii deasupra pozi]iei cursorului (change word) modific` cuv=ntul (change line) modific` linia (Change) modific` o parte a liniei (substitute) substituie caracter (replace) \nlocuie[te un caracter transpune un caracter (de exemplu: teh <-> the) (undo) anuleaza comanda precedent` (Undo) anuleaz` modific`rile f`cute \n linia curent` [tergere caracter [tergere cuv=nt [tergere linie [tergere parte din linie
Defilare ecran
CTRL-F CTRL-D CTRL-B CTRL-U Inserare text a A I I o O
Modificare text
cw cc C s r xp u U {tergere text x dw dd D Repetare comand` 3dd Copiere, mutare [i [tergere de text :set nu :set nonu :15,20 co 30 :15,$ co 5 :.,20 co 30 :15,20 m 30 :15,20 d :u<CR>
se execut` de 3 ori comanda dd Comenzi ce se dau \n ultima linie a ecranului, fiind un mod de lucru mai convenabil \n special pentru texte lungi. selectare afi[are cu numerotarea r\ndurilor anuleaz` efectul comenzii :set nu copiaz` liniile 15...20 dup` linia 30 copiaz` \ncep\nd de la linia 15 p\n` la sf\r[it, dup` linia 5 copiaz` de la cursor p\n` la linia 20 dup` linia 30 mut` liniile 15...20 dup` linia 30 [terge liniile 15...20 anuleaz` ultima comand` Tabelul 2. Comenzi ale editorului de texte vi (continuare)
Copyright Virgil Dobrota 2013, All rights reserved 14
V. Dobrot` - SISTEME DE COMUTA}IE {I RUTARE Inserarea unui fi[ier :16 r pisica Terminare editare :w :wq :q :q!
(write) salvare fi[ier (write and quit) salvare [i ie[ire (quit) ie[ire (daca au fost modific`ri f`r` s` fie salvate atunci vi avertizeaz` c` trebuie f`cut` fie salvare [i ie[ire, fie ie[ire f`r` modific`ri) (quit) ie[ire f`r` modific`ri Tabelul 2. Comenzi ale editorului de texte vi (continuare)
PROBLEM~: a) Descrie]i comenzile folosite pentru crearea unui fi[ier text pe 3 r=nduri, numit pisica, cu ajutorul editorului de texte vi. b) Dubla]i con]inutul fi[ierului salvat. REZOLVARE: a) Se porne[te editorul de texte vi din linia de comand` [i se d` comanda :set nu pentru a numerota liniile. Pe linia 1, se incepe inserarea textului dup` ap`sarea tastei a sau a tastei i. Ie[irea din editare se face cu ESC. Salvarea [i ie[irea din program se pot realiza simultan cu comanda :wq pisica. b) O metod` de dublare ar fi inserarea fi[ierului pisica \n interiorul fi[ierului pisica, cu comanda :3 r pisica. O alt` variant` este copierea r=ndurilor 1-3 dup` r=ndul al 3-lea, cu comanda :1,3 co 3. Rezultatul final este listat mai jos:
1. 2. 3. 4. 5. 6. Acesta este un fisier care se numeste pisica. El a fost creat cu editorul de texte vi. Iesirea din program se face cu ESC, :wq <nume-fisier> Acesta este un fisier care se numeste pisica. El a fost creat cu editorul de texte vi. Iesirea din program se face cu ESC, :wq <nume-fisier>
15