2.2 Lekcija 1
Sertifikat: |
Linux Essentials |
---|---|
Verzija: |
1.6 |
Tema: |
2 Kretanje kroz Linux sistem |
Cilj: |
2.2 Korištenje komandne linije za pomoć |
Lekcija: |
1 od 1 |
Uvod
Komandna linija je vrlo složen alat. Svaka komanda ima svoje jedinstvene opcije, stoga je dokumentacija ključna kada radite sa Linux sistemom. Osim direktorija /usr/share/doc/
, koji pohranjuje većinu dokumentacije, razni drugi alati pružaju informacije o korištenju Linux komandi. Ovo poglavlje se fokusira na metode pristupa toj dokumentaciji, u svrhu dobivanja pomoći.
Postoji mnoštvo metoda za dobivanje pomoći unutar Linux komandne linije. man
, help
i info
su samo neki od njih. Za Linux Essentials, fokusirat ćemo se na man
i info
jer su oni najčešće korišteni alati za dobivanje pomoći.
Druga tema ovog poglavlja će biti lociranje datoteka. Uglavnom ćete raditi sa komandom locate
.
Dobivanje pomoći na komandnoj liniji
Ugrađena help komanda
Kada se pokrene sa parametrom --help
, većina komandi prikazuje neka kratka uputstva o njihovoj upotrebi. Iako sve komande ne pružaju ovaj prekidač (eng.switch), ipak je dobar prvi pokušaj da naučite više o parametrima naredbe. Imajte na umu da su uputstva iz --help
često prilično kratka u poređenju sa drugim izvorima dokumentacije o kojima ćemo raspravljati u nastavku ove lekcije.
Man stranice
Većina komandi pruža stranicu priručnika ili “man” stranicu. Ova dokumentacija se obično instalira sa softverom i može joj se pristupiti komandom man
. Komanda čija man stranica treba biti prikazana se dodaje man
kao argument:
$ man mkdir
Ova komanda otvara man stranicu za mkdir
. Možete koristiti tipke sa strelicama gore i dolje ili razmaknicu za navigaciju kroz man stranicu. Da biste izašli iz man stranice, pritisnite taster:[Q].
Svaka man stranica je podijeljena na najviše 11 sekcija, iako su mnogi od ovih odjeljaka opcioni:
Section | Description |
---|---|
NAZIV |
Naziv komande i kratak opis |
SYNOPSIS |
Opis sintakse komande |
OPIS |
Opis efekata komande |
OPCIJE |
Dostupne opcije |
ARGUMENTI |
Dostupni argumenti |
FAJLOVI |
Pomoćni fajlovi |
PRIMJERI |
Primjeri upotrebe komande |
VIDI TAKOĐER |
Unakrsne reference na povezane teme |
DIJAGNOSTIKA |
Upozorenja i greške |
COPYRIGHT |
Author(i) komande |
BAGOVI |
Poznata ograničenja komande |
U praksi, većina man stranica ne sadrži sve ove dijelove
Man stranice su organizovane u osam kategorija, od 1 do 8
Kategorija | Opis |
---|---|
1 |
Korisnička komanda |
2 |
Sistemski pozivi |
3 |
Funkcije C biblioteke |
4 |
Drajveri i fajlovi (datoteke) uređaja |
5 |
Konfiguracijski fajlovi i format fajlova |
6 |
Igrice |
7 |
Razno |
8 |
Komande za administraciju sistema |
9 |
Kernel funkcije (ne standardno) |
Svaka man stranica pripada tačno jednom odeljku. Međutim, više sekcija može sadržavati man stranice sa istim imenom. Uzmimo komandu passwd
kao primjer. Ova komanda se može koristiti za promjenu korisničke lozinke. Pošto je passwd
korisnička komanda, njena man stranica se nalazi u sekciji 1. Pored komande passwd
, datoteka baze podataka lozinki /etc/passwd
takođe ima man stranicu koja se također zove passwd
.Pošto je ovaj fajl konfiguracioni fajl, on pripada sekciji 5. Kada se govori o man stranici, kategorija se često dodaje imenu man stranice, kao u passwd(1)
ili passwd(5)
za identifikacinu odgovarajuće man stranice.
Podrazumevano, man passwd
prikazuje prvu dostupnu man stranicu, u ovom slučaju passwd(1)
. Kategorija željene man stranice može se specificirati u komandi kao što je man 1 passwd
ili man 5 passwd
.
Već smo razgovarali o tome kako se kretati kroz man stranicu i kako se vratiti na komandnu liniju. Interno, man
koristi komandu less
za prikaz sadržaja man stranice. less
vam omogućava da tražite tekst unutar man stranice. Za traženje riječi linux
možete jednostavno koristiti /linux
za pretraživanje unaprijed od tačke na kojoj se nalazite ili ?linux
da započnete pretragu unazad. Ova radnja ističe sve podudarne rezultate i pomiče stranicu na prvo označeno podudaranje. U oba slučaja možete upisati N da biste prešli na sljedeće podudaranje. Da biste pronašli više informacija o ovim dodatnim funkcijama, pritisnite H i meni sa svim informacijama će se prikazati.
Info stranice
Još jedan alat koji će vam pomoći u radu sa Linux sistemom su info stranice. Informativne stranice su obično detaljnije od man stranica i formatirane su u hipertekstu, slično web stranicama na Internetu.
Info stranice se mogu prikazati na ovaj način:
$ info mkdir
Za svaku info stranicu, info
čita info datoteku koja je strukturirana u pojedinačne čvorove unutar stabla. Svaki čvor sadrži jednostavnu temu, a komanda info
sadrži hiperveze koje vam mogu pomoći da pređete s jedne na drugu. Linku možete pristupiti pritiskom na enter dok stavite kursor na jednu od vodećih zvjezdica.
Slično man
, info
alat također ima komande za navigaciju stranica. Možete saznati više o ovim komandama pritiskom na ? dok ste na stranici sa informacijama. Ovi alati će vam pomoći da se lakše krećete po stranici, kao i da razumijete kako pristupiti čvorovima i kretati se unutar stabla čvorova.
Direktorij /usr/share/doc/
Kao što je već spomenuto, direktorij /usr/share/doc/
pohranjuje većinu dokumentacije o komandama koje sistem koristi. Ovaj direktorij sadrži direktorij za većinu paketa instaliranih na sistemu. Ime direktorija je obično ime paketa, a ponekad i njegova verzija. Ovi direktoriji uključuju datoteku README
ili readme.txt
koja sadrži osnovnu dokumentaciju paketa. Pored README
datoteke, folder može sadržavati i druge dokumentacijske datoteke, kao što je dnevnik promjena koji uključuje detaljnu historiju programa ili primjere konfiguracijskih datoteka za određeni paket.
Informacije unutar README
datoteke variraju od jednog paketa do drugog. Sve datoteke su napisane u običnom tekstu, stoga se mogu čitati u bilo kojem željenom uređivaču teksta. Tačan broj i vrste datoteka zavise od paketa. Provjerite neke od direktorija da biste dobili pregled njihovog sadržaja.
Lociranje datoteka
Komanda locate
Linux sistem je izgrađen od brojnih direktorija i datoteka. Linux ima mnogo alata za lociranje određene datoteke unutar sistema. Najbrža je komanda locate
.
locate
pretražuje unutar baze podataka i zatim ispisuje svako ime koje odgovara datom nizu:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
Komanda locate
također podržava upotrebu zamjenskih znakova i regularnih izraza, stoga string za pretraživanje ne mora odgovarati cijelom imenu željene datoteke. Više o regularnim izrazima ćete naučiti u narednom poglavlju.
Podrazumjevano ili po defoltu, locate
se ponaša kao da bi obrazac bio okružen zvjezdicama, tako da je locate PATTERN
isto što i locate *PATTERN*
. Ovo vam omogućava da samo navedete podstringove umjesto tačnog imena datoteke. Možete modificirati ovo ponašanje pomoću različitih opcija za koje možete pronaći objašnjenj na man stranici komande 'locate'.
Budući da locate
čita iz baze podataka, možda nećete pronaći datoteku koju ste nedavno kreirali. Bazom podataka upravlja program pod nazivom updatedb
. Obično se pokreće periodično, ali ako imate root privilegije i trebate da se baza podataka odmah ažurira, možete sami pokrenuti naredbu updatedb
u bilo koje vrijeme.
Komanda 'find'
find
je još jedan vrlo popularan alat koji se koristi za traženje datoteka. Ova komanda ima drugačiji pristup u poređenju sa komandom locate
. Komanda find
rekurzivno pretražuje stablo direktorija, uključujući njegove poddirektorije. find
vrši takvu pretragu pri svakom pozivanju, ne održava bazu podataka kao što je locate
. Slično locate
, find
također podržava zamjenske znakove i regularne izraze.
find
zahtijeva barem putanju (adresu) koju treba pretraživati. Nadalje, mogu se dodati takozvani izrazi kako bi se osigurali kriteriji filtera za koje datoteke treba prikazati. Primjer je izraz -name
, koji traži datoteke s određenim imenom:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
Prvo komanda find
traži datoteku u trenutnom direktoriju Downloads
, dok druga traži datoteku u korisničkom home direktoriju.
Komanda find
je vrlo složena, stoga neće biti pokrivena u ispitu Linux Essentials. Međutim, to je moćan alat koji je posebno koristan u praksi.
Vođene vježbe
-
Koristite komandu 'man' kako biste saznali šta svaka komanda radi:
Command Description ls
Prikaži sadržaj direktorija
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Otvorite 'ls' info stranicu i identificirajte MENU.
-
Koje opcije imate?
-
Pronađite opciju koja vam omogućava sortiranje izlaza prema vremenu modifikacije.
-
-
Prikažite putanju do prve 3
README
datoteke. Koristite komanduman
da identifikujete ispravnu opciju zalociranje
. -
Kreirajte datoteku pod nazivom
test
u svom home direktoriju. Pronađite njegovu apsolutnu putanju pomoću komandelocate
. -
Jeste li ga odmah pronašli? Šta ste morali da uradite da biste ga
locirali
? -
Potražite testnu datoteku koju ste prethodno kreirali, koristeći komandu
find
. Koju ste sintaksu koristili i koja je apsolutna putanja?
Istraživačke vježbe
-
Postoji jedna komanda u gornjoj tabeli koja nema
man
stranicu. Koji je to i zašto mislite da komanda nema man stranicu? -
Koristeći komande u gornjoj tabeli, kreirajte sljedeće stablo datoteka. Imena koja počinju velikim slovom su imenici, a mala slova su datoteke.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Prikažite na ekranu trenutni radni direktorij, uključujući podfoldere.
-
Potražite unutar stabla sve datoteke koje završavaju brojem.
-
Uklonite cijelo stablo direktorija jednom naredbom.
Sažetak
U ovoj lekciji ste naučili:
-
Kako dobiti pomoć
-
Kako koristiti 'man' komandu
-
Kako se kretati kroz 'man' stranicu
-
Različite sekcije 'man' stranice
-
Kako koristiti 'info' stranicu
-
Kako se kretati između različitih čvorova
-
Kako pretraživati datoteke unutar sistema
Komande korištene u ovoj vježbi
man
-
Prikaži man stranice
info
-
Prikaži info stranice
locate
-
Pretraži bazu podataka i 'lociraj' određenu datoteku sa specifičnim imenom
find
-
Potražite u sistemu datoteka imena koja odgovaraju skupu kriterija odabira.
updatedb
-
Ažuriraj bazu podataka komande 'locate'
Odgovori na vođene vježbe
-
Koristite komandu 'man' kako biste saznali šta svaka komanda radi:
Command Description ls
Prikaži sadržaj direktorija
cat
Povezuje ili pregleda tekstualne datoteke
cut
Ukloni sekciju iz tekst datoteke
cd
Odaberi direktorij
cp
Kopiraj datoteku
mv
Premjesti datoteku (može se koristiti za preimenovanje naziva datoteke)
mkdir
Kreiraj novi direktorij
touch
Kreiraj datoteku ili modificiraj datum i vrijeme nastanka datoteke
wc
Broji broj riječi, linija ili bitova datoteke
passwd
Promijeni lozinku korisnika
rm
Obriši datoteku
rmdir
Obriši direktorij
more
Pregledava tekstualne datoteke po jedan ekran
less
Pregledava tekstualne fajlove, omogućava pomeranje gore i dole red ili stranicu u isto vreme
whereis
Prikazuje putanju do određenog programa i povezanih priručnika
head
Prikaži nekoliko prvih linija koda
tail
Prikaži nekoliko zadnjih linija koda
sort
Reda datoteku numerički ili abecedno
tr
Prevodi ili uklanja karaktere datoteke
chmod
Mijenja prava nad datotekom
grep
Pretražuje unutar datoteke
Otvorite 'ls' info stranicu i identificirajte MENU.
-
Koje opcije imate?
-
Koji su podaci prikazani
-
Koje su informacije prikazane
-
Sortiranje izlaza
-
Detalji o verziji sortiranja
-
Generalno sortiranje izlaza
-
Formatiranje vremenske oznake datoteke
-
Formatiranje naziva datoteke
-
-
Pronađite opciju koja omogućava sortiranje izlaza prema vremenu modifikacije
-t
or--sort=time
-
-
Prikažite putanju do prve 3
README
datoteke. Koristite komanduman
da identifikujete ispravnu opciju zalociranje
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Kreirajte datoteku pod nazivom
test
u svom home direktoriju. Pronađite njegovu apsolutnu putanju pomoću komandelocate
.$ touch test $ locate test /home/user/test
-
Jeste li ga odmah pronašli? Šta ste morali da uradite da biste ga
locirali
?$ sudo updatedb
Datoteka je tek kreirana, stoga ista nije zabilježena unutar baze podataka.
-
Potražite testnu datoteku koju ste prethodno kreirali, koristeći komandu
find
. Koju ste sintaksu koristili i koja je apsolutna putanja?$ find ~ -name test
or
$ find . -name test /home/user/test
Odgovori na istraživačke vježbe
-
Postoji jedna komanda u gornjoj tabeli koja nema
man
stranicu. Koji je to i zašto mislite da komanda nema man stranicu?To je komanda 'cd'. Ona nema 'man' stranicu, jer je u pitanju unutarnja šel komanda.
-
Koristeći komande u gornjoj tabeli, kreirajte sljedeće stablo datoteka. Imena koja počinju velikim slovom su imenici, a mala slova su datoteke.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
Rješenje je kombinacija 'mkdir' i 'touch' komande.
-
Prikažite na ekranu trenutni radni direktorij, uključujući podfoldere.
$ ls -R
-
Potražite unutar stabla sve datoteke koje završavaju brojem.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Uklonite cijelo stablo direktorija jednom komandom.
$ rm -r Documents Downloads Test test