User Tools

Site Tools


unixmix:capitole:capitol-02

Interacțiunea cu sistemul de fișiere

Tutorial

Vizualizarea sistemului de fișiere

Deschideți un terminal.

  • Rulați comanda ls.
    • Ce fișiere se află în directorul curent?
  • Aflați directorul curent. Folosiți comanda pwd.
  • Afișați în format lung fișierele din directorul curent. (hint: man ls)
    • Observați diferențele dintre un director și un fișier normal.
  • Schimbați directorul curent în rădăcina sistemului de fișiere.
    • Folosiți cd /
    • Rulați din nou comanda pwd. Ce s-a schimbat?
  • Aflați fișierele din directorul actual.
  • Aflați printr-o comandă care este utilizatorul curent.
    • hint: capitolul anterior
  • Care este directorul home al acestuia?
  • Fără a schimba directorul curent, afișați fișierele din home-ul acestuia prin două metode.
    • cale absolută
    • simbol special: ~
  • Schimbați directorul curent în ultimul director din care ați navigat.
    • cd -
    • Ce apare pe ecran?
    • Rulați din nou comanda pwd.
    • Ultimul director este directorul home al utilizatorului curent.
  • Ce face comanda cd .?
    • Rulați apoi pwd.
  • Ce face comanda cd ..?
    • Rulați apoi pwd.

Informații despre sistemul de fișiere

  • Ce face comanda ping?
    • Rulați comanda ping -c 1 localhost.
    • Rulați comanda ping -c 1 google.com.
  • Rulați comanda which ping.
    • Observați calea absolută a executabilului în sistemul de fișiere.
  • Rulați comanda file /bin/ping.
    • Sistemul de operare este pe 32-biți sau 64-biți?
  • Rulați comanda stat /bin/ping.
    • Când a fost accesat ultima dată executabilul?
    • Când a fost modificat ultima dată executabilul?
  • Care este dimensiunea fișierului /bin/ping?
    • folosiți ls și stat

Operații cu sistemul de fișiere

Operații de creare

  • Asigurați-vă că sunteți în home-ul utilizatorului curent.
    • Rulați pwd.
    • Dacă nu sunteți acolo, folosiți cd pentru a naviga până acolo.
  • Rulați comanda mkdir first_root.
    • Listați în format lung fișierele din directorul curent.
    • Observați linia corespunzătoare directorului nou creat.
  • Navigați în interiorul directorului first_root.
    • Creați fișierul first_file.
      • touch first_file
    • Rulați comanda mkdir long/name/goes/here.
      • Ce observați?
      • Puteți crea directoarele pe rând, sau puteți rula comanda mkdir -p long/name/goes/here.
        • Cițiți în man ce face parametrul -p.
    • Creați directorul dir.
    • Creați fișierul second_file.
  • Navigați în interiorul directorului dir.
    • Creați fișierul file.
  • Folosiți o cale absolută pentru a naviga în directorul first_root din home-ul utilizatorului curent.
    • Listați fișierele din directorul curent.
    • Listați recursiv întreaga ierarhie de fișiere pornind din directorul curent.
      • hint: man ls
      • Obțineți mai multe informații folosind formatul lung de afișare.

Operații de mutare/redenumire/copiere

  • Rulati comanda mv dir new_name.
    • Listați conținutul directorului curent.
    • Ce observați?
  • Rulați comanda cp new_name dir.
    • Listați conținutul directorului curent.
    • Ce observați?
  • Rulați comanda cp -r new_name dir.
    • Listați conținutul directorului curent.
    • Listați conținutul directorului dir folosind o cale relativă.
    • Ce observați?
  • Rulați comanda echo text > dir/file
    • Comanda scrie cuvântul “text” în fișierul specificat în dreapta operatorului >.
      • O să discutăm mai pe larg în capitolele următoare.
  • Rulați comanda cat dir/file.
    • Ce observați?
  • Rulați comanda cat new_name/file.
    • Ce observați?

Operații de ștergere

  • Rulați comanda rm new_name pentru a șterge directorul.
    • Ce observați?
  • Rulați comanda rmdir new_name.
    • Listați conținutul directorului curent.
    • Ce observați?
  • Rulați comanda rm new_name/file.
  • Listați conținutul directorului new_name.
  • Rulați comanda rmdir new_name.
    • Listați conținutul directorului curent.
    • Ce observați?
  • Rulați comanda rm dir/file.
  • Listați conținutul directorului dir.
  • Rulati comanda rm dir
    • Ce observați?
  • Rulați comanda rm -r dir
    • Ce observați?
  • Creați un director și un fișier în interiorul acestuia.
    • Folosiți rm -r pentru a șterge direct întreg directorul.
    • Funcționează?

Editare fișiere

  • Asigurați-vă că sunteți în directorul first_root din home-ul utilizatorului curent.
  • Creați fișierul file în directorul long/name/goes/here.
  • Utilizați comanda echo text > long/name/goes/here/file.
    • Folosiți cat pe fișier pentru a vizualiza conținutul.

Pentru a edita mai ușor fișiere o să folosim un editor text trivial, nano.

  • Rulați comanda nano long/name/goes/here/file.
    • Pentru a da comenzi speciale (ce apar în partea de jos a editorului) trebuie folosită combinația Ctrl-Literă, unde Literă este litera corespunzătoare.
      • Simbolul ^ este de fapt reprezentarea grafică a simbolului Ctrl
  • Încercați să scrieți Thales în fișier.
    • Apăsați Ctrl-X pentru exit.
    • Editorul o să observe că ați modificat fișierul și o să vă întrebe dacă doriți să salvați modificările
      • Apăsați tasta Y corespunzătoare răspunsului yes.
      • Editorul o să vă întrebe în ce fișier de pe disc doriți să salvați modificările.
      • Implicit, o să vă sugereze numele fișierului pe care l-ați dat ca parametru când ați deschis editorul nano.
      • Apăsați tasta enter pentru confirmarea numelui.
  • Vizualizați conținutul fișierului tocmai editat folosind comanda cat.

Există multe alte editoare mult mai avansate pentru linia de comandă (vim, emacs), însă o să ne concentrăm momentan doar pe editarea simplificată a fișierelor.

  • Rulați comanda ln long/name/goes/here/file hard.
    • Listați fișierele din directorul curent în format lung.
    • Modificați conținutul fișierului hard. Folosiți editorul nano.
    • Vizualizați conținutul fișierului long/name/goes/here/file.
      • Ce observați?
  • Rulați comanda ln -s long/name/goes/here/file symbolic.
    • Listați fișierele din directorul curent în format lung.
      • Ce este diferit față de fișierul hard?
    • Ce face parametrul -s? Utilizați man ln.
    • Vizualizați conținutul fișierelui symbolic.
      • Folosiți cat sau nano.
    • Editați conținutul fișierului symbolic.
    • Vizualizați conținutul fișierului long/name/goes/here/file.
    • Vizualizați conținutul fișierului hard.
  • Rulați comanda mv hard ../ pentru a muta fișierul mai sus în ierarhie.
  • Rulați comanda mv symbolic ../ pentru a muta fișierul mai sus în ierarhie.
  • Schimbați directorul curent folosind cd ...
  • Listați fișierele din directorul curent în format lung.
    • Ce observați?
    • Vizualizați conținutul fișierului hard și fișierului symbolic.
  • Mutați cele două fișiere înapoi în directorul first_root.
    • Asigurați-vă că cele două link-uri funcționează din nou.
  • Asigurați-vă că vă aflați din nou în directorul first_root.
  • Ștergeți fișierul long/name/goes/here/file.
    • Vizualizați conținutul fișierului hard.
    • Vizualizați conținutul fișierului symbolic.
    • Ce observați?
  • Rulați comanda cp hard long/name/goes/here/file
  • Modificați conținutul fișierului long/name/goes/here/file.
    • Vizualizați conținutul fișierului hard.
    • Vizualizați conținutul fișierului symbolic.
    • Ce observați?

Exerciții

Creați următoarea structură de fișierele în home-ul utilizatorului curent:

  • dir1 (director)
    • link (link hard către fișierul long/new/dir/file)
  • dir2 (director)
    • link (link symbolic către fișierul long/new/dir/file)
  • long (director)
    • new (director)
      • dir (director)
        • file (fișier)
  • test (director)

Scrieți ceva în fișierul long/new/dir/file și verificați funcționalitatea corectă a link-urilor din dir1 și dir2.
Dacă nu funcționează corect, ștergeți link-urile și refaceți până când funcționează.

  • De ce au apărut/ar fi putut să apară probleme?

Afișați recursiv ierarhia creată mai sus.

  • Folosiți comanda ls.
  • Folosiți comanda tree.

Listați în format lung director-ul long.

  • Încercați să afișați în format lung informații doar despre directorul long.
    • Folosiți man ls.
  • Cât spațiu ocupă directorul long?
    • Folosiți du pentru a afla dimensiunea reală.

Încercați să creați link-uri simbolice și hard pentru

  • directoare
  • link-uri simbolice
  • link-uri hard

Arhivați întreg conținutul directorului long.

  • Mutați arhiva într-un alt director
  • Dezarhivați arhiva ca un director numit unzip_long.

Recapitulare

Structură de directoare și fișiere

Creați, în directorul home al utilizatorului student, structura de mai jos:

supermarket/
├── curatat/
│   ├── pronto - lemn curat
│   └── solutie curatat ferestre
└── mancare/
    ├── -- -> lactate/lapte batut
    ├── carne/
    │   └── -10 grade sunca
    ├── fructe/
    │   └── castraveti spanioli
    └── lactate/
        └── lapte batut

Intrarea -- este un link simbolic, adică numele link-ului simbolic trebuie să fie --.

Intrările care se termină în / (slash) sunt directoare (supermarket/, curatat/, mancare/, carne/, fructe/, lactate/).

Restul de intrări sunt fișiere obișnuite (regular files).

Pentru a valida structura creată, folosiți, din directorul home al utilizatorului student, comanda

tree -F supermarket

Actualizare timpi

Pe structura de directoare creată anterior configurați timpi astfel:

  • pe intrările din mâncare, mai puțin link-ul simbolic, configurați ca timp de acces miezul nopții la Crăciun 2013
  • pe intrări de curățat configurați ca timp de modificare miezul nopții la Revelion 2013

Nu e nevoie să folosiți o comandă specială care să se aplice pe toate intrările. Luați intrările la rând și modificați timpii.

Pentru modificarea timpilor folosiți comanda touch.

Pentru a verifica timpii de acces folosiți comanda stat.

Adăugăm în sistem utilizatorul ana. Pentru aceasta, ne autenficăm ca root și apoi folosim comanda adduser. Adică rulăm comenzile:

$ sudo su
# adduser ana

Ca root, actualizăți următoarele metadate pe link-ul simbolic:

  • modificați timpii la miezul nopții Halloween 2013
  • modificați deținătorul link-ului în ana

Pentru modificarea deținătorului unui link, folosiți comanda chown. Comanda chown poate fi rulată doar de utilizatorul root.

Exemple de rulare a comenzii chown sunt:

chown tony mydata.iso        # change owner user of file mydata.iso to tony
chown tony:players icon.bmp  # change owner user of file icon.bmp to tony and owner group to players

Find the secret messages

Folosiți fișierul de la link-ul http://swarm.cs.pub.ro/~razvan/r și aflați mesajele secrete.

Pentru a descărca fișierul de link-ul de mai sus folosiți comanda

wget http://swarm.cs.pub.ro/~razvan/r

Folosiți-vă de comanda file urmată de numele unui fișier pentru a afla informații despre acel fișier.

Pentru fișiere comprimate LZOP instalați programul lzop folosind comanda:

sudo apt-get install lzop

unixmix/capitole/capitol-02.txt · Last modified: 2014/09/09 10:03 by razvan