Terminaldeki mevcut çalışma dizinini gizle


133

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

user@system:/folder1/folder2/folder3/folder4$

dosya sistemine ne kadar derin girerseniz, komutları yazmak için o kadar az yer kalır. Bunu sadece şöyle bir şeyi gösterecek şekilde değiştirebilir miyim:

>

Yani, pwdnerede olduğumu göstermek için sadece yazı yazabilirim . ;)


1
Bu bir yorum olmalı ama yorum yapamam, üzgünüm. Geçerli dizini gizlemeye ek olarak, aşağıdaki PS1 değeri görsel olarak bash komutlarınızı güzel bir şekilde export PS1="\n___"
Hello World

Oli'nin çözümleri üzerinde deneyler yaptı. Renk fontları terminalde iyi çalışır: PS1 dışa aktar = '[\ 033 [0; 35m] \ h [\ 033 [0; 33m] \ w [\ 033 [00m]:'
linbianxiaocao

Yanıtlar:


153
export PS1='\u@\h: '

Bu oli@bert:benim istemi için sonuçlanır .

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

export PS1='> '

Bunu, ~/.bashrcoturum açma işlemleri arasında devam ettirmek için dosyanızı sonuna ekleyebilirsiniz .

Ayrıca bazı renklerle de yaratıcı olabilirsiniz. İşte sunucularımda kullandığım şey:

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

Verilmesi (tam bir siyah arka planda görmek daha kolay):

Benim terminalleri

PS1’de kabul edilebilir karakter sözlüğü


2
Ayrıca bilgi isteminin bir parçası olarak yeni satırlara da (\ n) sahip olabilirsiniz, böylece tüm bilgileri ve '>' satırlarını ayrı satırlara koyabilirsiniz.
ak2

İlk olarak bu tür "aşırı" kabuk özelleştirmesini msysGit'te karşıladım, ister inan ister inanma. Hemen bash dünyasına çevrildim. Tüm bilgileri (şu andaki dizinim, o anki şubem Git deposundan, Git indeksinin durumundan ...) çıkmış harikaydı. Yakın zamanda eski bir dizüstü bilgisayara koyduğum Ubuntu kurulumuna benzer bir şey yapmayı planlıyorum (Windows XP ile birlikte).
dgw

3
renkleri ayarlamak için kullanılan format nedir?
Rakib

1
Deneyin @SyedRakibAlHasan echo -e "\e[31mHello World\e[0m"veya echo -e "\033[31mHello\e[0m World"bir terminalde, bu sana bir ipucu vermelidir. kaynak
daka

103

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

Bash prompt ( stefano@linux:~$), görebileceğiniz birkaç istemden yalnızca bir tanesidir:

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

    Değeri adı verilen bir ortam değişkeninde saklanır PS1. Değerini görmek için yazın

    echo $PS1

    Bu sana bir şey verecek

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

    Bunu değiştirmek için değişken için yeni bir değer belirleyebilirsiniz:

    export PS1="\u > "

    Bu, böyle bir istemde sonuçlanacaktır:

    stefano > 
  • PS2 : İkincil isteminiz. Bu bir komut tamamlanmadığında gösterilir. Tip echo "asdve ikincil istemi ters virgül kapatana kadar fazla satır girmek izin verir enter çarptı.

  • PS3 (2) için kullanılan bilgi istemidir.select

  • PS4 için kullanılan istemdir alt metin yığın izlerini (varsayılan: +)

Değişiklikleri kalıcı hale getirmek için, onları ana dizininizin sonuna .bash_profile(veya bu soruya.bashrc bakın ) ekleyin.

Aşağıda, bunları oluştururken kullanabileceğiniz kısa veya tam bir kestirme listesi bulunmaktadır:

  • \a     'Zil' karakteri
  • \A     24 saat
  • \d     Tarih (örneğin, 21 Aralık Salı)
  • \e     'Kaçış' karakteri
  • \h     Ana bilgisayar adı (ilk "." E kadar)
  • \H     Hostadı
  • \j     Çalışmakta olan işlerin sayısı (ps)
  • \l     Mevcut tty
  • \n     Satır besleme
  • \t     Zaman (ss: dd: sn)
  • \T     Zaman (ss: dd: sn, 12s formatı)
  • \r     Satırbaşı
  • \s     Kabuk (yani bash, zsh, ksh ..)
  • \u     Kullanıcı adı
  • \v     Bash sürümü
  • \V     Tam Bash yayın dizesi
  • \w     Geçerli çalışma dizini
  • \W     Mevcut çalışma dizininin son kısmı
  • \!     Tarihte şu anki dizin
  • \#     Komut dizini
  • \$     Kökseniz "#", "$"
  • \\     Değişmez ters eğik çizgi
  • \@     Zaman (am / pm ile 12 saat formatı)

Elbette herhangi bir değişmez dizgeyi ve herhangi bir komutu ekleyebilirsiniz:

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

Nerede $(pwd)pwd "çıkışında" yerine duruyor.

  • Eğer komut değiştirme işlemi kaçınırsa, olduğu gibi \$(pwd), komut isteminin her gösterişinde değerlendirilir, aksi halde, olduğu gibi $(pwd), bash başladığında sadece bir kez değerlendirilir.

Komut isteminizin renkleri göstermesini istiyorsanız, bunu yapmak için bash'ın renk kodlarını kullanabilirsiniz. Kod üç bölümden oluşmaktadır:

40;33;01
  • Noktalı virgülten önceki ilk bölüm metin stilini gösterir.

    • 00 = hiçbiri
    • 01 = kalın
    • 04 = altını
    • 05 = yanıp
    • 07 = Geri
    • 08 = gizli
  • İkinci ve üçüncü bölüm, renk ve arka plan rengidir:

    • 30 = siyah
    • 31 = red
    • 32 = yeşil
    • 33 = sarı
    • 34 = Mavi
    • 35 = kırmızı
    • 36 = mavi
    • 37 = beyaz

Her bölüm, soldan başlayarak varsayılarak çıkarılabilir. yani "1" kalın, "1; 31" kalın ve kırmızı anlamına gelir. Talimattan kaçırarak \33[ve onu sonlandırarak terminalinizin renkli yazdırmasını sağlayabilirsiniz m. 33 veya onaltılık 1B, ASCII işareti "ESCAPE" (ASCII karakter kümesinde özel bir karakter). Örnek:

"\33[1;31mHello World\33[m"

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


Ben eklenmiş export PS1='\[\033[1;31m\]\w\[\033[00m\] \$> 'etmek /etc/bash.bashrcbaşka bir şey ... o oturum başına bir çalışır değiştirmek gibi görünüyordu, ama bunu kalıcı hale görünmektedir olamaz.
Jared Tritsch

8

Başka bir alternatif, çalışma dizin yolunu çok uzadığında kısaltmaktır: terminal komut istemi çalışma dizinini kırpın

İstediğiniz 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 '[%s@%s:%s] ' % (username, hostname, pwd)

Şimdi bir terminalden sınayın:

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

Sonuçta sorun yok ise sadece ~ / .bashrc komutunu ekleyin.


Örneğin ... ~ / short.pwd.py, export ... ~ / .short.pwd.py İkisinin de aynı olması gerektiğini düşünüyorum. Ya her iki yere de fazladan bir emir verdin ya da hiç yapma. Ama bu mükemmel bir cevap ..
MycrofD

7

Sık sık bunu geçici olarak yapmak istiyorum. İş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 birine yardımcı olur.


1

macOS kullanıcıları için:

open ~/.bash_profile

Dosyanın sonuna aşağıdaki satırı ekleyin ve kaydedin.

export PS1='\u:\w\$ '

ana dizinde sonuç:

user: ~$

burada u kullanıcı için geçerli çalışma dizini için w $ $ görüntülenmesini ister

Aşağıdaki stilleri deneyebilirsiniz:

export PS1='$ '

sadece istemi olarak $ olması, başka bir şey yok. sadece gibi:

$ 

0

Bana yardım eden şey şuydu: export PS1 = '$'

Terminali her açtığınızda buna sahip olmak için, 'cd' ve ardından 'gedit .bashrc' ile açabileceğiniz .bashrc komutunun sonuna komutu yazın.

Bu yardımcı olur umarım. Benim için çalıştım.

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.