Sunteți pe pagina 1din 18

[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.

Aritoni Ovidiu

Laborator 1

Comenzi shell UNIX


Scopul acestui document este de prezenta sub forma unui tutorial principalele comenzi Unix. Nu
se doreste o prezentare exhaustiva,completa a tuturor comenzilor ci doar a celor mai des intalnite.
Deoarece in timp de doua ore cat este alocat unui laborator nu se poate parcurge intreg acest tutorial
se recomanda finalizarea studiului sau acasa, ca si studiu individual.

1. Ce este o comanda shell ?

Comenzile shell sunt utilizate pentru a “pune” sistemul de operare la treaba, spunandu-i
exact ce sa faca. Sarcinile pe care i le putem propune sitemului de operare spre rezolvare sunt din
cele mai diverse :
a) operatii cu fisiere;
b) afisarea de informatii cu privire la starea sistemului de calcul;
c) comunicare cu alte statii de lucru;

2. Cateva comnenzi shell simple

Pentru a “spune” comanda dumneavoastra sistemului de operare trebuie deschisa o consola


in care veti scrie numele comenzii. Aceasta consola se deschide urmand calea : Applications ->
System Tools -> Konsole, asa cum este prezentat in figura urmatoare :
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

Dupa ce ati deshis consola ea va arata ca in figura urmatoare :

Dupa cum se poate observa apare o linie de text pe primul rand al carei ultim caracter este $. Pe
aceasta linie fiecare entitate are urmatoarea semnificatie :

ovidiu : reprezinta numele utilizatorului care utilizeaza consola;


ovidiu-desktop : reprezinta numele statiei de calcul (calculatorului) pe care ruleaza consola si alte
programe;

Aceasta linie difera de la un calculator la altul,si de la un utilizator la altul.

Pentru a simplifica textul din acest tutorial vom reprezenta in acest tutorial linia consolei prin
simbolul $ (dolar). De aceea cand veti scrie o comanda nu mai scrieti si simbolul $ ci doar
numele comenzii asa cum este prezentat in acest tutorial.

a) date si cat
Aceasta comanda shell este folosita pentru afisarea momentului de timp exact la care se tasteaza
aceasta comanda. Rezultatul este ora si data exacta de la momentul tastarii acestei comenzi.

Atentie ! : shell-ul UNIX este case – sensitiv , adica face diferenta dintre caracterele „mici” si
„mari”, adica intre a (a mic) si A (A mare).

Tastati in consola urmatoarele doua comenzi shell asa cum este aratat in figura urmatoare:
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

sau in randurile de mai jos :

$ date

$ date > data.txt

Dupa ce ati tastat prima comanda date, consola va afisa data curenta. A doua coman shell va permite
scrierea rezultatului obtinut in urma apelarii comenzii date in fisierul data.txt . Mai exact simbolul
> (mai mare) este utilizat pentru a redirectiona rezulatul oricarei comenzi shell spre un fisier. In
acest caz rezultatul comenzii date, adica data curenta este scrisa in fisierul text data.txt . Pentru a
vizualiza continutul acestui fisier introduceti urmatoarea comanda shell in linia de comanda :

$ cat data.txt

Trebuie facuta o remarca foarte importanta legata


de directorul curent si implicit utilizat de catre
consola. La deschiderea consolei se va considera ca
si director implicit pentru consola directorul home
al utilizatorului curent. Pentru a vizualiza continutul
directorului home al utlizatorului curent puteti intra
asa cum este aratat in figura urmatoare :
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

b) whoami

Comanda shell whoami este utilizata pentru a afisa in consola numele utilizatorului curent care
lucreaza in linie de comanda.

De exemplu :

$ whoami
ovidiu
deoarece utilizatorul curent este ovidiu, asa cum reiese si din figura urmataore:

unde dupa cum am spus mai sus utilizatorul ovidiu lucreaza pe statia ovidiu-desktop.

Exercitiu : Redirectionati intr-un fisier user.txt rezultatul comenzii whoami si afisati apoi
continutul acestui fisier.

3. Intrarea / Ieşirea dintr-o sesiune de lucru UNIX

 Unix – sistem multiutilizator


Sistemul de operare UNIX permite utilizarea aceleaşi staţii de calcul pentru mai mulţi
utilizatori simultan, în acelaşi timp.Această proprietate a sistemului de operare UNIX de
utilizare simultană se poate exprima sub forma “Unix este un sistem de operare multiutilizator”.

 Noţiunea de sesiune de lucru


Pentru fiecare utilizator se poate deschide o sesiune de lucru, adica o conexiune cu o statie
de calcul UNIX care permite executarea de diferite comenzi exprimate de catre acel user.
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

Putem spune asadar ca o sesiune de lucru este un sir de comenzi unix impreuna cu
rezultatele lor, desfasurate intre intrarea in sistem si iesire.

 Login

Comanda de login este utilizata atunci cand un utilizator doreste sa se autentifice pentru a
porni o sesiune de lucru pe o statie de calcul UNIX.

 Shell-ul UNIX. Nucleu unui sitem de operare

Pana acum am folosit de mai multe ori cuvantul shell insa nu am dat o explicatie a acestuia.

Utilizand motorul de cautare preferat ( de exemplu Google) incercati sa gasiti o explicatie a


termenului de shell !

Dupa cum se poate trage observa shell – ul permite comunicarea comenzilor UNIX sistemului
de operare, mai exact nucleului sau.
Despre nucleul unui sistem de operare :
http://ro.wikipedia.org/wiki/Nucleu_(sistem_de_operare)

Shell-ul este un limbaj de comenzi care permite comunicarea cu nucleul sistemului de operare,
shell-ul nefacand parte din nucleu. Pentru executarea de diferite taskuri simple sistemul de
operare are definite o serie de apeluri sistem. Shell-ul pemite “traducerea” comenzilor simple
in apeluri sistem.

! Observatie
Exprimarea corecta este comanda shell UNIX si nu comanda UNIX. Aceasta deoarece
comenzile sunt ale shell-ului si nu ale nucleului sistemului de operare. Shell-ul UNIX nu face
parte din nucleul sistemului de operare.

Exista mai multe tipuri de shell-uri :

− bourne shell (/bin/sh)


− c_shell (/bin/csh)
− korn shell (/bin/ksh)
− menu shell;
− window shell;
− window collage;
− graphics X/Window;
− etc.

Standardul UNIX este bourne shell, numit uneori si bash.

 Prompterul Shell

Prompterul Shell permite dialogarea dintre utilizator si sistemul de operare. Acesta invita
utilizatorul sa exprime comenzile sale.
Prompterul shell Unix poate lua următoarele două forme :
$ pentru un utilizator obişnuit
# pentru un superutilizator, adică administratorul de sistem
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

 Modificarea prompterului

Valoarea implicita a prompterului este de forma user@statie-de-calcul:~$ . Aceasta valoare


poate fi modificata dupa cum urmeaza.
Introduceti comanda

$ PS1="prompterul meu >"

Studiati efectul acestei comenzi!

Pentru detalii privind configurarea prompterului si a consolei


utilizator urmati tutorialul de pe site-ul
http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html .
 Ieşirea dintr-o sesiune de lucru

Iesirea dintr-o sesiune de lucru UNIX se poate face in mai multe moduri dupa cum urmeaza :

a) Cu ajutorul comenzii shell exit


b) Cu ajutorul combinatiei de taste Control-D

 Modificarea parolei. Passwd

Pentru fiecare utilizator se creează o sesiune de lucru.


4. Sintaxa comenzilor UNIX

 Sintaxa generală
 Comenzi executate in background
 Comenzi executate în foreground

5. Comenzi simple UNIX


[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

 Comanda man

Comanda man este utilizata pentru a „arata” la prompter pagini de manual ale diferitelor
comenzi shell UNIX. De exemplu, in situatia in care nu mai stiti cu exactitate ce face comanda
„wc” veti tasta in terminal
$ man wc
dupa care vor fi afisate la terminal informatii despre aceasta comanda shell UNIX. Pentru a
parcurge pagina de manual se foloseste tasta de scroll down ( ↓ ) sau scroll up (↑ ). Pentru a „iesi”
afara din pagina de manual pentru a introduce noi comenzi folositi combinatia de taste CTRL Z.

Exercitii : pentru urmatoarele comenzi lecturati mai intai pagina de manual.

 Comanda echo. Variabile de mediu.printenv

Comanda shell UNIX echo permite afisarea la terminal a unei linii de text introduse de catre
dumneavoastra. Aceasta comanda nu permite decat introucerea unei singure linii de text.

$echo Student
Student
$

Trebuie remarcat faptul ca aceasta comanda omite simbolurile ' (quote) si „ (ghilimele jos)
respectiv ” (ghilimele sus).

Exemplu
$ echo 'Ana are mere'
Ana are mere
$ echo „Ana are mere”
Ana are mere
Aceasta comanda permite introducerea de text pe mai multe randuri utilizand ' sau „ .

Exemplu

$ echo 'Ana are mere


> care nu sunt coapte'
Ana are mere
care nu sunt coapte
$ echo ”Ana are mere
> care nu sunt coapte”
Ana are mere
care nu sunt coapte

Pentru afisarea caracterelor ” se va folosi constructia ' ”text” ' , iar pentru afisarea ' se va utiliza ”

$echo ' ”text” '


”text”
$echo "'text'"
'text'

Comanda permite introducerea de comenzi care ulterior sa poata fi executate. De exemplu


[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

$ echo `
> ls
> mkdir Teste
> ls> foldere.txt
>`
Dupa executarea acestor comenzi puteti vizualiza fisierul foldere.txt si veti observa existenta
folderului Teste nou creat, precum si continutul noului fisier.

Comanda echo este adeseori utilizata pentru scrierea de scripturi UNIX scurte.In acest sens veti gasi
exemple in laboratoarele urmatoare.

Comanda echo permite de asemeni evaluarea valorilor diferitelor variabile de mediu.

O variabila de mediu este un obiect cu nume propriu , care contine informatii folosite de una sau
mai multe aplicatii , de exemplu : stocarea optiunilor si a parametrilor care personalizeaza mediu de
executie . Aplicatiile pot obtine accesul la valorile variabilelor de mediu si isi pot ajusta
comportamentul in consecinta . De exemplu programele care sunt rulate din linia de comanda sunt
cautate in directoarele continute in variabila de mediu numita PATH .

Exemple de variabile de mediu

- $HOME: directorul alocat la intrarea in sesiune


- $PATH: lista directoarelor unde se caută pt. execuţia unei comenzi
- $PS1: def. prompter-ul asociat utilizatorului: # - supervizor, $ - utilizator
- $LOGNAME: numele utilizatorului
- $MAIL: numele directorului de poştă
- $SHELL: numele programului SHELL
- $TERM: tipul terminalului

Pentru a afisa valoarea variabilei de mediu HOME este suficienta comanda

$echo $HOME
Comanda shell UNIX echo permite afisarea mai multor varibile de mediu in acelasi timp.

Ca si exercitiu incercati sa afisati pe linii diferite trei variabile de mediu.

Comanda printenv este utilizata pentru afisarea tuturor variabilelor de mediu.

$ printenv
SSH_AGENT_PID=4924
TERM=xterm
SHELL=/bin/bash
GTK_RC_FILES=/etc/gtk/gtkrc:/home/ovidiu/.gtkrc-1.2-gnome2
WINDOWID=48234503
USER=ovidiu
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;3
3;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01
;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;3
1:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pb
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

m=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;
35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl
=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;
35:
GNOME_KEYRING_SOCKET=/tmp/keyring-7sTtyL/socket
SSH_AUTH_SOCK=/tmp/ssh-oUzbtS4882/agent.4882
SESSION_MANAGER=local/ovidiu-desktop:/tmp/.ICE-unix/4882
USERNAME=ovidiu
KONSOLE_DCOP=DCOPRef(konsole-6254,konsole)
DESKTOP_SESSION=default
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
GDM_XSERVER_LOCATION=local
KONSOLE_DCOP_SESSION=DCOPRef(konsole-6254,session-1)
PWD=/home/ovidiu
LANG=en_AU.UTF-8
GDMSESSION=default
HISTCONTROL=ignoredups
HOME=/home/ovidiu
SHLVL=1
LANGUAGE=en_AU:en
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=ovidiu
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-
lptbnuh5iH,guid=d19cec488f09fa192898ca4663899500
LESSOPEN=| /usr/bin/lesspipe %s
DISPLAY=:0.0
LESSCLOSE=/usr/bin/lesspipe %s %s
COLORTERM=
XAUTHORITY=/home/ovidiu/.Xauthority
_=/usr/bin/printenv

Exercitii :

1. Scrieti intr-un fisier date.txt, utilizand comanda echo si procedeul de redirectare a iesirii, o
fraza pe mai multe randuri care sa explice rolul comenzii echo.
2. Scrieti intr-un fisier environment.txt variabilele de mediu, utilizand comanda printenv si
redirectarea iesirii.

 Comanda cat

Comanda cat este utilizata pentru concatenarea diferitelor fisiere si afisarea rezultatelor astfel
obtinute la iesirea standard.

Exemplul 1

1. Creati doua fisiere a.txt si b.txt, cu ajutorul comenzii echo si a redirectarii iesirii. Fisierul
a.txt va contine o descriere de 2-3 randuri a comenzii cat, iar fisierul b.txt va contine o
descriere a comenzii printenv.
2. Afisati continutul fisierului a.txt.
3. Afisati continutul fisierului b.txt.
4. Afisati folosind aceeasi instructiune cat continutul celor doua fisiere.
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

5. Concatenati continutul celor doua fisiere in fisierul c.txt si afisati continutul acestuia.
$ echo "Comanda cat
> - este utilizata pentru afisarea simpla a continutului unui fisier
> - pentru concatenarea continutului a doua fisiere
> " > a.txt
$ echo "Comanda printenv
> - este utilizata pentru afisarea valorilor tuturor variabilelor de mediu
> " > b.txt
$ cat a.txt
Comanda cat
- este utilizata pentru afisarea simpla a continutului unui fisier
- pentru concatenarea continutului a doua fisiere

$ cat b.txt
Comanda printenv
− este utilizata pentru afisarea valorilor tuturor variabilelor de mediu$ cat a.txt b.txt
Comanda cat
- este utilizata pentru afisarea simpla a continutului unui fisier
- pentru concatenarea continutului a doua fisiere

Comanda printenv
− este utilizata pentru afisarea valorilor tuturor variabilelor de mediu

$ cat a.txt b.txt > c.txt


$ cat c.txt
Comanda cat
- este utilizata pentru afisarea simpla a continutului unui fisier
- pentru concatenarea continutului a doua fisiere

Comanda printenv
− este utilizata pentru afisarea valorilor tuturor variabilelor de mediu

Exemplul 2

Comanda cat este folosita pentru a scrie in fisiere. Pentru a iesi din modul de scriere, se utilizeaza
combinatia de taste CTRL Z.

$cat > text.txt


Acesta este un text,
care este scris cu ajutorul comenzii cat.

[2]+ Stopped cat >text.txt


$ cat text.txt
Acesta este un text,
care este scris cu ajutorul comenzii cat.
$

Aceasta comanda shell UNIX are diferite optiuni. Acestea vor fi explicate in continuare.
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

O prima optiune se refera la numararea liniilor. Asadar pentru a numara liniile unui fisier se
foloseste optiunea -n.

Exemplul 3
Se foloseste fisierul text, anterior creat text.txt. Pentru acest fisier se va realiza afisarea lui, indicand
pentru fiecare rand numarul de ordine al acestuia.

$ cat -n text.txt
1 Acesta este un text,
2 care este scris cu ajutorul comenzii cat.
$

Exista de asemeni si posibilitatea de a introduce un text nou, si de asemeni pntru acest text numarul
de ordine al fiecarei linii nou introduse.

ovidiu@ovidiu-desktop:~$ cat -n > program.c


#include <stdio.h>
int main()
{

printf("Buna ziua!");
}
[7]+ Stopped cat -n >program.c
ovidiu@ovidiu-desktop:~$ cat program.c
1 #include <stdio.h>
2 int main()
3 {
4
5 printf("Buna ziua!");
6 }
ovidiu@ovidiu-desktop:~$

Optiunea -E permite afisarea caracterelui $ la sfarsitul fiecarei linii a fisierului text.

$ cat -E program.c
cat -E program.c
1 #include <stdio.h>$
2 int main()$
3 {$
4 $
5 printf("Buna ziua!");$
$

Comanda -t permite punerea in evidenta a tab-urilor folosite la redactarea unui text.


[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

$cat -t program.c
cat -t program.c
1^I#include <stdio.h>
2^Iint main()
3^I{
4^I
5^Iprintf("Buna ziua!");

Optiunea -A este folosita pentru a indica atat tab-urile dintr-un text cat si sfaristul de linie, fiind o
combinatie a optiunilor -t si -E.

$ cat -A program.c
cat -A program.c
1^I#include <stdio.h>$
2^Iint main()$
3^I{$
4^I$
5^Iprintf("Buna ziua!");$

 Comanda who

Comanda shell UNIX who este folosita pentru a indica utilizatorul care foloseste la acel moment
terminalul UNIX. In forma simpla comanda este utilizata pentru a arata ce utilizator este logat la
acel calculator si momentul la care s-a logat pentru prima data. Eventual pot apare informatii despre
redeschiderile ulterioare ale acelui utilizator.

$ who
ovidiu :0 2008-10-08 14:43

 Comanda whoami

Aceasta comanda printeaza identificatorul utilizatorului care a deschis acea sesiune de lucru.

Exemplu

$whoami
ovidiu

 Comanda w

Aceasta comanda este utilizata pentru a indica persoanele care sunt autentificate in sistem si de
asemeni indica ce fac acesti utilizatori,mai exact :
− timpul curent;
− de cat timp este pornita aceasta masina UNIX;
− cati useri sunt logati;
− incarcarea medie a masinii UNIX respective,exprimata , pentru ultimul minut, ultimele 5 minute
respectiv utlimele 15 minute;
− utilizatorul autentificat pe acest terminal, locatia ,momentul de la care este autentificat acest
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

utilizator, etc.
Pentru alte amanunte studiati pagina de manual a comenzii w.

$w
19:44:58 up 5:02, 1 user, load average: 0.24, 0.15, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ovidiu :0 - 14:43 ?xdm? 4:53m 0.69s x-session-manager

 Comanda finger

 Comanda date
Dupa cum a fost explicat anterior aceasta comanda shell UNIX este folosita pentru a indica ora si
data curenta. Merita descrise cateva optiuni interseante ale acestei optiuni in continuare.
Optiunea -u este folosita pentru a afisa timpul universal :

$ date -u
Wed Oct 8 17:04:11 UTC 2008

Pentru detalii privind timpul universal : http://ro.wikipedia.org/wiki/Ora_universal


%C4%83_coordonat%C4%83

De asemeni aceasta comanda permite setarea date si a orei, dupa cum urmeaza :

$date --set="Thu Dec 15 11:33:56 PST 2005"


date: cannot set date: Operation not permitted
Thu Dec 15 21:33:56 EET 2005

Daca sunteti autentificat ca si administrator, atunci aceasta comanda va permite setarea timpului.

 Comanda cal
Aceasta comanda shell UNIX permite afisarea calendarului. Daca comanda este transmisa in mod
simplu, fara nici un parametru afiseaza calendarul lunii curente.Daca insa se specifica o anumita
luna, sau an atunci comanda va permite afisarea calendarului lunii sau a anului respectiv.
Specificarea se face in limba engleza.
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

ovidiu@ovidiu-desktop:~$ cal
October 2008
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ovidiu@ovidiu-desktop:~$ cal october 2004


October 2004
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
ovidiu@ovidiu-desktop:~$ cal 2008
2008

January February March


Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1
6 7 8 9 10 11 12 3 4 5 6 7 8 9 2 3 4 5 6 7 8
13 14 15 16 17 18 19 10 11 12 13 14 15 16 9 10 11 12 13 14 15
20 21 22 23 24 25 26 17 18 19 20 21 22 23 16 17 18 19 20 21 22
27 28 29 30 31 24 25 26 27 28 29 23 24 25 26 27 28 29
30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30

July August September


Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2 3 4 5 6
6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1 2 3 4 5 6
5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

 Comanda banner

Comanda banner este utilizata pentru a afisa la terminal un anumit mesaj, sub forma unui text de o
anumita dimensiune, mult marita,sau care poate fi specifcata de utilizator.

$ banner -w 50
Message: A
#
#
###
######
# #####
####
## ####
## #####
## #####
## #####
## ############
## ##############
## ##############
##############
# ###############
# ###############
#############
##########
######
##
#

Comanda -w permite introducerea latimii pe care se va exprima mesajul specificat.

6. Comenzi pentru lucrul cu fişiere şi directoare

 Comanda ls
Aceasta comanda este utilizata pentru afisarea continutului de directoare si fisiere a folderului
curent.Folderul curent este la deschiderea aplicatiei konsolei directorul numit „Home Folder”.
Acesta poate fi identificat apeland din meniu : Places-> Home Folder.

Executati simplu comanda ls :


$ ls
a.txt Examples rap+fig.pdf
BadetBonneauRapportTER.pdf foldere.txt Script_folii.pdf
b.txt Java Teste
c.txt lctes05.pdf test.txt
date.txt program.c text.txt
Desktop proiect-client-server tutorialUnix1.doc
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

Este important de remarcat faptul ca aceasta comanda permite afisarea continutului unui director
furnizat ca si parametru. De exemplu pentru a afla contintul directorului Desktop, adica ce se afla pe
desktopul dumneavoastra executati comanda
$ ls Desktop

Toate comenzile pe care le utilizeaza un user sunt de fapt anumite programe executabile care se
gasesc in anumite directoare. De exemplu comenzile de baza pe care le pot executa toti utilizatorii
se gasesc in directorul /bin. Comenzile de baza pe care numai utilizatorul root are dreptul sa le
execute se gasesc in directorul sbin, iar in directorul /usr/sbin se pot identifica comenzile unor
servicii sau programe instalate de catre dumneavoastra (in /usr/sbin nu se gasesc comenzi vitale).

Folosind comanda ls si informatiile despre „directoarele de comenzi”, asa cum a fost expus in
paragraful de mai sus realizati trei fisiere :
comenziUSER.txt – acest fisier va contine lista comenzilor pentru utilizatori obinsuiti.
comenziROOT.txt – acest fisier va contine lista comenzilor pentru root.
servicii.txt – acest fisier va contine lista tuturor servciilor si aplicatiilor instalate.

Aceasta comanda shell poate avea urmatoarele optiuni:


− x : permite afisarea pe orizontala a fisierelor si directoarelor din directorul curent :
$ ls -x
a.txt BadetBonneauRapportTER.pdf b.txt c.txt date.txt Desktop
endians.c~ Examples foldere.txt
Java lctes05.pdf program.c proiect-client-server proiect-client-server.7z rap+fig.pdf
Script_folii.pdf Teste test.txt
text.txt tutorialUnix1.doc

- r : afiseaza in mod invers intrarile din directorul curent.

O optiune care necesita un interes deosebit este -l.


Acesta optiune permite afisarea directoarelor si fisierelor intr-un format detaliat cuprinzand
informatii despre : drepturile asupra acelui fisier sau director, utiliztaori care pot utiliza acest fisier,
etc.

$ ls -l

-rw-r--r-- 1 ovidiu ovidiu 132 2008-10-08 16:50 a.txt


-rw-r--r-- 1 ovidiu ovidiu 1165680 2008-09-22 18:37 BadetBonneauRapportTER.pdf
-rw-r--r-- 1 ovidiu ovidiu 92 2008-10-08 16:52 b.txt
-rw-r--r-- 1 ovidiu ovidiu 224 2008-10-08 16:55 c.txt
-rw-r--r-- 1 ovidiu ovidiu 143 2008-10-08 15:44 date.txt
drwxr-xr-x 7 ovidiu ovidiu 4096 2008-10-09 21:48 Desktop

Mai jos gasiti o descriere a intrarii pentru fiecare fisier in parte.

Drepturi asupra Numarul de i-noduri Utilizatorul care Grupul de utilizatori Marimea fisierului Ultima data la care Numele
fisierului alocate acelui fisier are acces la fisier care are acces la fisier exprimata in biti fisierul a fost modificat fisierului

-rw-r--r-- 1 ovidiu ovidiu 132 2008-10-08 16:50 a.txt

Sirul de caractere care arata drepturile asupra unui fisier se exprim sub forma
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

trwxrwxrwx

unde :
t – reprezinta tipul acelui fisier. Daca avem un fisier obisnuit, atunci in locul tipul se va folosi
simbolul – (linie). Daca avem un director atunci simbolul folosit este „d”, iar daca este un limk
(short-cut) atunci se foloseste „l”. Identificati in lista dumneavoastra de intrari directaorerele si
linurile, pornind de la observatia anterioara.

In tabelul urmator se poate remarca ce semnificatie au simbolurile r , w si x pentru fisiere respectiv


directoare:

Permisiune Semnificatie pentru fisiere Semnificatie pentru directoare


r read list( in absenta dreptului comanda ls nu il vede)
w write, change create , delete (aceste operatii sunt referitoare la
subdirectoare)
x start program / script enter (in absenta dreptului nu se va putea da comanda cd
asupra directorului respectiv)

 Comenzi Shell UNIX de setare a permisiunilor de acces ale fisierelor si directoarelor

Comanda shell UNIX utilizata pentru a seta permisiunile de acces asupra fisierelor si directoarelor
este chmod. Aceasta are sintaxa sub forma simbolica:

chmod [ugoa] [+-=] [rwx] path(s)

sau sintaxa sub forma octala

chmod O1O2O3 path(s)

r=4, w=2, x=1 , -=0

 Comanda dir

Aceasta comanda este utilizata pentru afisarea fisierelor dintr-un anumit director. Daca este
executata fara nici un parametru atunci va afisa fisierele din directorul curent.

$ dir
a.txt b.txt date.txt endians.c~ foldere.txt lctes05.pdf proiect-client-server rap
+fig.pdf Teste text.txt
BadetBonneauRapportTER.pdf c.txt Desktop Examples Java program.c proiect-client-
server.7z Script_folii.pdf test.txt tutorialUnix1.doc

 Comanda cd

 Comanda pwd
[LABORATOR DE SISTEME DE OPERARE 1] Prep.Drd.Aritoni Ovidiu

Aceasta comanda permite afisarea directorului curent de lucru (pwd=”Print Working Directory”. In
continuare se va explica conceptul de director curent de lucru. La acest moment in situatia in care
dati comanda ls, vor fi afisate o serie de fisiere si eventual alte directoare. De asemeni daca veti crea
un nou fisier, dupa care veti vizualiza continutul directorului veti remarca ca noul fisier creat se
gaseste in acelasi folder, al carui continut a mai putut fi vizualizat si anterior, insa de aceasta data cu
noul fisier deja creat in plus. Aceasta inseamna ca toate operatiile legate de fisere si directoare iau in
considerare un anumit folder implicit. La deschiderea sesiunii de lucru in terminal, acest folder este
exact cel specificat de variabila de mediu HOME.

ovidiu@ovidiu-desktop:~$ echo $HOME


/home/ovidiu
ovidiu@ovidiu-desktop:~$ pwd
/home/ovidiu

Daca insa veti modifica cu ajutorul comenzii cd directorul, atunci director curent de lucru va fi cel
specificat de ultima comanda cd. Iata mai jos un exemplu :

ovidiu@ovidiu-desktop:~$ cd Desktop
ovidiu@ovidiu-desktop:~/Desktop$ pwd
/home/ovidiu/Desktop

 mkdir

Aceasta comanda permite crearea de noi directoare.

 cp

Aceasta comanda permite copiere unui fisier peste alt fisier.

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