четвртак, 14. мај 2015.

Osnovne komande u Linux-u

Verovatno se pitate zašto bi neko uopšte koristio Terminal u Linux-u kad je jednostavnije koristiti neki grafički File Manager poput File Explorer-a. Lakše je koristiti grafičko okruženje nego kucati na tastaturi. Najveća draž u Linux-u je upravo kucanje na Terminal-u ili kako ga još zovu u Konsola ili čak u našoj literaturi ljuska. Neiskustvo i navike koje ste razvili u grafičkom Windows okruženju vam rad na Terminal-u može izgledati sporo i komplikovano, ali to je samo na početku jer posle ne možete ni zamisliti računar bez Terminal-a ili preciznije emulatora terminala.

Postoje dosta stvari koje baš i ne možete tako jednostavno uraditi u Microsoft File Explorer-u. Npr. Kako će te napraviti stotinu direktorijuma koja se razlikuju jedino po nekom nizu brojeva, datuma ili abecednom redosledu u nazivu istih? U File Explorer-u bi ste kreirali direktorijum jedan po jedan, dok u Terminal-u to je samo jedna precizna linija teksta i pritisnete Enter. Druga prednost Terminal-a je što vi u njemu možete da povezujete komande, da više radnji izvršavate odjednom, da rezultate bilo kojih komandi pošaljete odmah u neki file; umesto da samo gledate njihov prikaz na ekranu. Vi u Terminal-u možete da pravite svoje vlastite komande, prečice, da radite neke stvari koje je definitivno i nemoguće izvesti na Windows platformi sa bilo kojim programom.


( Desktop Manuel Radovanović-a, Fedora 22, KDE sa prikazom Konsole prozora )

Pristup nekim udaljenim računarima, serverima ili bazama podataka često nema grafičko okruženje, pa se čak i na Windows operativnom sistemu mora koristiti Windows Prompt. Ali najveći razlog korišćenja Terminal-a je upravo mogućnost korišćenja vlastite mašte, kreativnosti i inteligencije. To je u suštini neverovatan osećaj moći i inteligencije; najpametnija i najbolja igrica svih vremena. Još ima i ogromnu tradiciju. Za zadovoljstvo u brzom kucanju, pronađite neku dobru svetleću tastaturu da ima tanke tastere i brz odziv poput onih koje viđate na Laptop-ovima. Na njima će te mnogo i brže i prijatnije kucati čak i u zamračenoj prostoriji kasno noću, dok vam to ne postane tako intuitivno i prirodno.

Bez obzira koju koristite Linux distribuciju; svaki ima Terminal i osnovne komande u suštini su iste. Posle kad se upoznate sa mnogobrojnim komandama shvatiće te da su i neke razlike komandi u distribucijama predvidljive.


Dve najbitnije komande u Terminal-u koje će te često koristiti su: su i sudo.

To su dve naredbe sa kojima se možete ulogovati na root direktorijum kao superuser ili na home sa svojim tekućim nalogom. su se koristi za prijavljivanje na root preko administratorske šifre superuser-a i njegova se primena se ne preporučuje ako nije obavezna. Sa sudo naredbom vi samo dobijate prava da završite posao sa root privilegijama kao da ste superuser


( A4TECH Keyboard LED backlight KD 126 )

Za početak, pritisnite par puta Enter, zatim ukucajte svoju prvu komandu; clear.


[hacker@localhost ~]$

[hacker@localhost ~]$

[hacker@localhost ~]$

[hacker@localhost ~]$

[hacker@localhost ~]$ clear



Sad ponovo pritisnite Enter, da izvršite komandu clear, i vaš odzivnik će očistiti ekran i pozicionirati se na levom gornjem uglu. To ne znači da je i vaš tekst izbrisan iz Terminal-a, samo je pomeren da prividno izgleda da vam je ekran prazan. Ukoliko skrolujete vaš ekran, videćete vaš tekst.


[hacker@localhost ~]$


Ukoliko želite da vidite koliko imate slobodne memorije na diskovima, ukucajte komandu df.


[hacker@localhost ~]$ df

Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 3011492 0 3011492 0% /dev

tmpfs 3022400 4676 3017724 1% /dev/shm

tmpfs 3022400 1096 3021304 1% /run

tmpfs 3022400 0 3022400 0% /sys/fs/cgroup

/dev/mapper/fedora-root 51475068 6107980 42729264 13% /

tmpfs 3022400 24 3022376 1% /tmp

/dev/sda3 487652 166538 291418 37% /boot

/dev/mapper/fedora-home 244070680 1404084 230245476 1% /home

tmpfs 604484 0 604484 0% /run/user/989

tmpfs 604484 24 604460 1% /run/user/1000

/dev/sdb1 15607808 1996216 13611592 13% /run/media/hacker/A270-5026 


[hacker@localhost ~]$


Da bi ste videli koliko imate slobodne RAM memorije na računaru; ukucajte komandu free. Ukoliko dodamo atribut -h koji predstavlja human readable – čitljivo ljudima; tada će nam prikaz biti čitljiviji nego gore navedeni primer.


[hacker@localhost ~]$ free -h

total used free shared buff/cache available

Mem: 5.8G 1.1G 3.8G 23M 899M 4.4G

Swap: 5.9G 0B 5.9G


[hacker@localhost ~]$


Da bi ste saznali koje sve atribute ima neka komanda i za šta služe, ukucajte pored komande koja vas interesuje atribut --help. Za pomoć postoje komande i man, info i whois.


[hacker@localhost ~]$ free --help


Usage:

free [options]


Options:

-b, --bytes show output in bytes

-k, --kilo show output in kilobytes

-m, --mega show output in megabytes

-g, --giga show output in gigabytes

--tera show output in terabytes

-h, --human show human-readable output

--si use powers of 1000 not 1024

-l, --lohi show detailed low and high memory statistics

-t, --total show total for RAM + swap

-s N, --seconds N repeat printing every N seconds

-c N, --count N repeat printing N times, then exit

-w, --wide wide output


--help display this help and exit

-V, --version output version information and exit



For more details see free(1).


[hacker@localhost ~]$


Da bi ste izlistali bilo koji direktorijum, koristite komandu ls.


[hacker@localhost ~]$ ls

Desktop Documents Downloads Music Pictures Programs Public Templates Videos

[hacker@localhost ~]$


Ukoliko želite da izlistate i skrivene fajlove, koje u Linux-u počinju tačkom, dodajte atribut -a.


[hacker@localhost ~]$ ls -a

. .bash_profile .config .emacs.d .gstreamer-0.10 Music Templates

.. .bashrc .dbus .esd_auth .gtkrc-2.0-kde4 Pictures .thumbnails

.adobe .bashrc.bak Desktop .fonts.conf .kde .pki Videos

.asoundrc .cache .directory .gimp-2.8 .local Programs .viminfo

.bash_history .codeblocks Documents .gnome .macromedia Public .Xauthority

.bash_logout .codelite Downloads .gnupg .mozilla src .xsession-errors


[hacker@localhost ~]$


Komanda date vam prikazuje datum.


[hacker@localhost ~]$ date

Thu May 14 01:43:38 CEST 2015

[hacker@localhost ~]$



Komanda cal vam crta kalendar na terminalu trenutnog meseca ili onog kog vi navedete.


[hacker@localhost ~]$ cal

May 2015

Su Mo Tu We Th Fr Sa

1 2

3 4 5 6 7 8 9

10 11 12 13 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

31


[hacker@localhost ~]$


Sledeća komanda cd je komanda navigacije ili komanda kretanja. Sa njom prelazite iz jednog direktorijuma u drugi. Ukoliko ukucate samo cd, vratiće te se u vaš home ili root direktorijum u zavisnosti kako ste ulogovani. Sa komandom cd možete odmah skočiti sa jednog kraja grane na drugi. Imajte u vidu da se sve grane direktorijuma u Linux-u potiču od samo jedne root grane. Da se za razliku od Windows-a, pomeranje na prethodnu granu vrši komandom cd .. a ne cd.. kao što možete u Windows-u. Takođe pisanje na Terminal-u podrazumeva da je unos case-sensitive, što znači da nije svejedno da li nešto piše malim ili velikim slovom.


[hacker@localhost ~]$ cd Pictures/art

[hacker@localhost art]$



Ukoliko želite da vidite čitavu putanju direktorijuma, gde se nalazite; otkucajte komandu pwd.


[hacker@localhost art]$ pwd

/home/hacker/Pictures/art

[hacker@localhost art]$


Direktorijume naravno možete posmatrati i kroz granjanje komandom tree.


[hacker@localhost Pictures]$ tree

.

├── art

└── my



2 directories, 0 files

[hacker@localhost Pictures]$


Da bi ste kucali više različitih komandi, samo ih razdvojite ; karakterom. U sledećem primeru prvo pišemo komandu mkdir sa kojom se pravi direktorijum, zatim sve prikazujemo komandom tree.


[hacker@localhost Pictures]$ mkdir screen; tree

.

├── art

├── my

└── screen



3 directories, 0 files

[hacker@localhost Pictures]$


Ukoliko želite da izbrišete fajl ili direktorijum, koristite naredbu rm ali koristite različite atribute; npr. atribut -d se koristi da izbrišete prazan direktorijum, dok sa atributom  -r brišete pun. Fajlove uglavnom brišete bez atributa. Atribut -i se postavlja kad želite da uvedete promt koji će vas pitati da li želite da obrišete navedeni fajl ili direktorijum. Kod brisanja morate dobro obratiti pažnju šta brišete, zato uvek prvo izlistajte fajlove koje hoćete da izbrišete da znate koji tačno fajlovi ili direktorijum će biti izbrisani.  


[hacker@localhost Pictures]$ rm -d -i screen; tree

rm: remove directory ‘screen’? y

.

├── art

└── my



2 directories, 0 files

[hacker@localhost Pictures]$



Napraviti neki file sa Terminal-a je takođe jednostavno. Komandom ls -a dajete komandu da vam se sve izlista iz trenutnog direktorijuma gde se nalazite; uključujući i sakrivene file-ove. Zatim možete  i da celu listu upiše npr. u  mytext.txt file koji pre nije bio ni napravljen. Za izlaz u file samo otkucate > , ali ako želite da ne prebrišete već postojeí tekst u file-u, tj. da samo dodate vaš tekst na već postojeći; tada za izlaz koristite >>.


[hacker@localhost ~]$ ls -a > mytext.txt; dir *.txt

mytext.txt

[hacker@localhost ~]$



Ako hoćete da vidite šta vam je upisano u fajl-u, koristite naredbu cat. Inače cat naredba se koristi i za spajanje više fajlova u jedan. Za naziv file-a uglavnom koristimo džokere.


[hacker@localhost ~]$ cat *txt

.

..

.adobe

.asoundrc

.bash_history

.bash_logout

.bash_profile

.bashrc

.bashrc.bak

.cache

.codeblocks

.codelite

.config

.dbus

Desktop

.directory

Documents

Downloads

.emacs.d

.esd_auth

.fonts.conf

.gimp-2.8

.gnome

.gnupg

.gstreamer-0.10

.gtkrc-2.0-kde4

.kde

.local

.macromedia

.mozilla

Music

mytext.txt

Pictures

.pki

Programs

Public

src

Templates

.thumbnails

Videos

.viminfo

.Xauthority

.xsession-errors


[hacker@localhost ~]$


Kopiranje fajla ili fajlova ili direktorijuma se vrši komandom cp. U sledećem primeru prvo kreiramo direktorijum text, zatim u njega kopiramo našu datoteku i onda izlistamo text direktorijum da proverimo da li se datoteka kopirala. I sve to radimo sa jednom linijom komandi. Broj total nam pokazuje koliko karaktera ima direktorijum koji se izlistava.


[hacker@localhost ~]$ mkdir text; cp mytext.txt text; ls -l text

total 4

-rw-rw-r--. 1 hacker hacker 403 May 14 03:31 mytext.txt


[hacker@localhost ~]$



Naredbom mv menjamo naziv datoteke, zatim joj istom naredbom mv pomeramo u direktorijum text.


[hacker@localhost ~]$ mv *txt fun.txt; mv f* text; ls -l text

total 8

-rw-rw-r--. 1 hacker hacker 403 May 14 03:43
fun.txt

-rw-rw-r--. 1 hacker hacker 403 May 14 02:37
mytext.txt 


[hacker@localhost ~]$


Kada želite nešto da vam se samo ispiše na ekranu terminala, koristite komandu echo. Ukoliko radite sa artimetičkim opracijama celih brojeva, onda vam pored Terminal-a ne treba kalkulator.


[hacker@localhost ~]$ echo $((528*17))

8976

[hacker@localhost ~]$


Kao što vidite ovo su osnovne komande Linux-a, koje su sasvim dovoljne da se odlično snađete i počnete da koristite stotine drugih. Sve ove redove komadi se mogu kreirati da jedna vaša komanda odrađuje mnoštvo drugih. Tako možete izgraditi čitav sistem vlastitih komandi. Sve što budete iskusniji u Linux operativnom sistemu, sve će te biti i više kreativniji i sve će te više svoju distribuciju prilagođavati i menjati prema vašoj želji. Ako je Windows jedna igračka koju ne možete menjati, onda je Linux igračka na sklapanje koju sami sklapate i menjate kako vi želite. 

Detaljne opise svih komandi potražite na zvaničnim sajtovima vaše distribucije.