Geçerli çalışma dizinini terminale gizle

112

Varsayılan olarak, terminal istemi şöyle bir şey gösterir:

[email protected]:/folder1/folder2/folder3/folder4$

dosya sistemine girdiğinizde, komutları yazmak için daha az alan kalıyor. Bunu yalnızca aşağıdaki gibi göstermek için değiştirebilir miyim:

>

Yani, nerede olduğumu göstermek için pwd yazabilirim. ;)

    
sordu Theodor 09.12.2010 10:16

5 cevap

129
export PS1='\[email protected]\h: '

Bu, mesajım için [email protected]: sonucunu veriyor.

Gerçekten istediğiniz gibi minimalist bir şey istiyorsanız, şunu deneyin:

export PS1='> '

Bunu, girişler arasında kalmasını sağlamak için ~/.bashrc dosyanızın sonuna ekleyebilirsiniz.

Ayrıca bazı renklerle de reklam alabilirsiniz. İşte benim sunucularda kullanıyorum:

export PS1='\[3[0;35m\]\h\[3[0;33m\] \w\[3[00m\]: '

Verme (tam siyah arka plan üzerinde görmek daha kolay):

PS1'de kabul edilebilir karakterlerin sözlüğü

    
verilen cevap Oli 09.12.2010 10:22
87

Sadece Oli'nın cevabını genişletmek için (ve bu kısa el sembolleri için bir yer imine sahibim):

Bash istemi ( [email protected]:~$ ) yalnızca birkaç istemin ilkidir görebilirsiniz:

  • PS1 : Bir kabuk açtığınızda gördüğünüz varsayılan komut

    Bu değer PS1 adlı bir ortam değişkeninde saklanır. Değerini görmek için türü

    echo $PS1

    Bu size bir şey verecek

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

    Bunu değiştirmek için değişkeni için yeni bir değer ayarlayabilirsiniz:

    export PS1="\u > "
    

    Bu, aşağıdaki gibi bir soruna neden olur:

    stefano > 
    
  • PS2 : İkincil isteminiz. Bir komut bitmediğinde bu gösterilir. % Co_de% yazın ve enter tuşuna basın, ikincil istem daha fazla girmenizi sağlar Ters virgülleri kapatana kadar çizgiler.

  • PS3 , % için kullanılır. co_de% (2)

  • PS4 , stack izleri (varsayılan: echo "asd )

Değişiklikleri kalıcı hale getirmek için onları select sonuna eklersiniz (veya + , bkz. bu soruya ) ev dizini.

İşte, bunları oluştururken kullanabileceğiniz kısa yolun kısa bir tam listesi:

  • .bash_profile 'zil' karakteri
  • .bashrc 24 saat Süre
  • \a Tarih (ör. Sal Aralık 21)
  • \A 'Çıkış' karakteri
  • \d Ana makine adı (ilk ".") kadar
  • \e Ana makine adı
  • \h Şu anda çalışan iş sayısı (ps)
  • \H Geçerli tty
  • \j Satır besleme
  • \l Saat (ss: dd: ss)
  • \n Süre (ss: dd: sn, 12 saat biçimi)
  • \t Satır başı
  • \T Kabuk (ör. bash, zsh, ksh ..)
  • \r Kullanıcı Adı
  • \s Bash sürümü
  • \u Tam Bash yayın dizesi
  • \v Geçerli çalışma dizini
  • \V Geçerli çalışma dizininin son bölümü
  • \w Geçmişte geçerli dizin
  • \W Komut dizini
  • \! Kök ise bir "#", başka "$"
  • \# Literal Ters Eğik çizgi
  • $ Süre (am / pm ile 12 saat biçimi)

Elbette herhangi bir değişmez dize ve herhangi bir komut ekleyebilirsiniz:

export PS1="\u $(pwd) > "

\ değerinin "pwd.

çıktısının olduğu yerde duruyor.

  • Komut ikamesi \@ 'de olduğu gibi kaçarsa, bu komut istemi her görüntülendiğinde değerlendirilir, aksi halde $(pwd) ' de olduğu gibi değerlendirilir, ancak bash başlatıldığında bir kez değerlendirilir.

İstenirse renklerin renklendirilmesini istiyorsanız, bunu yapmak için bash'ın renk kodlarını kullanabilirsiniz. Kod üç bölümden oluşur:

40;33;01
  • Noktalı virgülden önceki ilk kısım metin stilini temsil eder.

    • 00 = none
    • 01 = kalın
    • 04 = alt çizgi
    • 05 = yanıp
    • 07 = geri
    • 08 = gizli
  • İkinci ve üçüncü kısım, renk ve arka plan rengidir:

    • 30 = siyah
    • 31 = kırmızı
    • 32 = yeşil
    • 33 = sarı
    • 34 = Mavi
    • 35 = kırmızı
    • 36 = camgöbeği
    • 37 = beyaz

Soldan başlayarak varsayarak her bölüm ihmal edilebilir. yani "1" kalın anlamına gelir, "1; 31" kalın ve kırmızı anlamına gelir. Ve terminalinizi $(pwd) ile komuttan kaçarak ve $(pwd) ile sonlandırarak renkli baskı yapardınız. Onaltılı olarak 33 veya 1B, ASCII "ESCAPE" (ASCII karakter kümesindeki özel bir karakter) işaretidir. Örnek:

"[1;31mHello World[m"

"Merhaba Dünya", parlak kırmızı renkte yazdırır.

    
verilen cevap Stefano Palazzo 21.12.2010 22:57
6

Başka bir alternatif, çalışma dizini yolunu çok uzun sürdüğü zaman kısaltmaktır: terminal komut istemi çalışma dizinini kırpın

  

İstenilen kırpma mantığını uygulayan küçük bir python betiği oluşturun.

     

Örnek: ~ / short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%[email protected]%s:%s] ' % (username, hostname, pwd)
     

Şimdi test edin, bir terminalden:

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'
     

Eğer sonuçtan memnunsanız, sadece ~ / .bashrc komutunuza ekleyin.

    
verilen cevap Olivier Lalonde 22.12.2010 01:26
4

Sıklıkla bunu geçici olarak yapmak isterim. İşte yaptığım şey:

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

Umarım bu birilerine yardımcı olur.

    
verilen cevap Joe Codeswell user601770 27.03.2013 23:33
0

Bana yardımcı olan şey: ihracat PS1 = '$'

Terminali her açışınızda buna sahip olmak için, komutun .bashrc sonunda 'cd' ve ardından 'gedit .bashrc' ile açabileceğiniz komutu yazınız.

Bunun yardımcı olacağını umuyorum. Benim için çalıştım.

    
verilen cevap Arka Mitra 05.07.2018 21:36

Etiketlerdeki diğer soruları oku