44

新しくインストールした Arch Linux を実行しています。(bash を実行している) ユーザーにログインし、.bashrc のエイリアスを使用しようとすると、「コマンドが見つかりません」というエラーが表示されます。しかし、「bash」コマンドを使用して bash を再入力すると、コマンドは正常に機能します。

はい、私はすでに bash にいます。

最初の環境:

SHELL=/usr/bin/bash

env bash を実行した後、残ります。

SHELL=/usr/bin/bash

そのため、どこに問題があるのか​​ よくわかりません。

4

2 に答える 2

85

詳細については、「bash(1)」の INVOCATION セクションを参照してください (これは bash のマニュアル ページです。 を使用しますman bash)。ログイン時の最初のシェルは「ログイン シェル」です。これは、.bashrcファイルがソース化されていないことを意味します。2 番目の呼び出しでは、対話型シェルが作成.bashrcされます。

ファイルの内容を常に.bashrc処理したい場合は、次の行をファイルに追加して、.bash_profileそのファイルがまだ存在しない場合は作成します。

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

そのマニュアル ページによると、bash は「[...] 、、、およびをこの順序で検索し~/.bash_profile、存在して読み取り可能な最初のコマンドからコマンドを読み取り、実行します。」ローカル システムの規則とポリシーによって、これらのファイルのどれが既に存在するかが決まります。~/.bash_login~/.profile

注意: ホーム ディレクトリに新しい を作成すると、既に存在するまたはファイル内のコマンドの読み取りと実行が妨げられ、その後のログインの動作がさらに変化する.bash_profileという意図しない副作用が生じる可能性があることに注意してください。.bash_login.profile

于 2013-08-23T02:18:34.017 に答える
5

~/.profile~/.bash_loginおよび~/.bash_profileファイルを見ましたか?

于 2013-08-23T02:07:25.957 に答える