Kao netko tko provodi prilično vremena u Linux terminalu, često nailazim na naredbe o kojima se manje priča, ali su iznimno korisne. Sastavio sam ovaj popis kao podsjetnik na neke bitne, a često zanemarene naredbe i njihove korisne podopcije. Bilo da ste novi u Linuxu ili iskusni korisnik, nadam se da ćete ih naći jednako korisnim kao i ja u svakodnevnom rada.
1. tree - Prikaz strukture direktorija
Naredba tree
pruža vizualni prikaz strukture vašeg direktorija, olakšavajući razumijevanje hijerarhije vaših datoteka i mapa.
Instalacija:
- Ubuntu/Debian:
sudo apt install tree
- Fedora:
sudo dnf install tree
- CentOS/RHEL:
sudo yum install tree
- Arch Linux:
sudo pacman -S tree
- OpenSUSE:
sudo zypper install tree
- Alpine Linux:
sudo apk add tree
Primjeri:
-
Osnovna uporaba:
tree
Rezultat:
. ├── mapa1 │ ├── datoteka1.txt │ └── datoteka2.txt └── mapa2 └── datoteka3.txt
-
Ograničenje dubine:
tree -L 2
Rezultat:
. ├── mapa1 │ ├── podmapa1 │ └── podmapa2 └── mapa2 └── podmapa3
-
Prikaz samo direktorija:
tree -d
Rezultat:
. ├── mapa1 │ └── podmapa1 └── mapa2
-
Prikaz skrivenih datoteka:
tree -a
Rezultat:
. ├── .skrivena_mapa │ └── .skrivena_datoteka.txt ├── mapa1 │ └── datoteka1.txt └── mapa2 └── datoteka2.txt
-
Napredno: Kombiniranje opcija i korištenje uzoraka:
tree -L 2 -P '*.txt' --prune
Rezultat:
. ├── mapa1 │ ├── datoteka1.txt │ └── datoteka2.txt └── mapa2 └── datoteka3.txt
Zašto je korisno:
- Brzo vizualiziranje složenih struktura direktorija
- Identificiranje ugniježđenih mapa i datoteka na prvi pogled
- Korisno za dokumentiranje struktura projekata
2. ncdu - Analiza korištenja diska
Skraćeno od “NCurses Disk Usage”, ncdu
je interaktivni analizator korištenja diska koji vam pomaže identificirati koje datoteke i direktoriji zauzimaju najviše prostora na vašem sustavu.
Instalacija:
- Ubuntu/Debian:
sudo apt install ncdu
- Fedora:
sudo dnf install ncdu
- CentOS/RHEL:
sudo yum install ncdu
- Arch Linux:
sudo pacman -S ncdu
- OpenSUSE:
sudo zypper install ncdu
- Alpine Linux:
sudo apk add ncdu
Primjeri:
-
Osnovna uporaba:
ncdu
(Interaktivno ncurses sučelje koje prikazuje korištenje diska)
-
Skeniranje određenog direktorija:
ncdu /home/korisnik
(Interaktivno ncurses sučelje koje prikazuje korištenje diska za /home/korisnik)
-
Izvoz rezultata u datoteku:
ncdu -o ncdu_izlaz.json /home/korisnik
(Nema vizualnog izlaza, ali stvara ncdu_izlaz.json)
-
Čitanje iz izvezene datoteke:
ncdu -f ncdu_izlaz.json
(Interaktivno ncurses sučelje koje prikazuje korištenje diska iz datoteke)
-
Napredno: Isključivanje određenih vrsta datoteka:
ncdu -X '*.log' -X '*.tmp' /var/log
(Interaktivno ncurses sučelje koje prikazuje korištenje diska, isključujući .log i .tmp datoteke)
Zašto je korisno:
- Identificiranje datoteka i direktorija koji zauzimaju najviše prostora
- Interaktivno sučelje za laku navigaciju
- Pomaže u učinkovitom čišćenju prostora na disku
3. htop - Interaktivni preglednik procesa
Dok je top
dobro poznata naredba za praćenje sistemskih procesa, htop
to podiže na novu razinu sa svojim interaktivnim i šarenim sučeljem.
Instalacija:
- Ubuntu/Debian:
sudo apt install htop
- Fedora:
sudo dnf install htop
- CentOS/RHEL:
sudo yum install epel-release && sudo yum install htop
- Arch Linux:
sudo pacman -S htop
- OpenSUSE:
sudo zypper install htop
- Alpine Linux:
sudo apk add htop
Primjeri:
-
Osnovna uporaba:
htop
(Interaktivni preglednik procesa)
-
Prikaz samo procesa određenog korisnika:
htop -u korisnicko_ime
(Interaktivni preglednik procesa koji prikazuje samo procese ‘korisnicko_ime’)
-
Pokretanje s procesima sortiranim prema korištenju CPU-a:
htop -s PERCENT_CPU
(Interaktivni preglednik procesa s procesima sortiranim prema korištenju CPU-a)
-
Prikaz stabla:
htop -t
(Interaktivni preglednik procesa u načinu prikaza stabla)
-
Napredno: Prilagođena konfiguracija mjerača:
htop --no-color --delay=30 --sort-key=PERCENT_MEM
(Interaktivni preglednik procesa bez boje, s odgodom od 30 sekundi, sortirano prema korištenju memorije)
Zašto je korisno:
- Praćenje sustava u stvarnom vremenu s korisničkim sučeljem
- Lako upravljanje procesima (kill, nice, itd.) pomoću tipkovničkih prečaca
- Prilagodljive opcije prikaza za prilagođene informacije o sustavu
4. pv - Praćenje napretka podataka kroz cijev
Naredba pv
(Pipe Viewer) omogućuje vam da vidite napredak podataka koji teku kroz cjevovod, što je posebno korisno za dugotrajne operacije.
Instalacija:
- Ubuntu/Debian:
sudo apt install pv
- Fedora:
sudo dnf install pv
- CentOS/RHEL:
sudo yum install epel-release && sudo yum install pv
- Arch Linux:
sudo pacman -S pv
- OpenSUSE:
sudo zypper install pv
- Alpine Linux:
sudo apk add pv
Primjeri:
-
Osnovna uporaba: Praćenje kopiranja datoteke
pv velika_datoteka.iso > kopirana_datoteka.iso
Rezultat:
2.05GB 0:00:30 [68.3MB/s] [====> ] 41% ETA 0:00:43
-
Korištenje s kompresijom:
pv velika_datoteka.tar | gzip > velika_datoteka.tar.gz
Rezultat:
1.23GB 0:00:45 [28.1MB/s] [=========> ] 78% ETA 0:00:12
-
Praćenje više datoteka:
pv datoteka1 datoteka2 datoteka3 > kombinirana_datoteka
Rezultat:
datoteka1: 523MB 0:00:05 [104MB/s] [==========] 100% datoteka2: 217MB 0:00:02 [108MB/s] [==========] 100% datoteka3: 1.05GB 0:00:15 [71.2MB/s] [====> ] 42% ETA 0:00:20
-
Ograničavanje brzine:
pv -L 1m velika_datoteka.iso > odrediste.iso
Rezultat:
52.4MB 0:00:52 [1.00MB/s] [ <=> ] 2% ETA 0:41:08
-
Napredno: Prilagođeni format i numerički Rezultat:
pv -n velika_datoteka.iso | gzip > velika_datoteka.iso.gz 2>&1 | \ awk '{printf "\rKomprimirano: %d%% (%d/%d MB)", $2, $1/1024/1024, $3/1024/1024}'
Rezultat:
Komprimirano: 45% (1024/2048 MB)
Zašto je korisno:
- Vizualizacija napretka prijenosa podataka u cjevovodima
- Procjena vremena završetka operacija s podacima
- Identificiranje uskih grla u obradi podataka
5. watch - Periodično izvršavanje programa
Naredba watch
omogućuje vam da ponavljano pokrećete određenu naredbu, prikazujući izlaz u stvarnom vremenu. Ovo je posebno korisno za praćenje promjenjivih podataka ili statusa sustava.
Primjeri:
-
Osnovna uporaba: Praćenje vremena rada sustava
watch uptime
Izlaz (osvježava se svake 2 sekunde):
22:14:32 up 3:27, 2 users, load average: 0.08, 0.03, 0.05
-
Prilagođeni interval: Provjera korištenja diska svakih 5 sekundi
watch -n 5 df -h
Izlaz (osvježava se svakih 5 sekundi):
Filesystem Size Used Avail Use% Mounted on /dev/sda1 30G 15G 14G 52% / /dev/sdb1 100G 60G 35G 63% /home
-
Isticanje razlika
watch -d free -m
Izlaz (osvježava se svake 2 sekunde, promjene su istaknute):
total used free shared buff/cache available Mem: 7965 3435 2789 541 1740 3735 Swap: 2047 0 2047
-
Izvođenje do određenog vremena
watch -t -n 60 -c 'date; echo "Server radi..."; uptime' | ts '[%Y-%m-%d %H:%M:%S]' | tee -a server_log.txt
Izlaz (dodaje se u server_log.txt):
[2024-07-21 22:15:00] Sun Jul 21 22:15:00 UTC 2024 [2024-07-21 22:15:00] Server radi... [2024-07-21 22:15:00] 22:15:00 up 3:28, 2 users, load average: 0.10, 0.04, 0.05
-
Napredno: Praćenje složene naredbe
watch 'ps aux | sort -nrk 3,3 | head -n 5'
Izlaz (osvježava se svake 2 sekunde):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user1 3423 2.5 1.2 234568 62344 ? Sl 20:30 0:45 /usr/bin/gnome-shell root 1234 1.8 0.5 123456 23456 ? Ss 20:25 0:30 /sbin/init user2 5678 1.5 0.8 345678 45678 ? R 21:00 0:15 /usr/bin/firefox user1 7890 1.2 0.6 234567 34567 ? S 20:35 0:20 /usr/bin/thunderbird
Zašto je korisno:
- Praćenje resursa sustava u stvarnom vremenu
- Promatranje promjena u datotečnim sustavima, procesima ili mrežnom statusu
- Automatizacija ponavljajućeg izvršavanja naredbi za nadzor sustava
6. tee - Čitanje sa standardnog ulaza i pisanje na standardni izlaz i u datoteke
Naredba tee
čita sa standardnog ulaza i piše istovremeno na standardni izlaz i u jednu ili više datoteka. Ovo je nevjerojatno korisno za bilježenje izlaza naredbi dok ih istovremeno prikazujete na zaslonu.
Primjeri:
-
Osnovna uporaba: Izlaz i na zaslon i u datoteku
echo "Pozdrav, Svijete!" | tee izlaz.txt
Izlaz na zaslonu:
Pozdrav, Svijete!
(Također zapisano u izlaz.txt)
-
Dodavanje u postojeću datoteku
echo "Nova linija" | tee -a izlaz.txt
Izlaz na zaslonu:
Nova linija
(Dodano u izlaz.txt bez prepisivanja)
-
Pisanje u više datoteka
echo "Izlaz u više datoteka" | tee datoteka1.txt datoteka2.txt datoteka3.txt
Izlaz na zaslonu:
Izlaz u više datoteka
(Također zapisano u datoteka1.txt, datoteka2.txt i datoteka3.txt)
-
Korištenje sa sudo za pisanje u zaštićene datoteke
echo "Promjena na root razini" | sudo tee -a /etc/nekakonfiguracijska_datoteka
Izlaz na zaslonu:
Promjena na root razini
(Dodano u /etc/nekakonfiguracijska_datoteka s root dozvolama)
-
Napredno: Kombiniranje s drugim naredbama u cjevovodu
ls -l | tee popis_datoteka.txt | grep "\.txt$" | tee tekstualne_datoteke.txt
Izlaz na zaslonu: (popis .txt datoteka) (Potpuni popis direktorija spremljen u popis_datoteka.txt, popis .txt datoteka spremljen u tekstualne_datoteke.txt)
Zašto je korisno:
- Bilježenje izlaza naredbi u datoteku dok ga istovremeno pregledavate u terminalu
- Stvaranje više kopija izlaza naredbi
- Korištenje u skriptama za održavanje zapisnika bez gubitka izlaza u stvarnom vremenu
7. xargs - Izgradnja i izvršavanje naredbenih linija iz standardnog ulaza
Naredba xargs
je moćan alat koji vam omogućuje izgradnju i izvršavanje naredbenih linija iz standardnog ulaza. Posebno je korisna kada trebate izvršiti naredbu na velikom broju datoteka ili ulaza.
Primjeri:
-
Osnovna uporaba: Obrada popisa datoteka
echo "datoteka1.txt datoteka2.txt datoteka3.txt" | xargs rm
Rezultat: (Nema izlaza, datoteke su uklonjene)
-
Korištenje s find naredbom
find . -name "*.log" | xargs gzip
Rezultat: (Nema izlaza, sve .log datoteke u trenutnom direktoriju i poddirektorijima su komprimirane)
-
Određivanje maksimalnog broja argumenata
echo "1 2 3 4 5 6" | xargs -n 2 echo
Rezultat:
1 2 3 4 5 6
-
Korištenje prilagođenog razdjelnika
echo "ime:Ivan dob:30 grad:Zagreb" | xargs -d ' ' -n 1 echo
Rezultat:
ime:Ivan dob:30 grad:Zagreb
-
Napredno: Paralelno izvršavanje
find . -name "*.jpg" | xargs -P 4 -I {} convert {} {}.png
Rezultat: (Nema izlaza, pretvara jpg datoteke u png koristeći 4 paralelna procesa)
Zašto je korisno:
- Učinkovito izvršavanje naredbi na više datoteka
- Pretvaranje izlaza jedne naredbe u argumente za drugu
- Paralelizacija izvršavanja naredbi za poboljšanu performansu
8. nl - Numeriranje redaka datoteka
Naredba nl
se koristi za numeriranje redaka datoteke. Iako jednostavna, može biti nevjerojatno korisna za dodavanje brojeva redaka skriptama, log datotekama ili bilo kojoj tekstualnoj datoteci gdje trebate referirati specifične retke.
Primjeri:
-
Osnovna uporaba: Numeriranje svih redaka
echo -e "Prvi redak\nDrugi redak\nTreći redak" | nl
Rezultat:
1 Prvi redak 2 Drugi redak 3 Treći redak
-
Numeriranje samo nepraznih redaka
echo -e "Prvi redak\n\nTreći redak" | nl -b a
Rezultat:
1 Prvi redak 2 Treći redak
-
Prilagođeni format numeriranja
echo -e "A\nB\nC" | nl -n rz -w 3
Rezultat:
001 A 002 B 003 C
-
Početak numeriranja od određenog broja
echo -e "X\nY\nZ" | nl -v 10
Rezultat:
10 X 11 Y 12 Z
-
Napredno: Prilagođeni razdjelnici i selektivno numeriranje
echo -e "# Komentar\nLinija koda 1\n# Još jedan komentar\nLinija koda 2" | nl -b p'^[^#]'
Rezultat:
# Komentar 1 Linija koda 1 # Još jedan komentar 2 Linija koda 2
Zašto je korisno:
- Dodavanje brojeva redaka datotekama za lakše referenciranje
- Prilagođavanje formata numeriranja (npr. preskakanje praznih redaka)
- Korisno za pregled koda i otklanjanje grešaka
9. at - Zakazivanje naredbi za jednokratno izvršavanje u određeno vrijeme
Naredba at
vam omogućuje zakazivanje poslova za jednokratno izvršavanje u određeno vrijeme. Ovo se razlikuje od cron poslova, koji su za ponavljajuće zadatke.
Instalacija:
- Ubuntu/Debian:
sudo apt install at
- Fedora:
sudo dnf install at
- CentOS/RHEL:
sudo yum install at
- Arch Linux:
sudo pacman -S at
- OpenSUSE:
sudo zypper install at
- Alpine Linux:
sudo apk add at
Napomena: Nakon instalacije, možda ćete trebati omogućiti i pokrenuti atd
uslugu:
sudo systemctl enable atd
sudo systemctl start atd
Primjeri:
-
Osnovna uporaba: Zakazivanje jednostavnog zadatka
echo "echo 'Pozdrav iz budućnosti!'" | at 16:30
Rezultat: job 1 at Wed Jul 21 16:30:00 2024
-
Zakazivanje zadatka za budući datum
echo "mail -s 'Izvještaj Spreman' [email protected] < /tmp/izvjestaj.txt" | at 9:00 AM Jul 25
Rezultat: job 2 at Sun Jul 25 09:00:00 2024
-
Korištenje datoteke kao ulaza za naredbe
at -f skripta_za_backup.sh 2:00 AM tomorrow
Rezultat: job 3 at Thu Jul 22 02:00:00 2024
-
Zakazivanje zadatka za izvršavanje nakon odgode
echo "reboot" | sudo at now + 30 minutes
Rezultat: job 4 at Wed Jul 21 17:15:00 2024
-
Napredno: Kombiniranje s preusmjeravanjem izlaza i obradom grešaka
at 23:00 <<EOF dugotrajna_skripta.sh > /tmp/izlaz.log 2>&1 if [ $? -eq 0 ]; then echo "Skripta uspješno izvršena" | mail -s "Status Skripte" [email protected] else echo "Skripta nije uspjela" | mail -s "Status Skripte" [email protected] fi EOF
Rezultat: job 5 at Wed Jul 21 23:00:00 2024
Zašto je korisno:
- Zakazivanje jednokratnih zadataka bez modificiranja crontaba
- Korisno za zadatke održavanja, podsjetnike ili odgođene operacije
- Može se koristiti u skriptama za zakazivanje naknadnih akcija
10. script - Izrada transkripta sesije terminala
Naredba script
stvara transkript svega što se prikazuje na vašem terminalu. To je izvrstan alat za snimanje vaših sesija terminala, što može biti korisno za dokumentaciju, obuku ili rješavanje problema.
Primjeri:
-
Osnovna uporaba: Snimanje sesije
script moja_sesija.log # (Izvršite svoje operacije u terminalu) exit
Rezultat: Script done, file is moja_sesija.log
-
Dodavanje u postojeću log datoteku
script -a postojeci_log.log # (Izvršite više operacija u terminalu) exit
Rezultat: Script done, file is postojeci_log.log
-
Snimanje s podacima o vremenu
script -t 2>timing.log sesija.log # (Izvršite operacije u terminalu) exit
Rezultat: Script done, file is sesija.log
-
Reprodukcija snimljene sesije
scriptreplay timing.log sesija.log
Rezultat: (Reproducira snimljenu sesiju u stvarnom vremenu)
-
Napredno: Snimanje neinteraktivne naredbe
script -c "find / -name '*.txt'" -q pronadjene_txt_datoteke.log
Rezultat: (Nema izlaza na terminal, sve je zabilježeno u pronadjene_txt_datoteke.log)
Zašto je korisno:
- Snimanje sesija terminala za dokumentaciju
- Stvaranje tutoriala ili materijala za obuku
- Revizija aktivnosti administracije sustava
Istraživanje naredbenog retka
Ovih deset manje poznatih Linux naredbi terminala može značajno povećati vašu produktivnost i učinkovitost pri radu s naredbenim retkom. Od vizualizacije struktura direktorija s tree
do zakazivanja jednokratnih zadataka s at
, svaka od ovih naredbi služi jedinstvenoj svrsi koja može pojednostaviti vaš radni proces.
Uključivanjem ovih alata u svoju svakodnevnu rutinu, moći ćete učinkovitije upravljati svojim sustavom, brže rješavati probleme i dobiti dublje uvide u svoje Linux okruženje. Zapamtite, snaga Linuxa leži u njegovoj svestranosti i bogatstvu alata koji su vam na raspolaganju. Ne ustručavajte se istraživati man stranice i eksperimentirati s ovim naredbama kako biste otkrili još više načina na koje vam mogu koristiti u radu.
Bilo da ste sistemski administrator, razvojni programer ili entuzijastični Linux korisnik, ovladavanje ovim naredbama će unaprijediti vaše vještine korištenja naredbenog retka i učiniti vas vještijim naprednim korisnikom. Zato pokrenite svoj terminal, počnite vježbati i gledajte kako vaša produktivnost raste!
Zapamtite, iako ovi primjeri pružaju dobru polaznu točku, svaka naredba ima mnogo više opcija i slučajeva uporabe. Uvijek se obratite man stranicama (man ime_naredbe
) za sveobuhvatnu dokumentaciju i dodatne značajke.
Sretno istraživanje naredbenog retka!