Gym
lesson

Prakticne precice

Cilj lekcije: Nauciti precice koje ce ti ustedeti sate kucanja i spasiti te kada terminal "zaglavne".


Tab autocomplete — najveca usteda vremena

Umesto da kucas celo ime fajla ili direktorijuma, pritisni Tab — terminal ce dovrsiti umesto tebe.

Primer:

cd /h

Pritisni Tab → terminal automatski dopunjuje:

cd /home/

Ako postoji samo jedna mogucnost, Tab ce je odmah dovrsiti. Ako ima vise opcija, pritisni Tab dva puta da vidis listu:

ls /etc/sys

Pritisni Tab Tab:

sysctl.conf  sysfs/  syslog  systemd/

Tab funkcionise za:

  • Imena direktorijuma i fajlova — najcesca upotreba
  • Imena komandi — ukucaj gi i pritisni Tab, ponudice git, gimp...
  • Opcije komandi — u nekim shellovima (zsh, fish) Tab dopunjuje i --help, --verbose...

Navika vredna zlata: Od sad, svaki put kad kucas put do fajla ili ime komande — pritisni Tab. Greske u kucanju su uzrok broj jedan problema u terminalu. Tab ih eliminise.


Istorija komandi — ne kucaj dva puta isto

Strelica gore

Pritisni (strelica gore) da se vratis na prethodnu komandu. Pritisni vise puta da pregledas starije komande. ide napred kroz istoriju.

$ ls -la /var/log
# ... (izlaz) ...
$ ↑               # vraca: ls -la /var/log

Ctrl+R — pretraga istorije

Kada trazis komandu koju si koristio pre dugo vremena:

$ Ctrl+R
(reverse-i-search)`':

Pocni da kucas deo komande — terminal ce pronaci najskorije podudaranje:

(reverse-i-search)`apt': sudo apt update

Pritisni Enter da pokrenes pronadjenu komandu, ili Ctrl+R ponovo da ides dalje unazad kroz istoriju. Ctrl+C za izlaz bez pokretanja.

history komanda

history

Ispisuje numerisanu listu poslednjih komandi (obicno poslednjih 500-1000):

  497  ls -la
  498  cd /var/log
  499  cat syslog
  500  history

Precice za pokretanje iz istorije:

!!      # ponovi poslednju komandu
!499    # ponovi komandu broj 499 iz history
!cat    # ponovi poslednju komandu koja pocinje sa "cat"

Primer korisne primene !!:

apt update          # greska: Permission denied
sudo !!             # postaje: sudo apt update

Izlazak iz zaglavljene komande

Ovo je prva stvar koja zbuni sve pocetnike — kako da izadjem iz ovoga?

Primer problema

Pokrenes komandu cat (cita i ispisuje sadrzaj fajla) bez argumenta:

cat

Terminal ceka. Kucas nesto:

zdravo svete
zdravo svete

cat samo ponavlja ono sto ukucas — i ne mozes da izadjes. Sta sad?

Ctrl+C — otkazivanje komande

Najvaznije prece u terminalu. Prekida komandu koja se izvrsava:

cat
zdravo svete
zdravo svete
^C
$

^C oznacava da si pritisnuo Ctrl+C. Vratis se na prompt.

Koristi Ctrl+C kada:

  • Komanda se izvrsava predugo i hoces da je zaustaTvis
  • PogreSno si pokrenuo komandu
  • Program ne reaguje

Ctrl+D — kraj unosa (EOF)

Ctrl+D salje signal "kraj fajla" (EOF — End Of File). Govori komandi da nema vise unosa:

cat
zdravo svete
zdravo svete
^D
$

Razlika od Ctrl+C: Ctrl+D normalno zavrsava unos (kao da si zatvorio fajl), Ctrl+C nasilno prekida.

Ctrl+D takodje izlazi iz bash sesije kada nema vise komandi (zatvoris terminal ako si na vrhu).

Ctrl+Z — suspendovanje procesa

Ctrl+Z pauzira (suspenduje) komandu i vraca te na prompt, ali komanda nastavlja da postoji u pozadini:

nano vazanfajl.txt
^Z
[1]+  Stopped    nano vazanfajl.txt
$

Napomena: Suspendovani procesi, upravljanje pozadinom i fg/bg komande su tema poglavlja 10 — Upravljanje procesima. Za sad zapamti samo da Ctrl+Z postoji i da suspendovani proces mozes da vratis komandom fg.


Brisanje i kretanje po redu

Ne moras da drzis Backspace da obrises 30 karaktera. Ove precice postaju instinktivne posle par dana:

Precica Sta radi
Ctrl+A Idi na pocetak reda
Ctrl+E Idi na kraj reda
Ctrl+U Obrisi sve pre kursora
Ctrl+K Obrisi sve posle kursora
Ctrl+W Obrisi prethodnu rec
Alt+F Pomeri kursor jedno slovo napred
Alt+B Pomeri kursor jedno slovo unazad

Nije potrebno uciti sve odjednom. Ctrl+A, Ctrl+E i Ctrl+U su najkorisniji — ostalo dolazi vremenom.


Tilde ~ — precica za home direktorijum

Tilde (~) je poseban karakter koji uvek znaci tvoj home direktorijum (/home/student ili slicno).

cd ~              # idi u home direktorijum (isto kao samo: cd)
ls ~/dokumenti    # listaj dokumenti folder u home-u
cp fajl.txt ~/    # kopiraj fajl.txt u home

Ovo je verovatno prvi put da vidis ~ u ovom kontekstu. Upamti: ~ = tvoj home. Videces ga svuda.

Primer — ova dva reda su ekvivalentna:

cd /home/student/projekti
cd ~/projekti

Drugi je krace i radi na bilo kom racunaru bez obzira na korisnicko ime.


Rezime

Precica Akcija
Tab Autocomplete (ime fajla, komande, puta)
Tab Tab Pokazi sve moguce dopune
/ Prethodna / sledeca komanda iz istorije
Ctrl+R Pretraga istorije komandi
history Prikazi listu svih prethodnih komandi
!! Ponovi poslednju komandu
!N Ponovi komandu broj N iz history
Ctrl+C Otkaži / prekini komandu koja se izvrsava
Ctrl+D Kraj unosa (EOF), ili izlaz iz shella
Ctrl+Z Suspenduj komandu (vise u poglavlju 10)
Ctrl+U Obrisi red pre kursora
Ctrl+K Obrisi red posle kursora
Ctrl+A Idi na pocetak reda
Ctrl+E Idi na kraj reda
~ Home direktorijum