.bashrcファイルは何ですか?


100

Unixシェルは、起動時に.bashrcファイルを読み取り、ファイルに書き込まれたコマンドを実行します。このファイルは何で、何を実行しますか?


2
テキストエディタでファイルを開いてみてください-プレーンテキストです。
ウィルビックフォード

回答:


67

実際、bash具体的には.bashrc(および/etc/bash.bashrc)を読み取ります。さまざまなシェルがたくさんあります。

bashのmanページ(ブライアン・フォックスとチェット・ラミーによって、また、情報ページ「バッシュ起動ファイルは」)権威の参照です。

ログインシェルではないインタラクティブシェルが開始されると、bashは~/.bashrcそのファイルが存在する場合、からコマンドを読み取って実行します。--norcオプションを使用すると、これを禁止できます。--rcfileファイルオプションが読み込まれ、代わりにファイルからコマンドを実行するためにはbashを強制します~/.bashrc

たとえば、bashを非対話形式で起動すると、シェルスクリプトを実行するためBASH_ENVに、環境内の変数を探し、値が表示される場合はその値を展開し、展開した値を読み取りおよび実行するファイルの名前として使用します。Bashは、次のコマンドが実行されたかのように動作します。

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

ただし、PATH変数の値はファイル名の検索には使用されません。

ファイルは単なるシェルコマンドです。通常、プロンプトの変更、環境変数の設定、シェルプロシージャの定義に使用されます。伝統的に、このファイル.profileはこの目的に使用されますが、bash非常に多くの拡張子があるため、起動ファイルにbashismを入れたいユーザーのために独自の起動ファイルが必要です。

ログインシェルではない」とは、スクリプトの起動や、通常はウィンドウマネージャーによって起動されるターミナルウィンドウなどを意味します。時々私は持っている* nixシステムをセットアップ.bashrcし、BASH_ENVちょうどソース.profile。POSIXシェルコマンドの外に迷わない限り、どのシェルでも同じ初期化が行われます。

shが本当にそうbashであるとき、それは特に価値があります、それは時々起こります。これを行うには:

. .profile

これが非常に複雑な理由の1つは、出力を生成するものをシェルスタートアップファイルに配置したり、無条件にプロンプ​​トを設定したりするためです。これはsystem(3)、Cプログラムではなく、言語内でシェルプログラムおよびバックティックコマンドを実行するときに多くの問題を引き起こします。bash起動方法は、出力とプロンプトの設定がOKであるファイルとそうでないファイルが1つずつあるように設計されています。従来は、対話性を区別するために、たとえばプロンプトが設定されているかどうかを確認するために、実行時テストが行​​われていました。


いい答えだ。引用:ファイルは単なるシェルコマンドです。通常、プロンプトの変更、環境変数の設定、シェルプロシージャの定義に使用されます。
smwikipedia

2
.bashrc / .zshrcのrc部分の意味を知っている人はいますか?
WORMSS


たぶんrcはランタイム構成を意味します。
マイクディーン

12

Bashが起動すると、さまざまな異なるスクリプトでコマンドを実行します。

Bashが対話型ログインシェルとして呼び出されると、最初に/ etc / profileファイルが存在する場合、そのファイルからコマンドを読み取り、実行します。そのファイルを読み取った後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で検索し、最初に存在する読み取り可能なコマンドからコマンドを読み取り、実行します。

ログインシェルが終了すると、Bashは〜/ .bash_logoutファイルが存在する場合、ファイルからコマンドを読み取り、実行します。

ログインシェルではないインタラクティブシェルが起動すると、Bashは〜/ .bashrcからコマンドを読み取り、実行します(そのファイルが存在する場合)。これは、-norcオプションを使用して禁止できます。--rcfileファイルオプションは、Bashに〜/ .bashrcではなくfileからコマンドを強制的に読み取らせて実行させます。

http://en.wikipedia.org/wiki/Bash_(Unix_shell)

いくつかのコツとヒントを次に示します。

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

今日の日付とホスト名を表示できるようにプロンプ​​トを設定してみましょう。

PS1="\d \h $ "

1
なぜ.profile.bash_profileですか?ロジックはありますか?
パセリエ

10

シェルのさまざまな「初期化」コマンドが含まれている必要があります。例:

  • 便利なエイリアスを作成します(例:)alias ll='ls -l'
  • PATHにディレクトリを追加します。
  • 新しい環境変数を設定します。

エイリアスの使用とは何ですか?
パイナップル

2
@pineapple:エイリアスはコマンドを実行する方法であり、長いコマンドでも短いコマンドでも実行できます。たとえば、エイリアスをll='ls -l'使用llすると、ls -lコマンドを実行するために入力できます。
ワッファー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.