$ PS1 değişkeni için tam bir referansı nereden bulabilirim?


20

Makinemdeki varsayılan PS1 değişkeni (Kubuntu 13.10) şudur:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

$ PS1 değişkeninin nasıl çalıştığını, en azından yukarıdaki PS1 değişkenini anlamamı sağlayan bir referans arıyorum.


@ RaduRădeanu Şimdi ayrı bir cevaba taşıdım.
Mark Raymond,

Genel bir not olarak PS1, örneğin bir terminaldeki değerini ayarlayarak bununla oynayabilirsiniz PS1="How r u, \u?". Değişiklik sadece siz terminali kapatana kadar devam edecektir.
djvg

Yanıtlar:


24

Referanslar

Şimdiye kadar, Bash isteminde bulunabilecek her şey için tek bir referans olmamıştır - ancak onlarca yıldan beri gelişen ve muhtemelen dağıtılmadan dağıtılmaya kadar değişen bir özellik olduğu için, belki de bu çok fazla bir sorundur. Burada en yararlı bulduğum şeyi özetlemeye çalıştım.

Bu nasıl yapılır en eksiksiz, ama çok uzun ve başıboş. Daha kullanışlı bölümlerden bazıları:

  • Bölüm 2.4 ve 2.5 , (yazdırılabilir) çıkış karakterleri de dahil olmak üzere PS1 ayarının temellerini açıklar.
  • Bölüm 3.4 neden \[ve niçin \]gerekli olduğunu açıklar .
  • Bölüm 6 , istemin rengini ve bir xterm penceresinin başlığını ayarlamak da dahil, kullanmak isteyebileceğiniz tüm ana (yazdırılamayan) çıkış dizilerini açıklar.

Bu rehber${} genel olarak Bash'te nasıl çalıştığını açıklar ve Ubuntu'ya sor sorusu bunun nasıl çalıştığı hakkında biraz daha açıklar debian_chroot.

Bunlar arasında, varsayılan Ubuntu PS1 değişkenindeki her karakterin açıklandığını düşünüyorum.

Ubuntu isteminin açıklaması

İstemde üç bölüm var:

  • \[\e]0;\u@\h: \w\a\] Bir xterm penceresinin başlık çubuğunu ayarlar:

    • \[ yazdırılamayan karakterlerin bir bölümünü başlatır.
    • \e]0; 'set xterm title' için kaçış dizisi (0'dan farklı sayıların diğer xterm özelliklerini ayarlayacağına inanıyorum)
    • \u@\h: \wKullanım için başlık (aşağıya bakın \u, \hve \w)
    • \a başlığın sonunu işaretler
    • \] yazdırılamayan karakterlerin sonunu işaretler
  • ${debian_chroot:+($debian_chroot)}$ debian_chroot ayarlanmışsa parantez içindeki $ debian_chroot değerine genişler. $ Debian_chroot hakkında daha fazla bilgi için bu soruya bakın .
  • \u@\h:\w\$ isteminin kendisi:

    • \u mevcut kullanıcı adına genişler
    • \h geçerli ana bilgisayar adına genişler
    • \w mevcut çalışma dizinine genişler
    • \$genişler #kökü ve $diğer tüm kullanıcılar için

6

İle göre Bash Referans Kılavuzuna , PS1geçerli:

Birincil bilgi istemi dizesi. Varsayılan değer \s-\v\$. Daha önce genişletilen kaçış dizilerinin tam listesi için bkz. Bir İstemi DenetlemePS1 .

Bazıları iyi referanslar olabilir:


Bash kılavuzu PS1 kaçış dizilerini tamamen açıklar: gnu.org/software/bash/manual/bashref.html#Printing-a-Prompt
glenn jackman

@Radu - Teşekkürler, bu daha önce sahip olduğumdan daha da ileri götürdü. Hala içeri ne kadar az bilgi gibi görünüyor \[ve \]bunun için herhangi bir referans var mı - Yine?
Mark Raymond,

@MarkRaymond Size verdiğim iki bağlantıda açıklandı (Linux / Unix için açıklanan bir İstem ve PS1 istemi açıklandı ): \[- bir terminal kontrol dizisini istemi içine yerleştirmek için kullanılabilecek bir dizi yazdırmayan karakter dizisine başlayın; \]- Yazdırılmayan karakter dizisini sonlandır. Sadece zaman ayırın ve dikkatlice okuyun;)
Radu Rădeanu

Ben bir referans arıyordu - Evet, bunu okumak Ne o olmayan baskı karakterler yok. Açık olmasam özür dilerim!
Mark Raymond,


5

ss64.com , bulduğum en iyi referansa sahip görünüyor.

Aşağıdaki değişkenleri açıklar:

\d   The date, in "Weekday Month Date" format (e.g., "Tue May 26"). 

\h   The hostname, up to the first . (e.g. deckard) 
\H   The hostname. (e.g. deckard.SS64.com)

\j   The number of jobs currently managed by the shell. 

\l   The basename of the shell's terminal device name. 

\s   The name of the shell, the basename of $0 (the portion following 
    the final slash). 

\t   The time, in 24-hour HH:MM:SS format. 
\T   The time, in 12-hour HH:MM:SS format. 
\@   The time, in 12-hour am/pm format. 

\u   The username of the current user. 

\v   The version of Bash (e.g., 2.00) 

\V   The release of Bash, version + patchlevel (e.g., 2.00.0) 

\w   The current working directory. 
\W   The basename of $PWD. 

\!   The history number of this command. 
\#   The command number of this command. 

\$   If you are not root, inserts a "$"; if you are root, you get a "#"  (root uid = 0) 

\nnn   The character whose ASCII code is the octal value nnn. 

\n   A newline. 
\r   A carriage return. 
\e   An escape character. 
\a   A bell character.
\\   A backslash. 

\[   Begin a sequence of non-printing characters. (like color escape sequences). This
     allows bash to calculate word wrapping correctly.

\]   End a sequence of non-printing characters.

\[ ... \]Olmayan baskı karakterlerin bir dizi tanımlar. İmleç pozisyonunu doğru takip etmeleri gerekir.

\eSenin istemi başlar bir kaçış dizisi. Buradakilerden daha fazlası (bu sayfadaki "Esc" yi not edin \e).

  • Not: Kaçış dizilerini hiç sevmedim. tputSizin için kaçış kodunu almak için kullanın .

${debian_chroot:+($debian_chroot)}parametre genişletmedir. Buraya bak

  • Bu yazar ($debian_chroot)eğer $debian_chrootaksi bir şey ayarlanır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.