Documente Academic
Documente Profesional
Documente Cultură
Introducere n LINUX
1. Introducere teoretic
1.1. Ce este Linux ?
Linux este un sistem de operare compatibil UNIX (de fapt este o clon a acestui sistem), a
crui realizare a nceput ca un hobby al unui student finlandez, Linus Torvalds. Acesta a ncercat s
dezvolte un sistem de operare inspirat de sistemul Minix, creat de Andrew Tanenbaum. Linux este un
sistem de operare gratuit, de a crui dezvoltare se ocup programatori entuziati din toat lumea, care
i pun la dispoziie programele i comunic cu ajutorul Internetului.
Sistemul de operare, mpreun cu unele aplicaii pot fi gsite sub form de "distribuii", care
sunt o modalitate de a integra pachetele software existente pentru Linux.
Acest sistem, la fel ca majoritatea sistemelor UNIX, este scris aproape n ntregime n limbajul
C. Pentru Linux, licena sub care este distribuit (chiar dac este gratuit, are totui o licen) specific
faptul c codul surs al nucleului sistemului i a celorlalte componente poate fi obinut n mod gratuit
de pe Internet.
Acest lucru permite oricui s inspecteze i s modifice acest cod, pentru a-l mbunti sau a-l adapta
nevoiilor proprii.
2. Desfurarea lucrrii
2.1. Intrarea n sistem
Cum am spus mai nainte, Linux este un sistem de operare multiuser. Fiecare user este
identificat de sistem printr-un nume de "login" i o parol (analog cu Novell NetWare). Aplicaia cu
care ne vom conecta la server-ul Linux este telnet. Aceast aplicaie (care folosete protocolul cu
acelai nume) face din calculatorul pe care este rulat un terminal pentru server-ul Linux. Cu alte
cuvinte, calculatorul pe care lucrai reprezint doar o consol (tastatur + ecran) pentru server-ul Linux,
toate aplicaiile fiind executate de acesta. n cazul nostru, exist o diferen semnificativ fa de
Novell NetWare, unde server-ul este folosit doar pentru stocare de date, aplicaiile executndu-se pe
calculatorul pe care lucrai.
Lansnd aplicaia telnet, vei obine un prompt "login:" la care vei introduce numele de
identificare al utilizatorului (login name), i anume "linuxlab". Urmeaz apoi prompt-ul "Password: "
unde vei introduce parola "linux_lab" - fr ecou pe ecran (fr "", n ambele cazuri). Dac totul a fost
introdus corect, pe ecran va apare prompt-ul interpretorului de comenzi (shell):
linuxlab>[linuxlab]$
n Linux exist mai multe shell-uri (interpretoare de comenzi) disponibile: bash (Bourne
Again Shell), tcsh (C Shell), zsh, ksh (Korn Shell). Shell-ul folosit de noi este bash, care este i cel mai
utilizat.
n continuare vom prezenta mai multe comenzi i utilitare importante. n descrierea sintaxei
lor ceea ce este scris ntre [...] este opional, iar ceea ce este scris ntre <...> este obligatoriu.
care va afia:
Desktop
GNUstep
Xrootenv.0
linux-lab1.txt
new.xinitrc
nsmail
S ncercm acum o listare complet a coninutului directorului curent:
linuxlab>[linuxlab]$ ls -al
total 43
drwx------ 17 linuxlab users
drwxr-xr-x 6 root root
-rw-r--r-- 1 linuxlab users
-rw------- 1 linuxlab users
-rw-r--r-- 1 linuxlab users
-rw------- 1 linuxlab users
-rwxr-xr-x 1 linuxlab users
-rwxr-xr-x 1 linuxlab users
-rw-r--r-- 1 linuxlab users
-rw------- 1 linuxlab users
-rw-r--r-- 1 linuxlab users
-rw-r--r-- 1 linuxlab users
-rw-r--r-- 1 linuxlab users
drwx------ 3 linuxlab users
drwx------ 6 linuxlab users
drwxr-xr-x 2 linuxlab users
drwxr-xr-x 2 linuxlab users
drwx------ 2 linuxlab users
drwxr-xr-x 2 linuxlab users
drwxr-xr-x 3 linuxlab users
-rw-r--r-- 1 linuxlab users
drwxr-xr-x 2 linuxlab users
drwx------ 5 linuxlab users
-rw-r--r-- 1 linuxlab users
drwxr-xr-x 2 linuxlab users
drwxr-xr-x 2 linuxlab users
drwx------ 3 linuxlab users
drwxr-xr-x 5 linuxlab users
drwxr-xr-x 5 linuxlab users
-rw-r--r-- 1 linuxlab users
-rw-r--r-- 1 linuxlab users
drwx------ 2 linuxlab users
Pentru a afla informaii despre sintaxa i semantica comenzii ls, ca de altfel a majoritii
comenzilor, tastai "man <comand>", n cazul nostru "man ls". Aceast comand va afia paginile de
manual pentru comand respectiv.
Fiind un sistem de operare multiuser, este normal s existe mecanisme de protecie a fiierelor.
Exist trei tipuri de drepturi de acces care se pot pune pe un fiier i trei categorii de utilizatori crora li
se adreseaz. Cele trei drepturi sunt: de citire (r), de scriere (w) i de execuie (x). Categoriile de
utilizatori crora li se aplic aceste drepturi sunt: utilizatorul care deine fiierul (fiecare fiier are un
proprietar), grupul din care acesta face parte i restul utilizatorilor. Grupurile de utilizatori folosesc la
mprirea utilizatorilor pe categorii, care au drepturi comune pe anumite fiiere. Un utilizator poate
face parte din mai multe grupuri.
S analizm n detaliu una din liniile ieirii comenzii "ls -l":
drwxr-xr-x 5 linuxlab users
drwxr-xr-x: primul caracter reprezint tipul fiierului (n cazul nostru d=fiier director; dac
era -, nsemn fiier obinuit). Mai sunt i alte tipuri, pe care le vom discuta mai trziu ; wxr: drepturile
celui care deine fiierul (are drept de scriere, de citire i de execuie), urmtoarele trei caractere: -xr
reprezint drepturile grupului din care face parte cel care deine fiierul (n cazul nostru, drept de
execuie i de citire, nu are drept de scriere), ultimele trei caractere reprezentnd drepturile celorlaltor
utilizatori (la fel ca ale grupului).
n Linux, fiierele executabile nu sunt recunoscute de sistem dup extensie, ci dup flag-ul "x"
- executabil. La crearea unui fiier de comenzi (analog cu fiierele .BAT din MS-DOS), pentru a-l putea
executa, trebuie s-i setai flag-ul "x" (cu comand "chmod"), cel puin pentru una din cele trei
categorii de utilizatori menionate mai sus.
5: numrul de blocuri alocate pentru fiier
linuxlab: deintorul fiierului (numele de login)
users: grupul care deine fiierul.
1024: dimensiunea fiierului (pentru un director, aceasta depinde de numrul intrrilor n
acesta)
Sep 9 10:59: data i ora crerii fiierului
Desktop: numele fiierului
n respectarea acestor drepturi se ntlnesc dou excepii: utilizatorul "root" - administratorul
de sistem - are drepturi depline asupra oricrui fiier, indiferent de drepturile setate. La fel se ntmpl
cu deintorul unui fiier, care are drepturi depline asupra acestuia.
Drepturile oricrui fiier se pot modifica cu comand "chmod". Schimbarea deintorului unui
fiier se face cu comand "chown". Pot s fac aceste lucruri: utilizatorul "root", deintorul fiierului,
toi cei care au drept de scriere asupra fiierului. Detalii despre aceste comenzi le putei obine cu "man
chmod", respectiv "man chown"
Pentru a filtra ieirea comenzii ls, precum i n multe operaii cu fiiere, este posibil folosirea
aa numitelor "wild cards", caractere care pot nlocui unul sau mai multe caractere. Acestea sunt:
"*" - nlocuiete un grup de caractere. Exemplu: "ls ap*" listeaz fiierele ale cror nume
ncep cu caracterele "ap"
"?" - nlocuiete un singur caracter.
"[...]" - Exemplu: "ls ap[a-f]m": va lista toate fiierele care au primele dou caractere ale
numelui "ap", urmtorul caracter poate fi orice ntre "a" i "f", inclusiv, i ultimul caracter "m".
2.2.2. cd [<cale>]
Aceast comand este echivalent cu cea din MS-DOS (change directory) - schimb directorul
curent. Spre deosebire de MS-DOS, cile n UNIX se construiesc folosind ca separator ntre directoare
caracterul "/". De exemplu, dac dorii s intrai n directorul Desktop, dai comand cd Desktop. Dac
dorii, de exemplu, s vedei ce fiiere exist n directorul "usr/doc" din rdcin, dai comand "cd
/usr/doc". Calea curent, n care v aflai, poate fi aflat cu comand "pwd".
!Atenie: Linux este un sistem de operare "case-sensitive", adic face diferena ntre minuscule i
majuscule. De pild, desktop este diferit de Desktop.
Fiecare utilizator are un director de baz, n care i ine fiierele personale, precum i alte
fiiere de configuraie personalizate (home directory). Exist cteva nume de directoare predefinite:
"~" reprezint home-directory-ul utilizatorului curent. Comand "cd ~" sau "cd" ne duce n
directorul "/home/linuxlab". Putem verifica acest lucru cu comand "pwd" (ne afieaz calea curent).
De exemplu, calea "~/Desktop" este interpretat, n cazul nostru, ca "/home/linuxlab/Desktop".
".." reprezint directorul printe. "cd .." (atenie, se las spaiu ntre "cd" i "..") ne duce cu un
nivel mai sus n ierarhia de directoare.
"." reprezint directorul curent "cd ." ne las n acelai loc, ns "." are o utilizare special:
cnd este dat o comand, shell-ul o caut doar n directoarele specificate de variabila sistem PATH.
Dac dorii s executai o comand care se afl n directorul curent (care nu este inclus n PATH),
tastai ./<comand>.
/var - fiiere care se pot modifica (de exemplu, fiiere de tip jurnal (log))
/root - directorul de baz pentru utilizatorul "root"
/home - conine cte un director pentru fiecare utilizator - fiiere personale. n cazul nostru, "home
directory" este /home/linuxlab
/tmp, /var/tmp, /usr/tmp - fiiere temporare.
foloseasc caracterele cu codul ASCII mai mare de 127), este necesar ca programele s tie parametrii
fiecrui tip de terminal. Acest lucru se realizeaz printr-un fiier corespunztor fiecrui terminal, cu
date despre acesta, coninut ntr-o baz de date a terminalelor, terminfo. Identificarea terminalului se
face prin variabila de sistem TERM (Exemple de terminale: vt100, vt 102, Linux, x-term). Setarea
variabilei TERM cu alt valoare dect cea a tipului de terminal (sau a emulrii de terminal) utilizat
poate duce la o comportare imprevizibil a terminalului. De asemenea, unele terminale au mai multe
posibiliti dect altele (De exemplu, nu toate terminalele au tastele F1-F12, sau altele au doar F1-F10
etc. Aceste taste sunt cteodat asignate altor taste - de ex. pe numpad)
!Atenie! Tipul terminalului, n cazul celor aflate la distan, nu este dat de calculatorul pe care
se lucreaz, ci de soft-ul care face emularea de terminal.
PID TTY
TIME CMD
00:00:00 bash
00:00:00 startx
516 tty1
520 tty1
537 tty1
547 tty1
551 tty1
560 tty1
561 tty1
627 tty1
682 tty1
00:00:00 xinit
00:00:09 wmaker
00:00:06 netscape-commun
00:00:00 netscape-commun
00:00:09 gnp
00:00:01 gnome-terminal
00:00:00 gnome-pty-helpe
00:00:00 gtcd
00:00:00 ps
"agare" proces
ntrerupere
ieire din proces
instruciune ilegal
execuie pas cu pas a procesului
instruciune de I/O, ntrerupere
eroare magistral
excepie de virgul mobil
omorre proces
definit de utilizator
violare segmentare
definit de utilizator
scriere n pipe
alarmare ceas de gard
terminare proces
Un semnal poate produce asupra procesului destinaie unul din cele trei efecte:
- poate rezulta o aciune implicit a sistemului de operare. Aceast aciune va determina terminarea
procesului destinaie.
- semnalul poate fi capturat de ctre procesul destinaie, rezultnd execuia unei rutine specificat
anterior de acel proces. n acest caz, semnalul este considerat ca un tip special de ntrerupere software,
rutina actionnd ca rutina de tratare a ntreruperii.
- semnalul poate fi ignorat. Procesul destinaie nu ii va modifica n nici un fel comportarea dup
primirea semnalului.
<termen>", care caut n paginile de manual cuvntul <termen> i afieaz toate comenzile ale cror
pagini de manual conin acest termen.
- utilitarul texinfo - apelat cu comanda "info <comand>" - este un sistem care seamn mai
mult cu sistemele de help moderne. Informaia este ierarhizat. Pentru multe comenzi exist i pagini
de manual, i fiiere pentru texinfo. n principiu, n pagina de manual corespunztoare este menionat
faptul c documentaia texinfo este mai complet i mai actual (de exemplu, tot ceea ce ine de
compilatorul de C)
- alte documentaii din directorul /usr/doc. Foarte utile sunt documentaiile din directorul
/usr/doc/HOWTO. Fiierele din acest director sunt de fapt nite ghiduri pentru realizarea unor lucruri
specifice (de exemplu, dac dorii s stii cum se poate realiza o intergrare ntre Linux i retelele
Novell, citii IPX-HOWTO; dac dorii s instalai o plac de sunet, citii Sound-HOWTO; dac dorii
s configurai partea de reea, citii Ethernet-HOWTO, NET-3-HOWTO; pentru configurarea modemului i conectarea la un ISP (Internet Service Provider), citii PPP-HOWTO, Serial-HOWTO etc.)
- manualele din cadrul LDP (Linux Documentation Project) - directorul /usr/doc/LDP:
"Linux Installation and Getting Started Guide",
"Linux Network Administrators Guide"
"Linux System Administrators Guide"
"Linux Programmer's Guide"
Aceste manuale sunt n format html, ele putnd fi citite cu lynx sau netscape. Versiuni n alte
formate pot fi obinute de pe Internet (sunsite.unc.edu/pub/ Linux/docs/LDP/)
3. ntrebri i aplicaii
3.1. Afiai coninutul arborelui de directoare (toate fiierele i toate directoarele). Creai un fiier care
conine aceste nume. Modificai drepturile acestui fiier astfel nct s nu poat fi accesat (citit) de toi
utilizatorii, ci doar de utilizatorul curent i de cei care fac parte din grupul users. De asemenea, dai
drept de scriere pentru membrii grupului users.
3.2. Ce alte modaliti mai sunt de a scrie un text ntr-un fiier, n afar de vi ?
3.3. Creai un fiier executabil care s furnizeze coninutul directorului curent, procesele care sunt
rulate n sistem precum i informaii despre utilizatorii conectai. Cu ajutorul acestui fiier, creai alt
fiier care s conin toate aceste informaii.
3.4. Creai un director, cu numele linkxx, unde nlocuii xx prin 2 cifre arbitrare, asftel nct numele
directorului s fie unic i creai n el dou legturi simbolice la cele dou fiiere create la punctele 3.1.
i 3.3.