Slackware Documentation Project - lokalizacija na srpski

Projekti Slackware Srbija zajednice ili vezani za Slackware Srbija zajednicu
Post Reply

Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 16 Aug 2014, 21:58


Evo konačno i poglavlja Pokretanje:

Code: Select all

PODIZANJE SISTEMA

Sada kada imate instaliran Slackware na vašem računaru, treba da naučite šta tačno kontroliše proces podizanja sistema na vašoj mašini i kako da popravite nešto ako se slučajno pokvari. Ako dovoljno dugo koristite Linux, pre ili kasnije ćete napraviti grešku koja će nekako pokvariti vaš bootloader. Na sreću, ne morate reinstalirati ceo sistem da bi ga popravili. Za razliku od mnogih drugih sistema koji sakrivaju detalje "ispod haube" i o tome kako rade, Linuks (a naročito Slackware) omogućava vam potpunu kontrolu procesa podizanja sistema. Jednostavno, editovanjem jednog il dva konfiguraciona fajla i ponovnim pokretanjem instalacije bootloader-a, možete brzo i jednostavno izmeniti (ili pokvariti) vaš sistem. Slackware omogućava jednostavno instaliranje više operativnih sistema, kao što su druge Linuks distribucije ili Microsoft Windows.  



MKINITRD

Pre nego što nastavimo dalje, napavimo kratka diskusija o Linuks kernelu je nezaobilazna. Slackware Linuks sadrži najmanje dva a nekada i više različitih kernela. Iako su su svi kompajlirani iz istog izvornog koda, iako su svi "isti", nisu identični. U zavisnosti od arhitekture hardvera i verzije Slackware-a, instalacioni program može učitati u sistem više kernela. Postoje kerneli za sisteme sa jednim procesorom i kerneli za sisteme sa više procesora (na 32-bitnom Slackware-u). Ranije, bilo je dosta kernela za instalaciju na mnogo različitih vrsta hard diskova. Ono što je najvažnije za našu diskusiju, postoje "huge" kerneli i "generic" kerneli.

Ako pogledate u vaš /boot direktorijum, videćete različite kernele koji su instalirani na vaš sistem. 

--------------------------
darkstar:~# ls -1 /boot/vmlinuz*
/boot/vmlinuz-huge-2.6.29.4
/boot/vmlinuz-generic-2.6.29.4
--------------------------

Ovde možete videti da imam instalirana dva kernela, vmlinuz-huge-2.6.29.4 i vmlinuz-generic-2.6.29.4. Svako Slackware izdanje uključuje različite verzije kernela i nekada čak drugačija imena, tako da, nemojte paničiti ako vidite nešto što se razlikuje od onoga kod mene, što je gore izlistano.

Huge kerneli su tačno ono što mislite, oni su ogromni. Međutim, to NE znači da imaju sve moguće drajvere i slične stvari kompajlirane u njih. Umesto toga, ovi kerneli su napravljeni da se podignu (i pokrenu) na svakom iole pristojnom računaru na kojem je Slackware podržan (istina, postoji nekoliko njih koji neće da se podignu/pokrenu). Sasvim sigurno sadrže podršku za hardver koji nemate i koji (verovatno nikada) nećete ni imati na vašem računaru, ali to ne treba da vas brine. Ovi kerneli su uključeni iz nekoliko razloga, a verovatno najveći je taj što su potrebni Slackware instalacionom programu - to su kerneli koje pokreće Slackware instaler. Ako izaberete da Slackware instalacioni program podesi bootloader umesto vas, on bira da koristi ove kernele zbog veoma širokog spektra hardvera koji oni podržavaju. Nasuprot njima, generički kernel podržava jako malo hardvera bez korišćenja eksternih modula. Ako želite da koristite jedan od generičkih kernela, moraćete da koristite "initrd" koji se kreira pomoću "mkinitrd" alata.

Zašto bi ste želeli da koristite generički kernel? Trenutno Slackware razvojni tim preporučuje korišćenje generičkog kernela iz nekoliko različitih razloga. Možda najveći je veličina. Huge kerneli su skoro dva puta veći od generičkih kernela pre nego što se dekompresuju i učitaju u memoriju. Ako posedujete stariju mašinu ili neku sa malom količinom RAM memorije, značiće vam razlika u veličini. Druge razloge je teško izmeriti. Konflikti između drajvera koji su uključeni u Huge kernel se pojavljuju s vremena na vreme i generalno govoreći, Huge kerneli možda neće raditi toliko dobro kao generički. Isto tako, korišćenjem generičkog kernela, posebni argumenti odvojeno mogu biti prosleđeni do drajvera, radije nego da te opcije pokušavamo  da prosledimo preko komandne linije kernela. Neki od alata koji su deo Slackware-a rade bolje ako kernel koristi neke drajvere kao module, nego da ih statički ubacuju u kernel. Ako imate problem da razumete ovo, nemojte paničiti. Samo mislite na to u smislu: Huge kernel=dobar, generički kernel=bolji.

Nažalost, korišćenje Generic kernela nije tako jednostavno kao korišćenje Huge kernela. Da bi generički kernel mogao da se pokrene na vašem sistemu moraćete da uključite nekoliko osnovnih modula u "initrd". Moduli su delovi kompajliranog kernela koji mogu biti uključeni ili izbačeni iz kernela koji se koristi (idealno koristeći "modprobe"). To čini sistem fleksibilnijim po cenu toga što je malo kompleksniji. Možda će vam biti lakše da mislite o modulima kao drajverima, bar u ovoj sekciji. Moraćete da dodate modul za fajl sistem koji odaberete da se koristi za vašu root particiju tokom instalacije, i ako se vaša particija nalazi na SCSI disku ili RAID kontroleru, isto tako ćete morati da dodate i te module. 
Na kraju, ako koristite sofverski RAID, enkripciju diska ili LVM, moraćete da kreirate "initrd" bez obzira na to da li koristite generički kernel ili ne. 

Initrd je kompresovana "cpio" arhiva, tako da kreiranje nije baš tako jednostavno. Srećom po vas, Slackware poseduje alat koji omogućava da ovo uradite veoma jednostavno: "mkinitrd". Kompletna diskusija o njemu je malo iznad mogućnosti ove knjige ali pokazaćemo vam ono najvažnije. Za kompletniji odgovor, pogledajte man stranicu il pokrenite mkinitrd sa -help argumentom. 

-----------------------
darkstar:~# mkinitrd --help
mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
archive) used to load kernel modules that are needed to mount the
root filesystem, or other modules that might be needed before the
root filesystem is available.  Other binaries may be added to the
initrd, and the script is easy to modify.  Be creative.  :-)
.... many more lines deleted ....
-----------------------

Kada koristite "mkinitrd" treba da znate nekoliko informacija: vašu root particiju, root fajl sistem, hard disk kontrolere koje koristite i da li ili ne koristite LVM, softverski RAID ili enkripciju diska. Ukoliko koristite neku vrstu SCSI kontrolera (i imate root particiju koja se nalazi na SCSI kontroleru), trebalo bi da znate samo root fajl sistem i vrstu particije. Predpostavljajući da ste pokrenuli Slackware sistem sa Huge kernelom, lako možete naći ovu informaciju "mount" komandom ili pregledom sadržaja /proc/mounts.

------------------------
darkstar:~# mount
/dev/sda1 on / type ext4 (rw,barrier=1,data=ordered)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda2 on /home type jfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
------------------------

U navedenom primeru možete videti da je root particija locirana na /dev/sda1 a da je vrsta particije ext4. Ako želimo da kreiramo initrd za ovaj sistem, prosto treba ovu informaciju da prosledimo u mkinitrd.

------------------------
darkstar:~# mkinitrd -f ext4 -r /dev/sda1
------------------------

U većini slučajeva, mkinitrd je dovoljno pametan da sam otkrije ove informacije ali nikada nije na odmet da to uradite sami. Sada, kada smo napravili initrd, moramo da kažemo LILO-u gde da ga pronađe. O tome će biti više reči u sledećem poglavlju.

Gledajući sve ove različite opcije za mkinitrd ili još gore, pamteći ih, može biti prilično nezgodno posebno ako često isprobavate različite kernele. Ovo je postalo dosadno čak i Slackware razvojnom timu pa smo napravili jednostavan konfiguracioni fajl "mkinitrd.conf". Primer ovog fajla, koji može biti izmenjen prema vašem sistemu, možete pronaći na lokaciji /etc/mkinitrd.conf.sample. Evo mog:

-------------------------
darkstar:~# >/prompt>cat /etc/mkinitrd.conf.sample
# See "man mkinitrd.conf" for details on the syntax of this file
#
SOURCE_TREE="/boot/initrd-tree"
CLEAR_TREE="0"
OUTPUT_IMAGE="/boot/initrd.gz"
KERNEL_VERSION="$(uname -r)"
#KEYMAP="us"
MODULE_LIST="ext3:ext4:jfs"
#LUKSDEV="/dev/hda1"
ROOTDEV="/dev/sda1
ROOTFS="ext4"
#RESUMEDEV="/dev/hda2"
#RAID="0"
LVM="1"
#WAIT="1"
--------------------------

Za kompletan opis svake od ovih linija, pogledajte man stranicu za mkinitrd.conf. Kopirajte primerak u /etc/mkinitrd.conf i izmenite ga po želji. Kada ga podesite treba da startujete "mkinitrd" sa -F argumentom. Pravi initrd fajl će napravljen i instaliran za vas da ne morate da pamtite sve one argumente. 

Ako niste sigurni koje opcije da precizirate u konfiguracionom fajlu ili u komandnoj liniji, postoji još jedna opcija. Slackware sadrži jedan mali i zgodan alat koji vam može reći koje opcije su potrebne za kernel koji trenutno koristite.
"/usr/share/mkinitrd/mkinitrd_command_generator.sh". Kada pokrenete ovu skriptu, ona će napraviti komandnu liniju za mkinitrd koja bi trebalo da radi na vašem računaru, a možda ipak želite da sve proverite još jednom za svaki slučaj.

--------------------------
darkstar:~# /usr/share/mkinitrd/mkinitrd_command_generator.sh
mkinitrd -c -k 2.6.33.4 -f ext3 -r /dev/sda3 -m \
  usbhid:ehci-hcd:uhci-hcd:ext3 -o /boot/initrd.gz
--------------------------



LILO

LILO je Linuks bootloader i trenutno je podrazumevani na Slackware sistemu. Ako ste ranije koristili neke druge Linuks distribucije, možda ste više upoznati sa GRUB-om i ako preferirate njega možete ga lako naći u /extra direktorijumu na Slackware CD-u. Obzirom na to da je LILO podrazumevani bootloader, fokusiraćemo se samo na njega. 

Konfiguracija LILO-a može biti malo nezgodna za nove korisnike, ali Slackware dolazi sa specijalnim alatom koji se naziva "liloconfig". Normalno, "liloconfig" se prvi put startuje od strane programa za instalaciju sistema ali možete ga pokrenuti bilo kada iz terminala. 


liloconfig ima dva načina rada: "simple" i "expert". "Simple" način pokušava automatski da podesi LILO za vas. Ako je Slackware jedini operativni sistem koji je instaliran na vašem računaru, "simple" način će skoro uvek uraditi pravu stvar, jednostavno i brzo. Takođe je jako dobar u detektovanju Windows instalacija i njihovom dodavanju u fajl /etc/lilo.conf, tako da možete birati koji operativni sistem ćete pokrenuti pri paljenju računara. 

Da bimogli da koristite "expert" način, morate znati Slackware-ovu root particiju. Takođe možete podešavati i druge Linuks operativne sisteme ako znate njihove root particije, ali sve to možda neće raditi onako kako ste očekivali. "liloconfig" će pokušati da pokrene svaki Linuks operativni sistem sa Slackware kernelom a to možda nije ono što želite. Na sreću, pokretanje Windows particija u "expert" načinu rada je trivijalno. Jedan mali trik kada koristite "expert" način: trebali bi uvek da instalirate LILO na MAster Boot Record (MBR). U nekim slučajevima je preporučeno da instalirate bootloader na root particiju i da tu particiju označite da služi za pokretanje (bootable). Danas, LILO je prilično sazreo i potpuno je bezbedno da ga instalirate na MBR. Uostalom, imaćete manje problema ako tako uradite. 

liloconfig je sjajan način da brzo podesite vaš bootloader, ali akobaš želite da znate šta se dešava, treba da pogledate u LILO konfiguracioni fajl: lilo.conf koji se nalazi u direktorijumu /etc. /etc/lilo.conf je podeljen u nekoliko sekcija. Na vrhu, naćićete globalnu sekciju gde podešavate stvari kao što su: gde instalirati LILO (generalno na MBR), da li da prikazuje neke posebne slike pri podizanju i vreme nakon kojeg će LILO podignuti podrazumevani operativni sistem. Evo kako izgleda globalna sekcija mog lilo.conf fajla. 

----------------------
# LILO configuration file

boot = /dev/sda
  bitmap = /boot/slack.bmp
  bmp-colors = 255,0,255,0,255,0
  bmp-table = 60,6,1,16
  bmp-timer = 65,27,0,255

append=" vt.default_utf8=0"
prompt
timeout = 50

# VESA framebuffer console @ 1024x768x256
vga = 773
.... many more lines ommitted ....
------------------------

Za kompletan listing svih mogućih LILO opcija, trebalo bi da konsultujete man stranicu za lilo.conf. Mi će mo u ovom dokumentu dotaći samo neke uobičajene opcije.

Prva stvar koja bi trebala da vam privuče pažnju je "boot" linija. Ona određuje gde je bootloader instaliran. Da bi je instalirali na Master Boot Record (MBR) vašeg hard diska, jednostavno izlistajte oznake vaših hard diskova u ovoj liniji. U mom slučaju, koristim SATA hard disk koji se prikazuje kao SCSI uređaj /dev/sda. Da bih ga instalirao na boot blok particije, moram izlistati oznaku particije. Na primer, ako instalirate na prvu particiju jedinog SATA hard diska na vašem računaru, veovatno ćete koristiti /dev/sda1.

"Prompt" opcija govori LILO-u da vas pita koji će operativni sistem da pokrene. Operativni sistemi su svi izlistani u njihovoj sekciji nešto niže u fajlu. Ubrzo ćemo stići i do njih. Timeout opcija govori LILO-u koliko dugo da čeka (u desetinama sekundi) pre nego što učita podrazumevani operativni sistem. U mom slučaju, to je 5 sekundi. Na nekim sistemima je potrebno mnogo više vremena da prikažu ekran za podizanje sistema pa će te možda morati da povećate timeout vreme nego što sam ja podesio. Zbog toga "simple" LILO konfiguracija koristi dosta vremena za timeout (negde oko 2 minuta). Linija za dodavanje je u mom slučaju podešena od strane "liloconfig"-a. Možda ćete (i trebali bi) da vidite nešto slično kada vidite svoj lilo.conf fajl. Neću ulaziti u detalje ili zašto je ta linija potrebna, tako da ćete jednostavno morati da mi verujete kada vam kažem da će stvari raditi bolje ako je prisutna. 

Sada, kada smo videli globalnu sekciju, hajde da bacimo pogled na sekciju operativnih sistema. Svaki linuks perativni sistem počinje sa "image" linijom. Microsoft WIndows operativni sistemi se označavaju sa "other" linijom. Da pogledamo primer lilo.conf fajla koji podiže Slackware i Microsoft Windows. 

--------------------------
# LILO configuration file
... global section ommitted ....
# Linux bootable partition config begins
image = /boot/vmlinuz-generic-2.6.29.4
  root = /dev/sda1
  initrd = /boot/initrd.gz
  label = Slackware64
  read-only
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/sda3
  label = Windows
  table = /dev/sda
# Windows bootable partition config ends
----------------------------

Za Linuks operativne sisteme kao što je Slackware, "image" linija određuje koji kernel će da se podigne. U ovom slučaju, podižemo /boot/vmlinuz-generic-2.6.29.4. Ostali delovi praktično sami sebe objašnjavaju. Oni govore LILO-u gde da pronađe root fajl sistem, koji initrd (ako postoji) da koristi, i da inicijalno montira root fajl sistem u modu read-only. Ta initrd linija je veoma bitna za svakoga ko koristi generički kernel, koristi LVM ili softverski RAID. Govori LILO-u (i kernelu) gde da pronađe initrd koji ste kreirali koristeći "mkinitrd".

Kada ste završili podešavanje /etc/lilo.conf za vašu mašinu, jednostavno pokrenite "lilo" komandu da bi ga instalirali. Suprotno od GRUB-a i drugih bootloader-a, LILO zahteva da ponovo pokrenete "lilo" komandu svaki put kada napravite promenu u njegovom konfiguracionom fajlu ili novi (izmenjeni) bootloader neće biti instaliran a izmene se neće videti.

-----------------------------
darkstar:~# lilo
Warning: LBA32 addressing assumed
Added Slackware *
Added Backup
6 warnings were issued.
-----------------------------

Nemojte se uplašiti kada vidite mnogo upozorenja kada pokrećete "lilo" komandu. Sve dok ne vidite fatalnu grešku, sve je u redu. U principu, LBA32 adresno upozorenje je uobičajeno.  



POKRETANJE VIŠE SISTEMA (DUAL BOOT)

Bootloader (kao LILO) je jako fleksibilna stvar, obzirom na to da postoji samo da bi odredio koji hard disk, particija, ili čak specifični kernel na particiji da podigne. Inherentno sugeriše izbor pri podizanju, pa je ideja o posedovanju dva ili više sistema deluje prilično prirodno LILO ili GRUB korisnima. 

Ljudi koriste "dual boot" iz više razloga; neki ljudi žele stabilnu Slackware instalaciju na jednoj particiji ili disku a sandbox za razvoj na drugom, neki ljudi žele da imaju Slackware na jednoj a neku drugu Linuks ili BSD distribuciju na drugoj, a opet, drugi ljudi mogu imati Slackware na jednoj a neki vlasnički operativni sistem  (za rad ili za aplikacije kojappende Linuks ne može da ponudi) na drugoj particiji ili disku. 

Dual booting ne treba olako shvatiti jer to obično znači da imate dva različita operativna sistema koji pokušavaju da rukuju bootloader-om. Ako imate dual boot, mogućnost da jedan operativni sistem pokuša da prepiše ili apdejtuje podatke u bootloader-u bez vaše direktne intervencije je velika; ako se to dogodi, moraćete da modifikujete GRUB ili LILO manuelno, tako da možete da uđete u svaki sistem. 

Postoji dva načina za dual (multi) boot; možete staviti svaki operativni sistem na odvojeni hard disk (obično na desktopu, sa njihovim luksuzom da imaju više od jednog mesta za disk) ili svaki operativni sistem na svojoj particiji (obično na laptopovima gde je prisutan samo jedan hard disk).



DUAL BOOT SA PARTICIJAMA

Da bi ste napravili dual boot gde će svaki operativni sistem imati svoju particiju, morate prvo napraviti particije. Ovose najlakše radi tako što se instalira prvi operativni sistem, u tom slučaju je to jednostavno planiranje podešavanje hard diska prema vašim potrebama. Pogledajte sekciju koja se zove "Particionisanje" za informacije o korišćenju alata "cfdisk" i "fdisk".

----------------------
Ako u dual boot-u koristite dve Linuks distribucije, nije preporučljivo da pokušavate da koristite isti /home direktorijum za oba sistema. Iako je to tehnički izvodljivo, povećaće šansu da sva vaša lična podešavanja budu oštećena od strane drugog okruženja ili verzije. 

Ipak, bezbedno je koristiti zajedničku swap particiju.
----------------------

Trebalo bi da particionišete hard disk bar na tri dela:

- Jedna particija za Slackware
- Jedna particija za drugi operativni sistem
- Jedna particija za swap

Prvo instalirajte Slackware Linuks na prvu particiju hard diska kao što je opisano u poglavlju 2, Instalacija.

Nakon što je Slackware instaliran, podignut, i nakon što ste videli da sve radi onako kako ste očekivali, restartujte i pokrenite instaler sistema za drugi operaivni sistem. Ovaj operativni sistem će verovatno ponuditi da zauzme ceo disk; očigledno to ne želite, pa ga stavite samo na drugu particiju. Dalje, taj drugi operativni sistem će pokušati da instalira boot loader na početak hard diska, prepisujući preko LILO-a. 

Imate nekoliko opcija u vezi boot loader-a:

Moguće akcije:

- Ako je drugi operativni sistem Linuks, nemojte mu dozvoliti da instalira boot menadžer. 
Ako pravite dual boot sa drugom Linuks distribucijom, instaler te distribucije obično pita da li želite da instalirate boot loader. Svakako ste slobodni da to odbijete i manuelno podesite i Slackware i drugi operativni sistem u LILO-u.

U zavisnosti od distribucije, možete menjati LILO češće nego što bi to radili akosamo koristite Slackware; neke distribucije su poznate po čestim ažuriranjima kernela, što znači da ćete morati da izmenite LILO da bi ta ažuriranja i konfiguracije bili prihvaćeni nakon takvog apdejta. Ali ako niste želeli da često menjate konfiguracione fajlove, verovatno ne bi ste izabrali Slackware.

- Ako je drugi operativni sistem Linuks, dozvolite mu da prepiše LILO sa GRUB-om.

Ako koristite dual boot sa drugom Linuks distribucijom, možete jednostavno koristiti GRUB umesto LILO-a, ili instalirati Slackware kasnije i koristiti LILO za oba. I LILO i GRUB imaju veoma dobre mogućnosti za auto-detekciju, pa koji god da instalirate, poslednji bi trebao da vidi drugu distribuciju i da napravi unos za nju.

Druge distribucije često nude auto-update za GRUB menije, pa uvek postoji šansa da tokom tog apdejta nešto krene loše pa na kraju vidite da ne možete da podignete Slackware. Ako se to dogodi, nemojte paničiti; podignite sistem sa druge Linuks particije i manuelno podesite GRUB tako da ima pravilno podešenu particiju, kernel i initrd (ako postoji) za Slackware u njegovom meniju.

- Dozvolite drugom opertivnom sistemu da prepiše LILO a kasnije se vratite da reinstalirate i rekonfigurišete LILO.

Ovo nije loš izbor, naročito kada je WIndows drugi operativni sistem, ali mogući problemi nastaju kada se Windows apdejtuje, može se desiti da prepiše MBR (master boot record) opet, pa ćete opet morati manuelno da reinstalirate LILO. 

Da ponovo podignete LILO nakon što ga drugi operativni sistem obriše, možete podići sistem sa Slackware CD-om i ući u setup fazu. Uradite <emphasis>not</emphasis> reparticioniranje vašeg hard diska ili reinstalirjte Slackware; preskočite odmah na Konfiguraciju.

Čak i kada koristite "simple" način za instalaciju, LILO bi trebalo da prepozna oba operativna sistema i da automatski podesi meni umesto vas. Ako to ne uspe, manuelno podesite unose.



DUAL BOOT SA HARD DISKA

Dual boot između različitih fizičkih hard diskova je obično lakši nego sa particijama obzirom na to da računarov BIOS ili EFI skoro uvek ima meni za odabir drajvova za podizanje što vam omogućava da prekinete proces podizanja odmah nakon POST-a i da odaberete koji disk će imati prioritet.

Taster za pokretanje opcije za odabir boot prioriteta je različit za svaku marku matične ploče; pogledajte uputstvo za matičnu ploču ili pogledajte početni ekran da to otkrijete. Tipični tasteri za to su F1, F12 i DEL. Za Apple računare, to je uvek Option (Alt) taster.

Ako pristupate prioritetima za pokretanje preko BIOS-a ili EFI-ja, onda je svaki boot loader na svakom hard disku svestan sopstvenog diska i nikada neće dolaziti u konflikt sa onim drugim. Ovo je suprotno od onoga za šta su boot loaderi napravljeni da rade ali može biti koristno ako imate posla sa vlasničkim operativnim sistemima koji insistiraju da budu jedini operativni sistem, na štetu samih korisnika. 

Ako nemate luksuz da imate više internih hard diskova i nije vam komforno da imate još jednu particiju i operativni se istem na vašem računaru, možda bi mogli da razmotrite korišćenje USB diska ili čak virtuelne mašine za pristup drugom operativnom sistemu. Svaka od ovih opcija je van domašaja ove knjige, ali ti izbori su uobičajeni i za vs mogu predstavljati pravi izbor, u zavisnosti od vaših potreba. 



NAVIGACIJA

Prethodno poglavlje: Instalacija
Sledeće poglavlje: Osnovne Shell komande



IZVORI

- Originalni izvor: http://www.slackbook.org/beta

- Original napisali: Alan Hiks, Kris Lumens, Dejvid Kentrel, Logan Džonson (Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson)
Izvinjavam se, malo je potrajalo ali šta da radim, nije moglo drugačije.
Molim vas da dobro obratite pažnju i pregledate ceo tekst jer je prilično težak za prevođenje zbog toga što ima jako puno tehničkih izraza i reči koje je prilično teško bukvalno prevesti na srpski jezik.

Kao i do sada, javite ako treba nešto da se ispravi. Ja ću uzeti da prevodim sledeće poglavlje, Osnovne Shell komande.

Živeli. :beer:



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 176
Joined: 07 Sep 2013, 18:13
Location: Novi Sad

Post Napisano: 17 Aug 2014, 00:03


wow rapha prevodi ko navijen :) brv
The quieter you become the more you are able to hear.



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 1053
Joined: 18 Feb 2012, 15:14
Location: Despotovac
Contact:

Post Napisano: 17 Aug 2014, 10:55


@rapha, кад дођеш до Дозвола (Filesystem Permissions), заустави се јер сам ја стигао дотле, али ја идем уназад, преводим од краја. Ти си кренуо од почетка, па ћемо да се нађемо ту. :)



Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 17 Aug 2014, 12:11


Važi. :)



Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 18 Aug 2014, 23:06


Evo poglavlja "Osnovne Shell komande":

Code: Select all

OSNOVNE SHELL KOMANDE

Instalirali ste Slackware i gledate u terminal, šta sada? Sada je 
pravo vreme da naučite neke osnovne konzolne alate. Obzirom na to 
da gledate u trepćući kursor, verovatno vam je potrebna mala pomoć i o tome ćemo govoriti u ovom poglavlju.



SISTEMSKA DOKUMENTACIJA

Vaš Slackware Linuks dolazi sa puno dokumentacije, maltene za 
svaku instaliranu aplilaciju. Možda najčešći metod za čitanje 
sistemske dokumentacije je "man". man (skraćeno od manual) će vam 
prikazati man-stranice za svaku aplikciju, sistemski poziv, 
konfiguracioni fajl, ili biblioteku za koju to zatražite. Na 
primer, "man man" će vam prikazati man-stranicu za samu man 
komandu.

Nažalost, nećete uvek znati koja vam je aplikacija potrebna za 
obavljanje nekog posla. Tu je ipak "man" sa svojom mogućnošću 
pretrage. Koristeći -k argument, "man" će tražiti svako uputstvo 
koje sadrži kriterijum pretrage koji ste uneli. 

Man-stranice su organizovane po grupama ili sekcijama po svom 
sadržaju. Na primer, sekcija 1 je za korisničke aplikacije. man će 
pretraživati svaku sekciju po redu i prikazaće prvi rezultat na 
koji naiđe. Nekada ćete primetiti da man-stranice postoje u više 
od jedne sekcije za određeni pojam. U tom slučaju, moraćete da 
precizirate tačnu sekciju za pretragu. U ovoj knjizi, sve 
aplikacije i brojne druge stvari će imati broj sa desne 
strane u umetku. Taj broj označava sekciju man stranice u kojoj 
možete pronaći informacije o tom alatu. 

--------------------
darkstar:~$ man -k printf
printf               (1)  - format and print data
printf               (3)  - formatted output conversion
darkstar:~$ man 3 printf
--------------------

Sekcije man-stranica:



RAD SA FAJLOVIMA I DIREKTORIJUMIMA

IZLISTAVANJE SADRŽAJA FAJLOVA I DIREKTORIJUMA

"ls" komanda se koristi za izlistavanje fajlova i direktorijuma, 
njihovoh dozvola, veličine, tipa, čvorišni broj, vlasnika i grupu 
kao i mnoštvo drugih informacija. Na primer, da izlistamo sadržaj 
/ direktorijuma vaše nove Slackware instalacije.

--------------------
darkstar:~$ ls /
bin/   dev/  home/  lost+found/  mnt/  proc/  sbin/  sys/  usr/
boot/  etc/  lib/   media/       opt/  root/  srv/   tmp/  var/
--------------------

Primetićete da su sve direktorijumi. Lako se raspoznaju od fajlova 
zbog znaka "/"; standardni fajlovi nemaju taj sufiks. 
Egzekutabilni fajlovi će kao sufiks imati zvezdicu. Ali "ls" 
komanda može mnogo više. Da pogledate dozvole fajlova ili 
direktorijuma, moraćete da uradite "dužu listu". 

--------------------
darkstar:~$ ls -l /home/alan/Desktop
-rw-r--r-- 1 alan users 15624161 2007-09-21 13:02 
9780596510480.pdf
-rw-r--r-- 1 alan users  3829534 2007-09-14 12:56 imgscan.zip
drwxr-xr-x 3 alan root       168 2007-09-17 21:01 ipod_hack/
drwxr-xr-x 2 alan users      200 2007-12-03 22:11 libgpod/
drwxr-xr-x 2 alan users      136 2007-09-30 03:16 playground/
--------------------

Dugačka lista vam omogućava uvid u dozvole, vlasništvo korisnika i 
grupa, veličinu, datum kada je poslednji put modifikovan, i 
naravno samo ime fajla. Primetićete da su prva dva unosa fajlovi a 
poslednja tri direktorijumi. To se vidi u prvom znaku same linije. 
Fajlovi imaju "-" oznaku, dok su direktorijumi obeleženi sa "d". 
Postoji nekoliko različitih vrsta fajlova koji imaju svoje oznake. 
Simbolički linkovi, na primer, su obeleženi sa “l”.

Na kraju, pokazaćemo vam kako da izlistate fajlove "sa tačkom" ili 
skrivene fajlove. Nasuprot drugim operativnim sistemima kao što je 
Microsoft windows, ne postoji neko posebno svojstvo koje odvaja 
"skrivene" od "neskrivenih" fajlova. Oni se jednostavno označavaju 
tačkom. Da bi izlistali ove fajlove zajedno sa svim ostalim treba 
da unesemo argument "-a" uz komandu "ls".

---------------------
darkstar:~$ ls -a
.xine/    .xinitrc-backup  .xscreensaver  .xsession-errors  SBo/
.xinitrc  .xinitrc-xfce    .xsession      .xwmconfig/       
Shared/
---------------------

Takođe ste verovatno primetili da se vaši fajlovi i direktorijumi 
prikazuju u različitim bojama. Mnoge dodatne mogućnosti "ls" 
komande, kao što su te boje ili određene oznake, označavaju tipove 
fajlova i predstavljaju specijalne mogućnosti "ls" komande koje su 
uključene dodavanjem određenog argumenta. U Slackware-u "ls" je 
podešen da uključuje te mogućnosti po default-u. One se kontrolišu 
sa LS_OPTIONS i LS_COLORS varijablama okruženja. O tim varijablama 
ćemo pričati više u poglavlju 5. 



KRETANJE OKO FAJL SISTEMA

Komanda "cd" služi za promenu direktorijuma. Suprotno većini 
drugih komandi, "cd" nije zaseban program, već je ugrađen u sam 
shell. U osnovi, ovo znači da "cd" komanda nema svoju 
man-stranicu. Za više informacija o ovoj komandi pogledajte 
dokumentaciju shell-a ali one se uglavnom sve isto ponašaju.  

----------------------
darkstar:~$ cd /
darkstar:/$ls
bin/   dev/  home/  lost+found/  mnt/  proc/  sbin/  sys/  usr/
boot/  etc/  lib/   media/       opt/  root/  srv/   tmp/  var/
darkstar:/$cd /usr/local
darkstar:/usr/local$
----------------------

Primetili ste kako se izgled ekrana promenio kada smo promenili 
direktorijume? Podrazumevani Slackware-ov shell vam na brz i 
jednostavan način omogućava da vidite sadržaj vaših direktorijuma 
ali ovo u stvari nije funkcija komade "cd". Ako vaš shell ne radi 
na ovaj način, možete lako da vidite direktorijum u kojem se 
nalazite komandom "pwd". (Većina UNIX shell-ova imaju 
konfigurabilne upite i mogu se podesiti da pružaju ovu 
funkcionalnost. U stvari, ovo je još jedno zgodno podešavanje u 
podrazumevanom shell-u na vašem sistemu od strane Sackware-a.)

----------------------
darkstar:~$ pwd
/usr/local
----------------------



KREIRANJE I BRISANJE FAJLOVA I DIREKTORIJUMA

Dok većina aplikacija može i hoće da napravi sopstvene fajlove i 
direktorijume, često ćete to želeti i sami da uradite. Na sreću, 
to je vrlo lako zahvajujući komandama "touch" i "mkdir"

Komanda "touch" u stvari menja vreme kreiranja fajla ali ako 
ono ne postoji, novi fajl će biti kreiran. 

----------------------
darkstar:~/foo$ ls -l
-rw-r--r-- 1 alan users 0 2012-01-18 15:01 bar1
darkstar:~/foo$ touch bar2
-rw-r--r-- 1 alan users 0 2012-01-18 15:01 bar1
-rw-r--r-- 1 alan users 0 2012-01-18 15:05 bar2
darkstar:~/foo$ touch bar1
-rw-r--r-- 1 alan users 0 2012-01-18 15:05 bar1
-rw-r--r-- 1 alan users 0 2012-01-18 15:05 bar2
----------------------

Primetićete je fajl "bar2" napravljen drugom komandom a treća 
komanda je promenila vreme kada je kreiran fajl "bar1".

Komanda "mkdir" se koristi za (očigledno) pravljenje 
direktorijuma. Komandom "mkdir foo" napravićemo direktorijum "foo" 
unutar trenutnog radnog direktorijuma. Dodatno, ako koristimo -p 
argument  kreiraćemo dodatne direktorijume koji ne dostaju a 
trebali bi da se nalaze iznad željenog.

----------------------
darkstar:~$ mkdir foo
darkstar:~$ mkdir /slack/foo/bar/
mkdir: cannot create directory `/slack/foo/bar/': No such file or 
directory
darkstar:~$ mkdir -p /slack/foo/bar/
----------------------

U ovom slučaju, "mkdir" će prvo napraviti "/slack", pa onda 
"/slack/foo" i na kraju "/slack/foo/bar". Ako zaboravite da
upotrebite argument -p, "mkdir" neće moći da napravi 
"/slack/foo/bar" sve dok prethodna dva (/slack i /foo) ne postoje, 
kao što možete videti u primeru.

Brisanje fajla je isto tako jednostavno kao i kreiranje. Komanda 
"rm" će obrisati fajl (naravno, ako imate dozvolu za to). Ima 
svega par argumenata za komandu "rm" Prvi je -f i on se koristi da 
prisili brisanje fajla za koji možda nemate eksplicitnu dozvolu da 
ga obrišete. Argument -r će rekurzivno obrisati direktorijume i 
sav njihov sadržaj. 

Postoji još jedan alat za brisanje direktorijuma, skromni "rmdir". 
Komanda "rmdir" će samo obrisati direktorijume koji su prazni, a 
žaliće se oko onih koji sadrže fajlove ili pod direktorijume. 

----------------------
darkstar:~$ ls
foo_1/ foo_2/
darkstar:~$ ls foo_1
bar_1
darkstar:~$ rmdir foo_1
rmdir: foo/: Directory not empty
darkstar:~$ rm foo_1/bar
darkstar:~$ rmdir foo_1
darkstar:~$ ls foo_2
bar_2/
darkstar:~$ rm -fr foo_2
darkstar:~$ ls
-----------------------

ARHIVIRANJE I KOMPRESIJA 

Svako ima potrebu s vremena na vreme da zapakuje više malih 
fajlova u jedan veći radi lakšeg skladištenja, ili možda imate 
potrebu da kompresujete veoma veliki fajl na veličinu koja je 
pogodnija za rukovanje? Možda vam treba i jedno i drugo? Na sreću, 
postoji nekoliko alata za to.



ZIP I UNZIP

Verovatno ste upoznati sa .zip fajlovima. To su kompresovani 
fajlovi koji sadrže druge fajlove i direktorijume. Obično se ne   
koriste u linuks svetu, oni se mnogo više koriste na drugim 
operativnim sistemima, ali ćemo se s vremena na vreme susretati sa 
njima.

Da bi kreirali .zip fajl koristićete "zip" komandu. Možete 
kompresovati fajlove i direktorijume sa zip-om, ali moraćete da   
koristite -r agument za rekurzivnu akciju ako mislite da radite sa 
direktorijumima. 

---------------------
darkstar:~$ zip -r /tmp/home.zip /home
darkstar:~$ zip /tmp/large_file.zip /tmp/large_file
---------------------

Redosled argumenata je veoma bitan. Prvo mora biti naziv zip fajla 
koji želimo da kreiramo (ako je .zip ekstenzija izostavljena, zip 
je će dodati za vas) a ostalo su fajlovi ili direktorijumi koji 
treba da se dodaju u zip fajl.

Naravno, komanda "unzip" raspakuje .zip arhive.

---------------------

pogodnija za rukovanje? Možda vam treba i jedno i drugo? Na sreću, 
postoji nekoliko alata za to.

                                        
        
ZIP I UNZIP

Verovatno ste upoznati sa .zip fajlovima. To su kompresovani
fajlovi koji sadrže druge fajlove i direktorijume. Obično se ne
koriste u linuks svetu, oni se mnogo više koriste na drugim
operativnim sistemima, ali ćemo se s vremena na vreme susretati sa
njima.

Da bi kreirali .zip fajl koristićete "zip" komandu. Možete
kompresovati fajlove i direktorijume sa zip-om, ali moraćete da
koristite -r agument za rekurzivnu akciju ako mislite da radite sa
direktorijumima.

---------------------
darkstar:~$ zip -r /tmp/home.zip /home
darkstar:~$ zip /tmp/large_file.zip /tmp/large_file
---------------------

Redosled argumenata je veoma bitan. Prvo mora biti naziv zip fajla 
koji želimo da kreiramo (ako je .zip ekstenzija izostavljena, zip 
je će dodati za vas) a ostalo su fajlovi ili direktorijumi koji   
treba da se dodaju u zip fajl.

Naravno, komanda "unzip" raspakuje .zip arhive.

---------------------
darkstar:~$ unzip /tmp/home.zip
---------------------



GZIP

Jedan od najstarijih kompresionih alata koji dolazi uz Slackware 
je "gzip", kompresioni alat koji je jedino sposoban da radi sa 
jednim fajlom u isto vreme.
Dok je zip i kompresioni i arhivirajući alat, gzip jedino može da 
kompresuje. Na prvi pogled će ovo možda zvučati kao nedostatak ali 
zapravo je snaga. UNIX filozofija, pravljenja malih alata koji 
dobro završavaju svoje male poslove dozvoljava da se kombinuju na 
bezbroj načina. Da bi kompresovali fajl (ili više njih), samo ih 
dodajte kao argumente gzip-u. Kada god gzip kompresuje fajl, 
dodaje ekstenziju .gz i uklanja originalni fajl.

---------------------
darkstar:~$ gzip /tmp/large_file
---------------------

Dekompresija je takođe jednostavna sa komandom "gunzip" koja 
kreira novi nekompresovani fajl a briše stari.

---------------------
darkstar:~$ gunzip /tmp/large_file.gz
darkstar:~$ ls /tmp/large_file*
/tmp/large_file
---------------------

Pretpostavimo da ne želimo da brišemo stari kompresovani fajl već 
samo da vidimo njegovu sadržinu ili da ga inputiramo u drugi 
program? Komanda "zcat" će pročitati gzip fajl, dekompresovaće ga 
u memoriju, i poslati njegov sadržaj na sandardni izlaz (ekran 
terminala osim ako to nije promenjeno, pogledajte sekciju 
"Preusmeravanje ulaza i izlaza" za više detalja za redirekciju 
izlaza).

---------------------
darkstar:~$ zcat /tmp/large_file.gz
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86 is released as stable!  Thanks to everyone who 
helped make this release possible -- see the RELEASE_NOTES for the 
credits.The ISOs are off to the replicator.  This time it will be a 6 
CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.  
We're taking pre-orders now at store.slackware.com.  Please 
consider picking up a copy to help support the project.  Once 
again, thanks to the entire Slackwarecommunity for all the help testing and fixing things and offering
suggestions during this development cycle.
---------------------



BZIP2

Alternativa gzip-u je bzip2 kompresoni alat koji radi na skoro 
identičan način. Prednost bzip2 je što dobijamo veću kompresiju. 
Nažalost, dobijanje veće kompresije je spor sproces koji troši 
dista procesorske snage, pa bzip2-u obično treba mnogo više 
vremena da završi posao nego nekim alternativama.



XZ/LZMA

Poslednji alat za kompresiju u Slackware-u je "xz", koji 
implementira LZMA kompresioni algoritam. Ovo je brže od bzip2 a 
često i bolje kompresuje. U stvari, njegova brzina i snaga 
kompresije su doprinele da zameni gzip kao podrazumevanu 
kompresionu šemu u Slackware-u. Nažalost, xz nema man-stranicu u 
trenutku pisanja ove knjige, pa da bi videli raposložive opcije 
koristite -help argument. Kompresovanje fajlova se ostvaruje sa -z 
argumentom a dekompresija sa -d.

-------------------
darkstar:~$ xz -z /tmp/large_file
-------------------



TAR

Odlično, znamo kako da kompresujemo fajlove koristeći razne alate, 
ali ni jedan od njih ne može da arhivira na način kao što to radi 
zip. To je bilo do sada. Tape archiver ili "tar" je najčešće 
korišćen arhiverski program u Slackware-u. Kao i ostali arhiverski 
programi, "tar" generiše novi fajl koji sadrži druge fajlove i 
direktorijume. Podrazumevano ne kompresuje generisani fajl (često 
nazvan "tarball"); međutim verzija tar-a koja dolazi uz Slackware 
podržava razne kompresione šeme, uključujući i one pomenute gore. 

Uključivanje tar-a može biti ujedno i lako i komplikovano. 
Tipično, kreiranje tarball-a se radi sa -cvzf argumentom. Hajde da 
to bolje pogledamo.

Tar zahteva veću preciznost nego druge aplikacije kada se radi o 
argumentima. Argument -f mora biti prisutan pri očitavanju fajla 
ili pisanju po njemu, a nakon toga ide ime samog fajla. Pogledajte 
sledeće primere.

--------------------
darkstar:~$ tar -xvzf /tmp/tarball.tar.gz
darkstar:~$ tar -xvfz /tmp/tarball.tar.gz
--------------------

Prvi primer radi onako kako očekujete, ali drugi ne, zato što je 
tar-u rečeno da otvori fajl "z" a ne /tmp/tarball.tar.gz.

Sada kada smo naučili argumente, pogledajmo nekoliko primera kako 
da kreiramo ili raspakujemo tarball-ove. Kao što smo primetili, 
argument -c se koristi da kreira tarball a argument -x da ga 
raspakuje. Ako želimo da kreiramo ili raspakujemo kompresovani 
tarball, moramo da preciziramo koju kompresiju ćemo koristiti. 
Prirodno, ako uopšte ne želimo da kompresujemo tarball možemo da 
izostavimo ove opcije. Sledeća komanda kreira novi tarball 
koristeći gzip kompresiju. Iako nije obavezno, dobra je praksa da 
se doda .tar ekstenzija svim tarball-ovima kao i ekstenzija koju 
koristi kompresioni algoritam. 

--------------------
darkstar:~$ tar -czf /tmp/tarball.tar.gz /tmp/tarball/
--------------------



ČITANJE DOKUMENATA

Tradicionalno, UNIX i UNIX-oliki operativni sistemi su puni 
tekstualnih fajlova koji će u nekom trenutku korisnici želeti da 
pročitaju. Prirodno, postoji mnogo načina za čitanje ovih fajlova, 
a mi ćemo vam pokazati one uobičajene.

Davno, akoste želeli da vidite sadržaj nekog fajla (bilo kog, bilo 
da je tekstualni fajl ili binarni program) koristili bi "cat" 
alat. Cat je vrlo jednostavan program, koji uzme jedan ili više 
fajlova, poveže ih i pošalje na standardni izlaz, što je obično 
terminal. To je u redu kada je fajl mali i kada ne mora da se 
skroluje ekran, ali neadekvatan za veće fajlove pošto ne postoji 
način da se krećete po dokumentu i da čitate paragraf po paragraf. 
Danas, "cat" se i dalje koristi ali pretežno u skriptama ili za 
spajanje dva ili više fajlova u jedan. 

--------------------
darkstar:~$ cat /etc/slackware-version
Slackware 14.0
--------------------

Poznajući limite cat-a neki veoma inteligentni ljudi su počeli da 
rade na aplikacijama koje bi im omogućile da pregledaju dokumente 
stranicu po stranicu. Prirodno, takve aplikacije počinju da budu 
poznate kao "pagers". Jedna od prvih ovakvih aplikacija je bila 
"more", a nazvana je tako jer vam je dozvoljavala da vidite "više" 
od stranice kada god želite.



MORE

More će vam prikazati prvih nekoliko redova teksta dok ekran ne 
bude pun, a onda će napraviti pauzu. Kada dođete do kraja ekrana, 
možete nastaviti dalje za jedan red pritiskom na taster "Enter", 
ili za ceo ekran pritiskom na taster "Space", ili za određeni broj 
redova ukucavajući broj a onda taster "Space". "more" je takođe 
sposoban da pretražuje reči u tekstualnom fajlu; kada se otvorite 
fajl sa more-om, ritisnite taster "/" i ukucajte traženu reč. 
Pritisnite zatim taster "Enter" i tekst će se skrolovati dok ne 
nađe podudaranje. 

Ovo je veoma veliko unapređenje u odnosu na "cat", ali i dalje ima 
neke nedostatke; "more" nije sposoban da skorluje na gore kroz 
prikazani fajl, ako želite da pogledate nešto što ste možda 
preskočili, opcija za traženje ne označava rezultate pretrage, 
nema horizontalnog skrolovanja i tako dalje. Očigledno je potrebno 
bolje rešenje. 

------------------
U stvari, moderne verzije more-a, kao one što dolaze uz Slackware, 
dozvoljavaju skrolovanje na gore pritiskom na taster "b". Međutim, 
ova opcija je dostupna samo ako se fajl otvori direktno u more-u; 
ne kada je fajl prosleđen u more.
------------------



LESS

Da bi se nadoknadili nedostatci more-a, novi pager je napravljen i 
ironično nazvan "less". less je jako moćan pager koji podržava sve 
funkcije more-a i dodaje mnogo drugih mogućnosti. Za početak, less 
dzvoljava da koristite tastere sa strelicama za kretanje po 
dokumentu.

Zbog svoje popularnosti, mnoge Linuks distribucije su počele da 
izbacuju more a da ubacuju less. Slackware uključuje oba. Dalje, 
Slackware dolazi sa malim i zgodnim pre-procesorom za less koji je 
nazvan "lesspipe.sh". Ovo omogućuje korisniku da izvrši less 
komandu nad brojnim fajlovima koji nisu tekstualni. lesspipe.sh će 
generisati izlaz pokrećući komandu nad ovakvim fajlovima i 
prikazaće je u less-u.

Less omogućava svu funkionalnost moćnog tekst editora iako to 
nije. Kretanje red-po-red se može raditi sa vi-komandama "j" i 
"k", pomoću tastera sa strelicama ili pritiskom na taster "Enter". 
U slučaju da je fajl preširok da stane na ekran, možete skrolovati 
horizontalno sa levom i desnom strelicom (tasterima). Taster "g" 
vas vodi do početka fajla dok vas taster "G" vodi na kraj. 

Pretraga se radi kao u more-u, pritiskom na taster "/" i unosom 
željenog pojma ali primetićete da su rezultati pretrage označeni, 
a pritiskom na taster "n" ćete otići do sledećeg podudaranja a 
tasterom "N" do prethodnog. 

Takođe, kao i kod more, fajlovi mogu biti otvoreni direktno u 
less-u ili mu mogu biti prosleđeni:

---------------------
darkstar:~$  less
/usr/doc/less:/README
darkstar:~$  cat
/usr/doc/less:/README
/usr/doc/util-linux:/README | less
---------------------

Ima još mnogo toga o less-u; kada otvorite aplikaciju pritisnite 
taster "h" za celu listu komandi. 



LINKOVANJE

Linkovi su metod pozivanja jednog fajla koji ima više od jednog 
imena. 
Korišćenjem aplikacije "ln", korisnik može razlikovati fajl koji 
ima više od jednog imena. Ta dva fajla nisu identične kopije, već 
više kao isti fajl samo sa različitim imenom. Da u potpunosti uklonite 
fajl, sva njegova imena moraju biti uklonjena. (To je zbog načina 
na koji rm i slične aplikacije rade. Radije nego da uklone sadržaj 
fajla, jednostavno uklone referencu ka fajlu, oslobađajući prostor 
da bude ponovo korišćen. Ln će kreirati drugu referencu ili "link" 
do tog fajla.)

---------------------
darkstar:~$ ln /etc/slackware-version foo
darkstar:~$ cat foo
Slackware 14.0
darkstar:~$ ls -l /etc/slackware-version foo
-rw-r--r-- 1 root root 17 2007-06-10 02:23 /etc/slackware-version
-rw-r--r-- 1 root root 17 2007-06-10 02:23 foo
---------------------

Postoji još jedna vrsta linka, simlink. Simlink, umesto da bude 
još jedna referenca do istog fajla, je u stvari specijalna vrsta 
fajla sa sopstvenim ovlašćenjima. Ovi simlinkovi ukazuju na drugi 
fajl ili direktorijum. Glavna prednost simlinkova je to što mogu 
uputiti do direktorijuma ili fajlova, a mogu raditi na nekolko 
fajl sistema. Kreiraju se sa -s argumentom. 

---------------------
darkstar:~$ ln -s /etc/slackware-version foo
darkstar:~$ cat foo
Slackware 140
darkstar:~$ ls -l /etc/slackware-version foo
-rw-r--r-- 1 root root 17 2007-06-10 02:23 /etc/slackware-version
lrwxrwxrwx 1 root root 22 2008-01-25 04:16 foo -> 
/etc/slackware-version
---------------------

Kada koristite simlinkove, setite se da ako je originalni fajl 
obrisan, vaš simlink je beskorisan; on prosto ukazuje na fajl koji 
više ne postoji.



NAVIGACIJA

Prethodno poglavlje: Podizanje
Sledeće poglavlje: The Bourne Again Shell



IZVORI

- Originalni izvor: http://www.slackbook.org/beta
- Original napisali: Alan Hiks, Kris Lumens, Dejvid Kentrel, Logan 
Džonson (Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson)     
Prekontrolišite molim vas poslednji odeljak "Linkovanje". Em što mi baš nije jasno (nisam to nikada koristio pa ne znam o čemu se radi), em je prilično teško za prevođenje.
Ista stvar, javite ako treba da se ispravi nešto a ja uzimam sledeće poglavlje "The Bourne Again Shell".

:beer:



Administrator
Administrator
offline
User avatar

Posts: 4069
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 18 Aug 2014, 23:23


Za simboličke linkove sigurno znaš. Takođe postoje i tvrdi (hard) linkovi. Kad i ako budeš našao vremena, baci pogled ovde za par informacija o razlikama između njih.



Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 19 Aug 2014, 12:03


Super link, hvala druže. ;)



Administrator
Administrator
offline
User avatar

Posts: 4069
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 19 Aug 2014, 12:19


Nema na čemu. ;)



Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 20 Aug 2014, 13:49


The Boure Again Shell:

Code: Select all

THE BOURNE AGAIN SHELL



ŠTA JE SHELL?

Da stvarno, šta je shell? Shell je konzolno okruženje. U osnovi, 
to je aplikacija koja radi kada se korisnik uloguje i omogućava mu 
da pokrene neke druge aplikacije. U neku ruku je vrlo slična 
grafičkom interfejsu jer omogućuje okvir (framework) za pokretanje 
komandi i programa. Mnogi shell-ovi dolaze sa punom instalacijom 
Slackware-a, ali ćemo u ovoj knjizi diskutovati samo o bash-u, ili 
Bourne Again Shell. Napredniji korisnici možda imaju želju da 
koriste napredniji zsh, a korisnici koji poznaju starije UNIX 
sisteme će biti srećni sa ksh. Oni mazohističniji će izabrati csh, 
ali svi novi korisnici bi trebalo da se drže bash-a.



VARIJABLE OKRUŽENJA

Svi shell-ovi olakšavaju određene zadatke korisnicima tako što 
prate stvari u varijablama okruženja. Varijabla okruženja je 
jednostavno skraćeno ime za neki deo informacije koju korisnik 
želi da skladišti i koristi kasnije. Na primer, varijabla 
okruženja PS1 govori bash-u kako da formatira svoja uputstva. 
Druge varijable mogu govoriti aplikacijama kako da se pokrenu. Na 
primer, LESSOPEN varijabla govori less-u pokrene onaj zgodni 
lesspipe.sh preprocesor o kojem smo govorili, a LS_OPTIONS pali 
boje za ls. 

Podešavanje vlastitih varijabli okruženja je jednostavno. bash 
sadrži dve ugrađene funkcije za ovo: set i export. Dodatno, 
varijabla okruženja može biti uklonjena korišćenjem unset-a. 
(Nemojte paničiti ako slučajno uradite unset na varijabli 
okruženja i ne znate šta da radite. Možete resetovati na 
podrazumevana varijable tako što ćete se izlogovati iz terminala i 
ponovo ulogovati). Možete usmeriti varijablu tako što ćete staviti 
znak za dolar ($) ispred nje.

---------------------   
darkstar:~$ set FOO=bar
darkstar:~$ echo $FOO
bar
---------------------

Osnovna razlika između set i export je ta što će export (prirodno) 
eksportovati varijablu do nekog pod-shell-a. (Pod-shell je 
jednostavno drugi shell koji radi unutar drugog shell-a.) Možete 
uočiti ovakvo ponašanje kada radite sa PS1 varijablom koja 
kontroliše bash prozor.

---------------------
darkstar:~$ set PS1='FOO '
darkstar:~$ export PS1='FOO '
FOO
---------------------

Postoji puno važnih varijabli okruženja koje bash i drugi shell-vi 
koriste, ali jedna od najbitnijih na koju ćete naići je PATH. PATH 
je spisak direktorijuma za pretragu od strane aplikacija. Na 
primer, top je lociran u /usr/bin/top. Možete ga pokreuti tako što 
ćete uneti celu putanju ali ako je /usr/bin u vašoj PATH 
varijabli, bash će pogledati tamo ako niste precizirali celu 
putanju. Verovatno je da ćete prvo primetiti ovo kada pokušate da 
pokrenete program koji se ne nalazi u PATH varijabli kod običnog 
korisnika, na primer ifconfig. 

---------------------
darkstar:~$ ifconfig
bash: ifconfig: command not found
darkstar:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdi
---------------------

Iznad ćete videti tipičan PATH kod običnog korisnika. Možete ga 
izmeniti na isti način kao i bilo koju drugu varijablu. Ako se 
međutim ulogujete kao root, videćete da root ima drugačiji PATH.

---------------------
darkstar:~$ su -
Password: 
darkstar:~# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin
---------------------



DŽOKERI

Džokeri su specijalne oznake koje govore shell-u da označi 
određeni kriterijum. Ako imate iskustva sa DOS-om, prepoznaćete * 
kao džokera koji označava sve. Bash koristi ove džokere i još 
nekoliko drugih da bi vam omogućio da jednostavno definišete tačno 
ono što želite da uradite. 

Prvi i najčešći je naravno *. Zvezdica označava bilo koju oznaku 
ili kombinaciju oznaka, uključujući i nikakav. Tako, "b*" će 
označavati svaki fajl sa imenima b, ba, bab, babc, bcdb i tako 
dalje. Malo manje korišćen je ?. Ovaj džoker označava jednu 
instancu bilo kog karaktera, tako da će "b?" pronaći ba i bb, ali 
ne i b ili bab.

----------------------
darkstar:~$ touch b ba bab
darkstar:~$ ls *
b ba bab
darkstar:~$ ls b?
ba
----------------------

Ne, zabava ne staje ovde! Kao dodatak ovim dvema imamo i par 
zagrada "[]" koji nam omogućavaju da fino označimo tačno ono što 
želimo da pronađemo. Kada god bash vidi par zagrada, on menja 
sadržaj zagrada. Svaka kombinacija slova i brojeva može biti 
precizirana u zagradama sve dok su odvojeni zarezom. Dodatno, 
raspon brojeva i slova takođe može biti preciziran. Ovo je 
najbolje objašnjeno primerom:

----------------------
darkstar:~$ ls a[1-4,9]
a1 a2 a3 a4 a9
----------------------

Obzirom da Linuks obraća pažnju na velika i mala slova, slova sa 
početnim velikim i malim slovom se drugačije tretiraju. Sva velka 
slova dolaze pre svih malih slova po abecednom redu, pa kada 
koristimo raspon velikih i malih slova, trebalo bi to da uradimo 
kako treba.

----------------------
darkstar:~$ ls 1[W-b]
1W 1X 1Y 1Z 1a 1b
darkstar:~$ ls 1[w-B]
/bin/ls: cannot access 1[b-W]: No such file or directory
----------------------

U drugom primeru, 1[b-W] nije dobar raspon, tako da ga shell 
tretira kao ime fajla, a pošto fajl sa takvim imenom ne postoji, 
ls vas o tome i obaveštava. 



TAB KOMPLETIRANJE

I dalje mislite da ima puno posla oko džokera? U prav ste. Postoji 
lakši način kada radite sa dugačkim nazivima: tab kompletiranje. 
Tab kompletiranje vam omogućava da ukucate samo deo naziva, da ga 
unikatno identifikujete, a onda kada pritisnete taster "Tab", bash 
će ostatak popuniti za vas. Čak i ako niste uneli dovoljno teksta da 
identifikujete ime fajla, shell će dopuniti onoliko koliko može. Ako 
pritisnete taster "Tab" još jednom prikazaće vam se spisak svih mogućih 
poklapanja.



PREUSMERAVANJE ULAZA I IZLAZA

Jedna od glavnih odlika Linuksa i drugih UNIX-olikih operativnih sistema je 
broj malih, relativno jednostavnih aplikacija i mogućnost da ih spojite sve 
zajedno da kreirate kompleksan sistem. Ovo se postiže preusmeravanjem izlaza 
jednog programa u drugi, ili za povlačenje ulaza nekog fajla u drugi 
program.

Da počnemo, pokazaćemo vam kako da preusmerite izlaz programa u fajl. Ovo se 
lako uradi pomoću tastera ">". Kada bash vidi oznaku ">", on preusmeri sav 
standardni izlaz (poznat kao stdout) u fajl čije ste ime nakon toga naveli. 

---------------------- 
darkstar:~$ echo foo
foo
darkstar:~$ echo foo > /tmp/bar
darkstar:~$ cat /tmp/bar
foo
----------------------

U ovom primeru smo vam pokazali šta echo može da uradi ako njegov stdout 
nije preusmeren u fajl, a onda smo ga preusmerili u /tmp/bar fajl. Ako 
/tmp/bar ne postoji biće kreiran a izlaz echo komande će biti smešten u 
njega. Ako /tmp/bar postoji, onda će njegov sadržaj biti repisan izlazom 
echo komande. Ovo možda nije najbolja ideja ako želite da sačuvate sadržaj 
tog fajla. Na sreću, bash podržava ">>" koji će samo dodati izlaz u fajl.

----------------------
darkstar:~$ echo foo
foo
darkstar:~$ echo foo > /tmp/bar
darkstar:~$ cat /tmp/bar
foo
darkstar:~$ echo foo2 >> /tmp/bar
darkstar:~$ cat /tmp/bar
foo
foo2
----------------------

Takođe možete preusmeriti standardnu grešku (ili stderr) u neki fajl. Ovo se 
radi nešto drugačije zbog toga što morate koristiti "2>" umesto samo ">". 
(Obzirom da bash može preusmeravati ulaz, stdout i stderr, svaki mora biti 
unikatno identifikovan, 0 je ulaz, 1 je stdout a 2 je stderr. Sve dok nisu 
precizrani, bash će pokušati da pogodi na šta ste mislili, i pretpostaviće 
da svaki put kada koristite ">" da samo želite da preusmerite stdout. "1>" 
će isto tako odraditi posao.)

----------------------
darkstar:~$ rm bar
rm: cannot remove `bar': No such file or directory
darkstar:~$ rm bar 2> /tmp/foo
darkstar:~$ cat /tmp/foo
rm: cannot remove `bar': No such file or directory
----------------------

Možete takođe preusmeriti standardni izlaz (poznat kao stdin) sa "<" 
oznakom, iako se to ne koristi tako često. 

----------------------
darkstar:~$ fromdos < dosfile
----------------------

Konačno, možete preusmeriti i izlaz iz jednog programa kao ulaz u drugi 
program. Ovo je možda najkorisnija mogućnost bash-a i ostalih shell-ova, a 
tose radi tako što koristite "|" oznaku. (Ova oznaka se naziva kanalisanje. 
Ako ste negde čuli da neko priča kako je kanalisao jedan program u drugi, to 
je ono na šta je mislio.)

----------------------
darkstar:~$ ps auxw | grep getty
root      2632  0.0  0.0   1656   532 tty2     Ss+  Feb21   0:00 /sbin/agetty 38400 tty2 linux
root      3199  0.0  0.0   1656   528 tty3     Ss+  Feb15   0:00 /sbin/agetty 38400 tty3 linux
root      3200  0.0  0.0   1656   532 tty4     Ss+  Feb15   0:00 /sbin/agetty 38400 tty4 linux
root      3201  0.0  0.0   1656   532 tty5     Ss+  Feb15   0:00 /sbin/agetty 38400 tty5 linux
root      3202  0.0  0.0   1660   536 tty6     Ss+  Feb15   0:00 /sbin/agetty 38400 tty6 linux   
----------------------



MENADŽER ZADATAKA

Bash ima još jednu lepo mogućnost da vam ponudi, mogućnost da suspenduje i 
ponovo pokrene zadatke. Ovo vam omogućava da privremeno zaustavite neki proces, 
uradite nešto drugo a onda ga ponovo pokrenete ili podesite recimo da radi u 
pozadini. Pritiskom na tastere "Ctrl+z", bash će suspendovati proces i 
vratiti vas na izbornik. Možete se na taj proces vratiti kasnije. Možete 
suspendovati i više procesa isto na ovaj način. Komanda "jobs" će prikazati 
listu suspendovanih zadataka. 

----------------------
darkstar:~$ jobs
[1]-  Stopped                 vi TODO
[2]+  Stopped                 vi chapter_05.xml
----------------------

Da se vratite na suspendovani zadatak, pokrenite "fg" da vratite zadatak 
koji je poslednji suspendovan. Ako imate nekolio suspendovanih zadataka, 
možete precizirati broj kako bi ste jedan od njih ponovo pokrenuli.

----------------------
darkstar:~$ fg # "vi TODO"
darkstar:~$ fg 1 # "vi chapter_05.xml"
----------------------

Možete u pozadinu staviti zadatak sa komandom (iznenađenje) "bg". Ovo će 
omogućiti procesu s nastavi sa radom bez preuzimanja kontrole na shell-om. 
Možete ga vratiti u prvi plan sa "fg" komandom na isti način kao i 
suspendovane zadatke.



TERMINALI

Slackware Linuks i drugi UNIX-oliki operativni sistemi omogućavaju 
korisnicima da komuniciraju sa njima na mnogo načina, ali je 
najuobičajeniji, i svakako najkorisniji - terminal. U davna vremena, 
terminali su bili tastature i monitori (nekada čak i miš) povezani na 
centralni računar ili server preko serijske konekcije. Danas, mnogi 
terminali su virtuelni; tako je, postoje samo u softveru. Virtuelni 
terminali omogućavaju korisnicima da se konektuju na kompjuter bez 
posedovanja skupog i inkopatibilnog hardvera. Korisnik samo treba da pokrene 
softver da bi upalili (obično) veoma prilagodljiv virtuelni terminal. 

Uobičajeni virtuelni terminali (svaka Slackware Linuks mašina će posedovati 
bar jedan) su gettys. agetty podrazumevano poreće šest instanci na 
Slackware-u, i omogućava lokalnim korisnicima (onima koji fizički mogu sesti 
ispred računara i koristiti tastaturu) da se uloguju i koriste aplikacije. 
Svaki od ovih getty-ja je dostupan na različitim tty uređajima kojima se 
odvojeno pristupa pritiskom na taster "Alt" i jedna od funkcijskih tastera. 
od "F1" do "F6". Korišćenje ovih getty-ja omogućava da se ulogujete nekoliko 
puta, možda i pod drugim korisničkim imenom, i da simultano pokrećete 
aplikacije u shell-ovima tih korisnika. Ovo se nejčešće radi sa serverima 
koji nemaju X instaliran, ali može i na bilo kojoj drugoj mašini. 

Na desktopovima, laptopovima, i drugim radnim stanicama gde korisnik ima 
grafički interfejs koji je omogućen od strane X-a, većina terminala su 
grafički. Slackware dolazi sa mnogim različitim grafičkim terminalima, ali 
najčešće korišćeni su KDE-ov konsole i XFCE-ov Terminal, kao i stari xterm. 
Ako koristite grafički interfejs, pogledajte traku sa alatima ili menije. 
Svako desktop okruženje ili menadžer prozora ima virtuelni terminal (obično 
nazvan terminal emulator), i svi se drugačije nazivaju. Obično ćete ih naći 
u podmeniju "Sistem" u dekstop okruženjima. Pokrećući bilo koji od njih 
dobićete grafički terminal koji će automatski pokrenuti vaš podrazumevani 
shell. 



PRILAGOĐAVANJE

Do sada bi trebalo da ste upoznati sa bash-om i možda ste primetili neko 
čudno ponašanje. Na primer, kada se ulogujete u konzoli, vidite ekran koji 
izgleda ovako:

---------------------
alan@darkstar:~$
---------------------

Nekada ćete videti manje koristan ekran, kao što je ovaj:

---------------------
bash-3.1$ 
---------------------

Razlog tome je specijalna varijabla okruženja koja kontroliše bash ekran. 
eki shell-ovi se smatraju shell-ovima za "logovanje" a drugi su 
"interaktivni" shell-ovi, a oba tipa čitaju različite konfigurcione fajlove 
pri pokretanju. Login shell-ovi čitaju /etc/profile i ~./bash_profile pri 
pokretanju. Interaktivni shell-ovi čitaju ~/.bashrc. Ovo ima nekih prednosti 
za naprednije korisnike ali obično smeta mnogimnovim korisnicima koji žele 
isto okruženje svaki put kada startuju bash i ne zanima ih razlika između 
login i interaktivnih shell-ova. Ako je to slučaj i sa vama, jednostavo 
editujte vaš ~/.bashrc fajl i dodajte sledeće linije. (Za više informacija o 
različitim konfiguracionim fajlovima koji se koriste, pročitajte INVOCATION 
sekciju na bash man-stranici.)

----------------------
# ~/.bashrc
. /etc/profile
. ~/.bash_profile
----------------------

Kada koristite gore navedeno, svi vaši login i interaktivni shell-ovi će 
imati ista podešavanja okruženja i ponašaće se isto. Sad, kada god želimo da 
izmenimo shell podešavanja, moramo editovati samo ~/.bash_profile za promenu 
samo za taj korisnički nalog ili /etc/profile za globalno podešavanje. Hajde 
da počnemo sa konfiguracijom.

Bash ekrani dolaze u svim oblicima, bojama i veličinama, a svaki korisnik 
ima svoje potrebe. Ja volim kratke i jednostavne ekrane kojima je potrebno 
jako malo prostora ali sam koristio multi-linijske ekrane mnogo puta. Jedan 
moj prijatelj je čak uključio ASCII-umetnost u svom bash ekranu. Da 
promenite vaš prozor treba da konfiguršete vaš PS1 varijablu ovako:

----------------------
darkstar:~$ echo $PS1
\u@\h:\w\$ 
---------------------

Da, ovo malo parče koje smešno izgleda kontroliše vaš bash ekran. Obično, 
svki karakter u PS1 varijabli je uključen u ekran, ukoliko nije isključen sa 
"\", što govori bash-u da ga prevede. Ima mnogo razlilitih sekvenci za 
isključivanje i ne možemo diskutovati o svim ali ću objasniti neke. Prvi 
---------------------

Da, ovo malo parče koje smešno izgleda kontroliše vaš bash ekran. Obično,   
svki karakter u PS1 varijabli je uključen u ekran, ukoliko nije isključen sa     
"\", što govori bash-u da ga prevede. Ima mnogo razlilitih sekvenci za 
isključivanje i ne možemo diskutovati o svim ali ću objasniti neke. Prvi 
"\u” prevodi korisničko ime trenutnog korisnika. “\h” je hostname mašine na 
koju je nakačen terminal. “\w” je trenutni radni direktorijum, a “\$” 
prikazuje ili # ili $ znak, u zavisnosti od toga da li je korisnik root ili 
ne. Kompletan listing svih sekvenci je prikazan u bash man-stranici, u 
PROMPTING sekciji.

Obzirom da smo prošli svu ovu nevolju da diskutujemo o podrazumevanom 
ekranu, pomislio sam da bi trebali da uzmemo malo vremena, da vam pokažem 
nekoliko primera ekrana i vrednosti PS1 varijable koje je potrebno 
koristiti. 

---------------------
Wed Jan 14 12:08 AM
alan@raven:~$ echo $PS1
\d \@\n\u@\h:\w$ 
HOST: raven - JOBS: 0 - TTY: 3
alan@~/Desktop/sb_3.0:$ echo $PS1
HOST: \H - JOBS: \j - TTY: \l\n\u@\w:\$
---------------------

Za još više informacija okonfigurisanju vašeg bash ekrana, uključujući 
informaciju o podešavaju ekrana sa bojama, pogledajte 
/usr/doc/Linux-HOWTOs/Bash-Prompt-HOWTO. Nakon čitanja, dobićete ideju o 
tome kako moćan vaš bash ekran može da bude. Jednom sam čak imao ekran koji 
mi je davao informacije o vremenskoj prognozi, temperaturu i vazdušni 
pritisak!



NAVIGACIJA

Prethodno poglavlje: Osnovne Shell Komande
Sledeće poglavlje: Kontrola Procesa



IZVORI

- Originalni izvor: http://www.slackbook.org/beta
- Original napisali Alan Hiks, Kris Lumens, Dejvid Kentrel, Logan Džonson 
(Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson) 
Preuzimam Kontrolu Procesa. ;)

:beer:



Elitni član
Elitni član
offline
User avatar

Posts: 425
Joined: 25 Mar 2012, 20:01

Post Napisano: 27 Aug 2014, 11:12


Mnogo kasnim. Neke stvari trenutno mi isisavaju sve sive ćelije.. Biće gotovo.


Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest