GNU स्क्रीन विंडो नाम बदलें उपद्रव


13

मैं उन प्राथमिक सर्वरों से पहले से जुड़े एसएसएच कनेक्शनों के साथ स्क्रीन सत्र को पॉप अप करना पसंद करता हूं जिन्हें मैं कार्यालय में प्रशासित करता हूं। मैं इन खिड़कियों को प्रत्येक बहुत संक्षिप्त नाम देता हूं, आमतौर पर 2-4 अक्षर, इसलिए वे उन नामों के साथ मेरी स्क्रीन स्थिति पट्टी में दिखाई देते हैं। तो मेरे पास एक स्क्रीन एंट्री होगी जो दिखती है

0$ jen1 ...

अब, जब मुझे उस सर्वर पर स्विच करने की आवश्यकता होती है और डायरेक्ट्री लिस्टिंग प्राप्त करने के लिए कुछ भी सरल करना पड़ता है, तो वह नाम अचानक फैल जाता है और बन जाता है

0$ ghellings@devjenkins01

प्रत्येक और हर विंडो के लिए ऐसा ही होता है क्योंकि मैं इसे एक्सेस करता हूं, जिससे मेरी स्थिति पट्टी जल्दी से मेरी स्क्रीन की क्षैतिज चौड़ाई को ओवरफ्लो कर देती है। मैं विंडो निर्माण समय पर नाम को लॉक करना चाहूंगा और क्लाइंट एप्लिकेशन को इसे बदलने से रोकूंगा। मैं नहीं चाहता कि कोई भी एप्लिकेशन स्क्रीन विंडो का शीर्षक बदलने में सक्षम हो (काफी लोग क्या पूछ रहे हैं इसके विपरीत)। एक बार जब मैं उस स्क्रीन पर बदलता हूं और कहीं डायरेक्टरी खोलता हूं तो यह विशेष रूप से बोझिल हो जाता है। फिर स्क्रीन टाइटल बन जाता है

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

मैं चाहता हूं कि यह केवल सक्रिय स्थिति को बदले ताकि यह हमेशा या तो पढ़े

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

क्या मेरे लिए विंडो नाम को लॉक करने और इसे बदलने से रोकने का कोई तरीका है?

जवाबों:


8

मुझे आरएचईएल 7 परीक्षण में यह जल्दी मिला और यह मुझे पागल कर देगा। क्या मुझे पता चला करने के लिए एक परिवर्तन किया गया है है /etc/bashrcRHEL 7 में है कि में खिड़कियों के नामकरण का कारण बनता है screenऔर tmuxपरिवर्तन करने के लिए जब भी तरह एक आदेश cdया lsचलाया जाता है। अनुभाग स्क्रीन में *)

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

तो आरएचईएल 7 में परिवर्तन 0] से था ; करने के लिए k PROMPT_COMMAND अनुभाग में।

मैंने एक बग खोलने पर विचार किया था, लेकिन बस इसके आसपास कभी नहीं मिला। मैं आमतौर पर इसे सिर्फ एक नए इंस्टॉलेशन पर मैन्युअल रूप से बदलता हूं।

  • स्वरूपण अद्यतन करने के लिए किए गए परिवर्तन

6

सबसे शायद, आपके पास PROMPT_COMMANDवैरिएबल सेट है जैसे कुछ

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

मैं वास्तव में एक CentOS 7 प्रणाली पर है। यह प्रत्येक आदेश के बाद xterm विंडो शीर्षक सेट screenकरता है , जो विंडो शीर्षक के रूप में उपयोग करता है।

बस PROMPT_COMMANDअपने में परेशान .bashrcया /etc/bashrcइसे सेट न करने के लिए संपादित करें ।


इसे और स्थायी बनाने के लिए नीचे देखें।
गणित

2

यदि आप जांच करते हैं .bashrcया /etc/bashrc, आप देख सकते हैं ifया caseजो संबंधित है screen

मेरे मामले में, यह कुछ इस तरह था:

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

के तहत case $TERM inमें /etc/bashrcफ़ाइल।

समस्या यह थी कि मैं फ़ाइल नहीं था /etc/sysconfig/bash-prompt-screenइसलिए PROMPT_COMMANDतहत elseकिया जाता है।

मैंने अभी एक खाली /etc/sysconfig/bash-prompt-screenफाइल बनाई है , स्क्रीन विंडो के शीर्षक गतिशील रूप से अब और नहीं बदले हैं!


खाली फ़ाइल को निष्पादन योग्य बनाना है या आपको हर बार बैश लॉन्च होने की चेतावनी दी जाएगी (उदाहरण के लिए सभी के लिए लॉगिन)।
गणित
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.