Bash

Captură de ecral al unei sesiuni Bash
Autor inițialBrian Fox
DezvoltatorProiectul GNU
Chet Ramey[*][[Chet Ramey (software developer)|​]][1]  Modificați la Wikidata
Versiune inițială8 iunie 1989; acum 34 ani, 9 luni și 17 zile (1989-06-08)
Ultima versiune5.2.21[2]  Modificați la Wikidata ()
Repogit.savannah.gnu.org/cgit/bash.git Modificați la Wikidata
Scris înC
Sistem de operare
PlatformăGNU
Disponibil înMultilingual (gettext)
TipÎnveliș Unix, limbaj de comenzi
LicențăÎncepând cu 4.0: GPL-3.0-sau-următoare[6]

1.11? până la 3.2: GPL-2.0-sau-următoare[7]

0.99? până la 1.05?: GPL-1.0-sau-următoare[8][9][10]
Prezență online
www.gnu.org/software/bash/


Bash este un interpretor de comenzi Unix scris inițial de către Brian Fox de la Fundația pentru Software Liber pentru Proiectul GNU[11][12].

Numele este un acronim, un joc de cuvinte și o descriere. Ca acronim, vine de la Bourne-again shell, referindu-se la obiectivul său ca înlocuitor liber pentru Bourne shell.[13] Ca joc de cuvinte, exprimă acest obiectiv intr-o formă ce sună similar cu sintagma naștere din nou.[14][15] Numele descrie de asemenea realizarea sa, îngemănarea funcțiilor din sh, csh și ksh.[16] Un defect de securitate denumit Shellshock,[17] apărut de la versiunea 1.03, a fost descoperit în septembrie 2014.[18][19]

Istorie modificare

Brian Fox a început să programeze Bash pe 10 ianuarie 1988,[20] după ce Richard Stallman a devenit nemulțumit din cauza lipsei progresului unui programator anterior.[21]

Generalități modificare

Pentru a scrie scripturi în Bash este necesar un editor de text. Exemple: Gedit, Nano, MidnightCommander Edit.

Un script în Bash trebuie obligatoriu să aibă prima linie de cod: #!/bin/bash, deoarece trebuie comunicat sistemului de operare ce interpretor de comenzi se utilizează.

Comentariile în Bash se fac utilizând caracterul urmator: #.

Informații suplimentare modificare

Bash este un limbaj de scripting compatibil cu comenzile de shell. El poate fi executat fie din input-ul standard, fie dintr-un fișier. Scripturile Bash sunt în realitate fișiere text făcute executabile, aceste fișiere putând fi editate cu orice editor de text. Aceste scripturi sunt folosite pentru a executa comenzi simple sau complexe.

Rulare modificare

Pentru a executa aplicația creată trebuie introdusă în consola urmatoarea comandă:

cd ~/Directorul unde se afla scriptul

bash nume_script.sh

Informații suplimentare modificare

Dacă doriți ca aplicatia să devina un executabil, atunci introduceți:

chmod +x nume.sh

Pentru pornire, dublu clic pe pictograma aplicației. O altă posibilitate este cea de a rula scriptul direct în consolă:

./nume.sh

Exemplu modificare

Exemplul „Hello World!”:

#!/bin/bash

clear

echo "Hello World!"

Utilizând comanda echo, avem posibilitatea de a afișa un text. În cazul nostru, "Hello World!", în traducere: "Salut lume!".

Comanda clear are rolul de a șterge conținutul ecranului, înlocuindu-l cu mesajul ales.

Informații suplimentare modificare

echo acceptă mai mulți parametri:

-e interpretează caracterul backslash

-E dezactivează interpretarea caracterului backslash

\a avertizare sonoră

\b șterge ultimul caracter afișat

\c șterge șirul de caractere care urmează această comandă

\n face trecerea la o linie nouă

\r are efectul apăsării tastei "Enter"

\t afișează caracterul "Tab"

Variabile modificare

In Bash există două tipuri de variabile, și anume:

  • Definite de utilizator
  • Variabilele sistemului Pentru a vizualiza o listă cu toate variabilele sistemului, rulați în consola următoarea comandă: set Cum declarăm variabile in Bash? Exemplu de variabile din sistem: #!/bin/bash echo "Salut $USER" USER este o variabila ce îți afișează numele de utilizator al contului cu care ești autentificat. Exemplu de variabilă definita de utilizator: #!/bin/bash nume=adrian varsta=8 echo "Salut $nume, știu că ai $varsta!" nume respectiv varsta sunt variabilele noastre. Utilizănd comanda echo, am afișat variabilele definite de noi.

    Declarație de citire modificare

    Această declarație este folosită pentru preluarea datelor de la utilizator prin intermediul tastaturii și memorarea datelor în variabile.

    Exemplu:

    #!/bin/bash

    read nume

    echo "Salutare $nume, ce faci?"

    Mai precis, read acordă posibilitatea de a introduce un text de la tastatură.

    Condiția if modificare

    Condiția if este o simplă comparație între două valori. Ea este folosită pentru luarea deciziilor în Bash.

    Exemplu:

    #!/bin/bash

    if cat $1

    then

    echo "Fisierul $1 a fost gasit si afisat cu succes."

    fi

    Explicație: Dacă comanda cat găseste fișierul "$1" și îl afișează pe ecran, înseamnă că această comandă a fost executată cu succes și starea ei de exit este 0. Dacă însă comanda nu este executată cu succes, atunci valoarea stării de exit returnată de aceasta este diferită de zero și declarația: echo "Fisierul $1 a fost gasit si afisat cu succes." nu este executată de catre shell.

    Note modificare

    1. ^ https://www.aosabook.org/en/intro1.html, accesat în   Lipsește sau este vid: |title= (ajutor)
    2. ^ bash-5.2.21.tar.gz (în engleză), , accesat în  
    3. ^ „Bash FAQ, version 4.14”. Arhivat din original la . Accesat în . 
    4. ^ „Missing source code - GPL compliance? · Issue #107 · Microsoft/WSL”. GitHub. Arhivat din original la . Accesat în . 
    5. ^ „GNU Bash”. Softpedia. SoftNews. Arhivat din original la . Accesat în . 
    6. ^ GNU Project. „README file”. Arhivat din original la . Accesat în . Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version). 
    7. ^ „bash-1.11”. oldlinux.org. See test.c for GPL-2.0-or-later 
    8. ^ „bash-1.05.tar”. oldlinux.org. 
    9. ^ „BashFAQ/061 - Greg's Wiki”. mywiki.wooledge.org. Arhivat din original la . Accesat în . 
    10. ^ „Is there a way to download the presumably initial bash source bash-0.99?”. unix.stackexchange.com. 
    11. ^ gnu.org - GNU Bash [1]
    12. ^ Bash FAQ, version 4.13, for Bash version 4.3 [2]
    13. ^ C Programming by Al Stevens, Dr. Dobb's Journal, 1 iulie 2001
    14. ^ Richard Stallman (). „About the GNU Project”. Free Software Foundation. Arhivat din originalul de la . Accesat în . “Bourne Again Shell” is a play on the name Bourne Shell, which was the usual shell on Unix. 
    15. ^ Gattol, Markus (), Bourne-again Shell, accesat în , The name is a pun on the name of the Bourne shell (sh), an early and important Unix shell written by Stephen Bourne and distributed with Version 7 Unix circa 1978, and the concept of being "born again". 
    16. ^ Ian Darwin (). „at&t-free ksh (was: job control is a bug, not a feature)”. Accesat în . Yup, the gnu project's Born Again Shell ("bash") is an attempt at bashing all the features of sh together with many of those from both csh and ksh.  Parametru necunoscut |newsgroup= ignorat (ajutor)
    17. ^ Chazelas, Stephane (). „oss-sec mailing list archives”. Seclists.org. Accesat în . 
    18. ^ Leyden, John (). „Patch Bash NOW: 'Shell Shock' bug blasts OS X, Linux systems wide open”. The Register. Accesat în . 
    19. ^ Perlroth, Nicole (). „Security Experts Expect 'Shellshock' Software Bug in Bash to Be Significant”. New York Times. Accesat în . 
    20. ^ Brian Fox (), shell.c, Free Software Foundation, Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox 
    21. ^ Richard Stallman (). „About the GNU Project”. Free Software Foundation. Arhivat din originalul de la . Accesat în . Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. ... We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal. 

    Legături externe modificare

     
    Commons
    Wikimedia Commons conține materiale multimedia legate de Bash