Najčešće korištene Linux naredbe koje biste trebali znati


Linux je vrlo popularan operativni sustav (OS) među programerima i običnim korisnicima. Jedan od glavnih razloga njegove popularnosti je iznimna podrška za naredbeni redak. Cijelim operativnim sustavom Linux možemo upravljati samo preko sučelja naredbenog retka (CLI). To nam omogućuje izvršavanje složenih zadataka sa samo nekoliko naredbi.

U ovom vodiču raspravljat ćemo o nekim često korištenim naredbama koje su korisne iskusnom administratoru sustava ili početniku. Nakon što slijede ovaj vodič, korisnici će moći pouzdano upravljati Linux sustavom.

Radi bolje organizacije, ove su naredbe grupirane u tri odjeljka – sustav datoteka, umrežavanje i informacije o sustavu.

Naredbe sustava datoteka Linux

U ovom odjeljku raspravljat ćemo o nekim korisnim naredbama koje se odnose na datoteke i direktorije u Linuxu.

Naredba cat se uglavnom koristi za prikaz sadržaja datoteke. Čita sadržaj datoteke i prikazuje ga na standardnom izlazu (stdout).

Uobičajena sintaksa naredbe cat je:

$ cat [OPTIONS] [FILE1] [FILE2] ...

Prikažimo sadržaj datoteke /etc/os-release pomoću naredbe cat:

$ cat /etc/os-release

Dodatno, također možemo koristiti opciju -n naredbe za prikaz sadržaja s brojem retka:

$ cat -n /etc/os-release

Naredba cp korisna je za kopiranje datoteka, grupa datoteka i direktorija.

Uobičajena sintaksa naredbe cp je:

$ cp [OPTIONS]  

Ovdje uglate zagrade ([]) predstavljaju neobavezne argumente, dok uglate zagrade (<>) predstavljaju bitne argumente.

Kopirajmo datoteku /etc/os-release u /tmp direktorij:

$ cp /etc/os-release /tmp/new-file.txt

Prikažimo sada sadržaj datoteke kako bismo potvrdili da je datoteka kopirana:

$ cat /tmp/new-file.txt

Slično, možemo kopirati direktorij pomoću naredbe cp. Kopirajmo /etc/cron.d direktorij unutar /tmp direktorija:

$ cp -r /etc/cron.d /tmp

Koristili smo opciju -r s naredbom cp, koja predstavlja rekurzivnu operaciju. Rekurzivno kopira direktorij koji uključuje njegove datoteke i poddirektorije.

U sljedećem primjeru ćemo vidjeti kako provjeriti je li imenik uspješno kopiran.

$ ls /tmp/cron.d
$ ls -l /tmp/cron.d

Naredba ls koristi se za ispisivanje sadržaja direktorija i sortiranje datoteka prema veličini i vremenu zadnje izmjene silaznim redoslijedom.

Uobičajena sintaksa naredbe ls je:

$ ls [OPTIONS] [FILE1] [FILE2] ...

Ako naredbi ls ne damo nikakav argument, ona ispisuje sadržaj trenutnog direktorija.

$ ls

U prethodnom primjeru kopirali smo direktorij /etc/cron.d u direktorij /tmp. Provjerimo da je ondje prisutan i sadrži potrebne datoteke:

$ ls /tmp/cron.d

Možemo koristiti opciju -l s naredbom ls za prikaz detaljnijih informacija kao što su – dopuštenja datoteke, vlasnik, vremenska oznaka, veličina itd.

Saznajmo više pojedinosti o datotekama prisutnim u direktoriju /tmp/cron.d:

$ ls -l /tmp/cron.d

Često stvaramo strukturu imenika kako bismo organizirali sadržaj. U Linuxu možemo koristiti naredbu mkdir za stvaranje direktorija ili više direktorija i postavljanje ispravnih dopuštenja za direktorije.

Uobičajena sintaksa naredbe mkdir je:

$ mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> ...

Kreirajmo direktorij s imenom dir-1 u /tmp direktoriju:

$ mkdir /tmp/dir-1

Sada provjerimo je li direktorij stvoren:

$ ls /tmp/dir-1

Ovdje možemo vidjeti da naredba ls ne javlja nikakvu pogrešku što znači da je direktorij tamo prisutan.

Ponekad moramo stvoriti ugniježđenu strukturu direktorija za bolju organizaciju podataka. U takvim slučajevima možemo upotrijebiti opciju -p naredbe za stvaranje nekoliko ugniježđenih direktorija u /tmp/dir-1 direktoriju:

$ mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5

U gornjem primjeru stvorili smo 4 razine ugniježđenih direktorija. Potvrdimo to pomoću naredbe ls:

$ ls -R /tmp/dir-1

Ovdje smo upotrijebili opciju -R s naredbom za prikaz sadržaja direktorija na rekurzivan način.

Za reviziju zadnjih izvršenih naredbi, možete koristiti naredbu history, koja prikazuje popis zadnjih izvršenih naredbi u sesiji terminala.

$ history

Za prikaz povijesti naredbi s vremenskom oznakom, trebate postaviti vremensku oznaku u bash povijesti, pokrenite:

$ HISTTIMEFORMAT="%d/%m/%y %T "             #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T "      #Permanently set the history timestamp
$ history

Kako ćete provjeriti prvih 10 datoteka koje vam zauzimaju prostor na disku? Jednostavna skripta u jednom retku napravljena od naredbe du, koja se prvenstveno koristi za korištenje prostora datoteke.

$ du -hsx * | sort -rh | head -10

Objašnjenje gornjih opcija naredbi i prekidača.

  • du – Procijenite korištenje prostora datoteke.
  • -hsx – (-h) Čovjek čitljiv format, (-s) Izlaz sažetaka, (-x) Jedan format datoteke, preskoči direktorije na drugim formatima datoteka.
  • sort – Sortiraj retke tekstualne datoteke.
  • -rh – (-r) Obrnuti rezultat usporedbe, (-h) za usporedbu formata čitljivog čovjeka.
  • head – ispis prvih n redaka datoteke.

Naredba stat koristi se za dobivanje informacija o veličini datoteke, dopuštenju pristupa, vremenu pristupa te ID-u korisnika i ID-u grupe datoteke.

$ stat anaconda-ks.cfg

Linux mrežne naredbe

U ovom ćemo odjeljku raspravljati o nekim problemima u vezi s mrežom.

Jedna od vrlo uobičajenih operacija koje se izvode u bilo kojoj mreži je provjera je li određeni host dostupan ili ne. Možemo koristiti naredbu ping za provjeru povezanosti s drugim hostom.

Opća sintaksa naredbe ping je:

$ ping [OPTIONS] <destination>

Ovdje odredište može biti IP adresa ili potpuno kvalificirani naziv domene (FQDN) kao što je google.com. Provjerimo može li trenutni sustav komunicirati s Googleom:

$ ping -c 4 google.com

U gornjem primjeru naredba prikazuje statistiku mrežne komunikacije koja pokazuje da je odgovor primljen za sva četiri mrežna zahtjeva (paketa). Važno je napomenuti da smo upotrijebili opciju -c s naredbom za ograničavanje broja zahtjeva koji se šalju određenom hostu.

Pogledajmo primjer kada je komunikacija između dva hosta prekinuta.

Kako bismo simulirali ovaj scenarij, pokušat ćemo doći do nedostupne IP adrese. U ovom slučaju to je 192.168.10.100:

$ ping -c 4 192.168.10.100

Ovdje možemo vidjeti da nismo dobili odgovor ni za jedan mrežni zahtjev. Stoga naredba javlja pogrešku – odredišni host nedostupan.

Ponekad moramo pronaći IP adresu određene domene. Da bismo to postigli, možemo upotrijebiti naredbu host, koja izvodi DNS pretraživanje i prevodi FQDN u IP adresu i obrnuto.

Opća sintaksa naredbe hosta je:

$ host [OPTIONS] <destination>

Ovdje odredište može biti IP adresa ili FQDN.

Otkrijmo IP adresu google.com pomoću naredbe host:

$ host google.com

Svi detalji o registriranim domenama pohranjeni su u centraliziranoj bazi podataka i mogu se pretraživati pomoću naredbe whois, koja prikazuje detalje o pojedinoj domeni.

Opća sintaksa naredbe whois je:

$ whois [OPTIONS] <FQDN>

Otkrijmo pojedinosti o google.com:

$ whois google.com

Ovdje možemo vidjeti mnogo detaljnih informacija kao što su – registracija/obnova/datum isteka domene, davatelj domene i tako dalje.

Važno je napomenuti da naredba whois nije dostupna prema zadanim postavkama na svim sustavima. Međutim, možemo ga instalirati pomoću upravitelja paketa. Na primjer, na apt upravitelju paketa:

$ sudo apt install whois

Na distribucijama koje se temelje na RHEL-u i drugim distribucijama možete ga instalirati kako je prikazano.

$ sudo yum install whois         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/whois  [On Gentoo Linux]
$ sudo apk add whois             [On Alpine Linux]
$ sudo pacman -S whois           [On Arch Linux]
$ sudo zypper install whois      [On OpenSUSE]    

Informacijske naredbe sustava Linux

U ovom odjeljku raspravljat ćemo o nekim od naredbi koje mogu pružiti pojedinosti o trenutnom sustavu.

Vrlo je čest zahtjev da se pronađe kada je sustav posljednji put ponovno pokrenut pomoću naredbe uptime, koja govori koliko je dugo sustav radio.

Saznajmo vrijeme rada trenutnog sustava:

$ uptime -p

12:10:57 up  2:00,  1 user,  load average: 0.48, 0.60, 0.45

U ovom smo primjeru upotrijebili opciju -p za prikaz izlaza u lijepom obliku.

Korisnici često moraju pronaći pojedinosti o instaliranoj, dostupnoj i korištenoj memoriji. Ove informacije igraju važnu ulogu pri rješavanju problema s performansama. Možemo koristiti naredbu free da pronađemo pojedinosti o memoriji:

$ free -m

Ovdje smo upotrijebili opciju -m s naredbom koja prikazuje izlaz u mebibajtima.

Na sličan način možemo koristiti opcije -g, -t i -p za prikaz izlaza u gibibajtima, tebibajtima i pebibajta odnosno.

Računalni sustavi pohranjuju podatke na blok uređaje. Primjeri blok uređaja su tvrdi diskovi (HDD), solid state pogoni (SSD) i tako dalje. Možemo koristiti naredbu lsblk za prikaz detaljnih informacija o blok uređajima:

$ lsblk

U ovom primjeru možemo vidjeti da postoji samo jedan blok uređaj i njegovo ime je /dev/sda. Na tom blok uređaju stvorene su tri particije.

U ovom smo članku raspravljali o nekim naredbama koje su korisne za početnike u Linuxu. Prvo smo razgovarali o naredbama datotečnog sustava. Zatim smo razgovarali o mrežnim naredbama. Na kraju, razgovarali smo o nekim naredbama koje su pružile pojedinosti o trenutnom sustavu.