Nov 5, 2023

Piping i redirekcija

 Piping (cevkanje) i redirekcija su osnovni koncepti u Linuxu i Unix-sličnim operativnim sistemima koji vam omogućavaju kontrolu ulaza i izlaza za operacije putem komandne linije. Ovi koncepti se koriste za efikasno manipulisanje, obradu i upravljanje podacima u komandnoj liniji. Evo objašnjenja cevkanja i redirekcije:

Cevkanje (|): Cevkanje vam omogućava da uzmete izlaz jedne komande i koristite ga kao ulaz za drugu komandu. Karakter | se koristi za stvaranje cevke između komandi. To je moćan način za kombinovanje više komandi i izvođenje složenih zadataka.

Na primer:

komanda1 | komanda2

U ovom primeru, izlaz komande1 se koristi kao ulaz za komandu2. Možete nizati više komandi kako biste stvorili niz operacija. Svaka komanda obrađuje podatke sekvencijalno.

Redirekcija: Redirekcija je proces kontrole ulaznih i izlaznih tokova za komande. Postoje različiti simboli koji se koriste za redirekciju:

  • <: Redirektuje ulaz iz datoteke. Na primer, komanda < ulaz.txt čita podatke iz datoteke ulaz.txt kao ulaz za komandu.

  • >: Redirektuje izlaz u datoteku, prebrisavajući njen sadržaj. Na primer, komanda > izlaz.txt piše izlaz komande u datoteku izlaz.txt, prebrisavajući njen prethodni sadržaj.

  • >>: Redirektuje izlaz u datoteku, dodajući ga njenom sadržaju. Na primer, komanda >> izlaz.txt dodaje izlaz komande na kraj datoteke izlaz.txt.

  • 2>: Redirektuje izlaz grešaka (stderr) u datoteku. Na primer, komanda 2> greske.txt beleži poruke o greškama iz komande i upisuje ih u datoteku greske.txt.

  • 2>>: Redirektuje izlaz grešaka (stderr) u datoteku, dodajući ga njenom sadržaju.

  • &> ili 2>&1: Redirektuje i standardni izlaz (stdout) i izlaz grešaka (stderr) na isto mesto. Na primer, komanda &> izlaz.txt šalje i stdout i stderr u datoteku izlaz.txt.

  • |: Kao što smo već razgovarali, simbol cevke (|) povezuje izlaz jedne komande sa ulazom druge komande.

Ovi simboli za redirekciju vam omogućavaju upravljanje izvorima ulaza i odredištima izlaza za komande, omogućavajući vam da skladištite, obrađujete i analizirate podatke na različite načine.

Cevkanje i redirekcija su esencijalni za automatizaciju zadataka, obradu velikih skupova podataka i kreiranje složenih radnih tokova na Linux komandnoj liniji. Pružaju fleksibilnost i kontrolu prilikom rada sa tekstom i podacima putem komandi i skripti.

STDOUT

Standardni izlaz (engl. Standard Output), skraćeno stdout, je osnovni tok podataka koji se koristi za ispisivanje izlaznih informacija iz komandi ili programa u Linux i Unix okruženjima. Ovo je uobičajeni izlazni kanal koji se koristi za prikazivanje rezultata izvršenih komandi na ekranu korisnika.

Na primer, kada izvršite komandu kao što je ls za listanje datoteka u trenutnom direktorijumu, izlaz se šalje na standardni izlaz, koji se obično prikazuje na ekranu kako biste videli listu datoteka i direktorijuma.

Osim prikazivanja na ekranu, stdout može biti preusmeren i redirektovan na različite načine. Na primer, možete ga preusmeriti u datoteku pomoću operatora >, >> ili 2>&1 za zajednički tretman standardnog izlaza (stdout) i standardnog izlaza grešaka (stderr).

Standardni izlaz je važan za rad sa komandama i skriptama u Linuxu jer omogućava komunikaciju između komandi, čime se omogućava da rezultati jedne komande postanu ulaz za drugu. Ovo čini Linux komandnu liniju izuzetno svestranom i moćnom za automatizaciju i manipulaciju podacima.

STDERR

Standardni izlaz za greške (engl. Standard Error), skraćeno STDERR, je drugi osnovni tok podataka koji se koristi za ispisivanje grešaka ili izlaznih informacija koje ukazuju na probleme tokom izvršenja komandi ili programa u Linux i Unix okruženjima.

Kada se tok greške STDERR koristi, greške ili obaveštenja o problemima se odvajaju od redovnog izlaza (stdout), omogućavajući tako da se greške i standardni izlaz jasno razlikuju. To je korisno za praćenje i ispravljanje grešaka prilikom izvršenja komandi ili skripti.

Na primer, ako pokušate da otvorite nepostojeću datoteku u komandnoj liniji, poruka o grešci će biti ispisana na toku STDERR kako biste bili obavešteni da datoteka ne postoji.

Standardni izlaz za greške takođe može biti preusmeren i redirektovan na sličan način kao i standardni izlaz (stdout), koristeći operator 2> ili 2>> za preusmeravanje grešaka u datoteku.

Korišćenje STDERR je ključno za debagovanje i praćenje izvršenja komandi i programa, omogućavajući korisnicima da identifikuju i rešavaju probleme koji se javljaju tokom upotrebe Linux i Unix sistema.

STDIN

Standardni unos (STDIN) je jedan od osnovnih tokova podataka u Linux i Unix okruženjima. STDIN služi za unos podataka sa tastature ili drugih izvora u komandnu liniju, komande ili programe koji se izvršavaju u terminalu.

STDIN omogućava korisnicima da unesu tekstualne podatke ili druge vrste ulaza direktno u komande ili skripte. Na primer, možete koristiti STDIN za unos teksta u program koji očekuje unos podataka ili za čitanje podataka iz datoteka pomoću određenih komandi.

STDIN se obično koristi u kombinaciji sa operatorom za preusmeravanje < kako bi se unos izvršavao iz datoteke umesto sa tastature. Na primer, komanda cat < datoteka.txt koristi STDIN za čitanje sadržaja datoteke "datoteka.txt" i prikazivanje tog sadržaja na ekranu.

STDIN, zajedno sa STDOUT (standardni izlaz) i STDERR (standardni izlaz za greške), čini osnovni mehanizam za unos, izlaz i praćenje komandi i programa u Linux i Unix sistemima.


Tekstualni editori

 Linux ima mnogo tekstualnih editora dostupnih korisnicima za uređivanje tekstualnih datoteka. Evo nekoliko popularnih tekstualnih editora u Linux-u:

  1. Vi/Vim:

    • Vi je stariji tekstualni editor, dok je Vim (Vi Improved) modernizovana verzija sa naprednim mogućnostima.
    • Vim je možda najmoćniji tekstualni editor i često se koristi na serverima.
    • Za pokretanje Vi, koristi se komanda vi, dok za Vim koristite vim.
  2. Emacs:

    • Emacs je još jedan moćan tekstualni editor sa mnogo proširenja i funkcionalnosti.
    • Za pokretanje Emacsa, koristi se komanda emacs.
  3. Nano:

    • Nano je jednostavan i lak za korišćenje tekstualni editor.
    • Za pokretanje Nano, koristi se komanda nano.
  4. Gedit:

    • Gedit je popularan tekstualni editor za Linux desktop okruženja kao što su GNOME.
    • Dostupan je sa grafičkim korisničkim interfejsom, ali može se koristiti i iz terminala sa komandom gedit.
  5. Sublime Text:

    • Sublime Text je komercijalni editor sa besplatnom evaluacionom verzijom.
    • Ima bogate mogućnosti za uređivanje koda i tekstualnih datoteka.
    • Može se instalirati i koristiti na Linux sistemu.
  6. Atom:

    • Atom je besplatan i open-source tekstualni editor razvijen od strane GitHub-a.
    • Dizajniran je za programere i ima mnogo proširenja dostupnih.
  7. Visual Studio Code:

    • Visual Studio Code (VSCode) je još jedan popularan besplatan i open-source tekstualni editor koji je razvila Microsoft.
    • Ima mnogo proširenja i podržava mnoge programske jezike.
  8. Kate:

    • Kate je tekstualni editor za KDE desktop okruženje.
    • Dostupan je sa grafičkim korisničkim interfejsom, ali se može koristiti i iz terminala sa komandom kate.

Ovo su samo neki od mnogih tekstualnih editora dostupnih u Linux-u. Izbor editora zavisi od vaših potreba i ličnih preferencija.

gluster

gluster je komandna linija za upravljanje i konfigurisanje GlusterFS klastera. GlusterFS je distribuirani sistem za upravljanje fajlovima koji omogućava skladištenje podataka na više servera i njihovu sinhronizaciju kako bi obezbedili visoku dostupnost i skalabilnost.

Evo nekoliko osnovnih komandi za rad sa GlusterFS klasterom:

  1. Kreiranje GlusterFS Volumena:

    Prilikom kreiranja GlusterFS volumena, koristite gluster volume create komandu. Na primer:

    sudo gluster volume create myvolume replica 2 transport tcp server1:/data server2:/data

    Ova komanda kreira volumen nazvan "myvolume" sa replikacijom faktora 2 i koristi TCP za prenos podataka između servera "server1" i "server2".

  2. Startovanje GlusterFS Volumena:

    Kada kreirate volumen, možete ga pokrenuti sa gluster volume start komandom:

    sudo gluster volume start myvolume
  3. Prikazivanje Statusa Volumena:

    Da biste videli status volumena, koristite gluster volume info komandu:

    sudo gluster volume info
  4. Dodavanje Članova Volumenu:

    Da biste dodali članove klastera u postojeći volumen, koristite gluster volume add-brick komandu:

    sudo gluster volume add-brick myvolume replica 2 server3:/data
  5. Proširivanje Volumena:

    Možete proširiti volumen dodavanjem više članova ili replika. Na primer, da biste dodali još jedan član u volumen:

    sudo gluster volume add-brick myvolume replica 3 server4:/data
  6. Pregledanje Statusa Volumena:

    Pomoću gluster volume status možete pregledati trenutni status volumena:

    sudo gluster volume status

Ovo su osnovne komande za upravljanje GlusterFS klasterom. Za više informacija i napredniju konfiguraciju, možete proučiti zvaničnu dokumentaciju GlusterFS-a i koristiti man stranice za pojedinačne komande (npr. man gluster).