Ero sivun ”Bash” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Kumottu muokkaus #23501, jonka teki ARTTUSN WIHOWIIMEINEN MARSSI TÄYTIN TOIVEENNE PÄÄSETTE NYT EROON MUSTA!!!!!!!! ([[User talk:ARTTUSN WIH)
(Lisäsin tietoa Bashin aputoiminnosta.)
 
(10 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{Ohjelma
| nimi=GNU Bash
| kuva=[[Tiedosto:Bash-logo-web.png|250px]]
| kuvateksti=
| lisenssi=[[GPLv3+]]
| käyttöliittymä=teksti
| kotisivu=[https://gnu.org/software/bash/ gnu.org/software/bash]
}}
'''Bash''' eli ''Bourne again shell'' on useimpien Linux-jakeluiden oletuskomentotulkki. Se toimii yleensä [[sh]]:n lailla, [[POSIX]]-standardia noudattaen, mutta sisältää suuren määrän laajennoksia, osa [[ksh]]:stä ja [[csh]]:stä lainattuja.
'''Bash''' eli ''Bourne again shell'' on useimpien Linux-jakeluiden oletuskomentotulkki. Se toimii yleensä [[sh]]:n lailla, [[POSIX]]-standardia noudattaen, mutta sisältää suuren määrän laajennoksia, osa [[ksh]]:stä ja [[csh]]:stä lainattuja.


Bash osaa näyttää ohjeen sisäisille komennoilleen komennolla <tt>help</tt>
Seuraava [[Bash-skriptaus|Bash-skripti]] tietää käyttäjänimesi ja kysyy mitä kuuluu.
<syntaxhighlight lang="bash">
#!/bin/bash
echo "Hei, $(whoami), mitä kuuluu?"
</syntaxhighlight>
==Käyttäytymisen muokkaaminen==
Bashin käyttäytymistä ja komentokehotteen ulkoasua on mahdollista muokata hyvinkin monipuolisesti. Edellisessä pitää muistaa, että komentotulkkia käyttävät ohjelmat voivat olla hyvinkin tarkkoja siitä, miten tulkki käyttäytyy, eli asetusten pitää koskea vain interaktiivisesti käynnistettyjä tulkkeja.
Bashin käyttäytymistä ja komentokehotteen ulkoasua on mahdollista muokata hyvinkin monipuolisesti. Edellisessä pitää muistaa, että komentotulkkia käyttävät ohjelmat voivat olla hyvinkin tarkkoja siitä, miten tulkki käyttäytyy, eli asetusten pitää koskea vain interaktiivisesti käynnistettyjä tulkkeja.


Riippuen valitsimista tai siitä nimestä, jolla bash käynnistyy se toimii normaalisti, yrittäen seurata historiallista sh:n käyttäytymistä (sh), POSIX-standardia (--posix) tai rajoittaen käyttäjän vapautta (rbash, --restricted). Käytös riippuu myös mm. siitä käynnistetäänkö se interaktiivisesti &ndash; sekä valitsimista ja asetustiedostoissa tai komentorivillä annetuista lisäohjeista.
Riippuen valitsimista tai siitä nimestä, jolla bash käynnistyy se toimii normaalisti, yrittäen seurata historiallista sh:n käyttäytymistä (sh), POSIX-standardia (--posix) tai rajoittaen käyttäjän vapautta (rbash, --restricted). Käytös riippuu myös mm. siitä käynnistetäänkö se interaktiivisesti &ndash; sekä valitsimista ja asetustiedostoissa tai komentorivillä annetuista lisäohjeista.


[[Bashin ulkoasu]]sta on oma artikkelinsa, jossa ohjeet komentokehotteen ulkoasun muokkaamisesta.  
[[Bashin ulkoasu]]sta on oma artikkelinsa, jossa ohjeet komentokehotteen ulkoasun muokkaamisesta. Samaten [[bash-skriptaus|bash-skriptien kirjoittamisesta]] on oma artikkelinsa.
 
Komentorivin tabulaattoritäydennys toimii yleensä vain komennoille, hakemistoille, tiedostoille, käyttäjätunnuksille ja ympäristömuuttujille. Ajamalla bashissa /etc/bash_completion täydennys saadaan käyttämään hyväkseen tietoa eri komennoista, jolloin täydennys toimii myös valitsimille, koneennimille yms. Rivi löytynee valmiiksi käyttäjän tai järjestelmän asetustiedostossa (~/.[[bashrc]] tai /etc/bash.bashrc). Jos rivin alussa on "#", se aktivoidaan poistamalla kyseinen merkki. Rivin alussa oleva piste tai "source"-sana on oleellinen: muuten skripti ajetaan omana ohjelmanaan, joka ei vaikuta käytettävään komentotulkkiin.
 
==Asetustiedostot==
Bash noudattaa periaatteessa perinteistä kaavaa, jossa sisäänkirjuduttaessa käynnistetty komentotulkki lukee tiedostot /etc/profile ja ~/.profile (.bash_profile tai .bash_login, jos jompikumpi on olemassa), interaktiivinen muu tulkki tiedostot /etc/bash.bashrc ja ~/.bashrc ja ei-interaktiivinen muu tulkki [[ympäristömuuttuja]]ssa BASH_ENV määritellyn tiedoston. Interaktiivisuus ja sisäänkirjautuminen todetaan [[valitsin|valitsimien]] ja STDINin perusteella. Tätä sekoittaa se, että useimmissa jakeluissa tiedostot kutsuvat toinen toisiaan ja työnjako toteutetaan ehtolauseiden avulla (alkuperäinen syy työnjaolle oli resurssien säästö: ei tarvinnut lukea ja ajaa turhaa): <code>if [ -n "$BASH_VERSION" ]; then ...</code>
 
Käynnistettynä nimellä sh bash käyttää tiedostoja /etc/profile, ~/.profile ja ympäristömuuttujassa ENV määrättyä tiedostoa.


Komentorivin tabulaattoritäydennys toimii yleensä vain komennoille, hakemistoille, tiedostoille, käyttäjätunnuksille ja ympäristömuuttujille. Ajamalla bashissa /etc/bash_completion täydennys saadaan käyttämään hyväkseen tietoa eri komennoista, jolloin täydennys toimii myös valitsimille, koneennimille yms. Rivi löytynee valmiiksi käyttäjän tai järjestelmän asetustiedostossa (~/.[[bashrc]] tai /etc/bash.bashrc). Jos rivin alussa on "#", se aktivoidaan poistamalla kyseinen merkki.
Usein osa asetuksista tehdään eri tiedostoissa, joita varsinainen asetustiedosto lukee tarpeen mukaan, esimerkiksi .bash_aliases


== Katso myös ==
== Katso myös ==
Rivi 13: Rivi 38:
* [[komentotulkki]]
* [[komentotulkki]]
* [[Bash-skriptaus]]
* [[Bash-skriptaus]]
* [[Shellshock]]


==Aiheesta muualla==
* [http://www.gnu.org/software/bash/ Bashin virallinen kotisivu]
[[Luokka:Komentotulkit]]
* [http://www.linuxien.com/docs/bash/shellscript.html Introduction To Bash Shell Scripting]
[[Luokka:Komentotulkit]]
[[Luokka:Komentotulkit]]
[[pl:Bash]]

Nykyinen versio 2. heinäkuuta 2024 kello 10.27

GNU Bash

Käyttöliittymä teksti
Lisenssi GPLv3+
Kotisivu gnu.org/software/bash

Bash eli Bourne again shell on useimpien Linux-jakeluiden oletuskomentotulkki. Se toimii yleensä sh:n lailla, POSIX-standardia noudattaen, mutta sisältää suuren määrän laajennoksia, osa ksh:stä ja csh:stä lainattuja.

Bash osaa näyttää ohjeen sisäisille komennoilleen komennolla help

Seuraava Bash-skripti tietää käyttäjänimesi ja kysyy mitä kuuluu.

#!/bin/bash
echo "Hei, $(whoami), mitä kuuluu?"

Käyttäytymisen muokkaaminen[muokkaa]

Bashin käyttäytymistä ja komentokehotteen ulkoasua on mahdollista muokata hyvinkin monipuolisesti. Edellisessä pitää muistaa, että komentotulkkia käyttävät ohjelmat voivat olla hyvinkin tarkkoja siitä, miten tulkki käyttäytyy, eli asetusten pitää koskea vain interaktiivisesti käynnistettyjä tulkkeja.

Riippuen valitsimista tai siitä nimestä, jolla bash käynnistyy se toimii normaalisti, yrittäen seurata historiallista sh:n käyttäytymistä (sh), POSIX-standardia (--posix) tai rajoittaen käyttäjän vapautta (rbash, --restricted). Käytös riippuu myös mm. siitä käynnistetäänkö se interaktiivisesti – sekä valitsimista ja asetustiedostoissa tai komentorivillä annetuista lisäohjeista.

Bashin ulkoasusta on oma artikkelinsa, jossa ohjeet komentokehotteen ulkoasun muokkaamisesta. Samaten bash-skriptien kirjoittamisesta on oma artikkelinsa.

Komentorivin tabulaattoritäydennys toimii yleensä vain komennoille, hakemistoille, tiedostoille, käyttäjätunnuksille ja ympäristömuuttujille. Ajamalla bashissa /etc/bash_completion täydennys saadaan käyttämään hyväkseen tietoa eri komennoista, jolloin täydennys toimii myös valitsimille, koneennimille yms. Rivi löytynee valmiiksi käyttäjän tai järjestelmän asetustiedostossa (~/.bashrc tai /etc/bash.bashrc). Jos rivin alussa on "#", se aktivoidaan poistamalla kyseinen merkki. Rivin alussa oleva piste tai "source"-sana on oleellinen: muuten skripti ajetaan omana ohjelmanaan, joka ei vaikuta käytettävään komentotulkkiin.

Asetustiedostot[muokkaa]

Bash noudattaa periaatteessa perinteistä kaavaa, jossa sisäänkirjuduttaessa käynnistetty komentotulkki lukee tiedostot /etc/profile ja ~/.profile (.bash_profile tai .bash_login, jos jompikumpi on olemassa), interaktiivinen muu tulkki tiedostot /etc/bash.bashrc ja ~/.bashrc ja ei-interaktiivinen muu tulkki ympäristömuuttujassa BASH_ENV määritellyn tiedoston. Interaktiivisuus ja sisäänkirjautuminen todetaan valitsimien ja STDINin perusteella. Tätä sekoittaa se, että useimmissa jakeluissa tiedostot kutsuvat toinen toisiaan ja työnjako toteutetaan ehtolauseiden avulla (alkuperäinen syy työnjaolle oli resurssien säästö: ei tarvinnut lukea ja ajaa turhaa): if [ -n "$BASH_VERSION" ]; then ...

Käynnistettynä nimellä sh bash käyttää tiedostoja /etc/profile, ~/.profile ja ympäristömuuttujassa ENV määrättyä tiedostoa.

Usein osa asetuksista tehdään eri tiedostoissa, joita varsinainen asetustiedosto lukee tarpeen mukaan, esimerkiksi .bash_aliases

Katso myös[muokkaa]