aliasコマンドでエイリアスを設定する方法|永続化や実務で使える設定例もコマンド


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドA-E, ファイル・ディレクトリ管理コマンド > aliasコマンドでエイリアスを設定する方法|永続化や実務で使える設定例もコマンド
「毎回長いコマンドを打つのが面倒」
「よく使うオプション付きコマンドを、もっと短く呼び出せないだろうか」
Linuxでの作業効率を上げるなら、エイリアス(alias)を使わない手はありません。

この記事では、alias コマンドによるエイリアスの設定方法を基本から解説します。
一時的な登録・削除(unalias)はもちろん、.bashrc での永続化、実務で使える定番エイリアス、sudo でエイリアスが効かない問題の対策まで網羅しました。

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

エイリアスとは?aliasコマンドの役割

エイリアス(alias)とは、コマンドに「別名」を付けて登録する仕組みです。

たとえば、ls -la を毎回打つ代わりに ll という短い名前で実行できるようになります。

・オプション付きの長いコマンドを短縮できる
・危険な操作(rm など)に確認オプションを強制できる
・パイプやリダイレクトを含む定型処理をワンコマンド化できる

基本的な使い方

1. 現在のエイリアス一覧を表示する

引数なしで alias を実行すると、現在登録されているエイリアスの一覧が表示されます。

# 登録済みエイリアスを一覧表示する $ alias # 出力例 alias cp='cp -i' alias mv='mv -i' alias rm='rm -i' alias ll='ls -la'

多くのLinuxディストリビューションでは、cpmvrm-i(上書き確認)が最初からエイリアス設定されています。

2. エイリアスを登録する

alias 別名='コマンド' の形式で登録します。

# rm に -i オプションを付けて登録する $ alias rm='rm -i' # ls -la を ll で呼び出せるようにする $ alias ll='ls -la'

= の前後にスペースを入れないでください。スペースがあるとエラーになります。

コマンド部分はシングルクォート(')で囲みます。スペースやパイプを含むコマンドをシェルが誤って解釈しないようにするためです。

3. パイプを含むコマンドをエイリアスにする

パイプやリダイレクトを含む一連の処理も、ひとつのエイリアスにまとめられます。

# ls -l の結果を more でページ送りする $ alias lsmore='ls -l | more' # 現在のディレクトリのディスク使用量を見やすく表示する $ alias duh='du -sh *'

4. エイリアスを削除する(unalias)

登録したエイリアスを削除するには unalias コマンドを使います。

# rm のエイリアスを削除する $ unalias rm # 全てのエイリアスを一括削除する $ unalias -a

unalias -a は全エイリアスが消えるため、実行前に alias で現在の設定を確認しておきましょう。

5. エイリアスを一時的に無視してコマンドを実行する

エイリアスを削除せずに、元のコマンドをそのまま実行したい場合があります。以下の3つの方法があります。

バックスラッシュを付ける:\rm file.txt のようにコマンドの前に \ を付ける
commandコマンドを使う:command rm file.txt でエイリアスを無視して実行する(スクリプト内ではこちらが明示的で推奨)
フルパスで指定する:/bin/rm file.txt のように絶対パスで実行する

# エイリアスの rm -i を無視して、素の rm を実行する $ \rm file.txt # command を使う方法(スクリプト内で推奨) $ command rm file.txt

エイリアスの永続化(.bashrcに設定する)

alias コマンドで登録したエイリアスは、ログアウトすると消えます。毎回自動的に設定するには、ホームディレクトリの .bashrc に記述します。

1. .bashrcにエイリアスを追加する

# .bashrc を編集する $ vi ~/.bashrc # 以下を末尾に追記する alias ll='ls -la' alias la='ls -A' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias grep='grep --color=auto'

2. 設定を即座に反映する

.bashrc を編集しただけでは、現在のシェルには反映されません。source コマンド(または .)で再読み込みします。

# .bashrc を再読み込みして反映する $ source ~/.bashrc # 同じ意味(ドットコマンド) $ . ~/.bashrc

次回以降のログイン時には、.bashrc が自動で読み込まれるため、エイリアスが常に有効になります。

実務で使える定番エイリアス集

現場でよく使われるエイリアスをまとめました。.bashrc にそのまま追記して使えます。

1. 安全対策系(上書き・削除の確認)

# rm / cp / mv で上書き・削除前に確認する alias rm='rm -i' alias cp='cp -i' alias mv='mv -i'

本番サーバーでは、この3つはほぼ必須です。誤操作で設定ファイルを消してしまう事故を防げます。

2. ファイル一覧系

# 詳細表示(パーミッション・所有者・サイズ・日時) alias ll='ls -la' # 隠しファイルを含む一覧(. と .. を除く) alias la='ls -A' # ファイルサイズの大きい順にソート alias lt='ls -lhS'

3. 検索・ログ確認系

# grep の検索結果をカラー表示する alias grep='grep --color=auto' # 直近のコマンド履歴を検索する alias hg='history | grep' # ログのリアルタイム監視 alias tailf='tail -f'

4. ディレクトリ移動系

# 1つ上のディレクトリに戻る alias ..='cd ..' # 2つ上のディレクトリに戻る alias ...='cd ../..'

シングルクォートとダブルクォートの違い

エイリアスの定義では、シングルクォート(')とダブルクォート(")で動作が変わります。

シングルクォート:変数や特殊文字を展開しない。定義した文字列がそのまま保存される
ダブルクォート:変数が定義時に展開される。実行時ではなく、エイリアスを登録した時点の値が使われる

# シングルクォート:実行するたびに現在のディレクトリを表示する $ alias cwd='echo $PWD' # ダブルクォート:定義した時点のディレクトリが固定される $ alias cwd="echo $PWD"

通常はシングルクォートを使ってください。ダブルクォートが必要になるケースはまれです。

typeコマンドでエイリアスかどうかを確認する

あるコマンドがエイリアスなのか、シェルの組み込みコマンドなのか、外部コマンドなのかを確認するには type コマンドを使います。

$ type ll ll is aliased to 'ls -la' $ type cd cd is a shell builtin $ type vim vim is /usr/bin/vim

「自分が打っているコマンドが、実はエイリアスだった」というケースは意外と多いです。想定通りの動作をしない場合は、まず type で確認しましょう。

エイリアスの優先順位

bashでは、同じ名前のコマンドが複数存在する場合、以下の優先順位で実行されます。

1. エイリアス(alias)
2. シェル関数(function)
3. シェル組み込みコマンド(builtin)
4. 外部コマンド(/usr/bin/ 等にあるコマンド)

つまり、alias ls='ls -la' を設定すると、/bin/ls よりもエイリアスが優先されます。

意図しない動作が起きた場合は、type コマンド名 でどの段階のコマンドが実行されているかを確認してください。

エイリアスと関数の使い分け

エイリアスは便利ですが、引数の位置を自由に指定できないという制限があります。引数を取りたい場合はシェル関数を使います。

# エイリアスでは引数の位置を指定できない # alias grep-log='grep "$1" /var/log/messages' ← これは動かない # シェル関数なら引数を自由に使える grep-log() { grep "$1" /var/log/messages } # 使い方 $ grep-log "error"

使い分けの基準はシンプルです。

引数が不要、またはコマンドの末尾に付くだけ → エイリアスでOK
引数をコマンドの途中に挿入したい → シェル関数を使う

sudoでエイリアスが効かない問題と対策

sudo の後にエイリアスを使うと、エイリアスが無視されて素のコマンドが実行されます。

# rm は rm -i にエイリアス済みだが... $ sudo rm important-file.txt # → 確認なしで削除されてしまう(エイリアスが効いていない)

これは sudo がエイリアスを展開しない仕様のためです。対策として、sudo 自体にエイリアスを設定します。

# sudo の後のエイリアスも展開されるようにする alias sudo='sudo '

ポイントは sudo の後のスペースです。bashの仕様で、エイリアスの末尾がスペースの場合、次の単語もエイリアス展開の対象になります。

この設定を .bashrc に追記しておけば、sudo rm でも rm -i のエイリアスが有効になります。

トラブルシュート

「alias: command not found」が出る場合

alias はbashの組み込みコマンドです。shdash など別のシェルで実行している場合はエラーになることがあります。echo $SHELL で現在のシェルを確認してください。

.bashrcに書いたのにログイン時に反映されない場合

ログインシェルは .bashrc ではなく .bash_profile(または .profile)を読み込みます。.bash_profile の中で .bashrc を読み込む設定がない場合、ログイン時にエイリアスが反映されません。

# .bash_profile に以下を追記する if [ -f ~/.bashrc ]; then . ~/.bashrc fi

多くのディストリビューションでは最初から記述されていますが、もし反映されない場合はこの設定を確認してください。

エイリアスがスクリプト内で動かない場合

bashスクリプト(.sh ファイル)では、デフォルトでエイリアスが無効になっています。スクリプト内ではエイリアスではなくシェル関数を使うのが正解です。

本記事のまとめ

やりたいこと コマンド
登録済みエイリアスを一覧表示する alias
エイリアスを登録する alias ll='ls -la'
エイリアスを削除する unalias ll
全エイリアスを一括削除する unalias -a
エイリアスを無視して実行する \rm file.txt
エイリアスを無視して実行する(明示的) command rm file.txt
コマンドの種類を確認する type ll
エイリアスを永続化する vi ~/.bashrc に alias を追記
.bashrcを即座に反映する source ~/.bashrc
sudoでもエイリアスを有効にする alias sudo='sudo '

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。