Bash
Bash programari | |
---|---|
Captura de pantalla d'una sessió BASH senzilla a Gentoo GNU / Linux | |
Tipus | Petxina |
Desenvolupador | Chet Ramey |
Data de la primera versió | 8 de juny de 1989 |
Última versió | 5.1.8 (4 de maig de 2021) |
Sistema operatiu | Multiplataforma |
Llenguatge | C. |
Llicència | GNU GPL v3 + ( llicència gratuïta ) |
Lloc web | www.gnu.org/software/bash/ |
Bash llenguatge de programació | |
---|---|
Autor | Chet Ramey , Brian Fox |
Data d’origen | 1989 |
Última versió | 5.1.8 (4 de maig de 2021) |
Ús | scripts del sistema |
Paradigmes | programació procedimental |
Escrivint | feble |
Influenciat per | ALGOL 68, shell Bourne , shell C i shell Korn |
Implementació de referència | |
Llicència | GNU GPL v3 + |
Lloc web | www.gnu.org/software/bash/ |
Bash ( acrònim per b Ourne 1 ell sh guany) és un shell textual de la GNU projecte utilitzat en Unix i Unix-com operen els sistemes , com ara GNU / Linux . A macOS era el shell predeterminat fins a macOS Mojave , mentre que a partir de macOS Catalina encara està present, però ja no és per defecte [1] . Bash també està disponible per als sistemes Microsoft Windows (vegeu, per exemple, Cygwin i msys / msys2 bash).
També anomenat Bourne shell després del seu autor original Stephen Bourne , l'expansió de l'acrònim bash , Bourne again shell , significa literalment un altre shell Bourne , però Bourne torna a tenir la mateixa pronunciació que born again , és a dir, renacer creant la definició final shell renacer .
Descripció
Característiques
Tècnicament, bash és un clon avançat de l'intèrpret d'ordres Unix estàndard ( / bin / sh ). Altres petxines populars i alternatives a bash són la petxina Korn , la petxina C , Zsh i tcsh .
És un intèrpret d’ ordres que permet a l’usuari comunicar-se amb el sistema operatiu mitjançant una sèrie de funcions predefinides o executar programes i scripts.
Bash és capaç d'executar les ordres que se li passen, utilitzant la redirecció d' entrada i sortida per executar diversos programes en cascada en una canalització de programari , passant la sortida de l'ordre anterior com a entrada de l'ordre següent.
A més, proporciona un llenguatge de seqüència d’ordres natiu senzill que us permet realitzar tasques més complexes, no només recopilant una sèrie d’ordres en un script , sinó també mitjançant l’ús de variables , funcions i estructures de control de flux .
Bash i l'estàndard POSIX
El comportament predeterminat de Bash difereix del de l'estàndard POSIX , però es pot aconseguir de quatre maneres:
- especificant l'opció "
--posix
" a l'inici, per exemple amb "bash --posix
"; - invocant-lo amb el nom "
sh
", com és el cas de molts sistemes GNU / Linux on "/bin/sh
" és un enllaç simbòlic a "/bin/bash
"; - iniciar-lo després d’establir la
POSIXLY_CORRECT
entornPOSIXLY_CORRECT
[2] amb qualsevol valor; - executant-hi l'ordre intern "
set -o posix
" [3] .
Fitxers llegits a l'inici
En iniciar-se, bash intenta carregar automàticament una sèrie de fitxers:
- si es tracta d'un intèrpret d' ordres d' inici de sessió , bash intenta carregar:
- el fitxer "
/etc/profile
" - només el primer dels fitxers "
.bash_profile
", ".bash_login
" i ".profile
" que es troba al directori inicial de l'usuari i que sembla estar disponible; - el fitxer "
.bashrc
" situat al directori inicial de l'usuari;
- el fitxer "
En sortir d’un intèrpret d’ordres interactiu, bash carrega el fitxer .bash_logout
situat a la casa de l’usuari (si està disponible).
- si es tracta d'un intèrpret d'ordres interactiu sense iniciar sessió, bash intenta carregar només el fitxer "
.bashrc
" situat al directori inicial de l'usuari;
L'usuari pot modificar els fitxers del directori inicial per personalitzar el seu entorn de treball.
Quan bash s’inicia de manera no interactiva (per exemple, per executar un script d’ intèrpret d’ ordres ) comprova si existeix la variable d’entorn BASH_ENV
o ENV
i, en aquest cas, carrega el fitxer especificat pel valor de la variable (si bash s’inicia en mode POSIX , només comprova ENV
). Després es procedeix a executar la resta (script o altre).
Exemples explicatius
El següent script us permet crear un arxiu a " /tmp/my-backup.tar.gz
" que contingui tota la vostra carpeta personal (tenint en compte que " ~
" representa " /home/ proprionomeutente
vostre /tmp/my-backup.tar.gz
/home/ proprionomeutente
"):
#! / bin / bash
tar -vzcf /tmp/home.tgz ~
Un altre exemple per als sistemes basats en Debian és poder actualitzar i netejar el sistema amb el següent script:
#! / bin / bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoclean
sudo apt-get clean
En crear un fitxer amb el contingut anterior en un dels directoris llistats per la $PATH
entorn $PATH
i assignar-li els permisos d’execució, podeu obtenir una utilitat senzilla i pràctica que es pot utilitzar com qualsevol altre fitxer executable .
Estructures condicionals
Es compara si els fitxers " file_a
" i " file_b
" són idèntics mitjançant l'ordre cmp ( redirigint la sortida estàndard i l' error estàndard a / dev / null per amagar els seus missatges) i escriu el resultat:
#! / bin / bash
si cmp fitxer_a fitxer_b & > / dev / null ; llavors
echo "Els fitxers a i b són idèntics."
en cas contrari
echo "Els fitxers a i b són diferents."
fi
Comproveu si existeix el fitxer " prova.txt
" i escriviu-hi un missatge:
#! / bin / bash
si [ -f test.txt ] ; llavors
echo "El fitxer test.txt existeix."
en cas contrari
echo "El fitxer test.txt no existeix o no és un fitxer"
fi
Demana una línia d’entrada i mostra un missatge basat en el contingut:
#! / bin / bash
eco "Escriviu alguna cosa i premeu Retorn:"
llegir la línia
cas " $ line " en
un )
eco "Has escrit" one ""
;;
dos | tres )
eco "Heu escrit" dos "o" tres ""
;;
q * )
eco "Has escrit alguna cosa que comença per 'q'"
;;
* )
eco "Has escrit alguna cosa que no sé"
;;
hexac
Nota
- ^ Utilitzeu zsh com a intèrpret d'ordres predeterminat al Mac , a l'assistència d'Apple . Consultat el 7 de maig de 2021 .
- ^ (EN) Variables de Bash , al Manual de referència de Bash. Consultat el 4 de gener de 2009 .
- ^ (EN) The Set Builtin , Bash Reference Manual. Consultat el 2 de gener de 2009 .
Bibliografia
- Com funciona Linux: introducció al shell ( JPG ), a MCmicrocomputer , n. 205, Roma, Pluricom, abril de 2000, pp. 176-181, ISSN 1123-2714 .
- Com funciona Linux: funcions de shell avançades i ordres útils per a la programació de scripts ( JPG ), a MCmicrocomputer , n. 206, Roma, Pluricom, maig de 2000, pp. 178-185, ISSN 1123-2714 .
- Com funciona Linux: estructures de control de shell ( JPG ), a MCmicrocomputer , n. 207, Roma, Pluricom, juny de 2000, pp. 174-179, ISSN 1123-2714 .
- ( EN ) Chet Ramey i Brian Fox, Manual de referència de Bash ( PDF ), a gnu.org , setembre de 2016. Consultat el 15 de març de 2017 .
Articles relacionats
Altres projectes
-
Wikimedia Commons conté imatges o altres fitxers a GNU Bash
Enllaços externs
- ( EN ) Lloc oficial , a gnu.org .
- Bash , a packages.debian.org .
- Dipòsit de fonts de Bash , a git.savannah.gnu.org .
- ( EN ) Bash , al Directori de programari lliure .
- jBash Project és un analitzador Java per a Bourne Again Shell , a code.google.com .
- Personalització de la sol·licitud bash a pluto.it .
- Guia de bash scripting avançada , a pluto.it . Consultat el 16 de gener de 2011 (arxivat de l' original el 29 de desembre de 2010) .
- Pàgines de man de Bash command , a pluto.it .
- "Guia Bash per a principiants" de M. Garrels (traduït a l'italià per A. Montagner) , a codex.altervista.org .
- (CA) Apreneu el shell a linuxcommand.org. Consultat el 15 de juny de 2007 (arxivat de l' original el 13 de juny de 2007) .
- Guia senzilla de les ordres principals de bash a linux.collectiontricks.it . Consultat el 3 d'octubre de 2016 (arxivat de l' original el 5 d'octubre de 2016) .
- (EN) win-bash una versió de shell Bash per a Microsoft Windows a win-bash.sourceforge.net.
Control de l'autoritat | GND ( DE ) 4492523-2 |
---|