Varijable su nacin preosledjivanja informacija od shell-a do programa kada ih pokrecete. Programi gledaju “u okruzenju” za odredjene varijable i ako ih nadju koristice njihove sacuvane vrednosti. Neke su podesene od strane sistema, ostale od vas, opet neke druge od strane shell-a, ili nekog preograma koji ucitava drugi program.
Standardne UNIX varijable su podeljene u dve kategorije, environment varijable i shell varijable. Prosto receno, shell varijable vaze samo za trenutnu instancu shell-a i koriste se za podesavanje kratkorocnih radnih uslova; environment varijable imaju znacaj koji doseze dalje, i one podesene pri logovanju su validne za celo trajanje sesije. Konvencionalno, environment varijable imaju VELIKA SLOVA i shell varijable imaju imena sa malim slovima.
Primer environment varijable je OSTYPE varijabla. Njena vrednost je trenutni operativni sistem koji koristite. Kucajte
% echo $OSTYPE
Ostali primeri environment varijabli su
ENVIRONMENT varijable se postavljaju koristeci setenv komandu, prikazuju se koristeci printenv ili env komande, i uklanjaju se koristeci unsetenv komandu.
Da prikazete sve vrednosti ovih varijabli, kucajte
% printenv | less
Primer shell varijable je history varijabla. Njena vrednost je koliko shell komandi da sacuva, omogucavajuci korisniku da pregleda sve komande koje je ranije uneo. Kucajte
% echo $history
Ostali primeri shell varijabli su
SHELL varijable se i postavljaju i prikazuju koriscenjem set komande. Mogu se ukloniti koriscenjem unset komande.
Da prikazete sve vrednosti ovih varijabli, kucajte
% set | less
Uopsteno, environment i shell varijable koje imaju isto ime (osim velikih i malih slova) su odvojene i nezavisne, osim mogucnosti da imaju iste pocetne vrednosti. Ipak postoje i neki izuzeci.
Svaki put kada se shell varijable home, user i term promene, odgovarajuce environment varijable HOME, USER i TERM dobijaju iste vrednosti. Ipak, menjanje environment varijabli nema efekat na odgovarajuce shell varijable.
PATH i path odredjuju direktorijume koji se pretrazuju za komande i programe. Obe varijable uvek predstavljaju istu listu direktorijuma, i menjanje bilo koje automatski menja i ovu drugu.
Svaki put kada se ulogujete na UNIX host, sistem gleda u vas home direktorijum za fajlove za pokretanje. Informacije u ovim fajlovima se koriste da podese vase radno okruzenje. C i TC shell koriste dva fajla koji se nazivaju .login i .cshrc (primetite da oba imena fajlova pocinju sa tackom).
Pri logovanju C shell prvo cita .cshrc i onda .login
.login se koristi za postavljanje uslova koje ce se primeniti na celu sesiju i da se izvrse postupci koji su vazni samo prlikom logovanja.
.cshrc se koristi za postavljanje uslova i izvrsava postupke specificne za shell i prilikom svakog njenog pozivanja.
Uputstva su da se ENVIRONMENT varijable postavljaju u .login fajlu i SHELL varijable u .cshrc fajlu.
| UPOZORENJE: NIKADA ne stavljajte komande koje pokrecu graficke prozore (npr. web citac) u vasem .cshrc ili .login fajlu. |
Na primer, da promenite broj shell komandi koje se cuvaju u history listi, morate da postavite shell varijablu history. Podrazumevano je podesena na 100, ali ako zelite ovaj broj mozete da povecate.
% set history = 200
Proverite dali je ovo radilo tako sto kucate
% echo $history
Ipak, ovo je postavilo varijablu koja ce ostati samo dok je trenutni shell otvoren. Ako otvorite novi xterm prozor, imace samo podrazumevanu podesenu history vrednost. Da podesite vrednost za history ZA STALNO, moracete da dodate set komandu u .cshrc fajl.
Prvo otvorite .cshrc fajl u uredjivacu teksta. Lak, user-friendly uredjivac koji mozete koristiti je nedit.
% nedit ~/.cshrc
Dodajte sledecu liniju NAKON liste ostalih komandi.
| set history = 200 |
Sacuvajte fajl i kazite shell-u da ponovo ucita svoj .cshrc fajl koristeci shell source komandu. % source .cshrc Proverite dali je ovo radilo tako sto kucate % echo $history
Kada kucate komandu, vasa path (ili PATH) varijabla definise u koje ce direktorijume shell traziti da nadje komandu koju ste ukucali. Ako sistem prikaze poruku koja kaze “command: Command not found”, ovo znaci da komanda ne postoji na sistemu uopste ili jednostavno nije u vasoj putanji.
Na primer, da pokrenete units, morate da direktno odredite putanju za units (~/units174/bin/units), ili morate imati direktorijum ~/units174/bin u vasoj putanji.
Mozete ga dodati na kraju vase postojece putanje ($path predstavlja ovo) tako sto izdajete komandu:
% set path = ($path ~/units174/bin)
Testirajte dali je ovo radilo tako sto cete pokrenuti units u bilo kom drugom direktorijumu osim u onom u kojem se units ustvari nalazi.
% cd; units
| SAVET: Mozete pokrenuti vise komandi u jednoj liniji tako sto cete ih odvojiti tackom i zarezom. |
Da dodate ovu putanju za STALNO, dodajte sledecu liniju u vas .cshrc NAKON liste ostalih komandi.
| set path = ($path ~/units174/bin) |