LINUX.ORG.RU

~/.bashrc


0

0

При входе в чистую консоль, все ок. Но вот когда открываю терминал из
под Хов, то файл не отрабатывается (не устанавливаются алиасы ПС1...).

хелп плиз

anonymous

Ответ на: комментарий от dn2010

#!/bin/sh

_______________________
source /etc/profile
^^^^^^^^^^^^^^^^^^^^
Так?
_______________________

PS1="[\A \W]$ "

/usr/bin/setfont -v koi8u_8x16 &> /dev/null;
/bin/loadkeys ru4 &> /dev/null;

echo "locale is 'ru_RU.KOI8-R'";

export PS1

Не помогло :(

anonymous
()
Ответ на: комментарий от JB

слакварь.
и русифицирована нормально...
просто не помню нахрен это там осталось.

я просто хочу через bashrc || /etc/prfile.d/smth.sh
задать PATH, alias'ы, PS1 установить...

а они, заразы в Х не срабатывают.
причем если в Хтерме || rxvt || ... сделать su - someuser, то  все ок

anonymous
()
Ответ на: комментарий от anonymous

>#!/bin/sh

Шынокъ... ты запускаешь bash, он читает ~/.bashrc и видит первую строку, в которой написано, что следующее надо отынтерпретировать в sh. Что он и делает. Я думаю, если ты напишешь там чё-нить типа echo "Превед, чувырла", тебе вывалится эта надпись. А по завершении скрипта, очевидно, завершает свою работу и sh. И ты снова сидишь без export'ов и alias'ов. Так что сноси нафик первую строку и всё.

З.Ы. Про source /etc/profile ничего сказать не могу, но у меня написано . /etc/profile , так что ежели что - можно попробовать.

Laz ★★★★★
()
Ответ на: комментарий от Laz

>Шынокъ...
выбирал бы выражения.

> ты запускаешь bash, он читает ~/.bashrc и видит первую строку, ...
ты внимательно читал? в голой консоли все нормально. Проблема только в Хах (точнее терминалках под Хами).

> А по завершении скрипта, очевидно, завершает свою работу и sh. И ты снова сидишь без export'ов и alias'ов. Так что сноси нафик первую строку и всё.

не очевидно. попробуй расскажешь.

ЗЫ вообщи нифига понять не могу %(

anonymous
()
Ответ на: комментарий от Laz

> Шынокъ... ты запускаешь bash, он читает ~/.bashrc и видит первую строку, в которой написано, что следующее надо отынтерпретировать в sh.

Шынокъ... для bash там написан комментарий.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от dn2010

> source /etc/profile туда напиши.

Этого в .bashrc писать не следует. И другие места есть.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от Laz

> Шынокъ... ты запускаешь bash, он читает ~/.bashrc и видит первую строку, в которой написано, что следующее надо отынтерпретировать в sh. Что он и делает.

подобного бреда я давно не видел ;)

во-первых это комментарий, во-вторых это путь к интерпретатору

JB ★★★★★
()
Ответ на: комментарий от anonymous

попробуй через ~/.bash_profile

воткни туда лишь export PS1

JB ★★★★★
()

man bash

1. When  bash is invoked as an interactive login shell:
 то ищет файлы: 
/etc/profile, ~/.bash_profile, ~/.bash_login, and ~/.profile

2. When an interactive shell that is not a login shell  is  started:
  то ищет файлы: 
/etc/bash.bashrc and ~/.bashrc, 

sdio ★★★★★
()
Ответ на: комментарий от anonymous

> задать PATH, alias'ы, PS1 установить...

Ну, PATH еще можно понять, но alias'ы и PS1 устанавливаются не в profile, а в rc.

> если в Хтерме || rxvt || ... сделать su - someuser, то все ок

Ясно. Значит, ты пишешь-таки не в bashrc, а в bash_profile. Кури ман, когда какой файл исполняется и всё встанет на свои места.

Если кратко:

.bash_profile исполняется логин-шеллом (в консоли и по su - someuser запускается именно он)

.bashrc исполняется _каждым_ запускаемым шеллом, поэтому, помимо прочего, нужно следить, чтобы ненужное не попадало в неинтерактивные шеллы.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

2 watashiwa_daredeska

>Ясно. Значит, ты пишешь-таки не в bashrc, а в bash_profile. Кури ман, >когда какой файл исполняется и всё встанет на свои места. > >Если кратко: > >.bash_profile исполняется логин-шеллом (в консоли и по su - someuser запускается именно он) > >.bashrc исполняется _каждым_ запускаемым шеллом, поэтому, помимо >прочего, нужно следить, чтобы ненужное не попадало в неинтерактивные > >шеллы.

это конечно замечательно... но у меня нет .bash_profile. Есть только .bashrc.

anonymous
()
Ответ на: комментарий от sdio

2 sdio

т.е. как я понимаю, когда запускается xterm, то это второй вариант. и он должен подхватить ~/.bashrc?

если так, то я ваще ничего не понимаю...

anonymous
()
Ответ на: комментарий от anonymous

> это конечно замечательно... но у меня нет .bash_profile. Есть только .bashrc.

Ну, stdio привел более полную выдержку из мана - bash пытается еще кое-что из /etc выполнить, но это сути не меняет - это profile, а не rc.

P.S. Может, заглянешь-таки в ман?

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Ладно... поставим вопрос по другомую:
у меня в /etc/profile.d/ есть куча файлов для настроек.

Например cdrecorder.sh
в нем есть CDR_DEVICE="ATAPI:0.1.0"
export CDR_DEVICE

и эта переменная устанавливается нормально.

Что касается PS1, в файле /etc/profile.d/promt.sh уже не катит

anonymous
()
Ответ на: комментарий от anonymous

У меня работает.

Обрати внимание, что _после_ profile выполняются еще и rc - /etc/bash.basrc _И_ ~/.bashrc (если они есть). Так вот, у меня, например, в /etc/bash.bashrc устанавливается умолчательное значение PS1 (этот файл у меня из пакета поставился), т.о., значение PS1, которое перекрывает значение PS1, устанавливаемое в profile. Если поубирать установку PS1 из _всех_ rc, то работает то, что устанавливается в profile или попадает в bash от родителя.

Доступно?

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Ага, сорри, login bash не исполняет rc, если не указать этого явно в profile.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

sh-3.00$ ls -a | grep bash
.bash_history
sh-3.00$ ls -a | grep profile

sh-3.00$ grep "PS1" /etc/*/*
grep: /etc/apache/ssl.key: Permission denied
grep: /etc/cups/certs: Permission denied
grep: /etc/cups/classes.conf: Permission denied
grep: /etc/cups/cupsd.conf: Permission denied
grep: /etc/cups/printers.conf: Permission denied
grep: /etc/cups/printers.conf.O: Permission denied
grep: /etc/default/getty: Permission denied
grep: /etc/default/getty.modem: Permission denied
grep: /etc/default/uugetty.modem: Permission denied
grep: /etc/default/uugetty.sample: Permission denied
grep: /etc/default/uugetty.sched: Permission denied
grep: /etc/default/uugetty.waitfor: Permission denied
grep: /etc/ntp/ntp.keys: Permission denied
grep: /etc/openldap/slapd.conf: Permission denied
grep: /etc/openldap/slapd.conf.default: Permission denied
/etc/profile.d/promt.sh:        PS1="[\A \W]# "
/etc/profile.d/promt.sh:        PS1="[\A \W]$ "
/etc/profile.d/promt.sh:export PS1
grep: /etc/radiusclient/realms: Permission denied
grep: /etc/radiusclient/servers: Permission denied
/etc/rc.d/rc.S:      PS1="(Repair filesystem) \#"; export PS1
sh-3.00$

Теперь понятно?
У меня _НИГДЕ_ кроме как в /etc/promt.sh PS1 _не определена_
и при этом от не берет ее от туда. Хотя остальные настройки (экспорты), он восринимает нормально:
sh-3.00$ echo $CDR_DEVICE
ATAPI:0,1,0
sh-3.00$ cat /etc/profile.d/cdrecord.sh
#!/bin/sh

CDR_DEVICE=ATAPI:0,1,0
CDR_SPEED=12
CDR_FIFOSIZE=8m

export CDR_DEVICE CDR_SPEED CDR_FIFSIZE

sh-3.00$ echo $PS1
\s-\v\$
sh-3.00$ cat /etc/profile.d/promt.sh
#!/bin/sh

if [ `whoami` == "root" ]; then
        PS1="[\A \W]# "


else
        PS1="[\A \W]$ "
fi

/usr/bin/setfont -v koi8u_8x16 &> /dev/null;
/bin/loadkeys ru4 &> /dev/null;

echo "locale is 'ru_RU.KOI8-R'";

export PS1



anonymous
()
Ответ на: комментарий от anonymous

>>Шынокъ... >выбирал бы выражения.

Сорки, был слегка под впечатлением от нехорошего разговора с товарисчем-редиской одним >:-(. И тему потому наверно не правильно прочёл, мне понялось, что этот скрипт, прописанный в .bashrc, а не сам .bashrc %(

Так вот, попытаюсь понять, что же не так:

>у меня в /etc/profile.d/ есть куча файлов для настроек >/************************/ >Что касается PS1, в файле /etc/profile.d/promt.sh уже не катит

Может я не так понял, но походу парит Вас экспорт PS1. Два варианта решения предложить могу я на данный момент, помогли мне они когда-то. сделать "cat /etc/profile.d/promt.sh >> ~/.bashrc", второй - "echo . /etc/profile.d/promt.sh >> ~/.bashrc".

З.Ы.

Старался быть максимально политкорректным, а то дружки скоро ващще доведут меня :(

Laz ★★★★★
()
Ответ на: комментарий от anonymous

ну, можно порекомендовать strace --- из терминала из под Хов запустить bash и посмотреть какие файлы он читает и в каком порядке.

strace -o /tmp/bash.trace /bin/bash

дождаться появления приглашения ввода, набрать exit и смотреть в файле /tmp/bash.trace все вызовы open().

mky ★★★★★
()
Ответ на: комментарий от anonymous

Тут еще в Инете есть такая фраза

"looks like .bashrc doesn't run if .bash_profile doesn't exist. go figure."

попробуй у пользователя создать .bash_profile, может поможет...

mky ★★★★★
()

А терминал из под Хов точно bash вызывает, а не /bin/sh?

mky ★★★★★
()
Ответ на: комментарий от sdio

sh-3.00$ strace -o logggg rxvt
sh-3.00$ cat logggg | grep open | less
open("/usr/X11R6/lib/tls/i686/libutempter.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/tls/libutempter.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/i686/libutempter.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/libutempter.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)

anonymous
()
Ответ на: комментарий от anonymous

open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libutempter.so.0", O_RDONLY) = 3
open("/usr/X11R6/lib/libutil.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libutil.so.1", O_RDONLY) = 3
open("/usr/X11R6/lib/libXpm.so.4", O_RDONLY) = 3
open("/usr/X11R6/lib/libX11.so.6", O_RDONLY) = 3
open("/usr/X11R6/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
open("/usr/X11R6/lib/libXext.so.6", O_RDONLY) = 3
open("/usr/X11R6/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libdl.so.2", O_RDONLY)   = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/lib/locale/ru_RU.KOI8-R/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU.koi8r/LC_CTYPE", O_RDONLY) = 3
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/gconv/gconv-modules", O_RDONLY) = 3
open("/home/sokolov/.Xauthority", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/locale.alias", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/locale.dir", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/koi8-r/XI18N_OBJS", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/locale.alias", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/locale.dir", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/locale/koi8-r/XLC_LOCALE", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/ru_RU.KOI8-R/app-defaults/Rxvt", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/app-defaults/Rxvt", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/XKeysymDB", O_RDONLY) = 4
open("/usr/X11R6/lib/X11/Xcms.txt", O_RDONLY) = 4
open("/usr/X11R6/lib/libXcursor.so.1.0.2", O_RDONLY) = 4
open("/usr/X11R6/lib/libXrender.so.1", O_RDONLY) = 4
open("/home/sokolov/.icons/whiteglass/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/sokolov/.icons/whiteglass/index.theme", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/whiteglass/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/whiteglass/index.theme", O_RDONLY) = -1 ENOENT (No such file or directory)

anonymous
()
Ответ на: комментарий от anonymous

че та я ничего похожего на bashrc не заметил... %(

anonymous
()
Ответ на: комментарий от anonymous

Тебе что сказали запустить?
>> strace -o /tmp/bash.trace /bin/bash

А ты что запустил?
> strace -o logggg rxvt

По-твоему rxvt == bash ?

sdio ★★★★★
()
Ответ на: комментарий от sdio

блин. протупил...
значит так. rxvt запускает если пускать sh, то bashrc не читается.
если bash то все ок. Но sh это симлинк на bash...
че та я не понимаю, как такое может быть...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.