07 децембар 2008

GNUčionica III - shell I?

Dragi moji i drage moje, prvo izvinjenje na otezanju i zabušavanju. Pakleni mesec je prošao i polako se vraćam u normalne tokove pa tako stiže i novo izdanje GNUčionice. Za one koji su zaboravili čemu sve ovo, poenta je da se apsolutnim početnicima pojasne neke osnove GNU/Linux sistema bez ulaska u preterano detaljisanje ili da se poteže terminologija koja sama po sebi zahteva objašnjenje. I dalje nećemo žvakati materiju praveći tutorijale koje samo treba progutati, već idemo principom da se korisnik maksimalno angažuje, a da mu se ovde daju samo adekvatne smernice.
Dakle, nastavljamo. Vaš sistem je instaliran, ali ne radi kako treba ili su potrebna podešavanja koja je nemoguće obaviti upotrebom GUI (graphical user interface - grafičko korisničko okruženje). Saveti koje dobijate neminovno će vas dovesti u dodir sa konzolom. Opet malo istorije. Konzola ili terminal vuče svoje poreklo od prvih *nix sistema koji nisu imali pomenuti GUI već je korisnik komunicirao sa programima i sistemom koristeći CLI (command line interface - okruženje komandne linije). Jednostavnije, korisnik je kucao šta želi da radi i kako, a sistem je to interpretirao i izvršavao. Ovakav način rada zadržao se do danas iz više razloga. Iako možda zvuči čudno, CLI ima dosta prednosti nad GUI pristupom, naravno, za malo naprednije korisnike. Sa druge strane, na linux sistemima, GUI je samo produžetak ili nadogradnja osnovnog (konzolnog) korisničkog okruženja. Da ne trebimo previše, početnicima je dovoljno da znaju i razumeju da se u ulazak srž sistema, njegovo administriranje i održavanje najbolje, najefikasnije i najjednostavnije obavlja upravo preko konzole i da to nije ništa strašno već da samo iziskuje da se nauče neke osnovne stvari. Za one koje interesuje malo detaljnije šta je šta u ovoj temi neka pogledaju sledeće linkove: *nix shell, linux shell, terminal emulator.

U konzoli možete da se nađete na dva načina. U prvom slučaju vaš sistem nije uspešno podigao GUI i vi ste zaglavljeni u crnilu komandne linije, a u drugom slučaju morate da obavite određene poslove koristeći CLI i neki od programa za emulaciju terminala na linuxu. Pomenuti poslovi su najčešće editovanje (izmena) postojećih konfiguracionih fajlova ili izvršavanje određene komande ili više njih.
U svakom slučaju da bi uspešno odradili sve zadatke potrebno je naučiti neke osnove rada u komandnoj liniji, a pošto je internet pun lepih uputstava i tutorijala (kao recimo ovaj) ovde ćemo pomenuti samo onoliko koliko je potrebno da se snađete u novoj sredini.
Prvo što morate da znate je "ko ste" tj. kolika ovlašćenja imate na sistemu. root (administrator) ima sva prava (izmena fajlova ili pokretanje komandi), a običan korisnik ne. Većina podešavanja se obavlja kao root korisnik stoga prvo pogledajte kako se završava odzivni znak konzole.
$ - vi ste običan korisnik
# - vi ste root korisnik
Takođe možete ukucati komandu whoami (u daljem textu komande će biti iskošene) koja će vam reći istu stvar. Znači, ukoliko naletite na savet da uradite
# neka_komanda --neka_opcija
prvo proverite da li imate root ovlašćenja. Administratorska ovlašćenja možete preuzeti na nekoliko načina. Najčešće se to izvodi komandom su posle koje sledi unos root lozinke (neće biti nikakve indikacije tj. kucate "na slepo") i ukoliko je sve OK dobijate # odzivni znak. Drugi popularan metod je sudo (super user do) što će reći da se pojedinim korisnicima pod određenim uslovima dozvoljava izvršavanje administratorskih zadataka. Nakon komande sudo sledi unos šifre korisnika kome su data ta posebna prava. U slučaju da je potrebno da se prijavite na sistem kao običan ili root korisnik možete to izvesti komandom login nakon čega ide prvo korisničko ime (username), a nakon ENTER-a i šifra (password).
Par napomena vezanih za unos komandi i opcija, parametara ili svičeva. Pre svega, linux je case-sensitive što će reći da je veličina ipak bitna :) "m" i "M" nije isto! Komande i parametri se uvek pišu malim slovima, mada pisane skripte i nazivi fajlova i foldera mogu da budu i sa velikim slovima. Nakon neuspešno izvršene komande obavezno bude i poruka o grešci, dok uspešno izvršena komanda ne mora proizvesti vidljiv efekat.
Nakon što smo ustanovili kako da pravilno unosimo komande u konzoli i da saznamo i promenimo "ko smo", vreme je da naučimo i "gde smo" tj. kako da se krećemo kroz sistem datoteka i vršimo izmene na potrebnim mestima. Svakako je najbitnija komanda cd kojom vršimo promenu tekućeg direktorijuma. Da proverimo gde se nalazimo trenutno možemo da upotrebimo pwd i dobićemo odgovor koji liči na:
$pwd
/home/goran
Ovo nam govori da smo trenutno u folderu korisnika pod imenom goran. Home direktorijum korisnika ima specijalni karakter ~ pa će nas komanda
$cd ~
u svakom momentu vratiti u njega.
Za ulazak u određeni direktorijum koristimo
$cd ime_direktorijuma
a možemo da navedemo i celu putanju u koju želimo da se prebacimo, recimo
$cd /usr/src/linux
Za povratak u jedan direktorijum naviše koristimo
$cd .. (dve tačke)
Svakako je korisno znati kako se može napraviti folder na sistemu. U tu svrhu koristimo
$mkdir ime_direktorijuma
ali nemojte zaboraviti da ste u mogućnosti da pravite foldere samo u onim delovima sistema u kojima imate ovlašćenja.
Da biste pregledali neki fajl možete upotrebiti cat ili less programe na sledeći način
$cat ime_fajla
$less ime_fajla
A ukoliko morate da promenite sadržaj neke datoteke koristite sledeću sintaksu
$program ime_fajla
pri čemu imajte na umu da program pokrenete pod onim nalogom koji će imati mogućnost da sačuva izmenjeni sadržaj. Nemarno nisam naveo neki određeni program za editovanje fajlova zato što je njihov broj zaista veliki i različite distribucije podrazumevano isporučuju različite editore.
Nemojte zaboraviti i pomoć koju u svakom momentu možete iskoristiti
$man ime_komande (iz man se izlazi pritiskom na taster q)
će vam saopštiti čemu program služi i kako se koristi. Komande za naprednije manipulisanje datotekama:
cp - kopiranje
mv - premeštanje (promena imena)
ili operatori za redirekciju izlaza ili ulaza komandi prevazilaze okvire ovog texta i na vama je da se sa njima upoznate.
Celom ovom pričom nismo čak ni zagrebali po mogućnostima koje linux shell ima, a vi ne morate da ih koristite ukoliko ne želite i ukoliko postoji adekvatan GUI alat. Svakako je korisno znati makar ove osnovne pojmove kako biste bili u mogućnosti da sami sebi rešite probleme upotrebljavajući online uputstva koja zahtevaju rad u konzoli.

Toliko za sada, sledeći put GNUčionica će obraditi instalaciju GNU/Linux sistema, a ako vam se čini da je to trebalo da ide pre svega, pa... možda vas sledeće izdanje razuveri.

Uživajte u slobodi!

3 коментара:

ominotago је рекао...

Ja se nekad plašim konzole, ne zato što izgleda kao crna kutija u koju mogu da me zatvore, a ja se plašim mraka, nego zato što se plašim da ću nešto gadno da pobrljavim. Ipak, do sada sam sve odradila OK :)) Kako uopšte zapamtite nekih zilion skraćenica?? (ne znam kako je ovo povezano, ali stajalo mi iznad glave)
I kažeš, ide i nastavak ;) :P

GoranSTX је рекао...

I treba da se plašiš :P jer iako je malo stvari koje bi do te mere uništile sistem da postane neupotrbljiv, Marfi ipak nikad ne spava...
Ja lično ne pamtim koješta več ako negde zapnem obavezno konsultujem mog drugara Gugleta i on mi sve lepo kaže, a nastavak će biti... eventualno :)

DaySleeper555 је рекао...

Ako i pobrljavis negdje prije ce se desit da ti samo izbaci gresku command not found nego sto ces nesto zeznut. :)