Gym
lesson

Istorija, aliasi i konfiguracija terminala

Tab autocomplete, strelica gore i Ctrl+R pokriveni su u lekciji 2.4. Ova lekcija nadogradjuje sa fokusom na komandu history, aliase i konfiguraciju (~/.bashrc).

Komanda history

Bash cuva sve unesene komande u fajlu ~/.bash_history. Komanda history daje pristup toj listi:

# Prikaži celu istoriju
history

# Prikaži poslednjih 20 komandi
history 20

# Pretraži istoriju
history | grep tar

# Obrisi celu istoriju
history -c

# Obrisi odredjenu liniju (npr. liniju 42)
history -d 42

Ekspanzija istorije

# Ponovi poslednju komandu
!!

# Izvrsi komandu broj 42 iz istorije
!42

# Ponovi poslednju komandu koja pocinje sa "tar"
!tar

# Poslednji argument prethodne komande
!$

~/.bash_history

Istorija se trajno cuva u ovom fajlu. Mozes da podesis njeno ponasanje u ~/.bashrc:

# Povecaj velicinu istorije
export HISTSIZE=10000
export HISTFILESIZE=20000

# Ne cuvaj duplikate
export HISTCONTROL=ignoredups:erasedups

# Prikaži datum i vreme uz komande
export HISTTIMEFORMAT="%d/%m/%Y %T "

# Odmah sacuvaj komandu u istoriju (ne samo pri zatvaranju terminala)
PROMPT_COMMAND="history -a"

Aliasi

Alias je skracenica za duzu komandu. Umesto da svaki put kucas ls -la --color=auto, definises alias ll='ls -la --color=auto' i koristis ll.

Kreiranje aliasa

# Privremeni alias (samo u ovom terminalu, nestaje po zatvaranju)
alias ll='ls -la'
alias ..='cd ..'
alias gs='git status'

Listanje i uklanjanje

# Prikaži sve definisane aliase
alias

# Prikaži odredjeni alias
alias ll

# Ukloni alias
unalias ll

# Privremeno ignorisi alias (koristi originalnu komandu)
\ls

Korisni aliasi — primeri

alias ll='ls -la --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -h'
alias free='free -h'
alias cls='clear'
alias gs='git status'
alias gd='git diff'
alias update='sudo apt update && sudo apt upgrade'

~/.bashrc — trajna konfiguracija

Aliasi definisani u terminalu nestaju cim zatvoris prozor. Da budu trajni, dodaj ih u ~/.bashrc.

Fajl ~/.bashrc se automatski izvrsava pri svakom otvaranju novog (interaktivnog, ne-login) terminala.

# Uredi konfiguraciju
nano ~/.bashrc

# Dodaj na kraj fajla, na primer:
alias ll='ls -la --color=auto'
alias gs='git status'
export HISTSIZE=10000

Primena izmena bez restartovanja terminala

Nakon sto sacuvas izmene u ~/.bashrc, moras ih ucitati u aktivnu sesiju:

# Primeni izmene
source ~/.bashrc

# Ili krace (tacka je sinonim za source):
. ~/.bashrc

Bez ovog koraka, izmene vaze tek od sledeceg otvaranja terminala.


Drugi dotfajlovi — .bash_profile i .profile

Pored ~/.bashrc, postoje i drugi konfiguracioni fajlovi:

Fajl Kada se ucitava
~/.bashrc Svaki novi interaktivni ne-login terminal (novi tab, nova sesija)
~/.bash_profile Samo pri login sesiji (npr. SSH prijava, tekstualni login)
~/.profile Login sesija ako ~/.bash_profile ne postoji; koriste ga i drugi shell-ovi (sh, dash)

Prakticno

Vecina korisnika stavlja sve u ~/.bashrc. Medjutim, ~/.bash_profile cesto ima ovaj redak koji ucitava ~/.bashrc i za login sesije:

# Tipican sadrzaj ~/.bash_profile:
if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Na taj nacin konfiguracija je konzistentna bez obzira kako si se prijavio.

Savet: Ako nesto definises u ~/.bashrc ali ne radi u SSH sesiji — proveri da li ~/.bash_profile ucitava ~/.bashrc.


Rezime

Tema Sta upamtiti
history N Poslednjih N komandi
!N, !!, !string Ekspanzija istorije
~/.bash_history Fajl gde se cuva istorija
alias ime='komanda' Definisi alias za sesiju
alias / unalias Listaj / ukloni aliase
~/.bashrc Trajne postavke (aliasi, PATH, HIST...)
source ~/.bashrc Primeni izmene bez restartovanja
~/.bash_profile Ucitava se samo pri login sesiji