Bash

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

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[1][2].

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.[3] Ca joc de cuvinte, exprimă acest obiectiv intr-o formă ce sună similar cu sintagma naștere din nou.[4][5] Numele descrie de asemenea realizarea sa, îngemănarea funcțiilor din sh, csh și ksh.[6] Un defect de securitate denumit Shellshock,[7] apărut de la versiunea 1.03, a fost descoperit în septembrie 2014.[8][9]

Istorie[modificare | modificare sursă]

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

Generalități[modificare | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

Dacă doriți ca aplicatia să devina un executabil, atunci intoduceț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 | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

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 | modificare sursă]

  1. ^ gnu.org - GNU Bash [1]
  2. ^ Bash FAQ, version 4.13, for Bash version 4.3 [2]
  3. ^ C Programming by Al Stevens, Dr. Dobb's Journal, July 1, 2001
  4. ^ Richard Stallman (12 noiembrie 2010). „About the GNU Project”. Free Software Foundation. Arhivat din original la 24 aprilie 2011. https://web.archive.org/web/20110424064815/http://www.gnu.org/gnu/thegnuproject.html. Accesat la 13 martie 2011. „“Bourne Again Shell” is a play on the name Bourne Shell, which was the usual shell on Unix.” 
  5. ^ Gattol, Markus (13 martie 2011), Bourne-again Shell, http://www.markus-gattol.name/ws/bash.html, accesat la 13 martie 2011, „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".” 
  6. ^ Ian Darwin (June 13, 1989). at&t-free ksh (was: job control is a bug, not a feature). Retrieved March 21, 2011. "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."  Unknown parameter |newsgroup= ignored (help)
  7. ^ Chazelas, Stephane (4 octombrie 2014). „oss-sec mailing list archives”. Seclists.org. http://seclists.org/oss-sec/2014/q4/102. Accesat la 4 octombrie 2014. 
  8. ^ Leyden, John (24 septembrie 2014). „Patch Bash NOW: 'Shell Shock' bug blasts OS X, Linux systems wide open”. The Register. http://www.theregister.co.uk/2014/09/24/bash_shell_vuln/. Accesat la 25 septembrie 2014. 
  9. ^ Perlroth, Nicole (25 septembrie 2014). „Security Experts Expect ‘Shellshock’ Software Bug in Bash to Be Significant”. New York Times. http://www.nytimes.com/2014/09/26/technology/security-experts-expect-shellshock-software-bug-to-be-significant.html. Accesat la 25 septembrie 2014. 
  10. ^ Brian Fox (29 august 1996), shell.c, Free Software Foundation, http://ftp.gnu.org/gnu/bash/bash-1.14.7.tar.gz, „Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox” 
  11. ^ Richard Stallman (3 octombrie 2010). „About the GNU Project”. Free Software Foundation. Arhivat din original la 24 aprilie 2011. https://web.archive.org/web/20110424064815/http://www.gnu.org/gnu/thegnuproject.html. Accesat la 21 martie 2011. „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 | modificare sursă]