2016-04-02 13 views
3

これはLinux関連の問題です。私は周りを探索したが、良い説明を得ていない。/etc/rc.localと〜/ .bashrcの違いは何ですか?

ログインすると両方のファイルが設定されているようですが、違いはありますか?私は、2つの異なるファイルに何が入るべきかを決める際に「何らかのルール」があるように思えます。たとえば、特定の検索パスを$ PATHに追加する必要がある場合は、〜/ .bashrcで実行する必要があります。私は

/sys/class/backlight 

または

/sys/devices/cpu/cpu#/online 

のように、いくつかのシステム設定を変更することを決定した場合しかし、私はそれ以外の場合は動作しません、/etc/rc.localの中でこれを行う必要があります。

これらの設定はユーザーによって異なる可能性がありますか?

ありがとうございました。

+1

/etc/rc.localは、ログイン時にシステムが起動しないときに実行されます。 –

+0

設定に依存するシステム設定はどのように設定できますか。それについて調べる必要があります。ほとんどの設定は動的に変更できます。 –

+1

ナンセンスではなく、話題にならない。将来U * xシステム設計に関する質問がある場合は、http://unix.stackexckange.com/またはhttps://superuser.com/を確認してください。 – tripleee

答えて

6

違いは、それらが実行されているときと実行されているとき、つまりrc.localが実行レベルの変更で実行され、ルートとして実行されている場合です。 bashrcはbash固有で、特定のユーザーとしてログインしていないシェルで実行されます。

あなたは、スクリプトの/etc/rc.localが、システム管理者が使用するためのものですここ

rc.localの良い説明を見つけることができます。マルチユーザ ランレベルに切り替えるプロセスの最後に、通常のシステムサービスがすべて開始された後に、 が実行されています。 /usr/localにインストールされている サーバなどのカスタムサービスを開始するために使用することができます。ほとんどのインストールでは /etc/rc.localは必要ありませんが、それは が必要な少数のケースに対応しています。

と、あなたがログインシェルではありませんインタラクティブシェルが起動され

man bash 

についてbashrc

、bashの があれば、読み込み、〜/ .bashrcのからコマンドを実行し必要なものを見つけることができますその ファイルが存在します。これは、--norcオプションを使用することで禁止されます。 --rcfileファイルオプションは、bashに読み込みを強制し、 は〜/ .bashrcの代わりにファイルからコマンドを実行します。この問題のbashrcに詳細があります

...各bashセッションの

https://superuser.com/questions/49289/what-is-the-bashrc-file

3

.bashrc実行が開始され(すなわち、あなたがシェルを開くたび)。 .bashrcのように、ログインごとに1回実行されるのは.bash_profileのように聞こえるようです。

実行中のセットアップの種類によって、rc.localは従来の構成ですが、従来は起動時に最後の実行レベルで実行されていました。このlinkの他の関連記事はrc.localです。

systemdを実行しているシステムの場合、これは通常、デフォルトでsystemdパッケージsystemd-backlight.serviceに含まれています。

9

この質問は1ヶ月前に私から聞かれましたが、後で私はスタックオーバーフローがこのLinux質問のベストサイトではないことに気付きました。この質問に早く回答してくれてくれてありがとう、ありがとう、私はここでいくつかの説明を追加したいと思います。

は、基本的にユーザは、Linuxシステム環境を変更することができる(少なくとも)は、3つの段階がある:

  1. システムのブート時には。この段階は、永続的なシステム設定が好きで、/etc/...で作成するのが最も適切です。例えば、私の元の質問では、のバックライトと同様にいくつかのCPUのオンライン/オフライン管理をこのように設定することができ、/etc/rc.localは私が編集すべき正しいシェルスクリプトです。 「パーマネント」とは、このアップデートがシステムを使用するすべてのユーザーに影響することを意味します。
  2. ユーザがログインするとき;この段階は、ユーザーが個人的なLinux環境を変更したい場合に最適です。したがって、~/(またはHOME)のファイルを探してください。たとえば、~/.profile(歴史的には./bash_profileまたは~/bash_loginと呼ばれます)は、ログイン時に実行されるシェルスクリプトです。 ~/pam_environmentではなくシェルスクリプトですが、環境変数を設定するのに便利です(詳細はUbunte-official-wiki-environmental_variablesを参照)。
  3. ユーザがbashシェルを起動したとき;このステージは、bashシェル(子プロセスだけでなく)の内部にも効果があるため、GUI環境には影響しません。だから、ユーザがシェルから仕事の大部分をやっているのであれば、これは適切な段階です。この段階に関連するシェルスクリプトは~/.bashrcです。たとえば、環境変数PATHはここで変更できます。

この要約は、技術的には直感的です。

+3

華麗な答え! –

関連する問題