Komut satırı (bash) komut istemini nasıl kısaltabilirim?


Yanıtlar:


241

Yalnızca mevcut terminal örneği için değiştirmek için

Sadece girin PS1='\u:\W\$ 've enter tuşuna basın.


"Kalıcı olarak" değiştirmek için

Gözlerinde farklı ~/.bashrc, aşağıdaki bölümü bulun:

eğer ["$ color_prompt" = evet]; sonra
    PS1 = '$ {debian_chroot + ($ debian_chroot)} \ [\ 033 [01, 32 milyon \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01, 34 milyon \] \ w \ [\ 033 [00m \] \ $ '
Başka
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
fi

Çıkarın @\hve \wbir büyük harfle değiştirin \W, böylece:

eğer ["$ color_prompt" = evet]; sonra
    PS1 = '$ {debian_chroot + ($ debian_chroot)} \ [\ 033 [01, 32 milyon \] \ u \ [\ 033 [00m \]: \ [\ 033 [01, 34 milyon \] \ W \ [\ 033 [00m \] \ $ '
Başka
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $'
fi

Kaydet, çık, terminali kapat ve sonucu görmek için bir başkasına başla.


Ton daha fazla seçenek!

  • Daha fazla seçenek içeren daha kapsamlı bir howto için buraya bakın
  • Bilgi istemini ayarlamak için küçük bir Python komut dosyası kullanmak için bu cevaba bakın , böylece kısaltma yalnızca bir dizin yapısının derinindeyken gerçekleşir.

1
Ayrıca birçok bilgiye sahip olabilirsiniz ... daha sonra, sonunda unix.stackexchange.com/q/88780/10043
Michael Durrant

Bunu küresel yapmanın bir yolu var mı? Başka bir deyişle, başka bir kullanıcıya seslenirsem, bu ayarın kendim için yapılmasını sağlarım, ancak yalnızca kendim için (yani, normalde hesaplarını kullandıkları kullanıcı için değil)?
saat

Hem Linux hem de OSX üzerinde çalışan paylaşımlı bir .bashrc sahibi olmak için, o zamandan beri unix.stackexchange.com/a/127800/10043
Michael Durrant

yani HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>'
Michael Durrant

ancak kullanılacak gerçek kodun cevabına bakınız.
Michael Durrant

104

Bu kodu mevcut terminalde çalıştır

PROMPT_DIRTRIM=3

Şimdi bash istemi sadece son 3 dizin ismini gösterecek. Yalnızca geçerli dizini göstermek için 1'i seçebilirsiniz. GNU belgelerinde daha fazla bilgi bulunmaktadır .

Etki:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Kalıcı olarak yapmak istiyorsanız, aşağıdaki satırı ~/.bashrcbaşlangıçta ekleyin :

PROMPT_DIRTRIM=3

veya sıfırdan büyük bir sayı.


7
Sadece bir yazı grubu: Bu, Bash 4 gerektirir.
Stefan Lasiewski

Güzel ... bunun için bir bach_alias ekledim (işlevi olan) promptdir() { PROMPT_DIRTRIM=$1; }sadece
hayatı

18

Bu benim tercih edilen bilgi istemi ayarım:

eklendi ~/.bashrc

PS1='[\u@\h \W]\$ '    

şuna benziyor:

[user@hostname dirname]$

( $işaretten sonra bir boşlukla )


Her kelime arasına nasıl boşluk eklerim? Ayrıca, boyayabilir miyim?
Daniel Springer,

6

Şahsen bash isteminde sadece geçerli klasörü görmeyi tercih ederim. Bunu aşağıdaki komutla yapabilirim:

PS1='\W\$ '

Her başlangıçtan sonra etkili olmasını istiyorsanız, yukarıdaki komutu ~ / .bashrc dosyasına ekleyin.


1

Bunun süper eski olduğunu biliyorum ama kimse takma ad vereceğimi düşündüğüm bir takma ad oluşturmayı önermedi. Bash Prompt Escape Sequences kullanarak takma ad yaptımshorten

Gelen ~/.bash_aliasesburada sen ihmal veya kısaltması çağrılırken Ayrıca terminali temizlemek tercihine göre değişebilir istemi rengini ayarlamak için $ Mavi Var göreceksiniz.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

OP'nin istenen bilgi dizesini elde etmek için:

alias shorten='PS1="$USER:\W$ "'

Renkleri ~/.bashrckopya olarak tanımladım ve https://wiki.archlinux.org/index.php/Color_Bash_Prompt adresinden yapıştırdım . Bir yan notta ansi kod renkleri nelerdir? Sadece bakmak kafam karıştı.

Blue='\e[0;34m'         # Blue

Bunun için bir adım adım kılavuz çok yararlı olacaktır. Ben nasıl .bash_aliases almak için hiçbir fikrim yok. Teşekkürler
Kayote

2
"" önek gizli bir dizini veya dosyayı gösterir. Tilde "~", $ HOME değişkeninin kısa biçimidir. Yani, "~ / .bash_aliases", "/home/$USER/.bash_aliases" ifadesinin kısa bir şeklidir. ".Bash_aliases" açmak için bir terminal açabilir ve "gedit /home/$USER/.bash_aliases" veya "gedit ~ / .bash_aliases" yazabilir veya ana dizininizde gizli dosyaları göstermek ve doğrudan dosyayı açmak için ctrl-h yazabilirsiniz. . Umarım yardımcı olur. Ayrıca yararlı takma adlar için bir Google araması yapmak isteyebilirsiniz.
Allie Carver

0

Ben bir fonksiyon yazdım sen ihtiyaçlarınıza göre değiştirebilirsiniz:

function termprompt() {
    PS1="${PS1//@\\h/}"     # Remove @host
    PS1="${PS1//\\w/\\W}"   # Change from full directory to last name
}

Bu fonksiyonu ~/.bashrc, PS1çizgi tamamen hesaplandıktan sonra altına veya altına yerleştirin .

Sizden termpromptistediğinizi kısaltmak istediğinizde veya kalıcılığınız termpromptiçin alttan çağrıldığında yazabilirsiniz ~/.bashrc.

Diğer birçok cevaplar üzerinde bu tekniğin avantajı .bashrckutu kurulum PS1dört farklı şekillerde (xterm'den + no-renk, xterm'den + renk, hayır-xterm'den + hiçbir renk, hayır-xterm + renk) içinde. Bu cevap, mevcut dört yöntemi ve muhtemelen gelecekteki yöntemleri de destekliyor.

Diğer bir avantajı, bu yöntemin değişikliklerinizi eklemek için üzerinden geçecek daha az karmaşık kontrol koduna sahip olmasıdı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.