Bash İsteminizi Özelleştirme (ve Renklendirme)

Çoğu Linux dağıtımı Bash istemini aşağıdaki gibi görünecek şekilde yapılandırır username@hostname:directory$ . Ancak Bash istemini istediğinizi içerecek şekilde yapılandırabilir ve hatta istediğiniz renkleri seçebilirsiniz.

Buradaki örnek adımlar Ubuntu 16.04 LTS'de gerçekleştirildi. Varsayılan Bash istemi ve .bashrc dosyasındaki ayarlar biraz farklı olsa da, işlem diğer Linux dağıtımlarında aynı olmalıdır.

İstem Değişkeni Nerede Saklanır?

Bash istemi yapılandırmanız, kullanıcı hesabınızın .bashrc dosyasında saklanır. ~/.bashrc. Yani, kullanıcı adınız bob ise, dosya /home/bob/.bashrc.

Geçerli Bash değişkenini görüntülemek için dosyayı açabilirsiniz. Örnek metin düzenleyicimiz olarak nano'yu kullanacağız, ancak vi, emacs veya rahat olduğunuz başka bir metin düzenleyiciyi de kullanabilirsiniz. Bir Terminal açın ve çalıştırın:

nano ~/.bashrc

Aşağı doğru kaydırın PS1= Bölüm. İlk değişken oldukça karmaşık görünüyor çünkü renk bilgisi içeriyor – bunu daha sonra açıklayacağız. Renk değişkeni olmadan ikinci değişken şu şekildedir:

${debian_chroot:+($debian_chroot)}u@h:w$

Bu hala biraz karmaşık ${debian_chroot:+($debian_chroot)} bit. Bunlar sadece Bash'e Debian chroot ortamı kullanıp kullanmadığınızı ve normalde gösterilmeyeceğini bildirmesini söyler. Bunları yok sayarak, Bash istemi değişkeninin varsayılan yapısı şöyledir:

u@h:w$

u kullanıcı adınızı gösterir, @ @ işaretini gösterir, h ana bilgisayar adını (bilgisayar adı), : şunu gösterir: karakter, w çalışma dizinini gösterir ve $ normal kullanıcı hesabınız için bir $ veya köklüyseniz # belirtir. Yani, hepsini bir araya getirmek, username@hostname:working_directory$.

Bash isteminizi değiştirmek için PS1 değişkenindeki özel karakterleri eklemeniz, kaldırmanız veya yeniden düzenlemeniz yeterlidir. Ancak kullanabileceğiniz varsayılan değişkenlerden daha fazla değişken vardır.

Metin düzenleyiciyi şimdilik bırakın – nano'da, çıkmak için Ctrl + X tuşlarına basın. .Bashrc dosyanıza gerçekten yeni bir tane yazmadan önce değişkenlerle nasıl deneme yapacağınızı göstereceğiz.

Özel Bash İstemi Nasıl Oluşturulur

Bash istemi yapılandırmanız PS1 değişkeninde saklanır. PS1 değişkeninin içeriğini yeni bir değişkene kaydetmek için aşağıdaki komutu çalıştırın:

DEFAULT=$PS1

Şimdi PS1 değişkenini denemek için farklı değerlere ayarlayabilirsiniz. Örneğin, buradaki ilk satır isteminizi temel bir “kullanıcı $” istemine, ikinci satır isteminizi temel bir “kullanıcı: çalışma_dizini $” istemine ayarlar.

PS1="u$ "

PS1="u:w$ "

Varsayılan isteminize geri dönmek isterseniz, aşağıdaki komutu çalıştırın.

PS1=$DEFAULT

Bash, bu varsayılan ayarları daha önce kaydettiğiniz için varsayılan istemine geri yüklenecektir. Burada yaptığınız değişikliklerin yalnızca geçerli Bash oturumu için geçici olduğunu unutmayın, böylece varsayılan isteminize geri dönmek için her zaman oturumu kapatıp tekrar oturum açabilir veya kapatabilir ve yeniden açabilirsiniz. Ancak yukarıdaki satır, bir pencereyi kapatma veya kapatma zorluğu olmadan varsayılan Bash isteminize kolayca geri dönmeyi mümkün kılar.

Değişkene herhangi bir karakter veya metin ekleyebilirsiniz. Bu nedenle, varsayılan istemin önüne “Hello World” eklemek için aşağıdakileri kullanabilirsiniz:

PS1="Hello World u@h:w$ "

Artık temelleri öğrendiğinize göre, tüm özel karakterlerin ne olduğunu bilmeniz gerekir. Muhtemelen bunların çoğunu umursamayacaksınız, ancak Bash kılavuzunda göründüğü gibi tam liste:

  • Bir zil karakteri: a
  • “Hafta içi Ay Tarihi” biçimindeki tarih (ör. “Sal 26 Mayıs”): d
  • Biçim strftime (3) 'e iletilir ve sonuç bilgi istemi dizesine eklenir; boş bir biçim, yerel ayara özgü bir zaman gösterimi ile sonuçlanır. Diş telleri gereklidir: D{format}
  • Bir kaçış karakteri: e
  • Ana makine adı, ilk ‘’ ye kadar. h
  • Ana bilgisayar adı: H
  • Şu anda kabuk tarafından yönetilen işlerin sayısı: j
  • Kabuğun terminal cihaz adının taban adı: l
  • Yeni bir satır: n
  • Bir satır başı: r
  • Kabuğun adı, taban adı $ 0 (son eğik çizgiyi izleyen kısım): s
  • 24 saatlik SS: DD: SS biçiminde saat: t
  • 12 saatlik SS: DD: SS biçiminde saat: T
  • 12 saatlik am / pm formatında saat: @
  • 24 saatlik SS: DD biçiminde saat: A
  • Mevcut kullanıcının kullanıcı adı: u
  • Bash versiyonu (ör. 2.00): v
  • Bash, sürüm + patchlevel sürümü (ör. 2.00.0): V
  • $ HOME bir tilde ile kısaltılmış olarak geçerli çalışma dizini ($ PROMPT_DIRTRIM değişkenini kullanır): w
  • $ HOME tarafından bir tilde ile kısaltılmış $ PWD temel adı: W
  • Bu komutun geçmiş numarası: !
  • Bu komutun komut numarası: #
  • Etkili kullanıcı kimliği 0, #, değilse $: $
  • ASCII kodu nnn sekizlik değeri olan karakter: nnn
  • Ters eğik çizgi: \
  • Yazdırılmayan karakterler dizisine başlayın. Bu, bir terminal kontrol sekansını isteme gömmek için kullanılabilir: (
  • Yazdırılmayan karakter dizisini sonlandırma: )

Bu nedenle, Bash isteminize tarih ve saati eklemek ve çalışma dizinini ikinci bir satıra komuta etmek istiyorsanız, aşağıdaki yapıyı kullanabilirsiniz:

PS1="(d t) u@hnw$ "

Buradaki köşeli parantezler gerekli değildir, ancak işleri görsel olarak parçalamaya ve satırın daha kolay okunmasına yardımcı olun. Daha önce ele aldığımız gibi, istediğiniz değişkene herhangi bir metin veya normal karakter ekleyebilirsiniz, bu yüzden sizin için uygun olanı kullanmaktan çekinmeyin.

Bilmeniz gereken bir tane daha güçlü hile var: Herhangi bir komutun çıktısını bilgi istemine ekleyebilirsiniz. Bilgi istemi görüntülendiğinde, Bash komutu çalıştırır ve mevcut bilgileri doldurur. Bunu yapmak için, ikisi arasında çalıştırmak istediğiniz herhangi bir komutu ekleyin ` karakter. Bu bir kesme işareti değildir; bu, klavyenizdeki Sekme tuşunun üstünde görünen mezar aksanıdır.

Örneğin, Linux çekirdek sürümünü istemde görüntülemek istediğinizi varsayalım. Aşağıdaki gibi bir çizgi kullanabilirsiniz:

PS1="u@h on `uname -s -r` w$ "

Başka bir örnek olarak, sistemin çalışma süresini ve yük ortalamasını, uptime Komut. Çalışma zamanını istemin geri kalanından önce kendi hattına koyan aşağıdaki yapıyı kullanabilirsiniz.

PS1="(`uptime`)nu@h:w$ "

İdeal komut isteminizi oluşturmak için farklı özel karakterleri ve komutları denemekten çekinmeyin.

Bash İsteminize Renk Ekleme

Tercih ettiğiniz istemi anladıktan sonra, ona renk ekleyebilirsiniz. Bu aslında çok basit, ama baktığınız şeyi anlamadıysanız değişkenin çok dağınık ve karmaşık görünmesini sağlar.

Örneğin, öncekinden varsayılan renk istemi değişkeni şuydu:

${debian_chroot:+($debian_chroot)}(33(01;32m)u@h(33(00m):(33(01;34m)w(33(00m)$

Veya, debian_chroot bitlerini bir kez daha kaldırmak:

(33(01;32m)u@h(33(00m):(33(01;34m)w(33(00m)$

Bu aslında sadece u@h:w$ daha önceki değişken, ancak renk bilgileri ile. Gerçekten, birkaç bölüme ayırabiliriz:

(33(01;32m)u@h

(33(00m):

(33(01;34m)w

(33(00m)$

İlk bölüm u@h bit, onu yeşile çeviren renk bilgisinden önce gelir. İkincisi : karakterin önüne gelir. Üçüncüsü w bit, önce maviye dönüşen renk bilgileri. Dördüncüsü $ bit, öncesinde herhangi bir renklendirmeyi kaldıran renk bilgileri.

Kendi renk etiketlerinizi nasıl oluşturacağınızı anladıktan sonra, Bash'inizin istediğiniz bölümlerine istediğiniz renkleri ekleyebilirsiniz.

İşte bilmeniz gerekenler: Renk kodu bilgilerinin tamamını ( ve ) characters. Etiketin içinde şunlardan biriyle başlamanız gerekir: 33( veya e( Bash'e bunun renk bilgisi olduğunu belirtmek için. Her ikisi de 33( ve e( aynı şeyi yap. e( daha kısadır, bu nedenle kullanımı daha uygun olabilir, ancak 33( burada varsayılan olarak kullanılanla eşleşir. Etiketin sonunda, m renk etiketinin sonunu belirtmek için.

Bunu parçalara ayırarak, her renk etiketinin nasıl görüneceğine bakalım. Tek fark, gerçek rengi tanımlamak için RENK yerine eklediğiniz bilgilerdir:

(33(COLORm)

Bash, ön plan metninin rengini değiştirmenize, metne “kalın” veya “alt çizgi” gibi nitelikler eklemenize ve bir arka plan rengi ayarlamanıza olanak tanır.

Ön plan metninin değerleri şunlardır:

  • Siyah: 30
  • Mavi: 34
  • Mavi: 36
  • Yeşil: 32
  • Mor: 35
  • Kırmızı: 31
  • Beyaz: 37
  • Sarı: 33

Örneğin, mor metin renk kodu 32 olduğundan, (33(32m) metin için arka plan.

Metin için bir öznitelik de belirleyebilirsiniz. Bu öznitelik, noktalı virgülle (;) ayrılmış renk numarasından önce eklenmelidir. Bu özelliklere sahip metinler farklı terminal emülatörlerinde farklı görünecektir.

Metin özelliklerinin değerleri şunlardır:

  • Normal Metin: 0
  • Kalın veya Açık Metin: 1 (Terminal emülatörüne bağlıdır.)
  • Loş Metin: 2
  • Altı çizili Metin: 4
  • Yanıp Sönen Metin: 5 (Çoğu terminal öykünücüsünde çalışmaz.)
  • Ters Metin: 7 (Bu, ön plan ve arka plan renklerini tersine çevirir, böylece geçerli metin siyah bir arka plan üzerinde beyaz metinse, beyaz bir arka plan üzerinde siyah metin görürsünüz.)
  • Gizli Metin: 8

Aslında normal metin özelliğini eklemenize gerek yoktur. Her neyse, varsayılan budur.

Örneğin, kırmızı metin kod 31 ve kalın metin kod 1 olduğundan, (33(1;31m) kalın kırmızı metin için.

Ayrıca bir arka plan rengi de belirtebilirsiniz, ancak arka plan rengine bir özellik ekleyemezsiniz.

Arka plan renklerinin değerleri şunlardır:

  • Siyah arka plan: 40
  • Mavi arka plan: 44
  • Camgöbeği arka plan: 46
  • Yeşil arka plan: 42
  • Mor arka plan: 45
  • Kırmızı bir arka plan: 41
  • Beyaz arka plan: 47
  • Sarı arka plan: 43

Örneğin, mavi bir arka plan kod 44 olduğundan, (33(44m) mavi bir arka plan belirtir.

Hem ön plan hem de arka plan rengi etiketleri belirtebilirsiniz. Örneğin, 42 yeşil bir arka planı ve 31 kırmızı metni temsil eder. Bu nedenle, varsayılan istemin yeşil bir arka plan üzerinde kırmızı metin olmasını sağlamak için şunu kullanırsınız:

PS1="(33(42m)(33(31m)u@h:w$ "

Burada, istemin başında başlayan ve istemdeki tüm metne uygulanan tek bir arka plan rengi ve ardından tek bir ön plan metin rengi belirleriz. Ancak, isteminizde istediğiniz gibi farklı bölümleri renklendirmek için değişkende istediğiniz kadar renk etiketi belirtebilirsiniz.

Renk kodu 00 renk bilgilerini temizle belirtmedikçe, arka plan ve ön plan metin renkleri istemi geçmeye devam eder. İsterseniz biçimlendirmeyi varsayılan ayarlara sıfırlamak için bu etiketi değişken içinde de kullanabilirsiniz. Örneğin, aşağıdaki satır, $ karakter.

PS1="(33(42m)(33(31m)u@h:w\(33(00m)$ "

Yeni Varsayılan İsteminizi Ayarlama

Renkleri denemeyi bitirdikten sonra, geçerli oturumda beğendiğiniz bir Bash istemine sahip olmalısınız. Ancak muhtemelen bu yeni istemi kalıcı hale getirmek istersiniz, böylece tüm Bash oturumlarınızda otomatik olarak kullanılır.

Bunu yapmak için, daha önce baktığımız .bashrc dosyasındaki PS1 değişkeninin içeriğini değiştirmeniz yeterlidir.

.Bashrc dosyasını tercih ettiğiniz metin düzenleyicide açın, şöyle:

nano ~/.bashrc

Aşağı kaydırın ve PS1 = bölümünü bulun. Varsayılan değişkeni özelleştirilmiş değişkeninizle değiştirmeniz yeterlidir. Muhtemelen ayrılmak isteyeceksiniz ${debian_chroot:+($debian_chroot)} Bununla birlikte, yalnızca bitler – yine de bir chroot ortamında değilseniz, görünmezler.

Renkli PS1 değişkeninizi if ( "$color_prompt" = yes ); then hat. Değişkeni renksiz olarak else hat.

Dosyayı kaydedin ve metin düzenleyicinizi kapatın. Örneğin, dosyayı nano'ya kaydetmek için Ctrl + O tuşlarına basın, Enter tuşuna basın ve çıkmak için Ctrl + X tuşlarına basın.

Bir dahaki sefere yeni bir Bash kabuğu başlattığınızda (örneğin, terminalde oturum açarak veya yeni bir terminal penceresi açarak), özelleştirilmiş isteminizi görürsünüz.

LEAVE A REPLY

Please enter your comment!
Please enter your name here