alias コマンド入門 - エイリアスでコマンドを短縮する方法
この記事でできるようになること
- `alias` で長いコマンドに短い別名をつけられる
- `~/.bashrc` に書いて `source` すれば、次に開いた画面でも使える
- `unalias` で消せる。動かないときは `type` で原因を調べられる
前提知識(先に読むと理解しやすい記事)
エイリアスってなに?
ls -la --color=auto って打つのが面倒で…もっと楽な方法ないですか?alias ll='ls -la --color=auto' と書けば、次からは ll だけで済む。エイリアス(alias) は、長いコマンドに短い別名をつける仕組みです。「別名」「あだ名」「ショートカット」と呼ばれることもあります。この記事では「エイリアス」で統一します。
エイリアスを使うと、毎回打ち込む手間が減ります。打ち間違いも減らせます。
言葉の整理
- ターミナル:コマンドを打ち込んで、結果を文字で受け取る画面のことです。
- シェル:あなたが打ったコマンドを読み取って実行するプログラムのことです。この記事では
bashを前提にします。 - ターミナル・シェル・コンソールは、ほぼ同じものを指す別の呼び方として使われます。
エイリアスはシェルが覚えている「言いかえの表」だと考えてください。
一言でいうと
alias 短い名前='長いコマンド'
これだけです。今すぐ使えます。
安心してほしいこと
この記事で使う alias と unalias は、ファイルを消しません。書きかえもしません。打ち間違えても、あなたのパソコンは壊れません。
あとで出てくる ~/.bashrc の編集だけは、設定ファイルに手を入れます。そこは 4-1 節 で「壊れたときの戻し方」を先に説明します。
この記事でわかること
alias 短い名前='長いコマンド'で、長いコマンドに別名をつけられます- 設定済みのエイリアスは
aliasで一覧できます。alias 名前なら 1 つだけ確認できます typeで定義を確認できます。名前の前に\を付けると、その 1 回だけエイリアスを無視できます~/.bashrcに書いてsourceすれば、次に開いたターミナルでも使えますunaliasで削除できます。.bashrcの行を消すまでは、開き直すと復活します
1. 基本の使い方
結論:
alias 名前='コマンド'で設定すれば、すぐ使える。ただし設定は今の画面かぎりで、閉じると消える。
1-1. エイリアスを設定する
$ alias ll='ls -la'
設定したら、すぐに使えます。
$ ll
total 48 drwxr-xr-x 5 user user 4096 May 31 19:00 . drwxr-xr-x 3 root root 4096 May 20 10:00 .. -rw-r--r-- 1 user user 220 May 20 10:00 .bash_logout -rw-r--r-- 1 user user 3526 May 20 10:00 .bashrc
alias コマンドで設定したエイリアスは、今のターミナルだけ で有効です。ターミナルを閉じると消えます。
閉じても残す方法は 4 章 で説明します。
1-2. 設定済みのエイリアスを一覧表示する
$ alias
alias のうしろに何も付けずに実行します。すると、今使えるエイリアスが全部表示されます。
alias ll='ls -la' alias grep='grep --color=auto' alias ls='ls --color=auto'
Ubuntu では、grep や ls に最初からオプションが設定されていることが多いです。これも alias コマンドで確認できます。
表示される中身は、お使いの環境によって変わります。上の例と違っても問題ありません。
1-3. 特定のエイリアスを確認する
$ alias ll
alias ll='ls -la'
2. よく使うエイリアス例
結論: ls 系・ディレクトリ移動・消し間違い防止(
-i)・git 系が定番。短くしすぎると意味がわからなくなるので注意する。
2-1. ls 系
alias ll='ls -la' alias la='ls -A' alias l='ls -CF'
la と ll って何が違うんですか?ls -la は隠しファイルも含めて詳しく表示するよ。ls -A も隠しファイルを表示するけれど、. と .. の 2 行は出さないんだ。. で始まるファイルのことだよ。.bashrc がその代表だね。用途で使い分けてみて。2-2. ディレクトリ移動
alias ..='cd ..' alias ...='cd ../..' alias ~='cd ~'
.. と打つだけで、1 つ上のディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。に移動できます。ディレクトリは、Windows や Mac でいうフォルダと同じ意味です。
2-3. 削除・上書きの事故防止
alias cp='cp -i' alias mv='mv -i' alias rm='rm -i'
-i は、コマンドのうしろに付けて動きを変えるスイッチです。こうしたスイッチを「オプション」と呼びます。
-i を付けると、実行の前に「本当にいいですか」と確認してくれます。
rm を安全に使うために
rm で消したファイルは、GUI と違ってゴミ箱に行きません。その場ですぐ完全に消えます。だからこそ alias rm='rm -i' のような確認つきの設定が役に立ちます。
本サイトの仮想ターミナルは学習用です。何を打っても、あなたのパソコンのファイルは消えません。安心して試してください。
シェルスクリプト内での注意点
シェルスクリプトの中でこのエイリアスが効くと、思わぬ動きになることがあります。確認待ちのまま止まってしまう場合があるからです。
スクリプトでは \rm や /bin/rm と書きます。こう書くと、エイリアスを無視してコマンド本体を呼び出せます。
2-4. git 系
alias gs='git status' alias ga='git add' alias gc='git commit' alias gp='git push' alias gl='git log --oneline'
gs と打つだけで git status が動くんですか。毎日使うので助かります。alias で一覧を確認すればいい。3. エイリアスを確認する・1 回だけ無視する
結論:
typeで「その名前が何なのか」がわかる。名前の前に\を付けると、その 1 回だけエイリアスを無視できる。
3-1. エイリアスが定義されているか確認する
$ type ll
ll is aliased to `ls -la'
type は、その名前が何なのかを教えてくれるコマンドです。エイリアスなのか、コマンドなのか、シェルの組み込み機能なのかを見分けられます。
定義されていない場合は、次のように表示されます。
$ type ll
bash: type: ll: not found
3-2. その 1 回だけエイリアスを無視する
alias rm='rm -i' を設定していると、毎回確認を求められます。今回だけ確認なしで動かしたいときは、名前の前に \ を付けます。
$ \rm file.txt
\ を付けると、シェルはエイリアスではなくコマンド本体を使います。設定そのものは消えません。次からはまた確認つきに戻ります。
3-3. リナの失敗:rm が確認してくれない
.bashrc に alias rm='rm -i' と書きました。それなのに、スクリプトの中の rm は確認なしで消しました。設定が壊れたんでしょうか。rm は、エイリアスではなく本物の rm として動く。確認は出ないよ。rm -i と自分で書く。それが確実だよ。4. エイリアスを永続化する
結論:
~/.bashrcに書けば、ターミナルを閉じても残る。今すぐ反映したいときはsource ~/.bashrcを実行する。
ターミナルを閉じても残るようにするには、~/.bashrc に書き足します。
~/.bashrc は、新しいターミナルを開くたびにシェルが自動で読み込む設定ファイルです。~ は自分のホームディレクトリを表す記号です。
4-1. 編集する前にバックアップを取る
壊れたときの戻し方を先に用意する
~/.bashrc は設定ファイルです。書き方を間違えると、ターミナルを開くたびにエラーが出ることがあります。
そこで、編集の前にコピーを取っておきます。
$ cp ~/.bashrc ~/.bashrc.bak
おかしくなったら、コピーから戻せます。
$ cp ~/.bashrc.bak ~/.bashrc $ source ~/.bashrc
エラーが出るだけでターミナルが使える場合は、上の 2 行で元に戻ります。
ターミナルが開いてすぐ閉じてしまう場合は、設定ファイルを読まずに起動できます。別のターミナルから次のように打ってください。
$ bash --norc --noprofile
この状態なら、上の cp で元に戻せます。
4-2. .bashrc を編集する
$ nano ~/.bashrc
nano は初心者向けのテキストエディタです。ファイルの末尾に、次のように書き足します。
# My aliases alias ll='ls -la' alias ..='cd ..' alias gs='git status' alias cp='cp -i' alias mv='mv -i' alias rm='rm -i'
4-3. 変更を今すぐ反映する
.bashrc を編集しただけでは、今開いているターミナルには届きません。次のコマンドで読み直します。
$ source ~/.bashrc
短縮形でも同じ意味です。
$ . ~/.bashrc
source コマンドとは
.bashrc を「今のシェルでもう一度読む」コマンドです。
新しいターミナルを開けば .bashrc は自動で読み込まれます。source を使えば、開き直さずに今すぐ反映できます。
5. エイリアスを削除する
結論:
unalias 名前で 1 つだけ、unalias -aで全部を削除する。ただし.bashrcの行を消さないと、開き直したときに復活する。
5-1. 特定のエイリアスを削除する
$ unalias ll
5-2. 全エイリアスを削除する
$ unalias -a
unalias が消すのは、今のターミナルの分だけです。ターミナルを閉じて開くと .bashrc が読み直されます。そのため、エイリアスは復活します。
完全に消したいときは、.bashrc から該当する行も削除してください。
6. うまく動かないときの確認
結論: まず
type llで定義を確認する。保存忘れ・source忘れ・=の前後のスペースが 3 大原因。
ll が使えません。どうしてでしょうか。type ll を実行してみて。$ type ll
ll is aliased to `ls -la'
定義されていれば、上のように表示されます。表示されない場合は、次の 3 点を確認します。
確認チェックリスト
.bashrcを保存したか(nano ならCtrl+O→Enter→Ctrl+X)source ~/.bashrcを実行したか- エイリアスの書き方に間違いがないか
よくあるミス:= の前後のスペース
# NG: = の前後にスペースを入れてはいけない alias ll = 'ls -la' # OK alias ll='ls -la'
= の前後にスペースがあると、エラーになります。シェルが ll をコマンド名だと読み違えるからです。
7. ミニ課題:実際にやってみよう
結論: 作る・確かめる・残すの 3 問で、エイリアスの基本を手で確かめる。
課題 1: la という名前で、隠しファイルも表示する一覧コマンドを作ろう。
ヒント 1(方向づけ)を見る
短い名前と、その中身になる長いコマンドを、イコールでつなぎます。中身はクォート文字列を引用符(' や ")で囲むこと。スペースなどを含む値をひとまとまりとして扱える。で囲みます。
ヒント 2(コマンド名)を見る
使うのは alias です。隠しファイルも表示するのは ls -a です。
答えを見る
$ alias la='ls -a' $ la
. .. .bashrc .profile Documents Downloads
表示される中身は、お使いの環境で変わります。. で始まる行が出れば成功です。
課題 2: 作った la が本当にエイリアスか確かめよう。そのうえで、1 回だけエイリアスを無視して実行しよう。
ヒント 1(方向づけ)を見る
「その名前が何なのか」を教えてくれるコマンドがあります。無視したいときは、名前の前に記号を 1 つ付けます。
ヒント 2(コマンド名)を見る
確認は type です。1 回だけ無視する記号は \ です。
答えを見る
$ type la $ \la
la is aliased to `ls -a' bash: la: command not found
\la はエイリアスを無視します。la というコマンド本体は存在しません。そのため command not found が出れば正解です。
課題 3: la を、次に開くターミナルでも使えるようにしよう。編集の前にバックアップを取ること。
ヒント 1(方向づけ)を見る
新しいターミナルを開くたびに自動で読まれる設定ファイルがあります。まずコピーを取ってから、そこに書き足します。
ヒント 2(コマンド名)を見る
コピーは cp、編集は nano、今すぐ反映するのは source です。ファイルは ~/.bashrc です。nano は Ctrl+O → Enter → Ctrl+X で保存して閉じます。
答えを見る
$ cp ~/.bashrc ~/.bashrc.bak $ nano ~/.bashrc
末尾に次の 1 行を書き足して保存します。
alias la='ls -a'
$ source ~/.bashrc $ type la
la is aliased to `ls -a'
1 行だけ足すなら、nano を開かずに次のように打つ方法もあります。>> はファイルの末尾に書き足す記号です。> と書くと中身を全部消してしまうので、ここでは使いません。
$ echo "alias la='ls -a'" >> ~/.bashrc
8. 振り返り
alias は今の画面だけの設定で、.bashrc に書くと次からも使える、ということですね。source は「今すぐ読み直す」ための一手間だと考えるといいよ。type で正体を調べる。スクリプトの中では効かない。ここまで覚えました。コマンド早見表
| やること | コマンド |
|---|---|
| エイリアスを設定 | alias ll='ls -la' |
| 設定済み一覧を確認 | alias |
| 特定のエイリアスを確認 | alias ll |
| 名前の正体を調べる | type ll |
| 1 回だけ無視する | \ll |
| エイリアスを削除 | unalias ll |
| 全エイリアスを削除 | unalias -a |
| 設定を永続化 | ~/.bashrc に追記して source ~/.bashrc を実行 |
今日の 3 行まとめ
alias 名前='コマンド'で別名を作れる。ただし今のターミナルだけで有効~/.bashrcに書いてsourceすれば、次に開いた画面でも使える- 動かないときは
type 名前で正体を調べる。=の前後にスペースを入れない