Bash

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Bash
software
Siglă
Captură de ecran a unei sesiuni simple BASH pe Gentoo GNU / Linux
Captură de ecran a unei sesiuni simple BASH pe Gentoo GNU / Linux
Tip Coajă
Dezvoltator Chet Ramey
Data primei versiuni 8 iunie 1989
Ultima versiune 5.1.8 (4 mai 2021)
Sistem de operare Multiplatform
Limba C.
Licență GNU GPL v3 +
( licență gratuită )
Site-ul web www.gnu.org/software/bash/
Bash
limbaj de programare
Gnu-bash-logo.svg
Autor Chet Ramey , Brian Fox
Data de origine 1989
Ultima versiune 5.1.8 (4 mai 2021)
Utilizare scriptarea sistemului
Paradigme programare procedurală
Tastare slab
Influențată de ALGOL 68, shell Bourne , shell C și shell Korn
Implementare referință
Licență GNU GPL v3 +
Site-ul web www.gnu.org/software/bash/

Bash ( acronim pentru b ourne un sh ell câștig) este un shell textual al GNU proiect utilizat în Unix si Unix- operare sisteme , cum ar fi GNU / Linux . În macOS a fost shell implicit până la macOS Mojave , în timp ce de la macOS Catalina în continuare este încă prezent, dar nu mai este implicit [1] . Bash este disponibil și pentru sistemele Microsoft Windows (vezi de exemplu Cygwin și msys / msys2 bash).

Numit și Bourne shell după autorul său original Stephen Bourne , extinderea acronimului bash , Bourne again shell , înseamnă literalmente o altă shell Bourne , dar Bourne are din nou aceeași pronunție ca și born born , adică renăscut creând definiția finală shell renăscut .

Descriere

Caracteristici

Din punct de vedere tehnic, bash este o clonă avansată a shell-ului standard Unix ( / bin / sh ). Alte shell-uri populare și alternative la bash sunt shell-ul Korn , shell- ul C , Zsh și tcsh .

Este un interpret de comenzi care permite utilizatorului să comunice cu sistemul de operare printr-o serie de funcții predefinite sau să execute programe și scripturi.

Bash este capabil să execute comenzile care îi sunt transmise, utilizând redirecționarea de intrare și ieșire pentru a rula mai multe programe în cascadă într-o conductă software , trecând ieșirea comenzii anterioare ca intrare a comenzii următoare.

În plus, oferă un limbaj de scriptare nativ simplu , care vă permite să efectuați sarcini mai complexe, nu numai prin colectarea unei serii de comenzi într-un script , ci și prin utilizarea variabilelor , funcțiilor și structurilor de control al fluxului .

Bash și standardul POSIX

Comportamentul implicit al lui Bash diferă de cel al standardului POSIX , dar poate fi realizat în patru moduri:

  • specificarea --posix " --posix " la pornire, de exemplu cu " bash --posix ";
  • invocându-l cu numele „ sh ”, așa cum este cazul în multe sisteme GNU / Linux unde „ /bin/sh ” este o legătură simbolică către „ /bin/bash ”;
  • pornirea acestuia după setarea POSIXLY_CORRECT mediu POSIXLY_CORRECT [2] cu orice valoare;
  • executând comanda internă „ set -o posix[3] în ea .

Fișiere citite la pornire

La pornire, bash încearcă să încarce automat o serie de fișiere:

  • dacă este un shell de autentificare , bash încearcă să încarce:
    1. fișierul „ /etc/profile
    2. numai primul dintre fișierele „ .bash_profile ”, „ .bash_login ” și „ .profile ” aflate în directorul de start al utilizatorului și care pare a fi disponibil;
    3. fișierul „ .bashrc ” situat în directorul de start al utilizatorului;

La ieșirea dintr-un shell de conectare interactiv, bash încarcă fișierul .bash_logout situat în casa utilizatorului (dacă este disponibil).

  • dacă este un shell interactiv non-login, bash încearcă să încarce doar fișierul „ .bashrc ” situat în directorul de start al utilizatorului;

Utilizatorul poate modifica fișierele din directorul său personal pentru a-și personaliza mediul de lucru.

Când bash este pornit non-interactiv (de exemplu pentru a executa un script shell), acesta verifică dacă variabila de mediu BASH_ENV sau ENV BASH_ENV și dacă este așa, încarcă fișierul specificat de valoarea variabilei (dacă bash este pornit în modul POSIX numai verifică ENV ). Apoi se execută restul (script sau altele).

Exemple explicative

Următorul script vă permite să creați o arhivă în „ /tmp/my-backup.tar.gz ” care conține întregul folder personal (ținând cont de faptul că „ ~ ” reprezintă „ /home/ proprionomeutente ”):

 #! / bin / bash
tar -vzcf /tmp/home.tgz ~

Un alt exemplu pentru sistemele bazate pe Debian este acela de a putea actualiza și curăța sistemul cu următorul script:

 #! / bin / bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoclean
sudo apt-get clean

Prin crearea unui fișier cu conținutul de mai sus într-unul din directoarele enumerate de $PATH mediu $PATH și atribuirea acesteia a permisiunilor de execuție, puteți obține un utilitar la îndemână și simplu care poate fi folosit la fel ca orice alt fișier executabil .

Structuri condiționate

Se compară dacă fișierele „ file_a ” și „ file_b ” sunt identice utilizând comanda cmp ( redirecționând ieșirea standard și eroarea standard către / dev / null pentru a-și ascunde mesajele) și scrie rezultatul:

 #! / bin / bash
dacă cmp fișier_a fișier_b & > / dev / null ; atunci 
   ecou „Fișierele a și b sunt identice”.
altceva 
   ecou „Fișierele a și b sunt diferite”.
fi

Verificați dacă există fișierul „ prova.txt ” și scrieți un mesaj despre acesta:

 #! / bin / bash
dacă [ -f test.txt ] ; atunci 
    ecou "Fișierul test.txt există."
altceva 
    echo "Fișierul test.txt nu există sau nu este un fișier"
fi

Solicită o linie de intrare și afișează un mesaj bazat pe conținut:

 #! / bin / bash

ecou „Tastați ceva și apăsați Enter:”
citeste linia

majusculă  $ line  în
    unul )
        ecou „Ai tastat„ unu ””
        ;;

    doi | trei ) 
        ecou „Ai tastat„ doi ”sau„ trei ””
        ;; 
    q * )
        ecou „Ai tastat ceva începând cu„ q ””
        ;;
    * )
        ecou „Ai tastat ceva ce nu știu”
        ;;      
hexac

Notă

  1. ^ Utilizați zsh ca shell implicit pe Mac , pe asistența Apple . Adus pe 7 mai 2021 .
  2. ^ (EN) Variabile Bash , în Manualul de referință Bash. Adus la 4 ianuarie 2009 .
  3. ^ (RO) Set Builtin , Bash Reference Manual. Adus pe 2 ianuarie 2009 .

Bibliografie

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității GND ( DE ) 4492523-2
Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă de software gratuit