24th velj.2014

Upoznajte BASH – prvi dio

by Goran Krstičević

Upoznajte BASH – U jednom od postova već smo pisali o osnovnim CLI naredbama, o tome što je Shell, Terminal, CLI … i ovaj tekst se samo nadovezuje na njega. Spomenuti tekst možete pronaći ovdje.

Tekst upoznajte bash pisan je s namjerom da korisnici upoznaju osnovne Linux naredbe i BASH ljusku, te polazi od pretpostavke da korsnik ne zna ništa o Linuxu i Linux naredbama.

Što je to Shell?

  • Program koji interpretira naredbe
  • Omogućava korisniku izvršavanje naredbi bilo direktnim upisivanjem bilo pokretanjem istih iz tekstualne datoteke koju nazivamo Shell skriptom
  • Shell nije operativni sustav, već način za komunikaciju s računalom

Što je BASH?

  • BASH = Bourne Again Shell
  • BASH je napisan kao slobodna zamjena za originalan Bourne Shell (/bin/sh) koji je napisao Steve Bourne za UNIX
  • Ima sve mogućnosti originalnog Bourne shella te neke nove koje omogućuju lakše programiranje i korištenje naredbenog retka
  • Obzirom da je free software, prihvaćen je kao nativna ljuska u većini Linux distribucija

Koliko je BASH drugačiji od DOS Command Prompta?

  • Case Sensitive – u Linuxu su naredbe osjetljive na velika i mala slova, što znači da ukoliko se unese LS umjesto ls, dogodit će se greška
  • \ i / – u DOS­u je znak / graničnik argumenata naredbe dok je \ separator direktorija. U Linuxu / je separator direktorija, a \ je simbol za izlaz.
  • Imena datoteka – u DOS­u se koriste tzv. “eight dot three” imena, što znači da svaka datoteka smije sadržavati do 8 znakova nakon kojih slijedi . (točka) te naziv ekstenzije, npr. .exe ili .txt. U Linuxu je to drugačije, ­ nema ekstenzija datoteka. Na kraj skripte možete, a i ne morate staviti .sh ili .py

Posebni znakovi

Prije nego krenemo dublje u proučavanje BASH ljuske, potrebno je znati da postoje neki znakovi koje BASH interpretira kao naredbe. To znači da postoje znakovi:

  • Koje ne možete koristiti u nekim situacijama
  • Koji se koriste za određene operacije
  • Koje morate izbjegavati prilikom rada u shellu jer će rezultirati neželjenim ishodom
Znak Opis
\ Znak ‘bijega’, izlaza; ako ga želite koristiti kao poseban znak prvo ga morate izbjeći. Npr. touch /tmp/filename\*
/ Separator direktorija; koristi se za odvajanje dijelova putanje u nazivu. Npr. /home/username/Downloads
. Trenutni direktorij; također se koristi za skrivanje datoteka i mapa ako se stavi na pravo mjesto u imenu
.. Koristi se za vraćanje kroz direktorije
~ Označava /home direktorij
* Označava 0 ili više znakova u imenu datoteke, a kada se koristi samostalno tada sve datoteke u direktoriju
? Predstavlja jedan znak u datotečnom imenu, npr. shelltutorial?.txt može predstavljati shelltutorial1.txt shelltutorial2.txt, ali ne i shelltutorial12.txt
[] Koristi se za prikaz niza vrijednosti, npr. [0-9], [A-Z]
| Koristi se za spajanje dviju naredbi
> Preusmjerava izlazni rezultat naredbe u novu datoteku; ako datoteka istog imena već postoji pisati će preko nje (eng. Overwrite). Npr. ls -l > mojedatoteke.txt
>> Preusmjerava izlazni rezultat naredbe na završetak postojeće datoteke. Npr. echo “hrvoje.horvat@gmail.com” >> adresar.txt
; Odvajatelj naredbi; koristi se za izvršavanje više naredbi u istom redu. Npr. cd /var/log ; less messages
&& Također odvajatelj naredbi; no sljedećoj naredbi dopušta da se izvrši samo ako je prethodna prošla bez greške
& Izvršava naredbu u pozadini te odmah korisniku vraća shell

Izvršavanje naredbi

Većina naredbi je smještena u putanju Shella (eng. path) što znači da ju je za njeno izvršenje potrebno upisati u shell kako bi se ona i izvršila. Primjerice, kad upišemo ls pokrenut će se ls naredba. Putanja shella uključuje najčešće lokacije programa, /bin, /usr/bin, /usr/X11R6/bin i slično.

Za pokretanje programa koji nisu u putanji shella mora se unijeti i putanja do istog.
Npr. /home/user/skripte/inversematrix (putanja do skripte za računanje inverzne matrice koja se nalazi u direktoriju sa skriptama)

Sintaksa naredbe

Naredbe se mogu pokretati samostalno ili im se mogu dodati argumenti za izvršavanje dodatnih funkcija. Tipična sintaksa izgleda ovako:

Primjeri:

  • ls – lista datoteke u trenutnom direktoriju
  • ls -­l – lista datoteke u tzv. dugom formatu
  • ls -­l –­­color – ­ lista datoteke u dogom formatu, ali ispisu dodaje boje

To be continued…