Linux konzola

Подели преко

Ovaj dokument treba da pruži osnovna
znanja za koriš?enje konzole u shell modu. Nije neohodno da ?italac ima
bilo kakvo prethodno znanje o tome kako linux funkcioniše, ali u tom
slu?aju treba da pro?ita ovaj tekst od po?etka. Spisak komandi služi da
se upoznamo sa osnovnim Linux komandama: Komande su prikazane po tipu
posla koji obavljaju. Završni deo teksta se bavi nekim naprednim
mogu?nostima koje mogu da pokažu kako da iskoristite mo?an sistem kakav
je Linux.

Struktura Linux-a

Korisnici:

Da bi koristili Linux mašinu morate da
kreirate nalog na toj mašini. Informacija o nalogu sadrži vaše
korisni?ko ime i lozinku koji zajedno kontrolišu vaš pristup na toj
mašini. TakoÄ‘e postoji i jedinstveni broj koji je pridružen vašem
korisni?kom nalogu i zove se user ID ili UID.

Grupe:

KOrisnici koji recimo rade u istom delu
jedne firme ili rade na istom projektu mogu se nalazi u određenoj grupi
. Ovo je jednostavan metod za organizaciju korisnika. Kao i sa
individualnim korisnicima, postoji i group id ili GID koji se
dodeljuje svakoj grupi.

Fajlovi (datoteke):

Sve informacije koje se smeštaju na Linux
mašini se smeštaju u fajlove. Kao dodatak podacima koji se u njemu
nalaze fajl sadrži i informaciju o tome koji korisnik je vlasnik fajla,
koji korisnici mogu da mu pristupe, kada je preiran, kada poslednji put
izmenjen i naravno kolika mu je veli?ina..

Direktorijumi:

Direktorijumi su sli?ni folderima. Oni
mogu da sadže fajlove kao i druge direktorijume (koje mi obi?no
nazivamo podirektorijumima), i daju strukturu fajl sistema. Pod Linuxom
postoji samo jedno stablo sa direktorijumima a njegov koren je /.
Kao i fajlovi, direktorijum sadrži informacije o svojoj veli?ini,
podatke o tome koji korisnici i/ili grupe mogu da mu pristupe, itd…

Putanje:

Putanja je string niz direktorijuma koji
završava sa imenom fajla. Direktorijum i imena fajlova se odvajaju
sa / (front slash) karakterima. Na primer:
/dir1/dir2/fajl1 je putanja do fajla fajl1 koji se
nalazi u dir2,
a opet on se nalazi u direktorijumu dir1, koji se nalazi opet u
osnovnom ili root
direktorijumu, /.

Ovlaš?enja:

Ovlaš?enja su veoma važna funkcija u
Linuxu. Ona obezbeđuju sigurnost ograni?avaju?i akcije koje korisnik
može da izvede na odreÄ‘enom fajlu ili direktorijumu. Ovlaš?enja
kontrolišu prava ?itanja, zapisivanja ili pokretanja fajlova za
vlasnika fajova, grupe i ostale korisnike. Ukoliko pokušate da recimo
izmenite fajl za koji nemate ovlaš?enja dobi?ete poruku o grešci.

Procesi:

Kada korisnik pokrene komandu kreira se
proces koji sadrži instrukcije (kod) te komande. Proces takoÄ‘e sadrži
kontrolne informacije kao što je UID korisnika koji je pokrenuo komandu
i jedinstveni porcess id ili PID. Svo upravljanje procesa se obavalja
koriš?enjem ovog broja
PID.

Å koljka (The Shell) :

U konzolnom modu korisnik obavlja
interakciju sa mašinom preko shell-a. Shell je program koji služi za
pokretanje drugih programa. Shell se konfigurišepodešavanjem njegovih
promenljivih . Kada se prijavite (ulogujete) na Linux mašinu ona ?e
automatski kreirati shellproces za vas, i podesiti promenljive
okruženja na default
vrednosti. U ovom tesktu se podrazumeva da koristite bash (the Bourne Again SHell), koji
je postao standard za ve?inu popularnih Linux
distribucija.


Pokretanje komandi

Zadavanje (unošenje) komandi:

Da bi zadali komadu jednostavno treba da
ukucate njeno ime iza shell prompta i pritisnete taster enter. Shell
prompt obi?no ima slede?u formu: [[email protected]
directory]$
,
ali se može i menjati, i može se razilkovati od mašine do
mašine.
Ve?ina komadi prihvata nekoliko argumenata ili opcija (ponekada se
nazivau i zastavice ili flags). Obi?no se argumenti ispisuju sa jednim
ili dva znaka za minus tj. – ili — .
Ukoliko komanda zahteva argumente a vi ih niste napisali ob?no komanda
prikaže kratku poruku sa opsim mogu?ih argumenata. Tipi?na komanda sa
argumetima može da izgleda ovako:

komanda -a1 -a2
komanda –puno_ime_argumenta

Putanja (PATH):

PATH je shell promenljiva koja određuje u
kojem direktorijumu Linux treba da pronađe zadatu naredbu ukoliko niste
ispisali poptnunu pputanju do fajla naredbe.PATH promenljiva sadrži
stringove ili linije sa imenima direktorijuma koja su odvojena sa
dvota?kom : . Ve?ina ako ne i sve komande prikazane u ovom tekstu se
ve? nalaze u promenljivoj PATH i mogu se pokretati jednostavno
samo unošenjem imena naredbe. Iz sigurnosnih razloga trenutni
direktorijum se ne nalazi u PATH
pa tako da bi pokrenuli program koji se nalazi u trenutnom
direktorijumu morate pre imena maredbe dodati prefiks ./ (ta?ka i sleš
linija) :

./komanda


Spisak komandi

Kako do pomo?i:

Ve?ina Linux konyolnih konakdi
sadrži male rutine koje prikazuju korisne informacije im date
argumente
-h ili –help . Kao dodatak, ve?ina Linux mašina ima
bukvalno na hiljade stranica dokumentacije o samim naredbama. Jedan od
najboljih na?ina da dođete do dokumentacije jeste man page syitem. Ono
što treba da uradite jeste da pokrenete man program
sa imenom komande kao argumentom i dobi?ete ispisano upustvo za datu
komandu .

  • komanda -h: prikazuje
    kratko upustvo o datoj komandi.
  • komanda –help:
    prikazuje kratko upustvo o datoj komandi.
  • man komanda:
    prikazuje kompletno upustvo o datoj komandi.

Prikazivanje fajlova (listing):

Jedna od najosnovnijih operacija koju
možete izvesti jeste da izlistate fajlove koji se nalaze u odreÄ‘enom
direktorijumu sa komandom ls. Ovo vam omogu?ava da
pregledate sadržaj direktorijuma i pronaÄ‘ete fajlove na kojima želite
da radite. Ukoliko je spisak fajlova preduga?ak i ne može da stane na
jedan ekran onda ?ete možda poželeti da povežete prikaz ls komande
u neki program za pregled teksta kao što je less .

  • ls: lista sadržaj trenutnog
    direktorijuma.
  • ls -a: lista sve fajlove
    uklju?uju?i i skrivene fajlove.
  • ls -l: koristi long listing
    format (prikazuje i ovlaš?enja, ime vlasnika, veli?inu, datum, itd…).
  • ls | less: povezuje listing
    direktorijuma u less radi lakšeg pregleda.

Promena
direktorijuma:

Kada se prijavite na Linux mašinu
automatski se nalazite u vašem /home direktorijumu.
Da bi prešli u neki drugi direktorijum možete koristiti cd
komandu. cd
prihvata punu putanju do direktorijuma, relativnu putanju do trenutnog
direktorujuma ili ili jedan od ve?eg broja slecijalnih argumenata koji
su prikazani dole.

  • cd putanja: prelazi u
    direktorujum određen putanjom npr. cd /usr/bin
  • cd ~ : prelazi u vaš home
    direktorijum.
  • cd – : prelazi u predhodni
    direktorijum.
  • cd .. : prelazi u osnovni
    direktorijum teku?eg direktorijuma.

Upravljanje sa fajlovima i
direktorijumima

cp komanda je korisna za kreiranje
backup kopija fajlova ili direktorijuma. mkdir komanda kreira
nove, prazne direktorijume na od vas određenoj lokaciji. mv
se može koristiti za premeštanje fajlova iz jednog u drugi
direktorijum, ili za promenu njihovih imena kada ih premeštate u isti
direktorijum ali sa drugim imenom. rm vam omog?ava da obrišete
stare fajlove da oslobodili prostor na disku. MOžete da koristite rm
-R

da bi izbrisali sadržaj direktorijuma, a onda izbrisali i sam
direktorijum. rmdir
?e izbrisati direktorijum, ali samo ako je ve? otvoren.

  • cp source_path destination_path:
    kopira fajlove iz izvora na nvu destinaciju.
  • cp -R source_path destination_path:
    rekurzivno kopiranje.
  • mkdir directory:
    kreira novi direktorijumy.
  • mv source_path destination_path:
    premešta ili menja ime fajlu.
  • rm files: briše
    falove.
  • rm -R directory:
    rekurzivno brisanje.
  • rmdir directory:
    briše prazan direktorijum.
  • touch file: kreira
    prazan fajl.

Pronalaženje fajlova

Kada se vaši fajlovi nalaze rašireni u
mnogim razli?itim direktorijumima, ili tražite odreÄ‘eni sistemski fajl,
naredbe find i locate vam mogu uštedeti mnogo vremena.
find ?e se pokrenuti iz odreÄ‘enog direktrijuma i pretražiti i
sve poddirektorijume u njemu. locate, sa druge strane,
održava bazu podataka svih fajlova na sistemu. On jednostavno pretraži
bazu podataka i traži da li ijedan fajl u bazi odgovara zadatom imenu
fajla.
locate je mnogo brži od find, aoli se baza ažurira samo
jednom dnevno (na nekim sistemima i reÄ‘e) pa se možet desiti da ne može
da pronađe skoro kreirane fajlove.

  • find path -name filename:
    pronalazi fajl sa imenom filename a pretragu po?inje od putanjepath.
  • locate filename
    pronalazi fajove u bazi podataka sa imenima koja sadrže filename.

Rad sa tekstulanim fajlovima

da bi videli sadržaj kratkog tekstualnog
fajla možete da koristite naredbu cat i prikazali sadržaj na
ekranu . less vam omogu?ava da skrolujete kroz tekst sa
strelicama na tastaturi kao i sa page up i page down
tasteriam. grep je alatka za pretraživanje tekstualnih fajlova
kada su u pitanu odreÄ‘ene re?i ili stringovi. Kada grep pronaÄ‘e ono što
traži on ?e prikazati celu liniju. sort, kao što mu i
samo ime kaže sortira tekstualni fajl i rezultat prikazuje na ekranu.
Na kraju, postoji mali milion tekstualnih editora, kao pšto je na
primer pico sa ugraÄ‘enim pretraživa?em i alatom za
proveru sintakse.

  • cat filename:
    prikazuje sadržaj tekstulanog fajla filename na ekran.
  • grep string filename:
    Taži i prikazuje linije iz filename koje sadrže dati string.
  • less filename:
    Skrolovanje kroz sadržaj tekstualnog fajla. Pritisnite q za izlaz.
  • pico filename: Otvara
    fajl filename
    u jednostavnom tekst editoru.
  • sort filename:
    Sortira linije u fajlu filename po abecedi.

Dekompresija arhiva

Kada skidamo fajlove sa Interneta oni su
obi?no kompresovani na neki na?in da bi smanjili njihovu veli?inu.
Naj?eš?e se ve?i broj fajlova smešta u jedan kompresovani fajl radi
lakšeg download-a.
Da bi došli do fajlova koji se nalaze u arhivi morate da odredite kako
je arhiva kreirana. Obi?no je dovoljna ektenzija fajla koja ukazuje na
program sa kojim je arhiva napravljena.

  • bunzip2 filename.bz2:
    dekompresuje bzip2 fajl (*.bz2). Obi?no se koristi za velike
    fajlove.
  • gunzip filename.gz:
    dekompresuje (.gz) arhivu
  • unzip filename.zip:
    dekompresuje PkZip ili WinZip fajl (*.zip)
  • tar -xvf filename.tar:
    untar-uje (.tar) arhivu (tarball).
  • tar -xvzf filename.tar.gz:
    dekompresuje i untar-uje kompresovanu tar arhivu (*.tar.gz ili *.tgz).

Koriš?enje mre-nih servisa

Mre-ni servisi nam dozvoljavaju pristup
resursima na drugim mašinama (serverima) na mreži sa vaše mašine. ftp
program nam omogu?ava da se konektujemo na FTP (file transfer
protocol) server. FTP server ?e vam omogu?iti da postavljate i skidate
fajlove sa njega. FTP nije sigurnosni protokol i sve naredne se šalju
kao obi?an tekst, uklju?uju?i i lozinke. Komanda ping ?e
pokrenuti zahev za pingom sa odreÄ‘enog servera. Ve?ina mašina ?e
odgovoriti na ping zahtev ukoliko su povezane na mrežu i pravilno
podešene.Program ssh ?e vam omogu?iti da se povežete na
server pokre?u?i Secure Shell protokol. Koriste?i ssh možete se
prijaviti na drugu mašinu i koristiti njen konzolni mod sa svoje
mašine. SSH je sigurnosni protokol pa se sva komunikacija sa
udaljenim serverom kriptuje telnet služi istoj svrski kao i ssh,
ali je stariji, nesigurnosni protokol. Neke starije mašine mogu da
pokre?u samo TELNET
servere, ali kada kog je mogu?e treba koristiti ssh.

  • ftp server: povezuje
    se na FTP server.
  • ping server: šalje
    zahtev za ping serveru.
  • ssh -l user server:
    povezuje se na udaljenu mašinu koriste?i Secure Shell protokol.
  • telnet server:
    povezuje se na udaljenu mašinu koriste?i TELNET protokol.

Å tampanje

Pristup štampa?u iz Linux konzole
obezbeđuje Lpr (Line PRinter) set komandi.
Koriste?i lpr komandu možete štampati tekstulani ili
PostScript (.ps)
dokument na bilo kom štampa?u. Da bi videli koji su štampa?i dostupni
možete koristiti naredbu lpstat.
Komanda lpq vam dozvoljava da pretražite sadržaj zadtaka koji
su upu?eni štampa?u.
Dobi?ete prikaz zadataja sa njihovim ID, vlasnikom, imenom fajla za
svaki zadatak.
Na kraju, komanda lprm ?e ukloniti svaki zatadak sa spiska
preko njegovog IDa. Naravno, njih možete da uklonite ako ste ih pre
toga poslati.

  • lpq -Pprinter:
    prikazuje zadatke koji su poslani štampa?u printer.
  • lpr -Pprinter document:
    štampa
    document
    na štampa?u printer.
  • lprm -Pprinter n:
    uklanja zadatak sa ID n sa štampa?a printer.
  • lpstat -a: Prikazuje status
    svih dostupnih štampa?a.

Kako do informacija o sistemu

Slede?e komande prikazuju razne
informacije o sistemu

  • date: prikazuje vreme i
    datum koji su podešeni u operativnom sistemu.
  • df -h: prikazuje zauze?e na
    disk particijama.
  • free: prikazuje zauze?e
    memorije.
  • history: prikazuje izvršene
    komande u trenutnom nalogu.
  • hostname: prikazuje ime
    lokalne mašine (host).
  • pwd: prikazuje (trenutni)
    direktorijum.
  • rwho -a: prikazuje sve
    korisnike koji su prijavljeni na mrežu.
  • uptime: prikazuje vreme od
    poslednjeg restarta mašine.
  • who: prikazuje korisike koji
    su prijavljeni na mašini.
  • whoami: prikazuje vaše
    korisni?ko ime.

Kontrola procesa

  • ps: prikazuje listu aktivnih
    procesa sa njihovim PID.
  • ps -aux: prikazuje sve
    aktivne procese, zajedn sa imenom njihovog vlasnika.
  • top: Prikazuje kontinuirano
    listu aktivnih procesa za zauze?em prcesora i memorije.
  • command &:
    Pokre?e command
    u pozadini.
  • fg: Vra?a zaustavljeni
    proces ili pozadinski proces.
  • bg: šalje proces u pozadinu.
    Isto se može posti?i i sa Ctrl-z.
  • kill pid: Primorava
    na gašenje procesa. Prvo odredite pid procesa pomo?u komande ps.
  • killall -9 name:
    ubija sve procese koji su određeni imenom name.
  • nice program level:
    Pokre?e program sa
    niceness level. Određuju?i visoki nice
    level ?e u?initi da se program pokre?e sa malim prioritetom.

Promena ovlaš?enja na fajlu

  • chown user.group filename:
    menja korinsika koji poseduje filename u user, i
    grupu koja poseduje filename u group. Naravno, možete
    da menjate ovlaš?enja za one fajlove koji su vaše vlasništvo.
  • chmod [augo][+-][rwx] filename:
    menja prava pristupa za filename odobravaju?i ili
    onemogu?avaju?i (+-) ?itanje, pisanje ili izvršavanje (rwx) prava za
    sve, vlasnika,
    grupu ili druge korisnike (augo). Koristite ovu naredbu sa pažnjom.
    Možete sebi da onemogu?ite pristup sopstvenom fajlu pogrešnim
    podešavanjem ovlaš?enja.


Napredne opcije

Redirekcija:

Shell daje svim programima pristup
trima ta?kama koje se zovu standard input (STDIN), standard output
(STDOUT), i standard
error
(STDERR) kada se program pokrene. Obi?no je STDIN povezan na tastaturu,
dok su STDOUT i STDERR povezani na ekran. Ipak, redirekcija se može
napraviti, kako za ulaz tako i za izlaz. Redirekcioni operatorr >
vam omogu?ava da odredite ime dajla koji ?e primiti STDOUT (output)
komande, dok operator < omogu?ava da STDIN povežete u fajl koji sadrži ulazne podatke. Evo nekih primera: command1 > output.txt šalje output tu output.txt
command1 < input.txt odobavlja input izinput.txt

Povezivanje (Piping):

Glavna svrha povezivanja jeste da
refirektuje STDOUT iz jednog procesa u STDIN drugog procesa. Operator
za povezivanje je | . Da bi povezali izlaz command1 na
ulaz command2 treba da unesemo slede?e:

command1 | command2