トップ > Linuxらしい使い方を覚える >
打つのが面倒なコマンドもエイリアスで楽に実行

  

エイリアスとはどのようなモノで何が便利なのか

この記事ではシェルの機能である "エイリアス" について解説します。 エイリアス(Alias)は文字通り "別名" のことであり、コマンドに別名を付けるための機能です。

打つのが面倒なコマンドに別名を付けることで、キーボード入力を楽にすることができます。

ls -la に lla という別名を与えてみる

実際にエイリアスの機能を使ってみましょう。 ここでは、

ls -la

に、

lla

という別名を与えてみます。 つまり、隠しファイル・隠しディレクトリを含めて詳細表示するためのコマンドです。

別名を与えるためのコマンドは alias コマンドです。 端末を開き、キーボードから alias lla='ls -la' と入力して、Enterキーを押してください。


alias lla='ls -la'

 
  
=(イコール) の前が別名で、後ろが実行されるコマンドです。 コマンド内に空白が存在する場合は、このように '(引用符) で囲む必要があります。 "(二重引用符) でも大丈夫です。

以下のように何も結果が表示されませんが、問題はありません

taro@myhostname:~$ alias lla='ls -la'
taro@myhostname:~$

では、与えた別名 lla を実行してみましょう。 キーボードから lla と入力して、Enterキーを押してください。


lla

 

以下のように ls -la と同じ結果が得られます。

taro@myhostname:~$ lla
合計 120
drwxr-x--- 16 taro taro 4096  6月 19 13:13 .
drwxr-xr-x  3 root root 4096  4月 17 09:44 ..
-rw-------  1 taro taro   55  6月 19 12:01 .Xauthority
-rw-------  1 taro taro 5700  6月 19 13:07 .bash_history
-rw-r--r--  1 taro taro  220  6月 18 11:58 .bash_logout
-rw-r--r--  1 taro taro 3771  6月 18 11:58 .bashrc
drwxr-xr-x 18 taro taro 4096  6月 11 16:25 .cache
drwxr-xr-x 20 taro taro 4096  6月 11 16:25 .config
-rw-r--r--  1 taro taro   23  5月 18 18:22 .dmrc
-rw-r--r--  1 taro taro   58  5月 18 16:56 .gtkrc-2.0
-rw-r--r--  1 taro taro  516  4月 17 09:44 .gtkrc-xfce
-rw-------  1 taro taro   20  6月 10 13:43 .lesshst
drwxrwxr-x  4 taro taro 4096  5月 18 15:57 .linuxmint
drwxrwxr-x  3 taro taro 4096  5月 18 15:40 .local
drwx------  4 taro taro 4096  5月 18 18:18 .mozilla
-rw-r--r--  1 taro taro  807  6月 18 11:58 .profile
-rw-r--r--  1 taro taro    0  5月 18 15:59 .sudo_as_admin_successful
-rw-------  1 taro taro 5406  6月 19 12:02 .xsession-errors
-rw-------  1 taro taro 5774  6月 18 21:56 .xsession-errors.old
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Desktop
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Documents
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Downloads
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Music
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Pictures
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Public
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Templates
drwxr-xr-x  2 taro taro 4096  6月 10 13:11 Videos
drwxrwxr-x  4 taro taro 4096  6月 19 12:09 test
taro@myhostname:~$

このようにエイリアスを使うことで、少ないキー入力でコマンドを実行することができます。

エイリアスを削除する

せっかく定義したエイリアスですが、ここで削除することにします。 エイリアスを削除するためのコマンドは unalias コマンドです。

キーボードから unalias lla と入力して、Enterキーを押してください。


unalias lla

 

以下のように、またしても何も結果が表示されませんが、これも問題はありません

taro@myhostname:~$ unalias lla
taro@myhostname:~$

では、再度 lla を実行してみましょう。 キーボードから lla と入力して、Enterキーを押してください。


lla

 

以下のように "コマンドが見つからない" と怒られます。

taro@myhostname:~$ lla
コマンド 'lla' が見つかりません。もしかして:
  command 'lqa' from deb lqa (20210324~git9fff6ab09969-2)
  command 'llt' from deb storebackup (3.2.1-2)
  command 'lha' from deb jlha-utils (0.1.6-4.1)
  command 'lha' from deb lhasa (0.3.1-4)
  command 'llc' from deb llvm (1:14.0-55~exp2)
  command 'tla' from deb tla (1.3.5+dfsg1-2build1)
  command 'lola' from deb lola (1.6-1)
  command 'lli' from deb llvm-runtime (1:14.0-55~exp2)
  command 'lua' from deb lua5.1 (5.1.5-8.1build4)
  command 'lua' from deb lua5.2 (5.2.4-2)
  command 'lua' from deb lua5.3 (5.3.6-1build1)
  command 'lua' from deb lua5.4 (5.4.4-1)
  command 'lua' from deb tarantool (2.6.0-1ubuntu3)
  command 'lld' from deb lld (1:14.0-55~exp2)
次を試してみてください: sudo apt install <deb name>
taro@myhostname:~$

このようにエイリアスを削除することができました。

定義済みのエイリアスを確認するには

引数無しで alias コマンドを実行することで、定義済みの全てのエイリアスを確認することができます。 キーボードから alias と入力して、Enterキーを押してください。


alias

 

以下のように定義済みのエイリアスの一覧が表示されます。

taro@myhostname:~$ 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 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'
taro@myhostname:~$

エイリアス名を指定することもできます。 キーボードから alias ls と入力して、Enterキーを押してください。


alias ls

 

以下のように定義済みのエイリアス ls の詳細が表示されます。

taro@myhostname:~$ alias ls
alias ls='ls --color=auto'
taro@myhostname:~$

このようにエイリアス名を指定して定義内容を確認することもできます。

コマンドラインから定義したエイリアスは一時的なもの

上の例ではコマンドラインからエイリアスを定義し、それを利用することができました。 ただし、コマンドラインから定義したエイリアスは一時的にしか利用することができません端末を閉じると消えてしまうからです

では、どうすれば常に有効なエイリアスを定義できるのでしょうか。 それが前の記事で解説したシェルファイルの ~/.bashrc です。 ~/.bashrc にエイリアスを記述しておけば、端末を開くたびに実行されます

実際に Linux Mint では ~/.bashrc 内でいくつかのエイリアスが定義されています。 例えば、UNIX系OSでよく使われている

ls -l

というコマンドへのエイリアスです。 この "打ち込むのが少々煩わしい" ls -l というコマンドに、

ll

という別名を付けています。 ll と打ち込むだけで ls コマンドに詳細表示させることができます。

  
正確には 'ls -alF' に ll という別名を与えています。
  

エイリアスを一時的に無効にする

エイリアスの機能はとても便利なものです。 しかし "今だけはエイリアスを無効にして生のコマンドを実行したい" という場面もあることでしょう。 もちろん、エイリアスを削除する、というやり方ではありません

今回は ls コマンドのエイリアスを無効にしてみましょう。 まずは、ls と打ち込むと何が実行されるのかを確認します。 キーボードから alias ls と入力して、Enterキーを押してください。


alias ls

 

以下のように ls は生コマンドではなく、'ls --color=auto' のエイリアスであることがわかります。

taro@myhostname:~$ alias ls
alias ls='ls --color=auto'
taro@myhostname:~$

なお --color=auto オプションは "出力先が端末の場合にはカラー出力する" という意味のオプションです。

では試しに ls コマンドを普通に実行してみましょう。 つまり、エイリアスが有効な状態です。

キーボードから ls と入力して、Enterキーを押してください。


ls

 

以下のようにカラー出力されます。 コマンドプロンプトが緑色で、ディレクトリが青色で着色されています。

taro@myhostname:~$ ls
Desktop    Downloads  Pictures  Templates  testfile
Documents  Music      Public    Videos
taro@myhostname:~$

こんな表示では目がチカチカしてやってられません。 一時的にカラー出力を無効にしましょう。 つまり、ls コマンドをオプション無しで実行します

なお、生の ls コマンドを実行する方法は4つあります。 それぞれ以下で解説します。

フルパスで実行する

まず1つ目は、フルパスで実行する方法です。 フルパスとは、コマンドを絶対パスで記述することを指します。

実際にやってみましょう。 まずは、ls コマンドのファイルパスを調べます。 キーボードから which ls と入力して、Enterキーを押してください。


which ls

 

以下のように ls コマンドのファイルパスが /usr/bin/ls であることがわかります。

taro@myhostname:~$ which ls
/usr/bin/ls
taro@myhostname:~$

では、フルパスで ls コマンドを実行しましょう。 キーボードから /usr/bin/ls と入力して、Enterキーを押してください。


/usr/bin/ls

 

以下のようにカラー出力ではなくなりました

taro@myhostname:~$ /usr/bin/ls
Desktop    Downloads  Pictures  Templates  testfile
Documents  Music      Public    Videos
taro@myhostname:~$

このようにフルパスでコマンドを実行することでエイリアスの発動を防ぐことができます。

バックスラッシュ(\)を先頭に置く

続いての2つ目の方法は、先頭に \(バックスラッシュ) を置くという方法です。

  
\ はバックスラッシュです。 バックスラッシュはUNIX系OSでは \(バックスラッシュ) として正しく表示されますが、Windows では ¥(円マーク) として表示されます。 どちらにしても、日本語キーボードからは ¥(円マーク) で入力します。
  
ウェブ上でのバックスラッシュの表示は、ウェブブラウザによって異なります。 \(バックスラッシュ) として表示するものもあれば ¥(円マーク) として表示されるものもあります。

では、実際にやってみましょう。 キーボードから \ls と入力して、Enterキーを押してください。


\ls

 

以下のようにエイリアスを無効にすることができます

taro@myhostname:~$ \ls
Desktop    Downloads  Pictures  Templates  testfile
Documents  Music      Public    Videos
taro@myhostname:~$

このように先頭に \(バックスラッシュ) を足すことでもエイリアスを無効にできます。

引用符(') か 二重引用符(") でコマンドを囲む

3つ目の方法は、コマンドを '(引用符) または "(二重引用符) で囲むという方法です。

それではやってみましょう。 キーボードから 'ls' と入力して、Enterキーを押してください。


'ls'

 

以下のようにエイリアスを無効にすることができます

taro@myhostname:~$ 'ls'
Desktop    Downloads  Pictures  Templates  testfile
Documents  Music      Public    Videos
taro@myhostname:~$

このように '(引用符) で囲むことでもエイリアスを無効にすることができます。 なお、"(二重引用符) でも同じ結果になります。

command コマンドを使って実行する

最後の4つ目の方法は、command コマンドで呼び出すという方法です。 command という名前のビルトインコマンドがあるのです。

それでは、やってみましょう。 キーボードから command ls と入力して、Enterキーを押してください。


command ls

 

以下のようにこの方法でもエイリアスを無効にすることができます

taro@myhostname:~$ command ls
Desktop    Downloads  Pictures  Templates  testfile
Documents  Music      Public    Videos
taro@myhostname:~$

このように command コマンドを使うことで、エイリアスの検出を抑制することができます。

  

まとめ

シェルにはコマンドに別名を与えるためのエイリアスという機能があります。 例えば、

alias lla='ls -la'

と実行することで、

ls -la

というコマンドに、

lla

という別名を与えることができます。

引数を付けずに、

alias

と実行すると、定義済みのエイリアスの一覧が表示されます。 なお、エイリアス名がわかっている場合には、

alias lla

と実行することで、そのエイリアスの詳細を確認することができます。

エイリアスが不要になった場合は、

unalias lla

と実行することで削除することができます。

操作/コマンド 説明
alias name='command arg' command arg というコマンドに name という別名(エイリアス)を与える
alias 定義済みのエイリアスの一覧を表示する
alias name エイリアス name の定義内容を表示する
unalias name エイリアス name を削除する

エイリアスは端末を閉じると消えてしまいます。 次回以降も有効にしたければ、シェルファイルである ~/.bashrc に記述します。

エイリアスを一時的に無効にして生のコマンドを実行する方法には、

  1. フルパスで実行する(/usr/bin/ls)
  2. バックスラッシュ(\)を先頭に置く(\ls)
  3. 引用符(') か 二重引用符(") でコマンドを囲む('ls' または "ls")
  4. command コマンドを使って実行する(command ls)

の4つがあります。

メニュー