Documente Academic
Documente Profesional
Documente Cultură
Cap 2
Cap 2
ŞI COMENZI
2.1 Generalităţi
acces la acesta prin mai multe nume. O legătură este, de fapt, o intrare
într-un director ce face redirectarea spre un fişier stocat în alt director sau
chiar spre un întreg alt director.
Directorul root are o serie de subdirectoare (ce diferă în funcţie de
implementarea UNIX), printre care cele mai importante sunt, de regulă:
"bin", "dev", "etc", "opt", "lib","mnt", "tmp","home" şi "usr".
Aceste directoare au următorul conţinut:
fie reconfigurate astfel încât o singură referinţă să fie un director real, iar
celelalte două să fie legături simbolice către acest director. Mai mult, acest
director se recomandă a fi montat separat. Deoarece utilizatorii pot scrie
fişiere de dimensiuni mari în spaţiul temporar /tmp, montarea separată
asigură protecţia directoarelor „/” şi „/usr” faţă de umplerea cu fişiere
temporare. O regulă general valabilă în acest sens este aceea că utilizatorii
nu trebuie să aibă drept de creare şi ştergere de fişiere în locaţiile „/”
şi „/usr”.
Directorul /tmp trebuie să aibă permisiuni de acces 1777, nu 777.
Dreptul de acces 777 permite ca orice utilizator să aibă drepturi depline în
directorul /tmp, în timp ce 1777 setează aşa-numitul „sticky bit” ce
înseamnă că directorul poate fi modificat sau şters doar de către proprietar.
Directorul /usr poate fi montat separat sau poate fi subdirector al lui
„/”. Subdirectoarele sale pot fi:
bin – fişiere binare
include – fişiere pentru programare
lib – biblioteci de programe
local – pachete software locale, biblioteci, fişiere include, fişiere
binare (de regulă /usr/local se montează separat pentru a nu
umple directorul /usr).
sbin – fişiere de sistem binare
share – informaţie partajată, inclusiv pagini de manual.
Directorul /var poate fi montat separat (ceea ce este recomandat) sau
poate fi subdirector al lui „/” sau „/usr”. Subdirectoarele sale pot fi:
adm – stocare fişiere log (Solaris)
crash – diagnostic în situaţii de oprire bruscă
log – stocare fişiere log (Solaris şi Linux Red Hat)
mail – zona de stocare pentru poşta electronică
spool – zona de spool pentru printare, utilitarul cron şi alte servicii
yp – zona de stocare pentru fişierul de configurare NIS.
2.2 Partiţii
Partiţiile reprezintă modalitatea de organizare a spaţiului de pe disc
la nivel jos. Partiţiile sunt independente de sistemul de operare; un sistem de
operare solid recunoaşte diviziunile la nivel jos de pe disc şi adresează
fiecare partiţie ca pe un echipament logic separat.
Sistemul de fişiere UNIX şi comenzi
a) Fişiere text
Cel mai simplu tip de fişiere îl constituie fişierul text, ce conţine
doar caractere ca acelea pe care le puteţi citi în cadrul acestui capitol. Aceste
caractere ASCII (American Standard Code for Information Interchange)
sunt literale sau caractere numerice ce reprezintă manifestarea muncii pe
Sistemul de fişiere UNIX şi comenzi
care o facem. Dacă utilizăm, spre exemplu, un editor UNIX pentru a crea un
mesaj pentru poşta electronică atunci creăm un fişier text în cele mai multe
dintre cazuri. Avem în continuare un exemplu de fişier ASCII de pe un
sistem Linux:
:.Z: : :/bin/compress -d -c
%s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
: : :.tar.Z:/bin/tar -c -Z -f -
%s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :.tar.gz:/bin/tar -c -z -f -
%s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
b) Fişiere de date
Fişierele de date sunt fişierele ce conţin date utilizate de diverse
aplicaţii de pe sistem. Dacă utilizăm un program de tipul FrameMaker
pentru scrierea unei cărţi, fişierele create cu acest program vor fi de tipul
suportat de acesta (la fel ca şi fişierele speciale de date de pe un sistem
Windows). Fişierele de date conţin pe lângă informaţia în sine (de tip text)
şi informaţii speciale de formatare. Acelaşi lucru se petrece şi în cazul unui
fişier bază de date, ce conţine atât date ce pot fi citite cât şi informaţii
specifice formatării respective.
c) Fişiere cod sursă
Fişierele cod sursă sunt fişiere ce conţin date scrise într-un limbaj de
programare precum C, C++, Java, Pascal, Fortran etc. Aceste fişiere au, de
regulă, extensii conforme cu limbajul în care au fost scrise; spre exemplu,
un program sursă scris în C va avea extensia „.c”.
d) Fişiere executabile
Fişierele executabile reprezintă programe obţinute cu ajutorul unui
compilator (sau interpretor) şi editor de legături ce pot fi rulate (executate).
Dacă încercăm să citim un fişier executabil ca pe un fişier text, vom obţine o
serie de caractere ciudate şi chiar sunete; în urma unei astfel de „citiri” se
pot pierde setările ecranului. Majoritatea comenzilor UNIX sunt programe
executabile (vezi directorul /bin).
UNIX
Directorul Descriere
/dev/cua Director pentru dispozitive seriale
/dev/dsk Director pentru dispozitive de tip bloc
(hard-discuri, CD-ROM-uri, etc.)
/dev/fd Director pentru unităţi floppy
Fişierele device de tip caracter sunt cel mai des folosite pentru
proceduri de copiere de octeţi (ca în cazul comenzii dd). Majoritatea
echipamentelor de bandă au asociate doar fişiere device de tip caracter.
Fişierele device de tip bloc sunt utilizate pentru transferul de date în blocuri
de octeţi, ceea ce este mai avantajos şi mai rapid pentru majoritatea
aplicaţiilor. Pentru varianta de UNIX Solaris, hard-discurile au asociate atât
un fişier device de tip caracter cât şi unul de tip bloc. Fiecare dintre acestea
sunt folosite în cazuri diferite. Operaţiile uzuale se fac prin intermediul
fişierelor bloc, însă crearea sistemului de fişiere se face cu ajutorul fişierelor
caracter.
Toate fişierele device standard UNIX sunt păstrate în directorul /dev
(unele implementări de Linux Red Hat păstrează acest sistem). În varianta
UNIX Solaris şi în unele noi implementări de Red Hat însă, conţinutul lui
/dev tinde să fie o combinaţie de fişiere device şi de legături simbolice către
fişiere device situate în alte directoare. Într-un astfel de sistem, directorul
UNIX
$ cd [nume_director]
Exemple:
$ cd /tmp
$ cd /usr/stud
Observaţie:
Există două modalităţi de referire a unei căi în structura de fişiere
UNIX: calea absolută şi calea relativă. O cale absolută este aceea care
pleacă din rădăcină, deci începe cu "/". Un exemplu de cale absolută este:
/usr/bin. O cale relativă nu începe cu "/", ci reprezintă o localizare relativă la
directorul curent de lucru. Căile ce încep cu „../”, „./” sau altceva diferit de
„/” sunt căi relative. Căile relative au avantajul că sunt mai scurte decât căile
absolute; pentru a le utiliza însă, trebuie să cunoaştem directorul în care ne
aflăm deoarece acesta este punctul de plecare al căii relative.
Un exemplu de cale relativă întâlnim în exemplul următor:
$ cd ../../bin
UNIX
$ cd ..
$ cd ~-
$ cd ~nume_utilizator
Comanda ls are o serie întreagă de opţiuni, fiind una dintre cele mai
folositoare şi flexibile comenzi UNIX.
Exemple:
$ ls -a
$ ls -l
$ ls -al /tmp
$ ls -ld /usr
Sistemul de fişiere UNIX şi comenzi
$ ls -F
d r w x r w x r w x
d r w x r w - r - -
- r w x r - - r - -
- r w x - - - - - -
- r - x - - - - - -
Fişiere caracter (c )
• Identifică un dispozitiv;
• Reprezintă caractere de I/O;
• Pot identifica porturi seriale, paralele (terminale, imprimante).
UNIX
Nr de legături
Proprietarul Dimensiunea în octeţi
Grupul Data Numele fişierului
Observaţie
Pe un sistem Linux, comanda ls derivă din proiectul GNU fileutils,
având o întreagă serie de opţiuni şi caracteristici speciale. Spre exemplu,
numele de fişiere pot apărea listate în culori în funcţie de tipul de fişier.
Culorile folosite la afişare sunt definite în fişierul /etc/DIR_COLORS;
acestea se pot personaliza folosind şi fişierul .dir_colors din directorul
curent home.
Formatul acestui fişier este definit în fişierul /etc/DIR_COLORS.
Pentru a afişa numele fişierelor fără culori dar cu simboluri, se pot folosi
opţiunile --color şi --classify. În mod asemănător cu opţiunea -F,
simbolurile --classify sunt următoarele: „/” pentru directoare, „*” pentru
programe, „@” pentru legături simbolice, „|” pentru fişiere de tip pipe şi „=”
pentru fişiere de tip socket.
Astfel, listingul comenzii:
$ ls --color=never --classify
studenti/ lista.sh* text.sub
semnifică faptul că studenti este director, iar fişierul lista.sh este executabil.
UNIX
Tabelul 2.6
Metacaracterul Descriere Formatul comenzii