Actuellement, le titre de mon terminal/onglet bash est défini en fonction du répertoire dans lequel je me trouve. Par exemple:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
Ce n'est pas très utile si j'ai plusieurs onglets ouverts côte à côte. Par exemple, si j’ai 4 onglets du répertoire ci-dessus ouverts côte à côte, tout ce que je vois est
bob@bobscomputer:~/i/had...
4 fois.
J'aimerais que tous les titres de mes terminaux soient automatiquement réglés sur la dernière partie du chemin. Dans l'exemple ci-dessus, j'aimerais que le titre soit
yesterday
De toute évidence, le titre devrait changer lorsque je change de répertoire. J'aimerais faire cela sans changer mon invite, de sorte que l'invite et le titre du terminal doivent être différents.
Y a-t-il un moyen de faire cela?
Pourquoi voulez-vous le faire sans modifier votre variable PS1? C'est la bonne façon de le faire.
Si vous exécutez ce qui suit, vous obtiendrez ce que vous voulez:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
Ceci prend juste l'invite par défaut:
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
... et en remplaçant \u@\h: \w
par \W
.
Vous pouvez faire la même chose avec n'importe quelle commande qui répercute le code d'échappement correct:
echo -en "\e]0;${PWD##*/}\a"
... mais alors vous seriez constamment en train de vous battre pour l'empêcher de le faire en utilisant PS1 (le meilleur moyen).
Oui. Préférez: \[\e]0;\W\a\]
à votre PS1. Cela ne changera pas l'apparence de vos invites, mais définira automatiquement le titre de votre onglet de terminal sur le nom de base du répertoire de travail en cours.