目標
- bash関数について理解する
- エイリアスについて理解する
- Bashの設定ファイルについて理解する
Bashの関数(function)
Bashの関数(function)
Bashの関数は、複数のコマンドや処理を一つの名前でまとめ、再利用可能にするための仕組みです。関数を定義することで、同じ処理を繰り返し書く必要がなくなり、スクリプトやコマンドラインで効率的に作業ができるようになります。また、引数を渡して動的に処理を変更することも可能です。
書き方の例
greet() {
echo "こんにちは、$1さん!"
}
使用例(上の書き方の例で扱った関数の呼び出し)
greet Alice
実行結果
こんにちは、Aliceさん!
エイリアス(alias)
エイリアスとは、よく使う長いコマンドや複雑なオプションを、簡単な名前で呼び出せるように定義する方法です。これにより、コマンドの入力が短縮され、作業の効率が向上します。
書き方の例
alias ll='ls -l --color=auto'
使用例(上の書き方の例で扱った関数の呼び出し)
ll
実行結果:ls -l –color=auto が実行されます。
total 32
drwxr-xr-x 2 user user 4096 Jun 5 10:00 dir1
-rw-r--r-- 1 user user 52 Jun 5 10:10 file1.txt
-rwxr-xr-x 1 user user 243 Jun 5 10:15 script.sh
-rw-r--r-- 1 user user 123 Jun 5 10:20 image.png
Bashの設定ファイルの役割と違い
Bashは「ログインシェル」か「非ログインシェル」かによって、読み込む設定ファイルが異なります。
- ログインシェル…ログインシェルとは、システムにログインするときに起動されるBashシェルのことです。
→ 環境変数やPATHなど「初期設定」に向く - 非ログインシェル…非ログインシェルは、ログイン後に新しくターミナルを開いたときや、スクリプトを実行したときに起動されるBashのことです。
→ エイリアス・関数など「操作性改善」に向く
Bashが読み込む設定ファイルの目的とタイミングは次の通りです。
ファイル名 | 読み込まれるタイミング | 主な用途・目的 |
---|---|---|
/etc/profile | ログインシェル起動時(全ユーザー共通) | システム全体の環境設定 |
~/.bash_profile | ログインシェル起動時(各ユーザー用) | 環境変数の設定、~/.bashrc の読み込みなど |
~/.bashrc | 非ログインシェル起動時(通常の端末) | エイリアス、関数、プロンプトの設定など |
~/.bash_logout | ログインシェル終了時 | ログアウト時の後処理(例:画面クリア) |
ログインシェル(SSHログイン、TTYログイン)
- /etc/profile
- ~/.bash_profile(→ ~/.bashrc を source するのが一般的)
- [シェル操作…]
- ~/.bash_logout(シェル終了時)
非ログインシェル(GUIからターミナルを起動するなど)
- ~/.bashrc
各設定ファイルの活用例
/etc/profile(管理者が全ユーザーに共通の設定をしたいとき)
例:例えば、管理者が /opt/tools/ に便利なコマンド(例:自作スクリプトやサードパーティのCLIツール)を配置したとし、それを、全ユーザーに使わせたい場合は、/etc/profile ファイルに、次の様に、PATHを追加する処理を追記する必要があります。
export PATH=$PATH:/opt/tools
~/.bash_profile(ユーザーのログイン時に1回だけ読み込まれる)
ユーザーごとに個別の PATH を追加したいときは、各ユーザーの ~/.bash_profile に記載します。
export PATH=$PATH:/opt/tools
応用:パスの条件付き追加(存在確認)。こちらは、/opt/tools が存在するときだけ追加されるので、安全です。
if [ -d /opt/tools ]; then
export PATH=$PATH:/opt/tools
fi
~/.bashrc(普段のシェルで使うエイリアスや関数を書く場所)
~/.bashrc は、非ログインの対話型シェル(つまり、普段ターミナルを開いたとき)に毎回自動で読み込まれる設定ファイルです。この中に エイリアス や シェル関数 を定義しておけば、シェルが起動するたびに自動的に有効になります。一度書いておけば、毎回手動で定義し直す必要はありません。
alias ll='ls -l --color=auto'
alias gs='git status'
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "対応していないファイル形式です。" ;;
esac
fi
}
~/.bash_logout(ログアウト時の処理)
echo "ログアウトしました。さようなら!"
環境の再読み込み
設定を反映させるには、次のコマンドで再読み込みできます。
source ~/.bashrc
または
. ~/.bashrc
※ source ~/.bashrc でも可(source と .
は同じ意味)
今回は以上になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

