Эксперименты с bash promte. (может кому интересно...)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Cheh
Сообщения: 190
ОС: Mageia

Эксперименты с bash promte.

Сообщение Cheh »

Сегодня появилось время, решил разобраться с приглашением в моей konsole, т.к. меня не устраивало такое приглашение "[cheh@c0-252e-5b24 cheh]# ", согласитесь знать на изусть свой мак адресс на домашней машине мне совсем не к чему. Лезу в /etc/bashrc и вижу там следующее:

Код: Выделить всё

# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# by default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
    umask 002
else
    umask 022
fi

# are we an interactive shell?
if [ "$PS1" ]; then
    case $TERM in
    xterm*)
     PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOST}: ${PWD}\007"'
    ;;
    *)
    ;;
    esac
    [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

    if [ -z "$loginsh" ]; then # We're not a login shell
        for i in /etc/profile.d/*.sh; do
     if [ -x $i ]; then
         . $i
     fi
    done
    fi
fi

unset loginsh

По началу меня смутила следующая строка:

Код: Выделить всё

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

Как я не пытался сменить {HOST} на что нибуть, естественно у меня нечиго не вышло. Повнимательней приглядевшись понял что собака зарыта вот в этой строчке:

Код: Выделить всё

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

а точнее, в её последних буквах:

Код: Выделить всё

\u@\h \W


Немного поигравшись выяснилось выяснилос, что:
/w - название какталога в котором вы находитетсь
/t - время (у меня 15:52:28)
/u - user
/s - shell (в данном случае bash)
/d - date (Птн Июл 29)
/h - host (при чём если вы по каким то причинам не получили ip то будет высвеченно название вашей машины)
/v - version (2.05b)

Вообщем то много копаться не стал, а поэтому так и не узнал как вывести свой локальный ip, может кто подскажет?[CODE]
Спасибо сказали:
MedVed
Сообщения: 112

Re: Эксперименты с bash promte.

Сообщение MedVed »

Интересная задачка.
Самый дурной способ - парсить sed'ом/awk'ом вывод ifconfig eth[x].
Скрипт накидать пока не смогу - надо почитать доки по sed/awk.
Если у тебя получится - поделись кодом, плз.
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Эксперименты с bash promte.

Сообщение madskull »

Вставить это:

Код: Выделить всё

$(ifconfig eth0 | awk '/inet addr/{print$2}' | awk -F: '{print$2}')

в PS1

PS. Да-а, много чего пытаются в промпт вставить, но такого я еще не видал...
ArchLinux / IceWM
Спасибо сказали: