15th velj.2014

Terminal i osnovne Linux naredbe

by Goran Krstičević

terminalNakon instalacije vaše odabrane Linux distribucije i prvog boota dočekati će vas oku ugodno grafičko sučelje koje ste odabrali u procesu instalacije, razni meniji u kojima se nalaze raznorazne aplikacije od obrade teksta, tabličnih kalkulatora, izrade prezentacija, reprodukcije audio i video sadržaja, Web browser… Uglavnom tu se nalazi sve što prosječnom kućnom i uredskom korisniku treba za normalan život. Nakon instalacije većina korisnika kreće u vizualno uređenje svog Desktopa, te istražuje razno razne teme. No kad-tad je i Desktop posložen i nema se više što uljepšavati. No kuda dalje? Što sad? Sjediti i diviti se najnovijoj temi, novome Wallpaperu, novom setu ikona? Pretpostavljamo da je odgovor na ova pitanja negativan. Radije ćete malo bolje upoznati Linux, a prije svega terminal i osnovne Linux naredbe. Sve Linux distribucije dolaze sa terminalom. Terminal nije samo podsjetnik na neka stara davno prošla vremena već je u Linux svijetu vrlo moćan alat i stoga ga ne valja zapostaviti i izbjegavati jer kad-tad će korisnik ‘nabasati’ na dokument koji će ga upućivati da otvori terminal. Ovaj članak nije tutorial niti je zamišljen kao tutorial, već je ovo običan članak čiji je cilj upoznati korisnika sa terminalom, te se nadamo kako će do kraja čitanja istoga nestati barem dio predrasuda prema ovome moćnom alatu.

Što je to CLI?

Za početak potrebno je znati što je CLI. Ako ste početnik u Linux svijetu vjerovatno ste se već bacili na istraživanje, posjetili raznorazne Linux forume, blogove… i ‘nabasali’ na neke čudne ‘strane riječi’ ili bolje rečeno skraćenice kao što su npr. CLI, DE itd. Ako je tako sigurno vas zanima što je CLI? Puni naziv za CLI je Command Line Interpreter ili Command Line Interface. Hrvatski nazivi za CLI su naredbeni redak, naredbena linija ili tekstualno sučelje. Radi se o tekstualnom sustavu za unos naredbi u računalo. Naredbe se pišu u određenoj sintaksi te se prosljeđuju pritiskom na tipku Enter. Zapravo, radi se o najstarijem sustavu unošenja naredbi i danas se zadržao uglavnom na serverskim računalima kojima ne treba grafičko okruženje. Mnoge stvari daju se elegantnije napraviti u tekstualnom sučelju nego u grafičkom. Za korištenje tekstualnog sučelja iz grafičkog sučelja služe nam pomoćni programi koje nazivamo terminali.

Ljuska (eng. Shell)

terminal-01Ljuska je jednostavan program koji interpetira naredbe bilo da su one unešene direktno u terminal od strane korisnika ili se nalaze u dadoteci. Datoteka u kojoj se nalaze naredbe naziva se skripta. Ekvivalenti u Windows operacijskom sustavu su COMMAND.COM ili cmd.exe umjesto ljuske, odnosno .bat datoteke umjesto shell skripti. Linux ima razne ljuske no najpoznatija i najkorištenija je bash ljuska. Ostale korištene ljuske su csh, zsh, jsh, ksh, rc, rsh, sh, tcsh, te vrlo zanimljiv ipython. Osnovne naredbe tipa kretanja po direktorijima su u svim ljuskama iste. Neke od navedenih su zadržane jer ih koristi određeni dio ljudi koji su navikli na njih i ne žele ih mijenjati ili se koriste za posebne svrhe te ih koristi posebna skupina specijaliziranih korisnika.

Upozorenje: Linux kao i mnogi operativni sustavi koristi akronime za imena alata. Neki od njih su i duhoviti kao naprimjer yacc = yet another compiler compiler ( još jedan sastavljač sastavljača ) ili K3B = K burn baby burn. Imena svih ljusaka završavaju na sh što označava shell.

Pristupanje terminalu

Najlakši način pristupanja terminalu je da otvorite padajući izbornik i odaberete Terminal. Također možete pritisnuti kombinaciju tipki ALT+F2 te unijeti ime alata koji želite pokrenuti, a u ovome slučaju ćete unjeti “terminal”. Kada se otvori prozor sa terminalom primjetiti će te prompt sličan ovome

user@hostname ~ $

koji sadrži korisničko ime, naziv računala, te direktorij u kojem se nalazite – u ovom slučaju je to ~ koji predstavlja Home direktorij. Unos naredbi je jednostavan. Jednostavno upišite riječ ili simbol te pritisnite Enter. Naredba će se izvršiti te će vas po njenom završetku ljuska prebaciti u novi red i možete unijeti novu naredbu. Imajte na umu da je Linux osjetljiv na velika i mala slova te ako treba unijeti “ls”, a vi ste unjeli “LS”, neće raditi.

Izlazak iz terminala

Za izlazak je potrebno unijeti naredbu exit te pritisnuti Enter . Druga mogućnost je i pritisnuti kombinaciju tipki CTRL + D. Iako je moguće ugasiti terminal, kao i svaki drugi prozor, pritiskom na close gumb (to je onaj X u gornjem desnom ili lijevom uglu prozora, ovisno kako imate podešen upravitelj prozorima), to se ne preporuča jer ako ste bili u nekome uređivaču teksta ili datoteka upravo ste ostali bez vašeg rada.

Traženje pomoći

Svi alati i sve naredbe, ne samo u Linuxu već i OpenSource svijetu, su vrlo dobro dokumentirani – daleko više i kvalitetnije nego na MS Windows-u koji dokumentira naredbe samo ako su popularne i često korištene. Za pristup pomoći i korisnim informacijama ima više mogućnosti. Također, neke distribucije kao RedHat i OpenSuSE, pod uvjetom da imate instalirano grafičko okruženje, imaju GUI alate, odnosno specijalizirane browsere za pristup informacijama. No, postoje i opcije u samome terminalu za dobivanje pomoći. Najjednostavniji način dobivanja pomoći je naredba man. Ona se unese ispred same naredbe ili imena programa, npr. man ls. Rezultat ove naredbe je ispisivanje manuala, priručnika, za ls naredbu. Ono najosnovnije koje korisnici moraju znati je da koriste strelice i PgUp i PgDn za kretanje manualom te Q za izlazak iz njega. Nadalje, naredba info je također vrlo korisna za dobivanje potrebnih informacija. Razlika između info i man je u načinu objašnjenja. Info je više kao korisnički vodić dok je man referenca za upotrebu. Pokušajte upisati u terminal info man ili info ls. Također, većina programa ima opciju pomoći. Ona se obično dobiva sa –help.

Važan savjet novim Linux korisnicima

Naredbe nemojte nikako u terminal unositi metodom copy/paste posebno ne one koje pranalazite na Internetu te raznoraznim forumima i blogovima. Naime, možemo vas zamoliti da otvorite terminal i unesete sljedeće

sudo rm -R /etc ili sudo dd if=/dev/null of=/dev/sda bs=446 count=1

jer će to pomoći u rješavanju vašeg problema? Zar će te to stvarno napraviti i obrisati sve podatke sa tvrdog diska?? Vrlo vjerovatno da! Ukoliko naletite na naredbu koju ne razumijete i koju neznate proučite manual, vidite što ona radi i za što se koristi. Na kraju krajeva svaki korisnik je sam odgovoran za svoj sustav, nitko osim korisnika samog ne može odgovarati za njegove greške.

Osnovne CLI naredbe

Pomoć u radu sa CLI naredbama

  • man – uputstva o programu i kako koristiti
  • info – uputstva o programu i kako koristiti
  • apropos – pretraživanje manual (man) stranica

Rad s datotekama

  • ls – izlistavanje sadržaja direktorija
  • cd – navigacija direktorijima
  • cp – kopiranje datoteka ili direktorija
  • mv – micanje datoteka ili direktorija
  • rm – brisanje datoteka ili direktorija
  • rmdir – brisanje praznog direktorija
  • mkdir – stvaranje direktorija
  • whereis – traženje lokacija relevantnih datoteka određenog programa
  • pwd – lokacija trenutnog direktorija u konzoli
  • less – prikaz sadržaja tekstualne datoteke
  • tar – ekstrakcija i kompresija kompresiranih datoteka
  • dd – konvertira i kopira određenu datoteku
  • du – prikazuje veličinu direktorija ili datoteka
  • df – prikazuje dostupnost slobodnog prostora na montiranim particijama
  • mount – služi za montiranje diskova
  • split – razdvaja datoteku u više manjih datoteka
  • ExifTool – manipulacija metapodatcima

Rad s korisničkim pravima

  • chmod – mijenja (rwx – čitanje, pisanje, izvršavanje) prava na direktorijima i direktorijima
  • chown – mijenja vlasnika i grupu na direktorijima i datotekama

Rad sa softverskim paketima

  • apt-get – instalacija programa na Debian baziranim Linuxima
  • yum – instalacija na Fedora baziranim Linuxima
  • dpkg – instalacija individualnih deb paketa

Uključivanje i isključivanje računala

  • shutdown – restart/isključivanje računala
  • reboot – restart računala
  • halt
  • poweroff

Nadzor i administracija

  • vmstat – prikazuje statistiku vezanu za memoriju
  • fsck – provjerava i korigira Linux datotečne sustave
  • w – prikazuje tko je logiran u sustav i njihove procese
  • mpstat – iskorištenost višeprocesorskih sustava
  • ps – prikazuje trenutne procese
  • pmap – prikazuje zauzeće memorije proizvoljnog procesa
  • free – prikazuje zauzeće memorije uključujući swap
  • Top – prikazuje dinamički procese i zauzeće memorije i CPU
  • htop – poboljšana verzija top alata (Prikazuje dinamički procese i zauzeće memorije i CPU)
  • iptraf – interaktivni IP LAN monitor
  • PowerTOP – STUB
  • Blkid – prikaz UUID datotečnog sustava
  • Ifconfig – prikaz konfiguracije mrežnih kartica
  • CheckInstall – pomoć prilikom manualne instalacije programa
  • kernel_Bootchart – analizu procesa podizanja (eng. boot) GNU/Linux-a
  • CheckInstall – kompilira kod i pretvara ga u *.deb paket