Консоль

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Teapot
Сообщения: 47
ОС: Suse 10.2

Консоль

Сообщение Teapot »

Почему у меня, когда я открываю консоль в KDE, высвечивается вот так: bash-2.05b$, а не alexey@matrix alexey$ как в той консоли, которая открывается по Ctrl+Alt+F1. Где это можно исправить, а то ужасно неудобно... :(
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

Подозреваю, что в домашнем каталоге нет файла .bashrc.
В котором должна быть определена переменная PS1, содержащая внешний вид приглашения.
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Консоль

Сообщение t.t »

(madskull @ Monday, 20 September 2004, 17:51) писал(а):Подозреваю, что в домашнем каталоге нет файла .bashrc.
В котором должна быть определена переменная PS1, содержащая внешний вид приглашения.
Либо файл такой есть, но PS1 в нём не определяется.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

Вот содержимое файла...

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

# /etc/skel/.bashrc:
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/skel/.bashrc,v 1.8 2003/02/28 15:45:35 azarah Exp $

# This file is sourced by all *interactive* bash shells on startup.  This
# file *should generate no output* or it will break the scp and rcp commands.

# colors for ls, etc.
eval `dircolors -b /etc/DIR_COLORS`
alias d="ls --color"
alias ls="ls --color=auto"
alias ll="ls --color -l"

# Change the window title of X terminals
case $TERM in
    xterm*|rxvt|Eterm|eterm)
  PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
    ;;
    screen)
  PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\033\\"'
    ;;
esac

##uncomment the following to activate bash-completion:
#[ -f /etc/profile.d/bash-completion ] && source /etc/profile.d/bash-completion
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

Ну. О чем и базар.

что говорит echo $PS1
?
ArchLinux / IceWM
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

echo $PS1 дает что-то вроде \s-\v$, сейчас не помню точно, дома компьютер.
Так что все-таки подправить надо?...
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Консоль

Сообщение polachok »

cp ~/.bash_profile ~/.bashrc
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Консоль

Сообщение t.t »

(polachok @ Tuesday, 21 September 2004, 6:57) писал(а):cp ~/.bash_profile ~/.bashrc
Здрасьте-нафиг.. С какой это радости? А если bash_profile, к примеру, вот такой:

if [ -f ~/.bashrc ]; then; . ~/.bashrc; fi

(и далее по тексту)? Мало того, что человек свой .bashrc просто затрёт, так этот новоиспечённый будет просто гонять сам себя по кругу, пока всю память не выест.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

Так что делать-то? :)
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Консоль

Сообщение t.t »

(Teapot @ Tuesday, 21 September 2004, 10:53) писал(а):Так что делать-то? :)
Смотря что ві хотите там получить. А вообще man bash на предмет Prompting.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

(t.t @ Tuesday, 21 September 2004, 13:05) писал(а):
(Teapot @ Tuesday, 21 September 2004, 10:53) писал(а):Так что делать-то? :)
Смотря что ві хотите там получить. А вообще man bash на предмет Prompting.



Хочу получить строку вроде вот этой [root@server root]#
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

даю наводку: у меня так
export PS1='[\[\033[01;32m\]\h \[\033[01;34m\]\W\[\033[00m\]]\[\033[01;36m\]\$ \[\033[00m\]'
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Консоль

Сообщение t.t »

(madskull @ Tuesday, 21 September 2004, 11:30) писал(а):даю наводку: у меня так
export PS1='[\[\033[01;32m\]\h \[\033[01;34m\]\W\[\033[00m\]]\[\033[01;36m\]\$ \[\033[00m\]'
А что.. Красиво.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

Спасибо, я попробую.
Это надо вставить в файл ~/.bashrc ?
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

(Teapot @ Tuesday, 21 September 2004, 13:10) писал(а):Спасибо, я попробую.
Это надо вставить в файл ~/.bashrc ?

Именно
ArchLinux / IceWM
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

Большое спасибо
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

Кроме того, не все, наверное, знают, что эта строка вычисляется во время вывода. Поэтому можно делать всякие интересности, например:

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

PS1='До нового года осталось $[$(date -d 2005/01/01 +%s)-$(date +%s)] сек! [\[\033[01;32m\]\h \[\033[01;34m\]\W\[\033[00m\]]\[\033[01;36m\]\$ \[\033[00m\]'

:)
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Консоль

Сообщение Bolverk »

Вообще есть такая специальная дока

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/

:)

А вот ответ на оригинальный вопрос:
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/setps.html
    the PS1 string should be set in .bashrc. this is because non-interactive bashes go out of their way to unset PS1. the bash man page tells how the presence or absence of PS1 is a good way of knowing whether one is in an interactive vs non-interactive (ie script) bash session.

    the way i realized this is that startx is a bash script. what this means is, startx will wipe out your prompt. when you set PS1 in .profile (or .bash_profile), login at console, fire up X via startx, your PS1 gets nuked in the process leaving you with the default prompt.

    one workaround is to launch xterms and rxvts with the -ls option to force them to read .profile. but any time a shell is called via a non-interactive shell-script middleman PS1 is lost. system(3) uses sh -c which if sh is bash will kill PS1. a better way is to place the PS1 definition in .bashrc. this is read every time bash starts and is where interactive things - eg PS1 should go.

    therefore it should be stressed that PS1=..blah.. should be in .bashrc and not .profile.
Спасибо сказали:
Teapot
Сообщения: 47
ОС: Suse 10.2

Re: Консоль

Сообщение Teapot »

даю наводку: у меня так
export PS1='[\[\033[01;32m\]\h \[\033[01;34m\]\W\[\033[00m\]]\[\033[01;36m\]\$ \[\033[00m\]'


Работает, но не совсем корректно :(
Если я даю команду su, то имя так и остается [matrix alexey]$
Если я даю команду su -, то имя становится верным: matrix root #
Open Suse 11.0
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Консоль

Сообщение madskull »

(Teapot @ Tuesday, 21 September 2004, 15:57) писал(а):
даю наводку: у меня так
export PS1='[\[\033[01;32m\]\h \[\033[01;34m\]\W\[\033[00m\]]\[\033[01;36m\]\$ \[\033[00m\]'


Работает, но не совсем корректно :(
Если я даю команду su, то имя так и остается [matrix alexey]$
Если я даю команду su -, то имя становится верным: matrix root #


А это уже другая опера.

su - user
перечитывает скрипты user'а, поэтому ему тоже надо прописать что-то подобное.

а
su user
оставляет окружение без изменения.
ArchLinux / IceWM
Спасибо сказали: