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

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

このファイルが見つかり.bashrcましたが、その目的/機能を知りたいです。そしていつ、どのように使用しますか?

答え1

.bashrc大きな打撃だシェルスクリプトBashはインタラクティブに起動されるたびに実行されます。対話型シェルセッションを初期化します。コマンドプロンプトに入力したすべてのコマンドをこのファイルに入れることができます。

ここにコマンドを配置して、特定の環境で使用するシェルを設定したり、必要に応じてカスタマイズしたりできます。共通点.bashrcニックネームいつも使えるようにしたいです。

.bashrc実行対象すべて対話型シェルが起動します。あなたが言うなら:

$ bash ; bash ; bash

Ctrl-Dその後、3回打つと.bashrc3回実行されます。しかし、こう言うなら:

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

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

これは、新しいログインシェルが起動したときにのみ実行されるもの.bash_profileとは対照的です。 ()コマンド.profileを1回実行するか、インタラクティブシェルが起動するたびに実行するかによって、コマンドがbash -lvs.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.カラーオプションは、lsLinuxまたはOSX -3を使用しているかどうかによって異なります
。機能 " md"、-4コマンドを使用してディレクトリを作成し、CDに移動します
。 Gitリポジトリにある場合、現在のGitブランチが見つかりました... -
5. -9。 -10などの素晴らしいPS1プロンプトを定義してください<code>20:00:43 durrantm Castle2012 /hom/durrantm/Dropnot/_/rails_apps/linker マスター \n$_</code>
。拡張PS2プロンプト
-11。コマンドライン-12で
viをエディタに設定します。 viをデフォルトエディタ
-13に設定します。マイ.bash_aliasesファイルの実行(存在する場合)
-14。私のgitタブ完成スクリプト(リモートとブランチ用)があれば実行します。
-15.存在する場合は、自動ジャンプ
-16を実行します。 bashバージョン> = 4-17の場合、
CD部分を入力せずにCD'ingを許可します。 Bash完了スクリプトの実行(存在する場合)
-18。 TMUXがある場合は
-19を使用してください。私のPATH
-20にrvmを追加しました。存在する場合は rvm を使用してください。

カスタマイズなしですべてのLinuxまたはOSXシステムで実行できるように移植可能にしました。したがって、特定の機能やその他のスクリプトを使用する前に、多くの存在テストがあります。

また、新しいターミナルウィンドウを開くことに影響を与えることなく、新しいシステムでファイル全体をすぐに使用する方が簡単になります。

通知 - .bashrcを変更する場合は、再起動する前に新しいターミナルウィンドウを起動して正常に動作していることを確認してください(ベストプラクティス - 変更後すぐに実行)。 .bashrcをめちゃくちゃにして再起動すると、ログインできなくなる可能性があります!個人的には、このような緊急事態(ログインの中断)が発生した場合は、そのユーザーとしてログインし、sudoを使用して他のログインを変更できるように、パーソナルコンピュータに2番目の「管理者」ユーザーも作成します。

答え3

設定ファイルですbash

対話型(非ログイン)シェルを使用し、次のファイルから構成を読みます。

  • $HOME/.bashrc

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

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

下の画像はロード方法/タイミングを簡単に示しています。

echo私と.bashrc.bash_profile

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

man bash詳しくはこちらをご覧ください

関連情報