エイリアスで効率化

エイリアスで効率化 とは

エイリアスを設定して、コマンド入力を効率化する方法をターミナルで学びます。本レッスンでは、エイリアスで効率化 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

なぜ重要か

毎日何十回も打つコマンド、たとえば ls -alFgit statusdocker compose up -d。これらを短い別名にしておくと、入力ミスが減って思考の流れが切れません。エイリアス (alias) はシェルが提供する「コマンドのショートカット」で、定義は 1 行、効果は一生分です。本レッスンでは alias の使い方、よく使う設定例、関数との使い分けを整理し、サブシェル内で実際に作って試します。

慣れてくると、自分の手癖を集めた alias 集が「自分専用の小さな DSL」のような役目を果たすようになります。チームに参画した直後、先輩の dotfiles を覗かせてもらうと、その人の作業スタイルが alias から透けて見えるくらい個性が出ます。

基本構文

ターミナル

alias 名前='展開後のコマンド列'

注意点は次のとおりです。

  • = の前後にスペースを入れない
  • 値はシングルクオートで囲むのが安全
  • 展開後のコマンドに引数が必要な場合は、関数の方が向いている

図解 alias の仕組み

diagram (will load when visible)

ユーザが ll と打つと、シェルは alias テーブルを引いて ls -alF に展開してから実行します。コマンドの実体を呼んでいるわけではなく、入力文字列の置換に近い動きです。展開は行頭のコマンド位置にしか効かないため、echo ll のような場合は ll が文字列として扱われ、alias は適用されません。

代表的な定義例

ターミナル

# ls の見やすい変種 alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # git のショートカット alias gs='git status -sb' alias gco='git checkout' alias gl='git log --oneline --graph --decorate -20' # 安全装置 (誤削除防止) alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # ディレクトリ移動 alias ..='cd ..' alias ...='cd ../..'

rm の上書きはエンジニアの好みが分かれますが、対話プロンプトを 1 段挟むことで「うっかり全削除」を防げます。

一覧と削除

ターミナル

alias # 現在定義されている全 alias を表示 alias ll # 名前を指定すると 1 件だけ表示 unalias ll # 1 件削除 unalias -a # すべて削除

type ll で「alias なのか実コマンドなのか関数なのか」を確認できます。挙動の謎を追うときに頼りになる手段です。

エイリアスを永続化する

シェルを閉じると alias は消えるので、永続化したい場合はシェル設定ファイル (前のレッスンで扱った ~/.bashrc ~/.zshrc など) に書きます。よく使うものをまとめた ~/.bash_aliases を別ファイルで作り、~/.bashrc から source する流派もあります。

ターミナル

# ~/.bashrc の末尾 if [ -f ~/.bash_aliases ]; then source ~/.bash_aliases fi

alias は単純な文字列置換なので、引数を後ろから差し込みたい場合や、複数行の処理が必要な場合はシェル関数の方が向いています。function name() { ... } の形を後のシェルスクリプト章で扱います。

元のコマンドを呼びたい

たとえば rmrm -i に alias していて、その挙動を一時的に無効化したい場合は、コマンドの前に \ を付けるか command を使います。

ターミナル

\rm 大量のファイル.txt # alias を無視 command rm 大量のファイル.txt # 同じく無視 /bin/rm 大量のファイル.txt # 絶対パス指定でも alias は効かない

スクリプト内で rm を呼ぶときは、ユーザの alias が効くと想定外の挙動になることがあります。スクリプトでは command rm や絶対パス /bin/rm を使うのが堅実です。

関数との使い分け

引数を加工したい、複数行に渡る処理を呼びたい場合は alias より関数の方が綺麗に書けます。

ターミナル

# alias で引数を扱おうとすると破綻しやすい mkcd() { mkdir -p "$1" && cd "$1" }

やってみよう

手元のサブシェルで ll という alias を ls -alF に対して作り、/tmp を一覧表示してみましょう。

まとめ

  • alias はシェルが提供するコマンドのショートカット、入力速度とミス防止に効く
  • = の前後にスペースを入れない、値はシングルクオートで囲む
  • alias で一覧、unalias で削除。永続化は ~/.bashrc などに書く
  • 引数の差し込みや複数行処理が必要なら関数を使うのが筋
  • スクリプト内では alias の影響を避けるため command 修飾や絶対パスで呼ぶのが安全

次のレッスン

次は PATH を理解する で、エイリアスを設定して、コマンド入力を効率化する方法をターミナルで学びます を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. alias の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. alias とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

課題

  1. alias で greet を定義する
  2. greet を呼び出して hello world を表示する

ヒント

script.sh
script.sh
学習モード
script.sh
ターミナル出力