alias – コマンドに別名をつけて便利にする

alias コマンドは、LinuxやUnixシステムで端末から実行されるコマンドに別名をつけるための便利なツールです。「エイリアス」と読みます。「またの名は」「別名」といった意味です。
以下に alias コマンドの基本的な使い方と便利な応用例を紹介します。
本稿では、Ubuntu 24.04環境を用いています。

新しいコマンドを別名で登録するには

次の形式でシェルから実行することにより、コマンドを別名で登録できます。

alias 登録名='登録するコマンド' 

例えば、cls という別名で、コマンド clear を実行できるようにする場合は、次のようにします。

alias cls=clear

clear は、端末の画面とそのスクロールバック バッファー (端末のスクロールバーで見える範囲のコマンド実行結果の履歴) をクリアするコマンドです。
登録したコマンドを実行してみてください。

cls

通常コマンドを登録する際、引数もまとめて登録したいものです。その場合は引数を含むコマンド全体を ‘(シングル・クォート)で囲みます。

alias clsx='clear -x'

clear コマンドに”-x”オプションを指定すると、スクロールバック バッファのクリアを行いません。

ちょっとした応用例

コマンド履歴を表示する history コマンドを使用し、過去実行したコマンドを検索できるコマンドを alias で作成してみます。
以下のようになります。

alias hg='history | grep -e'
  • コマンド名
    hg ー コマンド履歴を指定した文字列で検索し、結果を表示する
  • 使い方
    hg 検索文字列
    hg 検索文字列 -e 検索文字列(ORで検索)

使用例1

systemctl の使用履歴を検索します。

$ hg systemctl
   35  systemctl list-units -t service| grep running
  181  hg systemctl

使用例2

シェルの for 文を対話的に入力して実行したケースを検索します。空白を含む検索パターンなので、引数をシングルクォートで囲みます。

$ hg 'for i'
   77  for i in 1 2 3 4; do echo $i; done
  173  hg 'for i'

使用例3

netstat と locale のいずれかを含む履歴を検索します。-e オプションは grep コマンドでOR検索をする際のオプションです。

$ hg netstat -e locale
   16  sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
   17  soure /etc/default/locale
  105  netstat -nltu
  106  netstat -nltup
  113  netstat -nltu
  182  hg netstat -e locale

alias で登録されたコマンドを表示するには

引数を指定せずに alias コマンドを実行すると、alias で登録されている一覧が出力されます。以下はUbuntu 24.04での実行結果です。

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias cls='clear'
alias clsx='clear -x'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
$ 

1行目で alias を引数なしで実行することにより、2行目以降が表示されています。
3行目と4行目は先ほど登録した clear の alias です。
8行から11行までは、ディレクトリの中身を一覧する ls コマンドを、さらに便利にするための alias が登録されています。

alias を解除するには

別名で登録されたコマンド名を解除したい場合は、unalias コマンドを用います。
先ほど登録した clsx を解除したい場合は以下の通り実行します。

unalias clsx

alias の設定を保存したい場合には

alias の設定はログアウトすると消えてしまいます。恒久的に alias の設定を保存したい場合は、ホームディレクトリにある .bashrc ファイルに設定を追記します。
下図は、.bashrc の最後(8行目)に alias を追加した様子です。

   <略>

  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

alias cls=clear