😸

Bashの設定ファイルを作る

2021/05/27に公開
2

はじめに

自社開発・開発プロジェクトなどで使える効率upのTipsを教えてもらったので書き残していこうと思います。

例えば毎日作業しているプロジェクトに移動する際、ショートカットがあればとても便利ですよね。
Bashを使っている場合「.bashrc」というファイルを用いることでその便利な仕組みを実現できるようになります。
今回はその「.bashrc」ファイルとは何か?から説明をしていき、具体的なTipsを以下に書き残していきたいと思います。

.bashrc とは?

「.bashrc」はbash起動時に読み込まれる設定ファイルです。
ホーム直下にあるファイルの1つです。
よく「.bashrc」と一緒に「.bash_profile」というファイルもよく聞くかなと思います。
この両ファイルは「記入する内容」に違いがあります。
他の記事を見ていると以下のようにまとめられていますね。

  • .bashrcは、エイリアスを定義する。
  • .bash_profileは環境変数を記入する。

もうちょっと具体的に

最初は雰囲気から捉えていくのも重要ですよね。
もしBashの動きを捉えながら、理解していきたい人はよければこちらも見ていってください。

参考にしたのはこの2つのサイトです。
https://techracho.bpsinc.jp/hachi8833/2019_06_06/66396
https://superuser.com/questions/183870/difference-between-bashrc-and-bash-profile

▼シェルの読み込み挙動について

シェルとは利用者の操作(コマンド)を受け付け、OSカーネルや他のソフトウェアに指示したり、出力を画面に表示する役割を担っています。
Unixにログインするとデフォルトシェル(BourneShell:/bin/sh)がログインシェルとして起動し、まず「.profile」が読み込まれます。
Bashがログインシェルとして起動すると「 .bash_profile」からコマンドが読み込まれます。もしファイルが存在しない場合は「 .profile」が代わりに読み込まれます。
そしてBashを対話シェルとして起動すると「.bashrc」が読み込まれます。

という挙動となっています。
各ファイルには一般的にどのようなことを書くのが良いか箇条書きにしてまとめてみました。

  • 「.profile、.bash_profile」は、ログイン時に起動したいプログラムや環境変数の定義などを記入。
  • 「.bashrc」は、エイリアスや関数の定義・シェルオプション・プロンプト設定など、bash 自身にのみ適用されるものを記入。

Bashのみ使われている方は環境変数を「.bash_profile」に記入し、
それ以外も使われている方は環境変数を他のシェルでも読み込めていて欲しいので「.profile」に記入するのが良いですね。

「.bashrc」は何もrsyncなどのsshパイプで問題が起こることがあるので、出力をしないよう注意しましょう。

操作手順

大きな流れは以下の通りになります。

  1. 「.bashrc」を開く(ファイルがなければホーム直下に作成)
  2. ファイルを編集しファイルを保存・閉じる
    # 記入例:
    # alias excommand='command'
    alias work='cd /hoge/customername/projectname/'
    
  3. 以下のコマンド実行orターミナルを閉じてコマンドが使えるか検証
    source ~/.bashrc
    

まとめてみての感想

シェルはよく使うのに仕組みとか何を読み込んでいるか知らなかったので勉強できてよかったです。
案外こういう知識がシェルを書くときに役立つんだろうなと思いました。
(早くきて欲しいな、、、頑張ろう。)
もし誤りなどあればご指摘いただけると幸いです。

Discussion

nisinnisin

.bashrc は、ルートではなくホーム直下ではないですかね

YUKAYUKA

コメントありがとうございます!
本当ですね、ホーム直下でした。誤って覚えていたので勉強になりました。
ありがとうございます!