Czego mama nie powiedziała Ci o znaku zachęty

Niby rzecz z pozoru błaha. Ale czy przywiązujesz uwagę do tego, jak wygląda znak zachęty w linii poleceń? Nie? Ja także nigdy się nad tym nie zastanawiałem. Do czasu. Sam nie wiem czemu, ale z uporem godnym maniaka zacząłem przyglądać się bliżej znakowi zachęty. Taki prefekcjonizm
.
Zakres moich poszukiwać ograniczyłem tylko do Basha. Żeby zmienić wygląd znaku zachęty, wystarczy ustawić zmienną środowiskową PS1 i zresetować terminal. Zazwyczaj ustawienie zmiennej odbywa się w pliku konfiguracyjnym Basha (w moim przypadku ~/.bash_login).
Jakie informacje mogą się pojawić w znaku zachęty? Aktualna godzina i data w różnych formatach, nazwa komputera, login użytkownika, bieżący katalog roboczy. Ponieważ już prawie nikt nie używa monitorów czarnobiałych, to warto także pokolorować znak zachęty.
Ostatecznie zdecydowałem się na poniższy wariant:
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ " |

Co tam dobrego można znaleźć? Na pierwszym miejscu login użytkownika oraz nazwa komputera, na którym obecnie znajduje się. Jest to o tyle istotne, gdyż często pracuję zdalnie na innych komputerach i wolałbym ich nie pomylić przez przypadek. Następnie kolorem niebieskim oznaczony jest bieżący katalog. Tutaj miałem dylemat. Czy pokazywać całą ścieżkę do np. ~/Library/Widgets, czy tylko nazwę bieżącego katalog? Zdecydowałem się pokazywać całą bieżącą ścieżkę.
PS. Nowy rok, nowe postanowienia i nowy layout na blogu
. Smacznego.
Aktualizacja (10/08/2010)
Zacząłem używać jednak coś bardziej wymyślnego. Linia poleceń zajmuje dwie linijki, ale pokazuje za to:
- bieżący branch gita,
- cały bieżący katalog,
- kod wykonania ostatniego polecenia (na czerwono, jeśli ostatnie polecenie zakończyło się błędem),
- godzinę.
if [ -f /etc/vanity-hostname ] then PROMPT_HOST_SEG="$(cat /etc/vanity-hostname | sed -e 's/\..*$//')" else PROMPT_HOST_SEG='\h' fi function promptcmd() { LASTEC=$? GITBRANCH=`git symbolic-ref HEAD 2> /dev/null`; GITEC=$? case $TERM in xterm*) local TITLEBAR='\[\033]0;\u@\h:\w\007\]' ;; screen*) local TITLEBAR='\[\033k\033\\\]' ;; *) local TITLEBAR='' ;; esac # PS1="$TITLEBAR\t \j ${ANSI_RESET}${ANSI_BLUE}\w " PS1="$TITLEBAR\t \j \[\e[0m\e[34m\]\w " if [ $LASTEC -ne 0 ]; then PS1="$PS1\[\e[1m\]\[\e[31m\]$LASTEC\[\e[0m\] " fi PS1="$PS1\n" if [ $GITEC -eq 0 ]; then PS1="$PS1\[\e[36m\][${GITBRANCH#refs/heads/}] " fi PS1="$PS1\[\e[32m\]\u@${PROMPT_HOST_SEG}" if [ -z $WINDOW ]; then true PS1="${PS1} " else PS1="${PS1}($WINDOW) " fi PS1="$PS1\$\[\e[0m\] " } export PROMPT_COMMAND=promptcmd export EDITOR=`which vim` export HISTIGNORE="&:ls:[bf]g:exit" |


Nazywam się
Wiktor Gworek
i jestem gospodarzem tego bloga.