Bash Pagina 9

De la Wiki Linux Advanced
Versiunea din 26 octombrie 2024 07:05, autor: Admin (discuție | contribuții) (Pagină nouă: == Linia de comandă (continuare) == * **pwd** - (print working directory) listează calea absolută a directorului curent (directorul în care ne aflăm) * **cd** - **cd /another/location** - (change directory) schimbă directorul curent în directorul primit ca parametru. Acesta poate fi de forma: * nimic - merge în directorul home al utilizatorului ``` $ cd # N-am folosit niciun parametru, deci se preia automat home dir (notat cu ~) $ pwd # Folosesc pw...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Sari la navigare Sari la căutare

Linia de comandă (continuare)

  • **pwd** - (print working directory) listează calea absolută a directorului curent (directorul în care ne aflăm)


  • **cd**

- **cd /another/location** - (change directory) schimbă directorul curent în directorul primit ca parametru. Acesta poate fi de forma:

 * nimic - merge în directorul home al utilizatorului
   ```
   $ cd  # N-am folosit niciun parametru, deci se preia automat home dir (notat cu ~)
   $ pwd  # Folosesc pwd pentru verificarea directorului curent
   /home/my_home_directory  # Acesta e directorul meu home
   ```
 * cale relativă - directorul respectiv trebuie să fie cuprins în cel curent (nu se folosește niciodată / înaintea căii), altfel primim un mesaj care spune că acel director nu există
   ```
   $ cd /dir1  # această comandă schimbă directorul în dir1 din /
   bash: cd: /dir1: No such file or directory  # care nu există pentru că nu a fost creat
   $ cd dir1  # aici se preia ca parametru /home/my_home_directory/dir1
   $ pwd  # Verific directorul curent
   /home/my_home_directory/dir1
   ```
 * cale absolută - directorul respectiv se află undeva mai sus decât directorul curent (obligatoriu se folosește / înaintea căii)
   ```
   $ cd /usr/bin
   $ pwd
   /usr/bin
   ```
 * **..** - directorul părinte (suntem în /usr/bin de la comanda precedentă)
   ```
   $ cd ..
   $ pwd
   /usr
   ```
 * **/** - rădăcină
   ```
   $ cd /
   $ pwd
   /
   ```
 NOTĂ: Deplasarea într-un director care are un nume format din mai multe cuvinte se face folosind ghilimele pentru încadrarea acestora sau \ înainte de fiecare spațiu.
   Exemple:
   ```
   $ cd "multiword named directory"
   $ cd multiword\ named\ directory
   ```
  • **ls**

- **ls /some/directory** - (list) listează conținutul directorului primit ca parametru. Acesta poate fi de forma:

 * nimic - listează conținutul directorului curent (suntem în / de la comanda precedentă)
   ```
   $ ls
   bin/ etc/ initrd/ live/ media/ opt/ root/ sys/ tmp/ var/
   boot/ dev/ home/ lib/ lost+found/ mnt/ proc/ sbin/ usr/
   ```
 * cale relativă sau absolută - listează conținutul directorului primit ca parametru
   ```
   $ ls /usr
   bin/ etc/ games/ include/ lib/ libexec/ local/ sbin/ share/ src/ X11R6/
   ```
 * **../** - listează conținutul directorului părinte
   ```
   $ cd
   $ pwd
   /home/my_home_directory
   $ ls ../
   my_home_directory/
   ```

Pot fi folosite următoarele opțiuni: - **-a** (all) - listează toate fișierele și directoarele, inclusiv pe cele ascunse

 ```
 $ ls -a
 Documente/ Fisier
 Muzica/ .Secret_dir/
 .secret_file
 ```

- **-l** (long) - listează informații suplimentare

 ```
 $ ls -l
 drwxr-xr-x 2 tiberiu tiberiu 4096 2010-07-13 12:18 Desktop/
 -rw-rw-r-- 1 tiberiu tiberiu 0 2010-06-24 09:53 Fisier
 lrwxrwxrwx 1 tiberiu tiberiu 25 2010-04-17 19:41 Muzica -> /mnt/data/Galerii/Muzica//
 ```
 Acest output conține câte o linie pentru fiecare fișier/director și mai multe coloane pentru separarea informațiilor. Prima coloană este formată din 10 caractere ce reprezintă tipul elementului (- fișier, d director, l link) și apoi permisiunile (r read, w write, x execute), fiind grupate câte 3 pentru owner, group și others. A doua coloană indică numărul de scurtături către acest fișier/director. A treia coloană conține numele ownerului, în timp ce a patra numele grupului. A cincea coloană indică dimensiunea în B (bites). A șasea și a șaptea contin data și ora la care a fost creat sau când s-a efectuat ultima modificare. Ultima coloană reprezintă numele fișierului (nu are / la sfârșit), directorului (are / la sfârșit) sau link-ului care va indica și fișierul sau folderul țintă.

Opțiunile **-l** și **-a** pot fi folosite împreună sub forma **-la** sau **-al** pentru combinarea output-ului celor două; astfel vom avea descriere amănunțită pentru toate fișierele și directoarele. Opțiunea **-h** (human) se folosește în combinație cu **-l** pentru afișarea dimensiunii într-un format mai ușor de citit (KB, MB, GB). NOTĂ: Opțiunile prezentate sunt numai cele folosite frecvent; pentru mai multe informații citiți pagina man a comenzii tastând **$ man numele_comenzii** într-un terminal sau mergeți pe site-ul [linuxmanpages.com](http://linuxmanpages.com/) și introduceți comanda dorită în câmpul Search For.

  • **Recapitulare**

- **pwd** - listează calea absolută a directorului curent - **cd director** - merge în directorul indicat - **ls** - listează conținutul directorului

  • **Comenzi pentru manipularea fișierelor și directoarelor**

Acestea includ crearea și ștergerea de directoare, fișiere, redenumirea și mutarea lor în altă parte.

  • **mkdir**

- **mkdir nume_director** - (make directory) creează un director cu numele indicat. Acesta poate fi sub formă de:

 * cale relativă - va fi creat în folderul curent
   ```
   $ mkdir my_dir
   ```
 * cale absolută - va fi creat exact în locația indicată
   ```
   $ mkdir /home/my_home_dir/my_dir
   ```
 NOTĂ: Crearea unui director care are un nume format din mai multe cuvinte se face folosind ghilimele pentru încadrarea acestora sau \ înainte de fiecare spațiu.
 Exemple:
 ```
 $ mkdir "multiword named directory"
 $ mkdir multiword\ named\ directory
 ```
 Opțiunile disponibile pentru această comandă sunt:
 - **-p** (parents) - creează și directoarele părinți, dacă este cazul
   ```
   $ mkdir dir1/dir2  # Această comandă înseamnă crearea lui dir2 în dir1 din directorul curent.
   mkdir: cannot create directory `dir1/dir2/': No such file or directory  # Indică faptul că dir1 nu există în directorul curent.
   $ mkdir -p dir1/dir2  # Se folosește opțiunea -p la crearea directoarelor
   ```
   ```
   $ ls  # listăm conținutul directorului curent
   dir1  # se observă că dir1 a fost creat
   $ cd dir1; ls  # schimbăm în dir1 și listăm din nou
   dir2  # se observă că dir2 a fost creat
   ```
 - **-v** (verbose) - afișează output pentru fiecare operație
   ```
   $ mkdir -v my_dir
   mkdir: created directory `my_dir'
   ```
  • **rmdir**

- **rmdir nume_director** - (remove directory) șterge directorul indicat numai dacă este gol. Poate primi ca argument cale relativă sau absolută și are aceleași opțiuni ca **mkdir** (-p, -v); diferența constă în faptul că **-p** va șterge directoarele părinți.

 ```
 $ rmdir -p dir1/dir2
 ```
 Dacă încerci să ștergi un director care nu este gol, se va genera o eroare.
 ```
 $ rmdir dir1/dir2
 rmdir: failed to remove `dir1/dir2': Directory not empty
 ```
  • **rm**

- **rm nume_fișier** - (remove) șterge un fișier. Poate primi argumente de forma:

 * **-r** (recursive) - șterge un director și conținutul acestuia (ATENȚIE: trebuie folosită cu mare grijă)
   ```
   $ rm -r dir1  # va șterge tot conținutul din dir1
   ```
 * **-f** (force) - șterge fișiere fără a întreba (ATENȚIE: trebuie folosită cu mare grijă)
   ```
   $ rm -f file.txt
   ```
 Opțiunea **-i** (interactive) întreabă pentru fiecare fișier care urmează a fi șters (la fel ca în cazul lui **-f** dacă este folosit în combinație cu **-i**).
   ```
   $ rm -i file.txt
   remove file.txt? y
   ```
  • **mv**

- **mv sursă destinație** - (move) mută fișierele/directoarele sau le redenumește.

 Poate primi argumente de forma:
 * **nume_fișier nume_nou** - schimbă numele fișierului
   ```
   $ mv old_file.txt new_file.txt  # Fișierul old_file.txt este redenumit new_file.txt
   ```
 * **fișier director** - mută fișierul în directorul specificat
   ```
   $ mv new_file.txt dir1/  # Mutăm fișierul în dir1
   ```
 * **director1 director2** - mută tot conținutul din directorul sursă în cel de destinație
   ```
   $ mv dir1 dir2  # Mută directorul dir1 în dir2
   ```
 NOTĂ: Dacă directorul de destinație nu există, fișierul sau directorul sursă va fi redenumit.
  • **cp**

- **cp sursă destinație** - (copy) copiază fișierele/directoarele.

 Poate primi argumente de forma:
 * **nume_fișier nume_nou** - creează o copie a fișierului
   ```
   $ cp file.txt new_file.txt  # Creează o copie a lui file.txt cu numele new_file.txt
   ```
 * **fișier director** - copiază fișierul în directorul specificat
   ```
   $ cp new_file.txt dir1/
   ```
 * **-r** (recursive) - copiază tot conținutul dintr-un director
   ```
   $ cp -r dir1/ dir2/  # Copiază conținutul din dir1 în dir2
   ```
  • **Recapitulare**

- **mkdir** - creează un director - **rmdir** - șterge un director gol - **rm** - șterge un fișier - **mv** - mută sau redenumește fișiere/directoare - **cp** - copiază fișiere/directoare