Slackware Logo
Slackware Logo

Lugons

Info

Prevodioci

Greške

 
 LUGONS Slackbook prevod

8.3 Bourne Again Shell (bash)

8.3.1 Varijable okruženja

Linux sistem je komplikovana životinja, i postoji mnogo toga što se treba pamtiti, mnogo sitnih detalja koji ulaze u igru prilikom normalnih interakcija sa raznim programima (ne morate ni biti svesni nekih od njih). Niko ne želi da daje gomilu opcija svakom programu kojeg izvršava, govoreći mu koju vrstu terminala koristi, ime računara, kako prompt treba da izgleda...

Pa, kao mehanizam preživljavanja, korisnici imaju nešto što se zove okruženje. Okruženje definiše uslove pod kojima se izvršavaju programi, a neke od ovih definicija su varijable; korsnik ih može promeniti i igrati se njima, što je dobro samo u Linux sistemu. Skoro svaka školjka ima varijable okruženja (ako ne, onda to verovatno i nije korisna školjka). Ovde ćemo dati pregled komandi koje pruža bash za manipulaciju svojih varijabli okruženja.

set pozvan tako će vam pokazati sve varijable okruženja koje su trenutno definisane, kao i njihove vrednosti. Kao i većina komandi ugrađenih u bash on može uraditi još nekoliko stvari (sa parametrima); ipak ćemo to ostaviti bash(1) man stranici da objasni. Example 8-1 prikazuje isečak iz set komande pokrenute na jednom od autorovih računara. Primetite u ovom primeru PATH varijablu o kojoj je pre diskutovano. Programi u bilo kojem od ovih direktorijuma se mogu pokrenuti ako ukucate samo njihovo ime.

Example 8-1. Listanje varijabli okruženja sa set

% set
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash
% unset VARIJABLA

unset će ukloniti svaku varijablu koju mu date, brišući i varijablu i njenu vrednost; bash će zaboraviti da je varijabla ikada postojala. (Ne brinite. Ukoliko nije nešto što ste eksplicitno definisali u sesiji školjke, verovatno će biti opet definisana u svakoj drugoj sesiji.)

% export VARIJABLA=neka_vrednost

Sad, export je istinski zgodan. Koristeći ga, dajete varijabli okruženja VARIJABLA vrednost “neka_vrednost”; ukoliko VARIJABLA nije postojala, sada postoji. Ukoliko je VARIJABLA već imala vrednost, pa, nema je više. To nije baš najbolje ukoliko pokušavate da dodate direktorijum u vaš PATH. U tom slučaju, verovatno želite da koristite nešto kao ovo:

% export PATH=$PATH:/neki/nov/direktorijum

Primetite kako koristimo $PATH ovde: kada želite da bash interpretira varijablu (zameni je s njenom vrednošću), ubacite $ pred početak imena varijable. Na primer, echo $PATH će napisati vrednost varijable PATH, u mom slučaju:

% echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

8.3.2 Tab popunjavanje

(Ovde opet sledi nešto cool.)

  1. Interfejs komandne linije znači mnogo kucanja.

  2. Kucanje je posao.

  3. Niko ne voli posao.

Iz 3 i 2, možemo zaključiti da (4) niko ne voli kucanje. Srećom, bash nas čuva od (5) (niko ne voli interfejs komandne linije).

Kako bash postiže ovaj divni zadatak, pitate vi? U dodatak džokerima koje smo prodiskutovali pre, bash ima osobinu tab popunjavanja

Tab popunjavanje radi nešto slično ovome: Vi kucate ime fajla. Može je on u vašoj varijabli PATH, možda ga kucate eksplicitno. Sve što treba da uradite je da ukucate dovoljno od imena da fajl bude jedinstven sa tim slovima. Onda pritisnite taster tab. bash će razumeti šta želite i završiti kucanje umesto vas!

Vreme je za primer. /usr/src ima dva poddirektorijuma: /usr/src/linux i /usr/src/sendmail. Ja želim da vidim šta je u /usr/src/linux. Stoga samo kucam ls /usr/src/l, pritisnem TAB taster i bash mi daje ls /usr/src/linux.

Sada, pretpostavimo da postoje dva direktorijuma /usr/src/linux i /usr/src/linux-old; ukoliko ukucam /usr/src/l i pritisnuo TAB, bash će popuniti koliko god može, i ja ću dobiti /usr/src/linux. Mogu tu stati, ili mogu pritisnuti TAB opet i bash će pokazati listu direktorijuma koji se poklapaju sa tim što sam do sad ukucao.

Time manje kucanja (i samim tim, ljudima se mogu sviđati interfejsi komandne linije). Rekao sam vam da je cool.