GNU Ekran penceresi yeniden adlandırma sıkıntısı


13

Ofiste yönettiğim birincil sunuculara önceden açılmış SSH bağlantıları içeren bir ekran oturumu açmak istiyorum. Bu pencerelere her birine çok kısa bir ad veriyorum, genellikle 2-4 karakter, bu yüzden ekran durum çubuğumda bu adlarla görünüyorlar. Bu yüzden benzeyen bir ekran girişim olacak

0$ jen1 ...

Şimdi, o sunucuya geçmem ve bir dizin listesini getirme kadar basit bir şey yapmam gerektiğinde, bu isim aniden genişler ve olur

0$ ghellings@devjenkins01

Eriştiğim pencerelerin her biri için de aynı durum söz konusudur, durum çubuğumu ekranımın yatay genişliğini hızla taşar. Pencere oluşturma sırasında adı kilitlemek ve istemci uygulamalarının değiştirmesini önlemek istiyorum. Herhangi bir uygulamanın ekran penceresi başlığını değiştirmesini istemiyorum (birçok insanın ne istediğinin tam tersi). Bu ekrana geçip bir yerde bir dizin açtığımda bu özellikle hantal hale geliyor. Sonra ekran başlığı

 (0*$ ghellings@devjenkins01:/opt/somepackage/software/subdirectory)

Sadece aktif durumunu değiştirmesini istiyorum, böylece her zaman

`0$ jen1` or `(0*$ jen1)`

Pencere adını kilitlememin ve değiştirilmesini önlememin bir yolu var mı?

Yanıtlar:


8

Bunu RHEL 7 testinde erken buldum ve beni deli ediyordu. /etc/bashrcBulduğum şey , RHEL 7'de pencerelerin adının verilmesine screenve tmuxbenzeri bir komut çalıştırıldığında cdveya değişmesine neden olan bir değişiklik olması ls. Bölüm ekranında *)

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
## RHEL 7
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

## RHEL 6
    PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

Dolayısıyla RHEL 7'de değişiklik 0'dan alınmıştır; için k PROMPT_COMMAND bölümünde.

Bir böcek açmayı düşünmüştüm, ama sadece ona hiç ulaşmadım. Genellikle yeni bir kurulumda manuel olarak değiştiririm.

  • Biçimlendirmeyi güncellemek için yapılan değişiklikler

6

Büyük olasılıkla, PROMPT_COMMANDdeğişkenin

printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

Tam olarak bir CentOS 7 sisteminde var. Bu, her komuttan sonra pencere başlığı olarak kullanılan xterm pencere başlığını ayarlar screen.

Ayarlamamak için sadece ayarınızı PROMPT_COMMANDkaldırın .bashrcveya düzenleyin /etc/bashrc.


Bunu daha kalıcı hale getirmek için aşağıya bakın.
matematik

2

Eğer kontrol ederseniz .bashrcya /etc/bashrc, görebileceğiniz ifveya casehangi ilgilidir screen.

Benim durumumda, böyle bir şeydi:

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

altında case $TERM inyer /etc/bashrcdosyası.

Sorun ben /etc/sysconfig/bash-prompt-screençok PROMPT_COMMANDaltında elsekullanılan dosya yoktu oldu .

Sadece boş bir /etc/sysconfig/bash-prompt-screendosya yaptım, sonra ekran pencerelerinin başlıkları artık dinamik olarak değişmiyor!


Boş dosyayı çalıştırılabilir hale getirmeniz gerekir, aksi takdirde bash her başlatıldığında bir uyarı alırsınız (örneğin herkes için girişte).
matematik
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.