10 Manje Poznatih ali Korisnih Linux Naredbi Terminala

Posted on:July 21, 2024 at 02:22

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:

Primjeri:

  1. Osnovna uporaba:

    tree

    Rezultat:

    .
    ├── mapa1
    │   ├── datoteka1.txt
    │   └── datoteka2.txt
    └── mapa2
        └── datoteka3.txt
  2. Ograničenje dubine:

    tree -L 2

    Rezultat:

    .
    ├── mapa1
    │   ├── podmapa1
    │   └── podmapa2
    └── mapa2
        └── podmapa3
  3. Prikaz samo direktorija:

    tree -d

    Rezultat:

    .
    ├── mapa1
    │   └── podmapa1
    └── mapa2
  4. Prikaz skrivenih datoteka:

    tree -a

    Rezultat:

    .
    ├── .skrivena_mapa
    │   └── .skrivena_datoteka.txt
    ├── mapa1
    │   └── datoteka1.txt
    └── mapa2
        └── datoteka2.txt
  5. 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:

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:

Primjeri:

  1. Osnovna uporaba:

    ncdu

    (Interaktivno ncurses sučelje koje prikazuje korištenje diska)

  2. Skeniranje određenog direktorija:

    ncdu /home/korisnik

    (Interaktivno ncurses sučelje koje prikazuje korištenje diska za /home/korisnik)

  3. Izvoz rezultata u datoteku:

    ncdu -o ncdu_izlaz.json /home/korisnik

    (Nema vizualnog izlaza, ali stvara ncdu_izlaz.json)

  4. Čitanje iz izvezene datoteke:

    ncdu -f ncdu_izlaz.json

    (Interaktivno ncurses sučelje koje prikazuje korištenje diska iz datoteke)

  5. 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:

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:

Primjeri:

  1. Osnovna uporaba:

    htop

    (Interaktivni preglednik procesa)

  2. Prikaz samo procesa određenog korisnika:

    htop -u korisnicko_ime

    (Interaktivni preglednik procesa koji prikazuje samo procese ‘korisnicko_ime’)

  3. Pokretanje s procesima sortiranim prema korištenju CPU-a:

    htop -s PERCENT_CPU

    (Interaktivni preglednik procesa s procesima sortiranim prema korištenju CPU-a)

  4. Prikaz stabla:

    htop -t

    (Interaktivni preglednik procesa u načinu prikaza stabla)

  5. 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:

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:

Primjeri:

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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:

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:

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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:

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:

  1. 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)

  2. Dodavanje u postojeću datoteku

    echo "Nova linija" | tee -a izlaz.txt

    Izlaz na zaslonu:

    Nova linija

    (Dodano u izlaz.txt bez prepisivanja)

  3. 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)

  4. 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)

  5. 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:

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:

  1. Osnovna uporaba: Obrada popisa datoteka

    echo "datoteka1.txt datoteka2.txt datoteka3.txt" | xargs rm

    Rezultat: (Nema izlaza, datoteke su uklonjene)

  2. Korištenje s find naredbom

    find . -name "*.log" | xargs gzip

    Rezultat: (Nema izlaza, sve .log datoteke u trenutnom direktoriju i poddirektorijima su komprimirane)

  3. Određivanje maksimalnog broja argumenata

    echo "1 2 3 4 5 6" | xargs -n 2 echo

    Rezultat:

    1 2
    3 4
    5 6
  4. Korištenje prilagođenog razdjelnika

    echo "ime:Ivan dob:30 grad:Zagreb" | xargs -d ' ' -n 1 echo

    Rezultat:

    ime:Ivan
    dob:30
    grad:Zagreb
  5. 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:

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:

  1. 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
  2. Numeriranje samo nepraznih redaka

    echo -e "Prvi redak\n\nTreći redak" | nl -b a

    Rezultat:

         1  Prvi redak
    
         2  Treći redak
  3. Prilagođeni format numeriranja

    echo -e "A\nB\nC" | nl -n rz -w 3

    Rezultat:

    001  A
    002  B
    003  C
  4. Početak numeriranja od određenog broja

    echo -e "X\nY\nZ" | nl -v 10

    Rezultat:

        10  X
        11  Y
        12  Z
  5. 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:

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:

Napomena: Nakon instalacije, možda ćete trebati omogućiti i pokrenuti atd uslugu:

sudo systemctl enable atd
sudo systemctl start atd

Primjeri:

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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:

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:

  1. Osnovna uporaba: Snimanje sesije

    script moja_sesija.log
    # (Izvršite svoje operacije u terminalu)
    exit

    Rezultat: Script done, file is moja_sesija.log

  2. 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

  3. 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

  4. Reprodukcija snimljene sesije

    scriptreplay timing.log sesija.log

    Rezultat: (Reproducira snimljenu sesiju u stvarnom vremenu)

  5. 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:

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!