BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linuxでのシェル初期化ファイルとユーザープロファイルについて

Linuxはマルチユーザーのタイムシェアリングシステムであり、複数のユーザーがログインしてシステムを使用できることを意味します。また、システム管理者は、ソフトウェアのインストール/更新/削除、実行できるプログラム、表示/編集できるファイルなど、さまざまなユーザーがシステムを操作する方法のさまざまな側面を管理するタスクを持っています。

Linuxでは、システム全体(グローバル)とユーザー固有(個人)の構成を使用するという2つの主要な方法でユーザーの環境を作成または維持することもできます。通常、Linuxシステムを操作する基本的な方法はシェルであり、シェルは、ユーザーログインが成功した後の初期化中に読み取る特定のファイルに応じて環境を作成します。

推奨される読み物: Linuxで環境変数を設定する方法

この記事では、Linuxでのローカルユーザー管理用のユーザープロファイルに関連するシェル初期化ファイルについて説明します。カスタムシェル関数、エイリアス、変数、およびスタートアッププログラムをどこに保存するかをお知らせします。

重要 :この記事では、 bashに焦点を当てます。 、 sh Linuxシステムで最も人気のある/使用されているシェルである互換性のあるシェル。

別のシェル(zsh、ash、fishな​​ど)プログラムを使用している場合は、そのドキュメントを読んで、ここで説明する関連ファイルの詳細を確認してください。

Linuxでのシェルの初期化

シェルが呼び出されると、シェル自体とシステムユーザーの環境をセットアップするのに役立つ特定の初期化/起動ファイルが読み込まれます。これは、事前定義された(およびカスタマイズされた)関数、変数、エイリアスなどです。

シェルによって読み取られる初期化ファイルには、次の2つのカテゴリがあります。

  • システム全体のスタートアップファイル –これらには、システム上のすべてのユーザーに適用されるグローバル構成が含まれており、通常は / etcにあります。 ディレクトリ。それらには次のものが含まれます: / etc / profiles および/etc / bashrc または/etc/bash.bashrc
  • ユーザー固有のスタートアップファイル –これらのストア構成は、システム上の1人のユーザーに適用され、通常はユーザーのホームディレクトリにドットファイルとして配置されます。システム全体の構成を上書きできます。それらには次のものが含まれます: .profiles .bash_profile .bashrc および.bash_login

この場合も、シェルは3つの可能なモードで呼び出すことができます。

1。インタラクティブログインシェル

シェルは、ユーザーが / bin / loginを使用してシステムに正常にログインした後に呼び出されます。 、 / etc / passwdに保存されているクレデンシャルを読み取った後 ファイル。

シェルがインタラクティブログインシェルとして開始されると、 / etc / profileを読み取ります。 およびそれに相当するユーザー固有の〜/.bash_profile

Linuxでのシェル初期化ファイルとユーザープロファイルについて

2。インタラクティブな非ログインシェル

シェルは、 $ / bin / bashなどのシェルプログラムを使用してコマンドラインで開始されます。 または$/ bin / zsh / bin / suを実行して開始することもできます コマンド。

さらに、インタラクティブな非ログインシェルは、 konsoleなどのターミナルプログラムを使用して呼び出すこともできます。 、グラフィカル環境内からのターミネータまたはxterm。

シェルがこの状態で開始されると、親シェルの環境がコピーされ、ユーザー固有の〜/ .bashrcが読み取られます。 追加のスタートアップ構成手順については、ファイルを参照してください。

 $ su#ls -la 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

3。非対話型シェル

シェルは、シェルスクリプトの実行中に呼び出されます。このモードでは、スクリプト(シェルまたは汎用システムコマンド/関数のセット)を処理し、特に別の方法がない限り、コマンド間のユーザー入力を必要としません。親シェルから継承された環境を使用して動作します。

システム全体のシェル起動ファイルについて

このセクションでは、システム上のすべてのユーザーの構成を保存するシェルスタートアップファイルについて詳しく説明します。これらのファイルには次のものが含まれます。

/ etc/profileファイル –ログイン設定用のシステム全体の環境構成とスタートアッププログラムを保存します。すべてのシステムユーザーの環境に適用するすべての構成をこのファイルに追加する必要があります。

たとえば、ここでグローバルPATH環境変数を設定できます。

#cat / etc / profile 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

注 : RHEL / CentOS 7などの特定のシステム 、「何をしているのかわからない限り、このファイルを変更することはお勧めしません。カスタムの.shを作成することをお勧めします /etc/profile.d/のシェルスクリプト 環境にカスタム変更を加えるため。これにより、将来の更新でマージする必要がなくなります。」

/etc/profile.d/ ディレクトリ–環境にカスタム変更を加えるために使用されるシェルスクリプトを格納します:

#cd /etc/profile.d/# ls -l <​​/ pre> Linuxでのシェル初期化ファイルとユーザープロファイルについて  

/ etc / bashrc または/etc/bash.bashrc ファイル–すべてのシステムユーザーに適用される他の構成を含む、システム全体の機能とエイリアスが含まれています。

システムに複数のタイプのシェルがある場合は、このファイルにbash固有の構成を含めることをお勧めします。

#cat / etc / bashrc 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

ユーザー固有のシェルスタートアップファイルについて

次に、システム上の特定のユーザーの構成を格納する、ユーザー固有のシェル(bash)起動ドットファイルについて詳しく説明します。これらのファイルは、ユーザーのホームディレクトリにあり、次のものが含まれます。

#ls -la 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

〜/ .bash_profile ファイル–これはユーザー固有の環境とスタートアッププログラムの設定を保存します。以下のスクリーンショットに示すように、ここでカスタムPATH環境変数を設定できます。

#cat〜/ .bash_profile 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

〜/ .bashrc ファイル–このファイルには、ユーザー固有のエイリアスと関数が格納されています。

#cat〜/ .bashrc 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

〜/ .bash_login ファイル–通常はシステムにログインしたときにのみ実行される特定の構成が含まれています。 〜/ .bash_profileの場合 が存在しない場合、このファイルはbashによって読み取られます。

〜/。profile ファイル–このファイルは〜/ .bash_profileがない場合に読み取られます および〜/ .bash_login ;同じ構成を保存でき、システム上の他のシェルからもアクセスできます。ここでは主にbashについて説明しているため、他のシェルがbash構文を理解しない可能性があることに注意してください。

次に、必ずしもbash初期化ファイルではない他の2つの重要なユーザー固有のファイルについても説明します。

〜/ .bash_history file – bashは、システム上のユーザーが入力したコマンドの履歴を保持します。このコマンドのリストは、〜/ .bash_historyのユーザーのホームディレクトリに保存されています。 ファイル。

このリストを表示するには、次のように入力します。

$historyまたは$history|少ない
Linuxでのシェル初期化ファイルとユーザープロファイルについて

〜/ .bash_logout ファイル–シェルの起動には使用されませんが、ログアウト手順に関するユーザー固有の指示が保存されます。これは、ユーザーが対話型ログインシェルを終了するときに読み取られて実行されます。

実用的な例の1つは、ログアウト時にターミナルウィンドウをクリアすることです。これは、リモート接続にとって重要です。リモート接続を閉じると、ウィンドウがきれいになります。

#cat bash_logout 
Linuxでのシェル初期化ファイルとユーザープロファイルについて

追加の洞察については、さまざまなLinuxディストリビューションでこれらのシェル初期化ファイルの内容を確認し、bashのmanページも読んでください。

それは今のところすべてです!この記事では、Linuxでのシェルの起動/初期化ファイルについて説明しました。以下のコメントフォームを使用して、ご返信ください。


  1. シェルスクリプトでの「Linux変数」の理解と記述–パート10

    Linuxシェルスクリプト言語は常にホットな話題であり、将来的には常にそうなるでしょう。シェルスクリプト言語は魔法のようで、他の言語と同じようにスクリプト言語でプログラムを実行するのはとても簡単です。ただし、私たちが行っていることと、その結果が期待されることについての深い知識が必要です。 私たちが読者のために書いたすべてのシェルスクリプトの記事は、最後の記事「Linux変数の洞察」を含めて高く評価されています。前回の記事を新しいレベルに拡張します。 変数属性 Linux環境の各変数には特定のオプションがあり、それらは「属性」と呼ばれます。これらのオプションまたは属性は、オンにすることがで

  2. ファイルとディレクトリを一覧表示するLinuxのlsコマンド

    ls Linuxのコマンドは、おそらく最初に使用する必要のあるコマンドの1つです。この記事では、コマンドと一般的に使用されるパラメータについて説明します。 私が好むオプションのセットは次のとおりです。 ls -Zaltrh 各オプションを個別に掘り下げて、オプションのグロブ全体が役立つ理由を説明しましょう。 LinuxLSコマンド構文 #ls [OPTION] [FILE] OPTIONS: [-a], do not ignore entries starting with . or .. [-h], with -l, print sizes in human readable form