Bu yazıda sizlere bash komut satırı özelleştirmeyi anlatacağım. Başlıklar halinde giderceğim.
0. Giriş
Bash komut satırında yaptığımız özelleştirmeleri ~/.bashrc dosyası içerisie yazmamız gerekmektedir. Terminali açtığımızda öncelikle bu dosya çalıştırılacak ve ardından terminalimiz başlatılacaktır.
Örneğin ~/.bashrc içerisine echo Merhaba Dünya
eklersek Şu şekilde gözükecektir.
1. PS1 nedir
PS1 ve PS2 çevresel değişkenleri komut girdiğimiz alanın önünde yazan yazıları düzenler. PS1 normal girdiler için kulanılırken PS2 tamamlanmamış tırnak işaretleri gibi yerlerde bir sonraki satırı beklerken yazılır. çevresel değişkenler export
kullanılarak ayarlanır.
Örneğin PS1 değerimize $ işareti koyduğumuzu varsayalım. Bunun için ~/.bashrc dosyamıza export PS1=$
yazmalıyız.
PS1 için bazı özel işaretler bulunur. Bunların ne işe yaradıklarını aşağıda belirttim.
\u : kullanıcı adı
\h : bilgisayar adı
\w : şu anki dizin (tam yolu)
\W : şu anki dizin (sadece adı)
\n : alt satıra geçme işareti
$ : $ işareti
Örneğin:
Bununla birlikte renkli hale getirebiliriz. Bunun için \[
özel karakteri ile \]
özel karakteri arasına renk kodu yazılmalıdır. Renk kodlarının yaşısı da şu şekildedir.
\033[xx;yy;zz;...m
Burada xx yy ve zz ifadeleri birer sayıdır. Sayılara göre şu özellikleri alırlar. 0 tüm özellikleri devre dışı bırakır.
1-7 yazı türü ile ilgilidir. 31-17 yazı rengi 41-47 yazı arkaplanı ile ilgilidir.
1 kalın 2 ince 3 italik 4 altı çizgi 5 yanıp yönen 6 hızlı yanıp yönen 7 renkleri ters dönmüş.
30 siyah 31 kırmızı 32 yeşil 33 sarı 34 mavi 35 magenta 36 turkuaz 37 beyaz
40 siyah 41 kırmızı 42 yeşil 43 sarı 44 mavi 45 magenta 46 turkuaz 47 beyaz
Örneğin:
2. Alias komutları ve fonksion tanımlama
Aliaslar bir komutun kısaltılmış halini tanımlamak için kulanılır. Aliaslar ~/.bashrc içerisinde tanımlanabilir. Örneğin:
Aliaslar kullanarak bazı uzun komutları kısaltabiliriz.
Benim kulandığım bazı aliaslar:
alias c='clear'
alias e='export'
alias a='alias'
alias t='touch'
alias m='mkdir -pv'
alias r='rm -rfv'
alias x='chmod +x -R'
alias ~='cd ~'
alias ..='cd ..'
alias ...='cd ../../'
alias ....='cd ../../../'
alias gc='git commit'
alias ga='git add'
alias gpsh='git push'
Alias komutu yanında bazı sık kulanılan komutları fonksion tanımlayarak kısaltabiliriz. Örneğin wine ile çalışan bütün uygulamaları kapatmak için ayağıdaki fonksionu tanımladım.
killwine(){
ps aux | grep "\.exe" | grep -v grep | awk '{print $2}' | xargs kill -9 &>/dev/null
killall winedevice.exe &>/dev/null
killall wineserver &>/dev/null
killall winedbg
}
Bu noktada biraz bash programlama bilgisi gerekebilir. Onu da şurada anlattım: Bash dersi
3. Son bölüm
Son bölümde örnek daha iyi anlaşılsın diye git reposunda hangi branchta olduğumuzu gösteren PS1 değerini anlatacağım. Bunun için öncelikle bir fonksion tanımlayıp branch adını çekmemiz gerekiyor.
git_branch_name() {
git branch 2>/dev/null | sed "s/^\* //"
}
export PS1="\[\033[1m\]$$|\u@\h \[\033[0;31m\]\W \[\033[0;35m\](\$(git_branch_name)) \[\033[0;32m\] \$ \[\033[00m\]"