Bash
Bash software | |
---|---|
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 | |
---|---|
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
mediuPOSIXLY_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:
- fișierul „
/etc/profile
” - numai primul dintre fișierele „
.bash_profile
”, „.bash_login
” și „.profile
” aflate în directorul de start al utilizatorului și care pare a fi disponibil; - fișierul „
.bashrc
” situat în directorul de start al utilizatorului;
- fișierul „
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ă
- ^ Utilizați zsh ca shell implicit pe Mac , pe asistența Apple . Adus pe 7 mai 2021 .
- ^ (EN) Variabile Bash , în Manualul de referință Bash. Adus la 4 ianuarie 2009 .
- ^ (RO) Set Builtin , Bash Reference Manual. Adus pe 2 ianuarie 2009 .
Bibliografie
- Cum funcționează Linux: introducere în shell ( JPG ), în MCmicrocomputer , n. 205, Roma, Pluricom, aprilie 2000, pp. 176-181, ISSN 1123-2714 .
- Cum funcționează Linux: funcții shell avansate și comenzi utile pentru programarea scripturilor ( JPG ), în MCmicrocomputer , n. 206, Roma, Pluricom, mai 2000, pp. 178-185, ISSN 1123-2714 .
- Cum funcționează Linux: structuri de control shell ( JPG ), în MCmicrocomputer , n. 207, Roma, Pluricom, iunie 2000, pp. 174-179, ISSN 1123-2714 .
- ( EN ) Chet Ramey și Brian Fox, Bash Reference Manual ( PDF ), pe gnu.org , septembrie 2016. Accesat la 15 martie 2017 .
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe GNU Bash
linkuri externe
- ( RO ) Site oficial , pe gnu.org .
- Bash , pe packages.debian.org .
- Depozitul sursă Bash , la git.savannah.gnu.org .
- ( EN ) Bash , în Directorul de software gratuit .
- jBash Project este un analizor Java pentru Bourne Again Shell , la code.google.com .
- Personalizarea promptului bash , pe pluto.it .
- Ghid avansat de scriptare bash , pe pluto.it . Adus la 16 ianuarie 2011 (arhivat din original la 29 decembrie 2010) .
- Bash command man pages , pe pluto.it .
- „Bash Guide for Beginners” de M. Garrels (tradus în italiană de A. Montagner) , pe codex.altervista.org .
- (RO) Aflați shell-ul , pe linuxcommand.org. Adus la 15 iunie 2007 (arhivat din original la 13 iunie 2007) .
- Ghid simplu pentru principalele comenzi ale bash , pe linux.collectiontricks.it . Adus la 3 octombrie 2016 (arhivat din original la 5 octombrie 2016) .
- (EN) win-bash o versiune shell Bash pentru Microsoft Windows pe win-bash.sourceforge.net.
Controlul autorității | GND ( DE ) 4492523-2 |
---|