.bashrc の目的は何ですか? また、どのように機能しますか?

.bashrc の目的は何ですか? また、どのように機能しますか?

ファイルを見つけたので.bashrc、その目的と機能を知りたいです。また、どのように、いつ使用されるのでしょうか?

答え1

.bashrcバッシュですシェルスクリプトBash が対話的に起動されるたびに実行されます。対話型シェル セッションを初期化します。コマンド プロンプトで入力できる任意のコマンドをそのファイルに記述できます。

ここにコマンドを入力して、特定の環境でシェルを使用するように設定したり、好みに合わせてカスタマイズしたりします。よく使用されるコマンドは次のとおり.bashrcです。エイリアスいつでも利用できるようにしておきたいものです。

.bashrc走る対話型シェルの起動。次のように言うと:

$ bash ; bash ; bash

そしてCtrl-D3回押すと、.bashrc3回実行されます。しかし、代わりにこう言うと:

$ bash -c exit ; bash -c exit ; bash -c exit

すると、Bash 呼び出しが非対話型になる.bashrcため、まったく実行されません。ファイルからシェル スクリプトを実行する場合も同様です。-c

対照的に.bash_profile、 と.profileは新しいログイン シェルの開始時にのみ実行されます。 ( bash -l) コマンドを1 回だけ実行するか、対話型シェルの起動ごとに実行するかに応じて、コマンドを.bashrcと のどちらに入れるかを選択します.bash_profile

エイリアスに対する反例として、私は に入れることを好みますが、これらの変更は通常は必要ないため、で調整.bashrcを行うことをお勧めします。PATH.bash_profileべき等性:

export PATH="$PATH:/some/addition"

代わりにこれを入力すると.bashrc、対話型サブシェルを起動するたびに、:/some/additionが再びの末尾に追加されPATH、コマンドを誤って入力したときにシェルに余分な作業が発生します。

いつでも新しいインタラクティブなBashシェルを利用できます殻から出るvi:shたとえば、とします。

答え2

ファイルの目的.bashrcは、変数、関数、エイリアスを設定し、(PS1) プロンプトを定義し、新しいターミナル ウィンドウを開くたびに使用するその他の設定を定義できる場所を提供することです。

これは、新しいターミナル、ウィンドウ、またはペインを開くたびに実行されて機能します。

超最小限のものには次のようなものがあります:

export CLICOLOR=1
export LANG="en_US.UTF-8"
alias cp="cp -i"
alias ls="ls --color=auto"
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
export EDITOR="vim"

始めるにあたって、本当に知っておくべきことはこれだけです


経験豊富な開発者にとって便利な「過剰」バージョンを次に示します。

経験豊富な開発者は、多くの場合、さらに多くのものを持っています。
私のものはこちらでご覧いただけます。(構文強調表示付きの写真):

HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }
git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; }
HOST='\033[02;36m\]\h'; HOST=' '$HOST
TIME='\033[01;31m\]\t \033[01;32m\]'
LOCATION=' \033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'
set -o vi # vi at command line
export EDITOR=vim
test -f ~/.bash_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -s ~/.autojump/etc/profile.d/autojump && . $_
[ ${BASH_VERSINFO[0]} -ge 4 ] && shopt -s autocd
[ -f /etc/bash_completion ] && ! shopt -oq posix && . /etc/bash_completion
[ -z $TMUX ] && export TERM=xterm-256color && exec tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$home/.rvm/scripts/rvm"

説明:

-1. 履歴ファイルを重複を無視し、デフォルトよりも大幅に大きく設定します。 -2. Linux または OSX を使用しているかどうかに応じて
色オプションを設定します。 -3 . 関数 " " を使用して、1 つのコマンドでディレクトリを作成して cd します 。 -4. Git リポジトリ内にある場合は、現在の Git ブランチを検索します... -5. -9. 次のように、すばらしい PS1 プロンプトを定義します。 -10. 改善された PS2 プロンプト -11. コマンドラインで vi をエディターとして設定します 。 -12. vi を既定のエディターとして設定します。 -13.ファイルが存在する場合は実行します 。 -14. Git タブ補完スクリプト (リモートおよびブランチ用) が存在する場合は実行します。 -15. 自動ジャンプが存在する場合は実行します。 -16. bash バージョン >= 4 の場合は、cd 部分を入力せずに cd できるようにします。 -17. bash 補完スクリプトが存在する場合は実行します。 -18. TMUX が存在する場合は使用します。 -19. PATH に rvm を追加します。 -20. rvm が存在する場合は使用します。 ls
md

<code>20:00:43 durrantm Castle2012 /hom/durrantm/Dropnot/_/rails_apps/linker マスター \n $ _</code>



.bash_aliases






私はこれをポータブルにして、カスタマイズなしで Linux または OSX マシンのいずれでも動作するようにしました。そのため、特定の関数やその他のスクリプトを使用する前に、存在のテストがいくつか実行されます。

これにより、新しいターミナル ウィンドウを開く際に問題が発生することなく、新しいマシンでファイル全体をすぐに使用することも容易になります。

注意 - .bashrc を変更する場合は、再起動する前に新しいターミナル ウィンドウを起動して、それが機能することを確認してください (ベスト プラクティス - 変更後すぐに実行してください)。.bashrc を台無しにして再起動すると、ログインできなくなる可能性があります。個人的には、個人用マシンに 2 番目の「admin」ユーザーも作成して、このような緊急時 (ログインが壊れた場合) にそのユーザーにログインして、sudo を使用して他のログイン .bashrc ファイルを修正できるようにしています。

答え3

設定ファイルですbash

対話型 (非ログイン) シェルの場合、構成は次のファイルから読み取られます。

  • $HOME/.bashrc

ログイン シェルの場合、設定は次のファイルから読み取られます。

  • /etc/profile(常にソースあり)
  • $HOME/.bash_profile(残りのファイルは、1 つのファイルが見つかるまで順番にチェックされ、その後は読み込まれません)
  • $HOME/.bash_login
  • $HOME/.profile

これらがどのように、いつロードされるかの簡単な説明は、以下の画像にあります。

私はecho私のとに.bashrc追加しました.bash_profile

対話型シェルとログインシェル

man bash詳細についてはこちらをご覧ください

関連情報