Linux Professional Institute Learning Logo.
Preskoči na glavni sadržaj
  • Home
    • Svi resursi
    • LPI materijali za učenje
    • Postanite saradnik
    • Izdavači partneri
    • Postanite izdavački partner
    • O nama
    • FAQ
    • Saradnici
    • Roadmap
    • Kontaktiraj nas
  • LPI.org
3.2 Lekcija 1
Tema 1: Linux zajednica i open sors karijera
1.1 Evolucija Linux-a i popularni operativni sistemi
  • 1.1 Lekcija 1
1.2 Glavne open sors aplikacije
  • 1.2 Lekcija 1
1.3 Softver otvorenog koda i licenciranje
  • 1.3 Lekcija 1
1.4 ICT vještine i rad sa Linux-om
  • 1.4 Lekcija 1
Tema 2: Kretanje kroz Linux sistem
2.1 Osnove komande linije
  • 2.1 Lekcija 1
  • 2.1 Lekcija 2
2.2 Upotreba komande linije u traženju pomoći
  • 2.2 Lekcija 1
2.3 Korištenje direktorija i izlistavanje podataka
  • 2.3 Lekcija 1
  • 2.3 Lekcija 2
2.4 Kreiranje, premještanje i brisanje podataka
  • 2.4 Lekcija 1
Tema 3: Moć komandne linije
3.1 Arhiviranje podataka uz pomoć komande linije
  • 3.1 Lekcija 1
3.2 Pretraživanje i ekstrakcija informacija iz podataka
  • 3.2 Lekcija 1
  • 3.2 Lekcija 2
3.3 Pretvaranje komandi u skriptu
  • 3.3 Lekcija 1
  • 3.3 Lekcija 2
Tema 4: Linux operativni sistem
4.1 Odabir operativnog sistema
  • 4.1 Lekcija 1
4.2 Razumijevanje računalnog hardvera
  • 4.2 Lekcija 1
4.3 Gdje se smještaju podaci
  • 4.3 Lekcija 1
  • 4.3 Lekcija 2
4.4 Računalo na mreži
  • 4.4 Lekcija 1
Tema 5: Sigurnost i prava nad podacima
5.1 Osnovna sigurnost i identifikacija vrste korisnika
  • 5.1 Lekcija 1
5.2 Kreiranje korisnika i grupa
  • 5.2 Lekcija 1
5.3 Upravljanje pravima i ovlastima nad podacima
  • 5.3 Lekcija 1
5.4 Specijalni direktoriji i podaci
  • 5.4 Lekcija 1
How to get certified
  1. Tema 3: Moć komandne linije
  2. 3.2 Pretraživanje i ekstrakcija informacija iz podataka
  3. 3.2 Lekcija 1

3.2 Lekcija 1

Sertifikat:

Linux Essentials

Verzija:

1.6

Tema:

3 Moć komandne linije

Cilj:

3.2 Pretraga i ekstrakcija podataka iz datoteka

Lekcija:

1 od 2

Uvod

U ovom labu ćemo se fokusirati na preusmjeravanje ili prijenos informacija s jednog izvora na drugi uz pomoć specifičnih alata. Komandna linija Linux-a preusmjerava informacije kroz određene standardne kanale. Standardni ulaz (stdin ili kanal 0) komande se smatra tastaturom, a standardni izlaz (stdout ili kanal 1) se smatra ekranom. Postoji i drugi kanal koji je namijenjen za preusmjeravanje izlaza greške (stderr ili kanal 2) komande ili poruka o grešci programa. Ulaz i/ili izlaz se mogu preusmjeriti.

Prilikom izvršavanja komande, ponekad želimo prenijeti određene informacije u komandu ili preusmjeriti izlaz na određenu datoteku. O svakoj od ovih funkcionalnosti biće govora u naredne dvije sekcije.

Ulazno/izlazno preusmjeravanje

U/I preusmjeravanje (eng. input/output redirection) omogućava korisniku da preusmjeri informacije sa ili na komandu koristeći tekstualnu datoteku. Kao što je ranije opisano, standardni ulaz, izlaz i izlaz greške mogu se preusmjeriti, a informacije se mogu uzeti iz tekstualnih datoteka.

Preusmjeravanje standardnog izlaza

Za preusmjeravanje standardnog izlaza na datoteku, umjesto na ekran, trebamo koristiti operator > iza kojeg slijedi ime datoteke. Ako datoteka ne postoji, kreirat će se nova, u suprotnom će informacije prepisati ili zamijeniti postojeću datoteku.

Da bismo vidjeli sadržaj datoteke koju smo upravo kreirali, možemo koristiti komandu cat. Ova komanda podrazumjevano prikazuje sadržaj datoteke na ekranu. Pogledajte stranicu priručnika (eng. man page) da saznate više o njegovim funkcijama.

Primjer ispod pokazuje funkcionalnost operatora. U prvom slučaju, kreira se nova datoteka koja sadrži tekst “Hello World!”:

$ echo "Hello World!" > text
$ cat text
Hello World!

U drugom pozivanju, ista datoteka se prepisuje novim tekstom:

$ echo "Hello!" > text
$ cat text
Hello!

Ako želimo dodati nove informacije na kraj datoteke, moramo koristiti operator >>. Ovaj operator također kreira novu datoteku ako ne može pronaći postojeću.

Prvi primjer pokazuje dodavanje teksta. Kao što se može vidjeti, novi tekst je dodan u sljedećem redu:

$ echo "Hello to you too!" >> text
$ cat text
Hello!
Hello to you too!

Drugi primjer prikazuje kreiranje nove datoteke:

$ echo "Hello to you too!" >> text2
$ cat text2
Hello to you too!

Preusmjeravanje standardne greške

Da bi preusmjerio samo poruke o grešci, korisnik će morati koristiti operator 2> iza kojeg slijedi ime datoteke u koju će greške biti zapisane. Ako datoteka ne postoji, kreirat će se nova, inače će datoteka biti prepisana ili zamjenjena.

Kao što je objašnjeno, kanal za preusmjeravanje standardne greške je kanal 2. Prilikom preusmjeravanja standardne greške, kanal mora biti specificiran, za razliku od drugog standardnog izlaza gdje je kanal 1 postavljen podrazumjevano. Na primjer, sljedeća komanda traži datoteku ili direktorij pod nazivom games i samo upisuje grešku u datoteku text-error, dok prikazuje standardni izlaz na ekranu:

$ find /usr games 2> text-error
/usr
/usr/share
/usr/share/misc
---------Omitted output----------
/usr/lib/libmagic.so.1.0.0
/usr/lib/libdns.so.81
/usr/games
$ cat text-error
find: `games': No such file or directory
Note

Za više informacija o komandi find, konsultujte njenu man stranicu.

Na primjer, sljedeća komanda će se pokrenuti bez grešaka, stoga se u datoteku text-error neće upisivati ​​nikakve informacije:

$ sort /etc/passwd 2> text-error
$ cat text-error

Osim standardnog izlaza, standardna greška se također može dodati datoteci s operatorom 2>>. Ovo će dodati novu grešku na kraj datoteke. Ako datoteka ne postoji, kreirat će se novi. Prvi primjer pokazuje dodavanje novih informacija u datoteku, dok drugi primjer pokazuje kako komanda kreira novu datoteku u kojoj se ne može pronaći postojeća s istim imenom:

$ sort /etc 2>> text-error
$ cat text-error
sort: read failed: /etc: Is a directory
$ sort /etc/shadow 2>> text-error2
$ cat text-error2
sort: open failed: /etc/shadow: Permission denied

Koristeći ovu vrstu preusmjeravanja, samo poruke o grešci će biti preusmjerene na datoteku, normalan izlaz će biti ispisan na ekranu ili će proći kroz standardni izlaz ili stdout.

Postoji jedna konkretna datoteka koja je tehnički bit bucket (to je datoteka koja prihvaća unos i ne radi ništa s njim): /dev/null. Možete preusmjeriti sve nebitne informacije koje možda ne želite da budu prikazane ili preusmjerene u važnu datoteku, kao što je prikazano u primjeru ispod:

$ sort /etc 2> /dev/null

Preusmjeravanje standardnog ulaza

Ovaj tip preusmjeravanja se koristi za unos podataka u komandu, iz specificirane datoteke umjesto tastature. U ovom slučaju se koristi ovaj < operator kao što je prikazano u primjeru:

$ cat < text
Hello!
Hello to you too!

Preusmjeravanje standardnog unosa se obično koristi ili obavlja s komandama koje ne prihvaćaju argumente datoteke. Komanda tr je jedna od njih. Ova komanda se može koristiti za prevođenje sadržaja datoteke modificiranjem znakova u datoteci na određene načine, kao što je brisanje bilo kojeg određenog znaka iz datoteke, primjer ispod pokazuje brisanje znaka l:

$ tr -d "l" < text
Heo!
Heo to you too!

Za više informacija, pogledajte man stranicu komande tr.

Here dokumenti

Za razliku od izlaznih preusmjeravanja, operator << djeluje na drugačiji način u odnosu na druge operatore. Ovaj ulazni tok se također naziva here dokument. Here dokument predstavlja blok koda ili teksta koji se može preusmjeriti na komandu ili interaktivni program. Različiti tipovi skriptnih jezika, kao što su bash, sh i csh, mogu uzimati ulaz direktno iz komandne linije, bez korištenja tekstualnih datoteka.

Kao što se može vidjeti u primjeru ispod, operator se koristi za unos podataka u komandu, dok riječ iza ne navodi ime datoteke. Riječ se tumači kao graničnik unosa i neće se uzeti u obzir kao sadržaj, stoga je cat komanda neće prikazati:

$ cat << hello
> hey
> ola
> hello
hey
ola

Pogledajte man stranicu cat komande za više informacija.

Kombinacije

Prva kombinacija koju ćemo istražiti kombinuje preusmjeravanje standardnog izlaza i standardnog izlaza greške u istu datoteku. Koriste se &> i &>> operatori, operator & predstavlja kombinaciju kanala 1 (eng.channel 1) i kanala 2 (eng.channel 2). Prvi operator će prepisati ili zamijeniti postojeći sadržaj datoteke, a drugi će dodati nove informacije na kraju datoteke. Oba operatora će omogućiti kreiranje nove datoteke ako ne postoji, baš kao u prethodnim odjeljcima:

$ find /usr admin &> newfile
$ cat newfile
/usr
/usr/share
/usr/share/misc
---------Omitted output----------
/usr/lib/libmagic.so.1.0.0
/usr/lib/libdns.so.81
/usr/games
find: `admin': No such file or directory
$ find /etc/calendar &>> newfile
$ cat newfile
/usr
/usr/share
/usr/share/misc
---------Omitted output----------
/usr/lib/libmagic.so.1.0.0
/usr/lib/libdns.so.81
/usr/games
find: `admin': No such file or directory
/etc/calendar
/etc/calendar/default

Pogledajmo primjer koristeći cut komandu:

$ cut -f 3 -d "/" newfile
$ cat newfile

share
share
share
---------Omitted output----------
lib
games
find: `admin': No such file or directory
calendar
calendar
find: `admin': No such file or directory

Komanda cut izrezuje navedena polja iz ulazne datoteke koristeći opciju -f, treće polje u našem slučaju. Da bi komanda pronašla polje, potrebno je navesti i graničnik sa opcijom -d. U našem slučaju graničnik će biti ovaj znak /.

Da biste saznali nešto više o komandi '`cut`, pogledajte njenu man stranicu.

Cijevi komandne linije

Preusmjeravanje se uglavnom koristi za pohranjivanje rezultata komande, koje treba obraditi drugom komandom. Ova vrsta međuprocesa može postati vrlo zamoran i kompliciran zadatak ako želite da podaci prođu kroz više procesa. Da biste ovo izbjegli, možete povezati komandu direktno preko cijevi (eng.pipes). Drugim riječima, izlaz prve komande automatski postaje ulaz druge komande. Ova veza se ostvaruje korištenjem operatora | (vertikalna trake):

$ cat /etc/passwd | less
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
:

U gornjem primjeru, komanda less nakon operatora cijevi mijenja način na koji se datoteka prikazuje. Komanda less prikazuje tekstualnu datoteku omogućavajući korisniku da skroluje gore-dole red u tom trenutku. Komanda less se takođe podrazumjevano koristi za prikaz man stranica, kao što je diskutovano u prethodnim lekcijama.

Moguće je koristiti više cijevi u isto vrijeme. Međukomande koje primaju ulaz, a zatim ga mijenjaju i proizvode izlaz nazivaju se filteri (eng.filters). Uzmimo komandu ls -l i pokušajmo izbrojati broj riječi iz prvih 10 redova izlaza. Da bismo to učinili, morat ćemo koristiti komandu head koja po defaultu prikazuje prvih 10 redova datoteke, a zatim prebrojati riječi pomoću komande wc:

$ ls -l | head | wc -w
10

Kao što je ranije spomenuto, podrazumjevano, head prikazuje samo prvih 10 redova navedene tekstualne datoteke. Ovo ponašanje se može izmijeniti korištenjem posebnih opcija. Provjerite man stranicu komande da saznate više.

Postoji još jedna komanda koja prikazuje kraj datoteke: komanda tail. Podrazumjevano, ova komanda odabire zadnjih 10 redova i prikazuje ih, ali kao i head broj se također može mijenjati. Za više detalja provjerite tail man stranicu.

Note

Opcija -f može prikazati posljednje redove datoteke dok se ažurira. Ova funkcija može postati vrlo korisna kada nadgledate datoteku kao što je syslog radi tekućih aktivnosti.

Komanda wc (broj riječi) podrazumjevano broji redove, riječi i bajtove datoteke. Kao što je prikazano u vježbi, opcija -w uzrokuje da komanda broji samo riječi unutar odabranih redova. Najčešće opcije koje možete koristiti sa ovom komandom su: -l, koja navodi da komanda broji samo redove, i -c, koja se koristi za brojanje samo bajtova. Više varijacija i opcija komande, kao i više informacija o wc mogu se pronaći na man stranici komande.

Vođene vježbe

  1. Navedite sadržaj vašeg trenutnog direktorija, uključujući vlasništvo i dozvole, i preusmjerite izlaz na datoteku pod nazivom contents.txt unutar vašeg home direktorija.

  2. Sortirajte sadržaj datoteke contents.txt iz vašeg trenutnog direktorija i dodajte ga na kraj nove datoteke pod nazivom contents-sorted.txt.

  3. Prikažite zadnjih 10 redova datoteke /etc/passwd i preusmjerite je na novu datoteku u direktoriju Documents vašeg korisnika.

  4. Izbrojite broj riječi unutar datoteke contents.txt i dodajte izlaz na kraj datoteke field2.txt u vašem home direktoriju. Morat ćete koristiti i ulazno i ​​izlazno preusmjeravanje.

  5. Prikažite prvih 5 redova datoteke /etc/passwd i sortirajte izlaz obrnuto po abecednom redu.

  6. Koristeći prethodno kreiranu datoteku contents.txt, prebrojite broj znakova u posljednjih 9 redova.

  7. Izbrojite broj datoteka pod nazivom test unutar direktorija /usr/share i njegovih poddirektorija. Napomena: svaki izlaz linije iz komande find predstavlja datoteku.

Istraživačke vježbe

  1. Odaberite drugo polje datoteke contents.txt i preusmjerite standardni izlaz i izlaz greške u drugu datoteku pod nazivom field1.txt.

  2. Koristeći operator preusmjeravanja unosa i komandu tr, izbrišite crtice (-) iz datoteke contents.txt.

  3. Koja je najveća prednost samo preusmjeravanja grešaka na datoteku?

  4. Zamijenite sve ponavljajuće razmake unutar abecedno sortirane datoteke contents.txt jednim razmakom.

  5. U jednoj komandnoj liniji eliminišite razmake koji se ponavljaju (kao što je urađeno u prethodnoj vežbi), izaberite deveto polje i sortirajte ga obrnuto po abecednom redu i bez obzira na velika i mala slova. Koliko ste cijevi morali upotrijebiti?

Sažetak

U ovom labu ste naučili:

  • Tipove preusmjeravanja

  • Kako koristiti operatore preusmjeravanja

  • Kako koristiti cijevi za filtriranje izlaza komande

Komande korištene u ovoj lekciji:

cut

Ukloni sekciju iz svake linije datoteke.

cat

Prikaži ili konkateniraj datoteku.

find

Potraži datoteku u hijerarhiji direktorija.

less

Prikaži datoteku, omogućujući korisniku da skroluje po jedan red.

more

Prikaži datoteku, po jednu stranicu.

head

Prikaži prvih 10 linija datoteke.

tail

Prikaži zadnjih 10 linija datoteke

sort

Sortiraj datoteke.

wc

Broji linije ili redove, riječi ili bajtove datoteke.

Odgovori na vođene vježbe

  1. Navedite sadržaj vašeg trenutnog direktorija, uključujući vlasništvo i dozvole, i preusmjerite izlaz na datoteku pod nazivom contents.txt unutar vašeg home direktorija.

    $ ls -l > contents.txt
  2. Sortirajte sadržaj datoteke contents.txt iz vašeg trenutnog direktorija i dodajte ga na kraj nove datoteke pod nazivom contents-sorted.txt.

    $ sort contents.txt >> contents-sorted.txt
  3. Prikažite zadnjih 10 redova datoteke /etc/passwd i preusmjerite je na novu datoteku u direktoriju Documents vašeg korisnika.

    $ tail /etc/passwd > Documents/newfile
  4. Izbrojite broj riječi unutar datoteke contents.txt i dodajte izlaz na kraj datoteke field2.txt u vašem home direktoriju. Morat ćete koristiti i ulazno i ​izlazno preusmjeravanje.

    $ wc < contents.txt >> field2.txt
  5. Prikažite prvih 5 redova datoteke /etc/passwd i sortirajte izlaz obrnuto po abecednom redu.

    $ head -n 5 /etc/passwd | sort -r
  6. Koristeći prethodno kreiranu datoteku contents.txt, prebrojite broj znakova u posljednjih 9 redova.

    $ tail -n 9 contents.txt | wc -c
    531
  7. Izbrojite broj datoteka pod nazivom test unutar direktorija /usr/share i njegovih poddirektorija. Napomena: svaki izlaz linije iz komande find predstavlja datoteku.

    $ find /usr/share -name test | wc -l
    125

Odgovori na istraživačke vježbe

  1. Odaberite drugo polje datoteke contents.txt i preusmjerite standardni izlaz i izlaz greške u drugu datoteku pod nazivom field1.txt.

    $ cut -f 2 -d " " contents.txt &> field1.txt
  2. Koristeći operator preusmjeravanja unosa i komandu tr, izbrišite crtice (-) iz datoteke contents.txt.

    $ tr -d "-" < contents.txt
  3. Koja je najveća prednost samo preusmjeravanja grešaka na datoteku

    Samo preusmjeravanje grešaka na datoteku može pomoći u održavanju datoteke evidencija koja se često prati.

  4. Zamijenite sve ponavljajuće razmake unutar abecedno sortirane datoteke contents.txt jednim razmakom.

    $ sort contents.txt | tr -s " "
  5. U jednoj komandnoj liniji eliminišite razmake koji se ponavljaju (kao što je urađeno u prethodnoj vežbi), izaberite deveto polje i sortirajte ga obrnuto po abecednom redu i bez obzira na velika i mala slova. Koliko ste cijevi morali upotrijebiti?

    $ cat contents.txt | tr -s " " | cut -f 9 -d " " | sort -fr

    Vježba je koristila 3 cijevi, jednu za svaki filter.

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Sljedeća lekcija

3.2 Pretraživanje i ekstrakcija informacija iz podataka (3.2 Lekcija 2)

Pročitaj narednu lekciju

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

LPI je neprofitna organizacija.

© 2023 Linux Profesional Institut (LPI) je globalni certifikacijski standard, podrške za karijeru, te vodeća organizacija za open sors profesionalce. Sa više od 200.000 certificiranih ljudi, prvi je najveći, svjetski vendor za Linux i open sors certifikaciju. LPI trenutno ima certificirane profesionalce u 180 zemalja širom svijeta, dostavlja testove na više jezika, te ima oko stotine trening partnera.

Naša svrha je omogućiti ekonomske i kreativne prilike za svakog, čineći dostupnim certifikaciju u open sors znanju i vještinama svima.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktirajte nas
  • Privatnost i politika kolačića

Primijetili ste grešku ili želite pomoći poboljšati ovu stranicu? Molimo prijavite nam!.

© 1999–2023 The Linux Professional Institute Inc. Sva prava zadržana.