ターミナルを開くときに.profileが取得されないのはなぜですか?


36

Ubuntu 14.04.1 LTSをインストールしました。

.profileによると、

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

〜/ .bash_profileまたは〜/ .bash_loginはありません。

ターミナルを開いたときに.profileをソースしていないようです。

  1. ターミナルを開くときに.profileをソースしないのはなぜですか?
  2. 供給されていないのになぜ.profileがあるのですか?
  3. 新しいターミナルが開かれたときに何がソースされているかをどのように知る/制御するのですか?
  4. 新しいターミナルが開かれたとき、それは「ログイン」をしますか?
  5. パスに$ HOME / binを追加するのに適した場所はどこですか?.bashrc?.profileのコードが同じであるため、問題が発生しますか?

回答:


34
  1. 通常、端末はデフォルトではログインシェルを実行しません。また、通常、ソースを実行するログインシェルを実行するオプションもあります.profile
  2. ログインシェルの動作を制御します。
  3. シェルに依存します。についてはbashスタートアップファイルのセットを参照してください。
  4. 何らかの意味ではありません(ログインレコードの更新など)。
  5. binin という名前のフォルダーがある場合、Ubuntu $HOMEのデフォルト.profileではそれがに追加されますPATH。以来.profile(でも、GUIのログインで)ログイン時に供給され、それはあなたの一部であるべきPATH再ログイン後に開始した非ログインシェルのため。ディレクトリがに2回表示される場合、それは間違いではありません。詳細についてはPATHこのU&Lの質問を参照してください。

3
OK、今は理にかなっています。の変更を確認するには、GUIに再ログインする必要があります.profile
B七つの

1
@BSevenは、コマンドラインシェルごとにいつでも手動でソースできます:. .profileまたはsource .profile
ムル14

. .profileかっこいいし、今まで見たことがない。期間コマンドに関する多くの情報が見つかりませんでした。他の便利なショートカットへの参照とリンクを提供できますか?ありがとうございました!
B七つの

1
@BSeven .やなどのシェルコマンドの場合source、たとえばhelp:を使用できますhelp .。一般に、TLDP Bash初心者ガイドの第3章を参照してください。Bash初心者向けガイドは、一部の場所で多少古くなっていますが、出発点に適しています。または、他の回答の1つにある他のリンクを参照してください。
ムル14


8

デフォルトプロファイルを編集する必要がありました。ターミナルで、[設定]> [プロファイル]> [編集]> [コマンド]> [ログインシェルとしてコマンドを実行]をクリックします。

その後、新しい端末は.profileスクリプトをソースにします。

ここに画像の説明を入力してください


1
IIUCこれはハックです。通常、.profileはGUIターミナルを起動する前にソースされているはずであり、ターミナルウィンドウをスポーンするたびにソースを再度作成するのは冗長です。
ムーマインド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.