12-LPIC「level1」

LPIC|level 1【bash関数とエイリアス】

目標

  • bash関数について理解する
  • エイリアスについて理解する
  • Bashの設定ファイルについて理解する

LinuxやMacで使われている標準的なシェル「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

alias を解除するにはunaliasコマンドを使用します。例えば今回の alias を解除するには「 unalias || 」という入力になります。

alias は一時的な定義です。永続化するには、後述の ~/.bashrc に書きます。

Bashの設定ファイルの役割と違い

Bashは「ログインシェル」か「非ログインシェル」かによって、読み込む設定ファイルが異なります。

  • ログインシェル…ログインシェルとは、システムにログインするときに起動されるBashシェルのことです。
    → 環境変数やPATHなど「初期設定」に向く
  • 非ログインシェル…非ログインシェルは、ログイン後に新しくターミナルを開いたときや、スクリプトを実行したときに起動されるBashのことです。
    → エイリアス・関数など「操作性改善」に向く

Bashが読み込む設定ファイルの目的とタイミングは次の通りです。

ファイル名読み込まれるタイミング主な用途・目的
/etc/profileログインシェル起動時(全ユーザー共通)システム全体の環境設定
~/.bash_profileログインシェル起動時(各ユーザー用)環境変数の設定、~/.bashrc の読み込みなど
~/.bashrc非ログインシェル起動時(通常の端末)エイリアス、関数、プロンプトの設定など
~/.bash_logoutログインシェル終了時ログアウト時の後処理(例:画面クリア)

ログインシェル(SSHログイン、TTYログイン)

  1. /etc/profile
  2. ~/.bash_profile(→ ~/.bashrc を source するのが一般的)
  3. [シェル操作…]
  4. ~/.bash_logout(シェル終了時)

~/.bash_profile の代わりに ~/.bash_login や ~/.profile が使われることもあります(ただし、~/.bash_profile が最優先)。

~/.bash_logout はログインシェルでのみ実行される点に注意。

非ログインシェル(GUIからターミナルを起動するなど)

  1. ~/.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 と . は同じ意味)

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

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

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST