Linux でのソースコマンドと ~/.bashrc、~/.bash_profile の詳細な説明

1. Linuxログイン時のファイル実行処理

Linux にログインするときにファイルを実行するプロセスは次のとおりです。Linux に
初めてログインするときは、まず /etc/profile ファイルを開始し、次に、ファイル内の ~/.bash_profile、~/.bash_login、または ~/.profile を開始します。ユーザーディレクトリ 1 つ、

执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。

~/.bash_profile ファイルが存在する場合、通常は ~/.bashrc ファイルが実行されます。

执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

2. 各ファイルの説明

(1) /etc/profile: (システム環境変数) このファイルは、システムの各ユーザーの環境情報を設定します。ユーザーが初めてログインするときにこのファイルが実行されます。また、/etc/profile 内の設定ファイルから実行されます。 /profile.d ディレクトリ にシェルの設定を収集します。)

(2) /etc/bashrc : (ユーザー変数) bash シェルを実行するユーザーごとにこのファイルを実行します。bash シェルが開かれると、このファイルが読み込まれます (つまり、新しいターミナルが開かれるたびに bashrc が実行されます) )。

(3) ~/.bash_profile : 各ユーザーは、このファイルを使用して自分専用のシェル情報を入力でき、ユーザーのログイン時にこのファイルは 1 回だけ実行されます。デフォルトでは、いくつかの環境変数が設定され、ユーザーの .bashrc ファイルが実行されます。

(4) ~/.bashrc : このファイルには、bash シェルに固有の bash 情報が含まれており、ログイン時および新しいシェルを開くたびに読み取られます。

(5) ~/.bash_logout : システムを終了する (bash シェルを終了する) たびにこのファイルを実行します。さらに、/etc/profile に設定された変数 (グローバル) は任意のユーザーに作用しますが、~/.bashrc はetcに設定された変数(ローカル)は、/etc/profile内の変数のみを継承でき、「親子」関係になります。

(6) ~/.bash_profile : bash 動作に入る対話モードおよびログインモード用 ~/.bashrc は bash 動作に入る対話型非ログインモード用 通常、両者の設定はほぼ同じなので、通常は前者は後者を呼び出します。

3. Linux でのソース コマンド

ソースコマンドは「ドットコマンド」とも呼ばれ、bashの内部コマンドであるドット記号(.)を指します。
機能: 指定されたシェル プログラム ファイルをシェルに読み取らせ、ファイル内のすべてのステートメントを順番に実行します。
通常、ソース コマンドは、新しく変更された初期化ファイルを再実行して、ログアウトしてログを記録することなくすぐに有効にするために使用されます。また入って。
使用法:

source filename 或 . filename

(C シェルからの) ソース コマンドは bash シェルの組み込みコマンドであり、(Bourne シェルからの) ドット記号であるドット コマンド (.) は、ソースの別名です。

4. スクリプトを実行するためのソース ファイル名、sh ファイル名、および ./ファイル名の違いは何ですか?

1. シェル スクリプトに実行権限がある場合、スクリプトの実行に sh filename を使用する場合と ./filename を使用する場合に違いはありません。./filename は、現在のディレクトリが PATH にないため、すべての "." が現在のディレクトリを表すために使用されます。
2.sh ファイル名 サブシェルを再作成し、サブシェルでスクリプト内のステートメントを実行します。サブシェルは親シェルの環境変数を継承しますが、サブシェルの新規および変更された変数は、エクスポートしない限り親シェルに戻されません。使用されています。
3.source filename: このコマンドは、スクリプト内のステートメントを単純に読み取り、新しいサブシェルを作成せずに現在のシェルで順次実行します。その後、スクリプト内のすべての新しいステートメントと変数ステートメントが現在のシェルに保存されます。

例えば:

1. 新しい test.sh スクリプトを作成します。内容は次のとおりです: A=1
2. それを実行可能にします chmod +x test.sh
3. sh test.sh を実行した後、$A をエコーし​​ます。A=1 であるため、表示は空です。 1 および現在のシェルには送信されません
。 4. ./test.sh を実行すると、同じ効果があります。
5. ソース test.sh または .test.sh を実行し、$A をエコーすると、1 が表示され、次のことを示します。変数 A=1 は現在のシェルにあります

5. シェルスクリプトでよく使われる

1. 現在のユーザー情報を変更したら、すぐに有効にします
~/.bash_profile user current user、ログイン時に一度だけ読み取り、自分専用のシェル情報を入力します
~/.bashrc : このファイルには bash が含まれていますbash 情報専用のシェル。このファイルはログイン時と新しいシェルが開かれるたびに読み取られます。

source ~/.bash_profile  
source ~/.bashrc 

 ノート:

   ~/ は現在のユーザーのホームディレクトリです

  .bashrc は、.bashrc フォルダーに移動します。これは、名前が .bashrc ls -al であるユーザー ディレクトリの下のディレクトリです #隠しファイルを表示します

ls -al #显示隐藏文件

 2. /etc/profile ファイルを変更したら、すぐに有効にします。

/etc/profile : システムのユーザーごとの環境情報を設定するファイルで、ユーザーの初回ログイン時に実行されます。

source /etc/profile

3. スクリプトの先頭には通常、

source /etc/profile
source ~/.bash_profile
#!/bin/bash

 

-------------------------------------------------- -------以下にテキストはありません---------------------------- -------------

注: 学習のみを目的として、質問や参照を記録し、お互いに励まし合います。

参考転載記事:
1. linux_wangyangkobe's blog-CSDN のソースコマンド blog_linux ソースコマンド

2. ソースコマンドとlinux_source ~/.bashrc下の~/.bashrc、~/.bash_profileの詳細説明

おすすめ

転載: blog.csdn.net/qq_39715000/article/details/125022516