Jak automatycznie ustawić tytuł terminala na nazwę katalogu bez ścieżki


11

Obecnie mój tytuł terminala / karty bash jest ustawiony na podstawie katalogu, w którym się znajduję. Na przykład:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

Nie jest to bardzo przydatne, jeśli mam wiele otwartych kart obok siebie. Na przykład, jeśli mam 4 zakładki powyższego katalogu otwarte obok siebie, widzę tylko

bob@bobscomputer:~/i/had...

4 razy.

Chciałbym, aby wszystkie moje końcowe tytuły były ustawione automatycznie na ostatnią część ścieżki. W powyższym przykładzie chciałbym, aby tytuł był

yesterday

Oczywiście tytuł powinien się zmienić, kiedy zmieniam katalogi. Chciałbym to zrobić bez zmiany pytania, więc pytanie i tytuł terminala powinny być inne.

Czy jest na to sposób?


Odpowiedzi:


12

Dlaczego chcesz to zrobić bez modyfikowania zmiennej PS1? To jest właściwy sposób, aby to zrobić.

Jeśli wykonasz następujące czynności, otrzymasz to, co chcesz:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

To jest po prostu domyślny monit:

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\]\$ "

... i zastępowanie \u@\h: \wz \W.

Możesz zrobić to samo z dowolnym poleceniem, które powtarza odpowiedni kod ucieczki:

echo -en "\e]0;${PWD##*/}\a"

... ale wtedy nieustannie walczysz z bashem, aby powstrzymać się od robienia tego przy użyciu PS1 (najlepszy sposób).


2
Dzięki - nie zdawałem sobie sprawy, że PS1 niezależnie ustawia tytuł i monit. W moim .bashrc, w przypadku „$ TERM” w xterm * | rxvt *), ustawiam PS1 = „[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1”, i robi dokładnie to, co chciałem.
Staring Frog

To pytanie dobrze wyjaśnia, co to wszystko gobbledygook na
congusbongus

3

Tak. Przygotuj: \[\e]0;\W\a\]na PS1. Nie zmieni to wyglądu podpowiedzi, ale automatycznie ustawi tytuł zakładek terminalu na nazwę basenową bieżącego katalogu roboczego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.