Linux の起動などについて調べてみたところ、ホーム ディレクトリに次のフォルダーが存在しないことに気付きましたprofile.d
。
/home/user/profile.d/ # Doesn't exists
ファイルもありません.bash_profile
:
/home/user/.bash_profile # Doesn't exists
これには何か理由があるのでしょうか?
Ubuntu 15.04、gnome
答え1
短い答え:大丈夫ですよ。
初期化ユーザーファイルは多数あります。なぜなら、ユーザーはコンソールから、対話型または非対話型シェル、さまざまな種類のシェルなど、さまざまな方法でコンピューターアカウントにログインできるからです。これはすべてのユーザーの特権ではありませんが、下位互換性それは複雑になってしまった少し物事。 :-)
ディレクトリ
profile.d
ホームディレクトリの下に置かないでください:
/etc/profile.d
アプリケーション固有の起動ファイルを含むスクリプトが含まれており、起動時にシェルによって実行されます。これはすべてのユーザーに有効なディレクトリであるため、/etc/
各ユーザーのホーム ディレクトリの下ではなく、パスの下に作成されます。ファイル
~/.bash_profile
個人用初期化ファイルの 1 つであり、存在する場合は各ユーザーのホームに保存されます。しかし、それが存在する必要はありません。ログイン シェルを起動するときに実行される bash 固有のコマンドが含まれている必要があります (~/.profile
通常は bash とは異なる構文を理解するさまざまなシェルから読み取ることもできます)。
INVOCATION
のセクションからさらに読むman bash
bash が対話型ログイン シェルとして呼び出されると (...)まずファイルからコマンドを読み込んで実行する
/etc/profile
、そのファイルが存在する場合。そのファイルを読み込んだ後、、、および、
を検索します。~/.bash_profile
~/.bash_login
~/.profile
その順番で、そして読むと 存在し読み取り可能な最初のコマンドから実行する。
したがって、ファイルがある場合、他のファイルのいずれかで呼び出されない (またはソース化されない) と、~/.bash_profile
そのファイルは読み込まれません。~/.profile
ご了承ください
ログイン シェルではない対話型シェルが起動されると、これらのファイルが存在する場合、bash は および からコマンドを読み取って実行し
/etc/bash.bashrc
ます~/.bashrc
。
Ubuntu 12 のいくつかのバージョン (そして確実に 13.10 以降) から、.profile
がソースされています~/.bashrc
。
これにより、ユーザーがソースを予想していなかったログイン シェル (たとえば、
ssh
マシンにログインするときなど) を実行するときに、予期しない動作が発生する可能性があります~/.bashrc
。
参照:
- Bash(それほどではない)初心者ガイドのシェル初期化ファイル
- Ubuntu のデフォルトの ~/.profile が ~/.bashrc をソースとするのはなぜですか?