Anasayfa » nasıl » Bash İsteminizi Özelleştirme (ve Renklendirme)

    Bash İsteminizi Özelleştirme (ve Renklendirme)

    Çoğu Linux dağıtımı, Bash istemini gibi görünecek şekilde yapılandırır @ anamakineadi: dizin $ . Ancak Bash istemini istediğiniz şeyi içerecek şekilde yapılandırabilir ve hatta istediğiniz renkleri seçebilirsiniz.

    Buradaki örnek adımlar Ubuntu 16.04 LTS'de gerçekleştirilmiştir. 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..

    Bilgi İstemi Değişkeni'nin Saklandığı Yer

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

    Geçerli Bash değişkenini görüntülemek için dosyayı açabilirsiniz. Vi, emacs veya rahat edebileceğiniz diğer herhangi bir metin düzenleyiciyi de kullanabilirsiniz, ancak nano'yu örnek metin düzenleyicimiz olarak kullanırız. Bir Terminal açın ve çalıştırın:

    nano ~ / .bashrc

    Aşağıya 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 bilgisi olmayan ikinci değişken şu şekildedir:

    $ Debian_chroot + ($ debian_chroot) \ u @ \ h: \ w \ $

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

    \ U @ \ h: \ \ w $

    \ u kullanıcı adınızı gösterir, @ @ işaretini gösterir, \ h ana bilgisayar adını gösterir (bilgisayar adı), : gösterir: karakter, \ w çalışma dizinini gösterir ve \ $ normal bir kullanıcı hesabınız varsa $ veya kökseniz # gösterir. Yani hepsini bir araya getirerek, kullanıcı adı @ 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ğerlerden daha fazla değişken var..

    Şimdilik nano için metin düzenleyiciyi bırakın, çıkmak için Ctrl + X tuşlarına basın. Size .bashrc dosyanıza yeni bir tane yazmadan önce değişkenlerle nasıl denemeniz gerektiğini göstereceğiz..

    Özel Bash İstemi Nasıl Oluşturulur

    Bash bilgi 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 üzere farklı değerlere ayarlayabilirsiniz. Örneğin, buradaki ilk satır komut isteminizi temel bir "user $" komut istemine uyarlarken ikincisi komut isteminizi temel bir "user: working_directory $" komut istemine ayarlar.

    PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"

    Varsayılan isteminize geri dönmek istiyorsanız, aşağıdaki komutu çalıştırmanız yeterlidir..

    PS1 = $ DEFAULT

    Bu varsayılan ayarları daha önce kaydettiğiniz için Bash, varsayılan istemine geri döndürülecek. Burada yaptığınız değişikliklerin yalnızca geçerli Bash oturumu için geçici olduğunu unutmayın; bu nedenle varsayılan isteminize geri dönmek için her zaman oturumunuzu kapatıp oturum açabilir veya terminal penceresini yeniden açabilir veya yeniden açabilirsiniz. Ancak yukarıdaki satır, bir oturumu kapatmadan veya bir pencereyi kapatmadan zahmetsizce varsayılan Bash isteminize kolayca dönmenizi sağlar.

    Değişkene herhangi bir karakter veya metin ekleyebilirsiniz. Bu nedenle, "Merhaba Dünya" ile varsayılan istemi öneklemek için aşağıdakileri kullanabilirsiniz:

    PS1 = "Merhaba Dünya \ u @ \ h: \ w \ $"

    Şimdi temelleri çözdüğünüze göre, tüm özel karakterlerin ne olduğunu bilmeniz yeterli. Muhtemelen bunlardan birçoğunu umursamayacaksın, ama işte Bash el kitabında göründüğü gibi tam liste:

    • Bir zil karakteri: \ a
    • “Hafta içi Ay Tarihi” biçimindeki tarih (ör. “26 Mayıs Salı”): \ d
    • Biçim strftime (3) 'e iletilir ve sonuç bilgi istemi dizgesine eklenir; boş bir format yerel ayara özgü bir zaman gösterimi ile sonuçlanır. Diş telleri gereklidir: \ D biçimi
    • Bir kaçış karakteri: \ e
    • Ana bilgisayar adı, ilk önce '.': \ h
    • Ana bilgisayar adı: \ 'H
    • Kabuk tarafından o anda 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ı, $ 0 temel adı (son eğik çizgiyi izleyen bölüm): \ s
    • 24 saatlik HH: MM: SS formatında: \ t
    • Zaman, 12 saatlik HH: MM: SS biçiminde: \ T
    • Saat, 12 saatlik am / pm formatında: \ '
    • 24 saatlik HH: MM formatında saat: \ A
    • Mevcut kullanıcının kullanıcı adı: \ u
    • Bash sürümü (örneğin, 2.00): \ v
    • Bash'in sürüm, patchlevel sürümü (örneğin, 2.00.0): \ V
    • Geçerli çalışma dizini, $ HOME ile tilde kısaltılmış ($ PROMPT_DIRTRIM değişkenini kullanır): \ w
    • $ PWD'nin taban adı, $ HOME, tilde ile kısaltıldı: \ W
    • Bu komutun tarihçesi: \!
    • Bu komutun komut numarası: \ #
    • Etkili kullanıcı kimliği 0 ise, #, aksi takdirde $: \ $
    • ASCII kodu nnn sekizlik değeri olan karakter: \ nnn
    • Bir ters eğik çizgi: \\
    • Yazdırılmayan karakter dizisine başlayın. Bu, bir terminal kontrol sırasını istemin içine yerleştirmek için kullanılabilir: \ [
    • Yazdırılmayan karakter dizisini sonlandır: \]

    Bu nedenle, Bash isteminize tarih ve saati eklemek ve çalışma dizinini ikinci bir satıra komut vermek isterseniz, aşağıdaki yapıyı kullanabilirsiniz:

    PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"

    Buradaki köşeli parantezler gerekli değildir, ancak işlerin görsel olarak parçalanmasına ve satırın okunmasını kolaylaştırmasına yardımcı olur. Daha önce ele aldığımız gibi, istediğiniz değişkene herhangi bir metin veya normal karakter ekleyebilirsiniz, bu nedenle sizin için en uygun olanı kullanmaktan çekinmeyin.

    Bilmeniz gereken bir numara daha var: Herhangi bir komutun çıktısını bilgi istemine ekleyebilirsiniz. Bilgi istemi göründüğünde, Bash komutu çalıştıracak ve mevcut bilgileri girecektir. Bunu yapmak için, ikisi arasında çalıştırmak istediğiniz herhangi bir komutu ekleyin. ' karakter. Bu bir kesme işareti değil - bu, klavyenizdeki Sekme tuşunun üstünde beliren mezar aksanıdır..

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

    PS1 = "\ u @ \ h 'uname -s -r' \ w \ $"

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

    PS1 = "('çalışma süresi') \ n \ u @ \ h: \ w $"

    İdeal komut isteminizi birleştirmek için farklı özel karakterler ve komutlarla deneme yapmaktan çekinmeyin.

    Bash İsteminize Renkler Nasıl Eklenir

    Tercih ettiğiniz istemi anladıktan sonra, ona renkler ekleyebilirsiniz. Bu aslında çok basittir, ancak neye baktığınızı anlamadığınızda değişkenin oldukça 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) \ [\ 033 [01, 32 milyon \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01, 34 milyon \] \ \ w [\ 033 [00m \] \ $

    Veya debian_chroot bitlerini bir kez daha kaldırarak:

    \ [\ 033 [01, 32 milyon \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01, 34 milyon \] \ \ w [\ 033 [00m \] \ $

    Bu aslında sadece \ U @ \ h: \ W $ öncekinden değişken, ancak renk bilgisi ile. Gerçekten, onu birkaç bölüme ayırabiliriz:

    \ [033 [01 \; 32m \]\ U @ h \ \ [\ 033 [00m \]: \ [033 [01 \; 34m \]\ w \ [\ 033 [00m \]\ $

    İlk bölüm \ U @ h \ biti, onu yeşile dönüştüren renkli bilgilerden önce gelir. İkincisi : Herhangi bir renklendirmeyi gideren renk bilgilerinden önce gelen karakter. Üçüncü \ w biti, onu maviye çeviren renk bilgisinden önce gelir. Dördüncü \ $ herhangi bir renklendirmeyi gideren renk bilgilerinden önce gelen bit.

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

    İşte bilmeniz gerekenler: Tüm renk kodu bilgilerini aşağıdakiler arasında belirtmelisiniz: \ [  ve \] karakters. Etiketin içinde, her ikisiyle de başlamanız gerekir. \ 033 [ veya \ E [ Bash'e bunun renk bilgisi olduğunu belirtmek için. Her ikisi de \ 033 [ ve \ E [ aynı şeyi yap. \ E [ daha kısa olduğundan kullanmak daha uygun olabilir ancak biz \ 033 [ burada varsayılan olarak kullanılanlarla eşleşir. Etiketin sonunda, ile bitmelisiniz m \ renk etiketinin sonunu belirtmek için.

    Bunu yıkmak, işte her renk etiketinin nasıl görüneceği. Tek fark, gerçek rengi tanımlamak için RENK yerine eklediğiniz bilgilerdir:

    \ [\ 033 [RENKm \]

    Bash, ön plandaki metnin rengini değiştirmenize, metne “kalın” veya “altı çizili” gibi özellikler eklemenize ve arka plan rengini ayarlamanıza olanak tanır.

    İşte ön plan metni için değerler:

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

    Örneğin, mor metin 32 renk kodu olduğundan, \ [\ 033 [32m \]  mor metin için.

    Ayrıca metin için bir özellik de belirleyebilirsiniz. Bu özellik, renk numarasından önce noktalı virgülle (;) ayırarak eklenmelidir. Bu özelliklere sahip metin, farklı terminal emülatörlerinde farklı görünecek.

    İşte metin özelliklerinin değerleri:

    • Normal Metin: 0
    • Koyu veya Açık Metin: 1 (Terminal emülatörüne göre değişir.)
    • Soluk Metin: 2
    • Altı çizili metin: 4
    • Yanıp Sönen Metin: 5 (Bu çoğu terminal emülatöründe çalışmaz.)
    • Ters Metin: 7 (Bu ön ve arka plan renklerini tersine çevirir; geçerli metin siyah bir arka planda beyaz metinse, beyaz arka planda siyah metin görürsünüz.)
    • Gizli Metin: 8

    Aslında normal metin özelliğini eklemeniz gerekmez. Neyse, varsayılan.

    Örneğin, kırmızı metin kod 31, kalın metin ise kod 1 olduğundan, kullandığınız \ [\ 033 [1; 31m \] koyu kırmızı metin için.

    Ayrıca arka plan rengini de belirleyebilirsiniz, ancak arka plan rengine bir özellik ekleyemezsiniz..

    Arka plan renklerinin değerleri:

    • Siyah arka plan: 40
    • Mavi arka plan: 44
    • Mavi arka plan: 46
    • Yeşil arka plan: 42
    • Mor arkaplan: 45
    • Kırmızı arka plan: 41
    • Beyaz arka plan: 47
    • Sarı arka plan: 43

    Örneğin, mavi bir arka plan kod 44 olduğundan, \ [\ 033 [44m \] mavi bir arka plan belirtecekti.

    Hem ön hem de arka plan rengi etiketlerini belirleyebilirsiniz. Örneğin, 42 yeşil bir arka planı temsil eder ve 31 kırmızı metni temsil eder. Bu nedenle, varsayılan istemi yeşil bir arka plan üzerinde kırmızı metin haline getirmek için aşağıdakileri kullanırsınız:

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "

    Burada sadece tek bir arka plan rengini ve ardından burada tek bir ön plan metin rengini belirledik, bu komut isteminin başında başlar ve bilgi istemindeki tüm metne uygulanır. Bununla birlikte, değişkende istediğinizde istediğiniz kadar renkli etiket belirtebilirsiniz, ancak istediğinizde isteğinizin farklı bölümlerini renklendirmek için.

    Arka plan ve ön plan metin renkleri, renk kodunu 00 belirlemediğiniz sürece sizden bilgi istememeye devam eder. Bu etiketi, isteminizi herhangi bir yerinde varsayılana sıfırlamak için değişken içinde de kullanabilirsiniz. Örneğin, aşağıdaki satır, önceki \ $ karakter.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \] \ $ "

    Yeni Varsayılan İsteminizi Nasıl Ayarlayabilirsiniz?

    Renkleri denemeyi tamamladığınızda, geçerli oturumda istediğiniz bir Bash isteminiz olmalıdır. Ancak muhtemelen yeni istemi kalıcı kılmak isteyeceksinizdir, böylece otomatik olarak tüm Bash oturumlarınızda kullanılır..

    Bunu yapmak için, daha önce incelediğimiz .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'i bulun = bölüm. Sadece varsayılan değişkeni özelleştirilmiş değişkeninizle değiştirin. Muhtemelen ayrılmak isteyeceksiniz $ Debian_chroot: + ($ debian_chroot)  Yalnız bit, ancak yine de chroot ortamında değilseniz sürece görünmeyecek.

    Renkli PS1 değişkeninizi altında girin eğer ["$ color_prompt" = evet]; sonra hat. Değişkeni altında renkler olmadan girin Başka 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 ardından çı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 - özel istemi göreceksiniz.