Recent am dat peste unele comenzi Linux în timp ce mă conectez la site-ul clientului meu pentru a prelua fișierul jurnal de activitate, și, de asemenea, studiază unele dintre tipurile de fișiere Linux, și o comandă simplă pentru a ști ce este tipurile de fișiere la sistemul de operare Linux.

Linux utilizează patru tipuri de fișiere de bază:

  • fișiere obișnuite
  • directoare
  • legături simbolice
  • fișiere de bloc și fișiere de dispozitiv de caractere

Determină tipul unui fișier prin emiterea comenzii ls -l și citirea primului caracter din fiecare rând de la ieșire.
Ieșirea tipică a comenzii ls este următoarea:

$ ls -l
total 8
-rw-r-r-r- 1 root root 22 Oct 6 15:33 anormalfile
brw-rw– 2 root disk 41, 0 May 5 1998 blockdev
crw-rw-rw-rw- 2 root root root 5, 0 May 5 1998 characterdev
drwxr-xr-x 2 root root 4096 Oct 6 15:33 subdir
lrwxrwxrwxrwx 1 root root 11 Oct 6 15:35 symbolic -> anormalfile

Arhivele ordinare încep cu o liniuță (-), directoarele încep cu d, legăturile simbolice încep cu caracterul l, dispozitivele de bloc sunt precedate de caracterul b, iar dispozitivele de caractere încep cu litera c.

Fișiere ordinare
Un fișier obișnuit poate fi format din orice tip de date, inclusiv programe executabile. Majoritatea fișierelor din sistemul de fișiere Linux sunt de acest tip.

Directoare
Un director este un fișier care conține alte fișiere și directoare și care oferă pointeri către acestea.
Realizează o funcție similară cu cea a unui dosar dintr-un dulap de arhivare, în sensul că vă permite să grupați fișiere înrudite într-un mod organizat. Cu toate acestea, în timp ce dosarele pot conține în mod normal numai fișiere, directoarele pot conține directoare suplimentare, denumite adesea subdirectoare.

Legături simbolice
O legătură simbolică – sau soft – indică numele și locația unui fișier complet separat. Astfel, atunci când deschideți, copiați, mutați sau faceți referire în alt mod la legătură, operațiunea este de fapt efectuată asupra fișierului la care se face referire. Această distincție este de obicei invizibilă pentru utilizator. Dacă fișierul la care se face referire este eliminat sau redenumit, legătura este întreruptă și apare o eroare dacă încercați să îl deschideți.

De asemenea, puteți crea legături dure. O legătură dură indică datele reale dintr-un fișier exact în același mod în care o face un fișier obișnuit. Prin urmare, în afară de nume, nu există nicio diferență între fișierul original și o legătură dură care indică aceleași date și ambele pot fi considerate fișiere obișnuite. Puteți distinge un hard link de orice alt fișier obișnuit doar prin numărul de legături pe care le are fiecare dintre ele. Numărul de legături este afișat în al doilea câmp al unei liste ls -l. Dacă acest număr este mai mare decât unu, atunci știți că există legături dure suplimentare cu datele.

Filele de dispozitiv
Toate dispozitivele fizice pe care le folosește Linux sunt reprezentate de fișiere de dispozitiv.
Filele de dispozitiv pot fi clasificate ca fiind speciale de caractere sau speciale de blocuri. Fișierele speciale de caractere reprezintă dispozitive care interacționează cu Linux pe bază de caracter cu caracter, sau în serie. Imprimantele și terminalele sunt exemple de acest tip de dispozitiv. Fișierele speciale de tip bloc reprezintă dispozitive cum ar fi hard disk-urile sau dischetele și CD-ROM-urile, care interacționează cu Linux folosind blocuri de date.

Toate fișierele de dispozitiv sunt conținute în directorul /dev – de exemplu, fișierul asociat cu prima unitate de dischetă a sistemului este /dev/fd0.

Fișierele de dispozitiv sunt extrem de puternice deoarece permit utilizatorilor să acceseze dispozitive hardware cum ar fi unități de disc, modemuri și imprimante ca și cum ar fi fișiere de date. Prin urmare, puteți să mutați, să copiați și să transferați date între astfel de dispozitive cu ușurință, adesea fără a fi nevoie să folosiți comenzi sau sintaxe speciale.

Nume de fișier și nume de traseu

Cărui fișier i se atribuie un nume de fișier, care poate avea o lungime de până la 256 de caractere. Acest nume poate consta dintr-un amestec de litere majuscule și minuscule, numere și anumite semne de punctuație, cum ar fi punctul, liniuța sau liniuța de subliniere.

Cerute caractere nu pot fi utilizate în numele fișierelor. De exemplu, nu puteți utiliza caractere care reprezintă un separator de câmp – cum ar fi o virgulă – sau alte caractere speciale care au o semnificație specială pentru shell. Caracterele speciale pe care nu le puteți utiliza sunt

! @ # $ % ^ & * ( ) { } ‘ ” \ / | ; < > > ‘

Pathnames
Puteți naviga între directoare pe linia de comandă folosind nume de drumuri. Pentru a utiliza nume de căi, trebuie să înțelegeți structura de directoare a sistemului de fișiere Linux. Directorul de cel mai înalt nivel din sistemul de fișiere Linux este directorul rădăcină, care este reprezentat de o bară oblică (/). Sub directorul rădăcină se află directoarele de nivel superior, urmate de unul sau mai multe niveluri de subdirectoare.

Structura unui sistem de fișiere Linux
Vă puteți deplasa între directoare folosind nume de căi relative sau absolute.

O nume de cale relativă începe cu directorul curent. De exemplu, dacă doriți să treceți în directorul expenses din interiorul directorului home, introduceți

cd expenses

Numele de cale relative pot începe cu numele unui fișier sau director, sau cu referințe simbolice la directorul curent (.) sau la directorul său părinte (…), dar niciodată cu o bară oblică directă.

Un exemplu simplu de sistem de fișiere Linux
Un nume de cale absolută arată numele de cale completă din directorul rădăcină (/). De exemplu, următoarea comandă vă permite să vă deplasați din directorul curent direct în subdirectorul applic din directorul usr care se află sub directorul rădăcină:

cd /usr/applic

Noduri, blocuri și fișiere speciale

Noduri
Cărui fișier i se atribuie un număr de nod unic. Un inode este o structură care definește locația și atributele fișierului. Puteți verifica numărul de inode al unui fișier utilizând opțiunea -i din comanda ls. Puteți vizualiza informațiile pe care le conține inode-ul unui fișier folosind sintaxa stat filename. Ieșirea acestei comenzi (stat results) afișează informațiile legate de inodul fișierului „results”.

$ stat results
File: „results”
Size: 8
Filetype: Regular file
Mode: (0644/-rw-r–r–)
Uid: ( 0/ root)
Gid: ( 0/ root)
Device: 3,7 Inode: 123256 Legături: 1
Acces: Tue Jul 25 16:45:00 2000 (00072.18:31:07)
Modifică: Thu Jul 20 12:35:20 2000 (00077.22:40:47:47)
Modificare: Thu Jul 20 12:35:20 2000 (00077.22:40:47)

În acest exemplu, unele dintre atributele care sunt afișate includ tipul de fișier, dimensiunea fișierului, ID-ul de utilizator (UID) al proprietarului, numărul de legături hard asociate cu acesta, precum și orele de creare, acces și modificare a fișierului.

Un inode nu stochează numele unui fișier. Numele fișierelor sunt stocate în directoare cu numerele de inode asociate acestora. În exemplul comenzii stat, numele fișierului este obținut din parametrul filename pe care l-ați introdus.

Blocuri
În sistemul de fișiere Linux, fișierele sunt stocate în blocuri, care sunt segmente de spațiu pe disc de dimensiuni identice. În general, dimensiunea unui bloc variază de la 512 octeți la 32 KB, în funcție de instalarea Linux. Dimensiunea maximă a unui fișier depinde de dimensiunea blocului utilizat în sistemul de fișiere. De exemplu, dimensiunea maximă a unui fișier pentru un sistem de fișiere ext2 este de 2 GB dacă utilizează blocuri de 512 octeți.

Sistemele de discuri recuperează datele în bucăți de mărimea unui bloc, astfel încât, cu cât dimensiunea blocului este mai mare, cu atât accesul este mai eficient. Problema creării de blocuri mari este că se poate irosi spațiu pe disc. De exemplu, dacă dimensiunea blocului este de 4 KB și majoritatea fișierelor conțin doar câțiva octeți de date, cea mai mare parte din cei 4096 octeți de spațiu pe disc este irosită pentru fiecare fișier. Dar dacă faceți ca dimensiunile blocurilor să fie mici, accesul la disc va fi relativ mai puțin eficient.

Câteva comenzi, cum ar fi df, scot informațiile de pe disc în blocuri de 1 KB, chiar dacă instalația stochează fișierele într-o dimensiune de bloc diferită. O modalitate simplă de a verifica dimensiunea blocurilor din sistemul dvs. este de a utiliza comanda du pentru a afișa utilizarea discului. În acest exemplu, este afișată utilizarea discului pentru toate fișierele care încep cu „m”.

$ du -h m*
36k mail
4.0k mail.rc
12k mailcap
12k mailcap.vga
4.0k man.config
4.0k mc.global
148k midi
40k mime-magic
104k mime-magic.dat
8.0k mime.types
4.0k minicom.users
0 motd
4.0k mtab

În acest exemplu, ieșirea comenzii du afișează dimensiunile fișierelor de pe disc în creșteri ale dimensiunii blocului, care este de 4,0 KB în acest caz. O excepție de la această regulă este atunci când este afișat zero, ceea ce indică faptul că fișierul este complet gol.

Filete speciale
În plus față de alte tipuri de fișiere, Linux utilizează fișiere speciale, care sunt fișiere definite de sistem care îndeplinesc funcții unice atunci când sunt accesate.

Filele speciale și funcțiile lor

De exemplu, dacă trebuie să scăpați de ieșirea nedorită de la o comandă, puteți redirecționa ieșirea către fișierul /dev/null. În acest exemplu, orice erori generate de comanda find sunt redirecționate din stderr în /dev/null.

$ find / -n myfile 2> /dev/null

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.