Documente Academic
Documente Profesional
Documente Cultură
Comenzi Shell Unix
Comenzi Shell Unix
Aritoni Ovidiu
Laborator 1
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:
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 / Ieirea dintr-o sesiune de lucru UNIX
Unix sistem multiutilizator
Sistemul de operare UNIX permite utilizarea aceleai staii de calcul pentru mai muli
utilizatori simultan, n acelai timp.Aceast proprietate a sistemului de operare UNIX de
utilizare simultan se poate exprima sub forma Unix este un sistem de operare multiutilizator.
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 :
Prompterul Shell
Prompterul Shell permite dialogarea dintre utilizator si sistemul de operare. Acesta invita
utilizatorul sa exprime comenzile sale.
Prompterul shell Unix poate lua urmtoarele dou forme :
$
pentru un utilizator obinuit
#
pentru un superutilizator, adic administratorul de sistem
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 >"
Sintaxa general
Comenzi executate in background
Comenzi executate n foreground
5. Comenzi simple UNIX
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 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
$ 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. execuia unei comenzi
- $PS1: def. prompter-ul asociat utilizatorului: # - supervizor, $ - utilizator
- $LOGNAME: numele utilizatorului
- $MAIL: numele directorului de pot
- $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
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.
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.
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.
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
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.
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.
-rw-r--r--
Numarul de i-noduri
alocate acelui fisier
ovidiu
ovidiu
Marimea fisierului
exprimata in biti
132
Numele
fisierului
Sirul de caractere care arata drepturile asupra unui fisier se exprim sub forma
read
write, change
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-clientserver.7z Script_folii.pdf test.txt tutorialUnix1.doc
Comanda cd
Comanda pwd
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
cp
Aceasta comanda permite copiere unui fisier peste alt fisier.