65 votes

Comment changer le titre de l'onglet actuel du terminal en utilisant uniquement la ligne de commande ?

Aucune des réponses affichées actuellement ne fonctionne/répond à la question.

Conformément à ma question initiale, aucun des deux paramètres PS1 ni PROMPT_COMMAND n'a eu aucun effet.


En utilisant seulement une commande à l'invite de commande, comment puis-je changer le titre de l'onglet actuel du terminal ?

De nombreux messages le suggèrent :

echo -en "\033]0;New terminal title\a"

mais cela ne fait rien.

Aucune des réponses actuelles ne fonctionne (certaines ne répondent pas à la question), donc pour plus de clarté :

  • Une fois que le titre est modifié, je ne veux pas qu'il change si je change de répertoire, etc.
  • Je ne veux pas même sur tous les onglets. Je veux seulement définir le titre de l'onglet dans lequel je lance la commande.
  • Je veux que plusieurs onglets aient chacun un titre différent.

En outre, le PROMPT_COMMAND n'est pas définie dans mes sessions de terminal. Si je l'active :

PROMPT_COMMAND='echo -en "\033]0;New terminal title\a"'

il n'a aucun effet.

Quelle est la commande correcte ?


Pour votre information, la sortie de uname -a est :

Linux d136172 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

39voto

Kelly DC Points 491

De @Maythux, celui-ci fonctionne pour mes besoins de ne pas tenir compte de mon auto-prompt current-directory sur le terminal.

PROMPT_COMMAND='echo -en "\033]0;New terminal title\a"'

Instruction

Changez la chaîne de caractères sur "New Terminal Name" avec $("pwd") :

PROMPT_COMMAND='echo -en "\033]0; $("pwd") \a"'

Le titre sera ainsi automatiquement modifié, même lorsque vous ajoutez un nouvel onglet.


J'utilise le paramètre ci-dessous qui a l'air mieux, vous pouvez aussi jouer à la programmation bash et définir la vôtre.

PROMPT_COMMAND='echo -en "\033]0;$(whoami)@$(hostname)|$(pwd|cut -d "/" -f 4-100)\a"'

Ajoutez ce paramètre à votre ~/.bashrc .

25voto

user455406 Points 11

De https://askubuntu.com/a/774543/455406 une solution spécifique à la base consiste à créer une fonction personnalisée (voir par exemple ce mode d'emploi ) comme

# function to set terminal title  
function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}

qui vous permet d'appeler set-title <name you want to set it to>

12voto

muru Points 180007

Lorsque le PS1 définit le titre, toute tentative de définir le titre à l'aide d'une commande ou de PROMPT_COMMAND échouera, puisque l'invite est imprimée après toutes les autres. Pour cette raison, je préfère garder une invite simple pendant le test des titres ( PS1=$; unset PROMPT_COMMAND ).

11voto

user221266 Points 11

Il est très probable que PROMPT_COMMAND est défini et il écrase votre choix de titre chaque fois que l'invite s'affiche. Essayez de le désactiver, puis de lancer votre commande de titre :

PROMPT_COMMAND=
echo -en "\033]0;New terminal title\a"

7voto

Sjoerd Points 71

Ce fil est peut-être un peu vieux, mais voici une solution qui fonctionne pour moi :

https://blog.programster.org/ubuntu-16-04-set-terminal-title

Il suffit de modifier votre fichier $HOME/.bashrc et d'ajouter la fonction suivante :
set-title(){
ORIG=$PS1
TITLE=" \e ]2;$@ \a "
PS1=${ORIG}${TITLE}
}

Maintenant, chaque fois que vous voulez définir le titre de votre terminal, il suffit d'entrer quelque chose comme :
set-title "le titre de mon terminal génial".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X