ग्नोम-टर्मिनल शीर्षक कैसे बदलें?


165

मेरे पास अपने काम के माहौल में चलने वाले टर्मिनलों के कई उदाहरण हैं, मैं क्या चाहूंगा कि हर एक के लिए एक विशिष्ट शीर्षक निर्धारित किया जाए, ताकि यह स्पष्ट विचार हो कि विशिष्ट टर्मिनल किस उद्देश्य से काम करता है यानी Apache, editing_ini, पोस्टग्रेज आदि ...

बेशक कमांड लाइन से।


वार्ड की टिप्पणी के आगे: शीर्षक-परिवर्तन से बचने के क्रम को भेजने से पहले "PROMPT_COMMAND को अनसेट करना न भूलें" , अन्यथा आपके द्वारा किए गए किसी भी परिवर्तन को अगले शेल प्रॉम्प्ट के रूप में जल्द ही खो दिया जाएगा।
जॉन ग्रीन

KDE के लिए इसी तरह के प्रश्न के लिए, stackoverflow.com/questions/8782159/…
n

ओएस एक्स से उबंटू में स्विच करते समय मेरे पास यह मुद्दा था। मल्टी-टैब सेट-अप के भीतर कस्टम शीर्षक प्राप्त करने के लिए, मैंने इस स्क्रिप्ट केgnome-terminal --load-config साथ मिलकर उपयोग किया है जो मैंने लिखा है।
halfer

3
अपने .bashrc फ़ाइल का अनुसरण करके अपने घर की डायर में जोड़ें # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitleअब आप शीर्षक सेट करने के लिए termttl उपनाम का उपयोग कर सकते हैं जैसेtermttl askubuntu
urmalp

1
"संरक्षित" तो मैं एक उत्तर की आपूर्ति नहीं कर सकता। Gnome3 gnome-terminalडिफ़ॉल्ट है PROMPT_COMMAND=__vte_prompt_command। यह Prefs में मानों का उपयोग करता है। जब कई प्रोफ़ाइल मौजूद होती हैं, तो नया टैब और नई विंडो मेनू आइटम में प्रत्येक प्रोफ़ाइल के लिए एक सबमेनू आइटम होता है। मैनुअल तरीके से, एक नया टर्मिनल टैब खोलने के सही टैब शीर्षक पर क्लिक करें, और चयन करने के लिए है सेट शीर्षक ... । (यह एक अलग उत्तर में इतना आसान पढ़ेगा, लेकिन ...)
रिच

जवाबों:


145
  • सबसे अधिक उपयोगकर्ता का तरीका इसे मेनू टर्मिनल -> "सेट टाइटल ..." से उठा रहा है।

  • हालांकि अन्य तरीके भी हैं, आप भी जारी कर सकते हैं

    gnome-terminal --title="SOME TITLE HERE"
    

    यह वांछित प्रभाव नहीं दे सकता है क्योंकि एक बड़ा मौका है कि आपके .bashrcव्यवहार को अधिलेखित करता है।

  • हमें अंतिम विधि पर लाना, जिसे मैंने बेशर्मी से अपने ऊपर से निकाल दिया .bashrc

    PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
    

एक अतिरिक्त संदर्भ के रूप में, यह मेरे लिए विशेष पंक्ति है .bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

आपको इस कोड को अपने ~ / .bashrc में टिप्पणी करने की आवश्यकता हो सकती है

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

2
प्रभावी होने के लिए आपके द्वारा बताई गई टिप्पणी को हटाने या हटाने की आवश्यकता है!
टॉपलेस

1
@Ward: चलाने के लिए PROMPT_COMMANDएक कार्यक्रम है। PS1और PS1कर रहे हैं शाब्दिक तार प्रदर्शित किए जाते हैं। चलाए जाने वाले कमांड के ऊपर के उदाहरण में echo, जो तब एक स्ट्रिंग को प्रिंट करता है। अधिक जानकारी के लिए देखें man bashया manpages.ubuntu.com/bash करें।
स्लैडेन

29
GNOME टर्मिनल 3.16.2 कहता हैOption "--title" is no longer supported in this version of gnome-terminal.
इवान

10
सूक्ति 3.18.3 पर, मेनू में कोई "सेट शीर्षक" प्रविष्टि नहीं है: /
shadi

2
ऊपर के तार में गॉब्लेडग्यूक द्वारा भ्रमित किसी और के लिए, वे एएनएसआई से बचते हैं चरित्र - उदाहरण के लिए देखें lihaoyi.com/post/…
WillC

65

हर बार जब आप टर्मिनल खोलते हैं तो वार्ड का जवाब बहुत अच्छा होता है। यदि आप बस जल्दी से एक शीर्षक सेट करना चाहते हैं, तो आप केवल स्वयं ही प्रतिध्वनित कर सकते हैं:

echo -ne "\033]0;SOME TITLE HERE\007"

या एक साधारण कार्य करें (अपने अंदर ~/.bashrc), कहेंtermtitle

termtitle() { printf "\033]0;$*\007"; }

जिसे आप चला सकते हैं termtitle some title here


3
या इसी तरह हम बैश उर्फ ​​के रूप में ~ / .bash_aliases में नीचे लाइनों को जोड़ सकते हैं function set_title() { echo -ne "\033]0;${1}\007" } alias title=set_titleऔर फिर उपयोग कर सकते हैं: $ title term_title
murarisumit

11
दुर्भाग्य से मुझे गनोम टर्मिनल 3.6.2 में काम करने के लिए प्रतीत नहीं होता है।
ऑस्टिनमार्टन

1
इसके अलावा xterm 322 या konsole 16.12 में काम करने के लिए प्रतीत नहीं होता है ... मुझे नहीं पता कि क्या कोई नया तरीका है, दुर्भाग्य से :(
n

2
@ 3ocene यह वास्तव में इस मामले में कोई फर्क नहीं पड़ता, वे एक ही बात कर रहे हैं, लेकिन यह एक अच्छी आदत है, क्योंकि उदाहरण के लिए $var_logऔर ${var}_logबहुत अलग चीजें हैं, और अंतर स्क्रिप्ट में कीड़े पैदा कर सकता है।
n

2
अगर यह आपके लिए काम नहीं करता है, तो शायद यह इसलिए है क्योंकि PROMPT_COMMAND var या PS1 var सेट है और इसे ओवर राइड कर रहा है। unset PROMPT_COMMANDया इसे इस तरह सेट करें कि यह शीर्षक भी बदल दे जैसे export PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "$(basename $PWD)"'
gaoithe

32

यदि आप विम संपादक का उपयोग करते हैं, तो आप इस विकल्प को अपने vimrc में भी सक्षम कर सकते हैं:

:set title

जो डिफ़ॉल्ट रूप से अक्षम है। यह फ़ाइल नाम दिखाने वाले शांत टर्मिनल शीर्षक सेट करेगा जिसे आप इस समय संपादित कर रहे हैं और कुछ अन्य चीजें।


26

पूर्णता के लिए, मैं यह जोड़ना चाहूंगा कि आप gnome-terminalइस आदेश का उपयोग करके शीर्षक भी सेट कर सकते हैं :

wmctrl -r :ACTIVE: -N "MyWindowTitle"

आपको पहले पैकेज wmctrlWmctrl स्थापित करें स्थापित करना होगा ।


1
MyWindowTitle टर्मिनल के शीर्षक में दिखाई नहीं देता है। यह दिखाता है कि मैं wmctrl -m कब करता हूं।
सुरेशव

2
ध्यान दें कि wmctrl विंडो शीर्षक को परिवर्तित करता है न कि टैब शीर्षक को, जबकि बच गए वर्ण समाधान टैब शीर्षक को बदल देता है। इसके अलावा, जैसे ही आप टैब के बीच स्विच करते हैं, विंडो शीर्षक वापस मूल टैब शीर्षक में बदल जाता है।
redochka

23

अर्घ, इतने सारे उत्तर ...

मैंने कोशिश की wmctrl, जो लगभग काम कर रहा था, सिवाय इसके कि मैं आइकन शीर्षक को बदलने के लिए नहीं मिल सकता था, कम से कम स्थायी रूप से नहीं।

समस्या यह है कि उबंटू में बैश में PS1 शीर्षक सेट करता है।

डिफ़ॉल्ट PS1 है

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

... जो पहले भागने के क्रम में शीर्षक सेट करता है: \e]0;\u@\h: \w\a

इस प्रकार, दो समाधान हैं:

समाधान 1: PS1 को सरल बनाएं, फिर PROMPT_COMMAND का उपयोग करें

PS1 को कुछ सरल में बदलें:

PS1="\u@\h:\w\$ "

फिर PROMPT_COMMAND का उपयोग करें:

PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'

समाधान 2: सीधे PS1 को संशोधित करें

बस PS1 को नए शीर्षक के साथ संशोधित करें:

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

नमस्ते, मुझे आपका उत्तर बहुत पसंद है। क्या आप ]0;अपने कोड की भूमिका के बारे में बताएंगे ? मुझे लगता है कि मुझे कमांड के echo -e '\007 \033'साथ अर्थ मिला ascii -o... हालांकि मुझे सच में यकीन नहीं है कि वहां क्या हो रहा है ... धन्यवाद ...
isomorphismes

2
@iso \eया \033एस्केप (ESC) कैरेक्टर है, जो एक एस्केप सीक्वेंस शुरू करता है। ]एक ऑपरेटिंग सिस्टम कमांड (OSC) शुरू करता है। एक xterm के लिए, 0;"शीर्षक सेट" का अर्थ है, और \aया \007घंटी (BEL) चरित्र कि ओएससी समाप्त हो जाता है है। अधिक जानकारी: en.wikipedia.org/wiki/ANSI_escape_code#Escape_fterences
wjandrea 15

@wjandrea मैं बराबर भागने पत्र के लिए देख रहा था ( \eऔर \aके लिए) \033और \007लेकिन मैं उन्हें क्योंकि मैं सही कीवर्ड्स गूगल में टाइप करने की नहीं पता था नहीं पा सके निश्चित रूप से। आपके द्वारा दिया गया लिंक भी उपयोगी है। क्या आप कृपया अपनी टिप्पणी को उत्तर में बदल सकते हैं?
सेबमा

10

यदि आप एक Ubuntu उपयोगकर्ता हैं, तो आप HUD का उपयोग करके एक सूक्ति-टर्मिनल टैब का शीर्षक बदल सकते हैं ।

गनोम-टर्मिनल में, HUD को लाने के लिए Alt को हिट करें, पहले कुछ अक्षर टाइप करें, जैसे "tit", एंटर एंटर करें और अपने नए टाइटल में टाइप करें।

यह एक बहुत ही त्वरित विधि है और माउस का उपयोग करने से बचती है।


1
वास्तव में। कीबोर्ड पर हाथ रखता है। मौजूदा शीर्षक प्रदर्शित किया गया है, इसलिए यह तेज़ और आसान है, बस इस पद्धति का उपयोग करके मौजूदा को संशोधित करें।
ब्रेंट फॉस्ट

शीर्षक केवल अंग्रेजी उबंटू के लिए है।
törzsmókus

और पूरा विकल्प हटा दिया गया है :(
törzsmókus

F2कुंजी भी माउस से बचा जाता है।
isomorphismes

@ törzsmókus और फ्रेंच - titre ;)
wjandrea

3

gnome-terminalका उपयोग करके के शीर्षक को बदलने का एक और तरीका है gconftool-2; यह चयनित प्रोफ़ाइल के लिए प्रारंभिक टर्मिनल शीर्षक को बदल देता है , इसलिए आपके पास 'अपाचे', 'संपादन' आदि जैसे शीर्षकों से जुड़े अलग-अलग प्रोफ़ाइल हो सकते हैं, फिर gnome-terminalआप अपने द्वारा निर्दिष्ट टर्मिनल शीर्षक पाने के लिए उपयुक्त प्रोफ़ाइल के साथ लॉन्च करेंगे । यह इसके विपरीत है gnome-terminal --title "name"जो प्रति टर्मिनल शीर्षक को बदलता है, लेकिन प्रोफ़ाइल में निर्दिष्ट प्रारंभिक शीर्षक को प्रभावित नहीं करता है।

आप किसी प्रोफ़ाइल के लिए टर्मिनल का नाम सेट करने के लिए स्क्रिप्ट में निम्नलिखित कमांड का उपयोग कर सकते हैं, और आपको चीजों को याद दिलाने के लिए दिन में निश्चित समय पर टर्मिनल परिवर्तन का नाम हो सकता है:

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

यह डिफ़ॉल्ट प्रोफ़ाइल के लिए है, लेकिन आप अन्य प्रोफ़ाइल के लिए शीर्षक बदल सकते हैं और साथ ही, उदाहरण के लिए, Defaultकिसी अन्य प्रोफ़ाइल में बदल सकते हैं Profile0:

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

मुझे लगा कि शीर्षक को बदलने का यह तरीका उपयोग का है क्योंकि यह स्क्रिप्टिंग में उपयोग किया जा सकता है, या प्रोफ़ाइल के लिए शीर्षक सेट करने के लिए त्वरित कमांड-लाइन तरीके के रूप में। ध्यान दें कि कभी-कभी आपको टर्मिनल को gconftool-2प्रभावित करने के लिए सेटिंग के लिए निर्दिष्ट प्रोफ़ाइल के साथ पुन: लॉन्च करना होगा। के लिए उपलब्ध पूर्ण सेटिंग्स के gnome-terminalसाथ सूचीबद्ध किया जा सकता है gconftool-2 -R /apps/gnome-terminal


3

एक और उपाय कीस्ट्रोक्स को अनुकरण करने के लिए xdotool का उपयोग करना है, हो सकता है कि लिपियों में उपयोगी हो:

  1. सूक्ति-टर्मिनल में एक कीबोर्ड शॉर्टकट सेट करें:

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    उदाहरण के लिए आश्वासन Shift+Ctrl+Y

  2. xdotoolयदि आपके पास पहले से नहीं है तो स्थापित करें :

    sudo apt-get install xdotool
    
  3. आदेशों के निम्नलिखित अनुक्रम (जो आप किसी bash स्क्रिप्ट में भी उपयोग कर सकते हैं) टर्मिनल / टैब शीर्षक सेट करेंगे (रिक्त स्थान छोड़ें \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [वैकल्पिक] आप उदाहरण के लिए एक नया टैब खोलने के लिए xdotool का उपयोग भी कर सकते हैं और उपरोक्त कमांड के साथ शीर्षक का उपयोग कर सेट कर सकते हैं:

    xdotool key ctrl+shift+t
    

    एक नया टैब खोलने से पहले और बाद में सोने के समय को जोड़ने पर विचार करें, उदाहरण के लिए sleep 1(1 सेकंड के लिए प्रतीक्षा करें)।

यह सबसे सुरुचिपूर्ण समाधान नहीं है, लेकिन यह मेरे लिए काम करता है! मेरे मामले में पिछले जवाब काम नहीं आए। मैं Ubuntu 14.04 में सूक्ति-टर्मिनल का उपयोग करता हूं और मैं एक बैश स्क्रिप्ट बनाना चाहता था।


1

शीर्षक में केवल वर्तमान कामकाजी निर्देशिका को प्रदर्शित करने के लिए, अपने '.bashrc' में यह प्रयास करें:

PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

या

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 

0

इसने मेरे गनोम टर्मिनल 3.18.3 में काम किया ।

अपनी .bashrc फ़ाइल को संपादित करें और इस फ़ंक्शन को जोड़ें

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}

sourceअपने .bashrc फ़ाइल को न भूलें

$ source ~/.bashrc

और फिर आप बस अपडेट कर सकते हैं कि आप टर्मिनल शीर्षक को इस तरह बदल सकते हैं:

$ termtitle "MariaDB CLI"

0

मेरा उत्तर नए उत्तर के समान है जो मेरे लिए काम नहीं करता था। सबसे पुराने उत्तर अब काम नहीं करते हैं। मध्य पुराना उत्तर बहुत अधिक टाइपिंग है इसलिए मैंने अपनी ~/.bashrcफ़ाइल में एक फ़ंक्शन बनाया :

function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }

फ़ंक्शन जोड़ने या बदलने के बाद या, यदि आप शीर्षक को दूसरी बार उपयोग में लाना चाहते हैं:

. ~/.bashrc
termtitle Special Projects

अन्यथा एक दैनिक आधार पर बस termtitleएक नए शीर्षक के साथ उपयोग करें ।


-1

यदि कोई भी गरीब आत्मा अपने आप को tcsh का उपयोग करने के लिए मजबूर करती है, तो अपने .cshrc में कुछ इस तरह का प्रयास करें:

set prompt='%{\033]0;%n@%m\007%}%~%# '

स्रोत और अधिक विवरण: http://tldp.org/HOWTO/Xterm-Title-4.html


मेरे जवाब में मतदान क्यों किया गया था, इसके कुछ संकेत अच्छे लगे :-(
spookypeanut

-1

यदि आप gnome 3 का उपयोग कर रहे हैं, तो सुविधाजनक Terminal > Set Titleमेनू विकल्प हटा दिया गया है। आप एक gnome 2 forked टर्मिनल स्थापित कर सकते हैं जिसमें अभी भी "सेट शीर्षक" मेनू विकल्प है, और इसके बजाय इसे चलाएं:

sudo apt-get install mate-terminal

"टर्मिनल" चलाने के बजाय, "मेट टर्मिनल" चलाएं। आपको संभवतः मेट-टर्मिनल भी चुनना चाहिए sudo update-alternatives --config x-terminal-emulator

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.