bash
端末で手動で実行しない限り、対話型端末からソースを取得しません.bashrc
。bash
$ bash
または手動でインポートしてください。
$ source ./.bashrc
または以下を実行してください。
$ st -e bash
これが有用な結果になることを願っています。
$ echo $TERM
st-256color
$ echo $SHELL
/bin/sh
$ readlink /bin/sh
bash
$ shopt login_shell
login_shell off
私はCRUX Linux 3.0を使用していdwm
ますst
。私は試してみましたが、成功しませんでした.bash_profile
。.profile
どんなアイデアがありますか?
答え1
.bash_profileに次のものがあることを確認してください。
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
答え2
なぜ発生しますか?デフォルトのシェルはbashではありませんが、次のようになりますsh
。
$ echo $SHELL
/bin/sh
ほとんどの最新システムでは、sh
これは基本シェルへのシンボリックリンクです。私のDebianを例に挙げてみましょう。
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 1 2012 /bin/sh -> dash
あなたの場合は、以下に説明するようにBUTへsh
のリンクです。bash
man bash
bash が sh 名で呼び出されると、POSIX 標準に準拠しながら、sh の以前のバージョンの起動動作をできるだけ近い模倣しようとします。 [...] shというインタラクティブシェルとして呼び出されると、bashは変数ENVを探し、その値が定義されている場合は展開し、拡張値を読み取り、実行するファイル名として使用します。 ~からshで呼び出されたシェルは、他の起動ファイルからコマンドを読み取って実行しようとしません。, --rcfile オプションが無効です。
そして
--norc
シェルが対話型の場合は、システム全体の初期化ファイル /etc/bash.bashrc とプライベート初期化ファイル ~/.bashrc を読み取って実行しないでください。 このオプションは、シェルがshとして呼び出されるとデフォルトで有効になります。
したがって、デフォルトのシェルなのでsh
読み込ま.bashrc
れません。 .bashrcを使用してデフォルトのシェルをbashに設定しますchsh -s /bin/bash
。