ターミナル作業をしていると、同じコマンドを何十回も打っている自分に気づくことがある。
git status、docker-compose up -d、cd /home/user/projects/myapp……。
これ、全部エイリアスにできる。今回は Linux / macOS のシェルで使える alias コマンドを徹底的に掘り下げる。基本の使い方から、実際に業務で使えるエイリアス集、oh-my-zsh との連携まで、これ一本で完全に理解できるようにまとめた。
aliasとは何か
alias はコマンドに別名(ショートカット)をつける仕組みだ。長いコマンドや、オプションを毎回指定しなければならないコマンドを、短い名前で呼び出せるようになる。
macOS や多くの Linux ディストリビューションでは、最初からいくつかのエイリアスが定義されている。現在定義済みのエイリアスを確認するには、引数なしで alias を実行する。
alias
出力例(Ubuntu の場合):
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'
ll は ls -alF の短縮形として使えるわけだ。
エイリアスの基本的な作り方
構文はシンプルだ。
alias エイリアス名='コマンド文字列'
重要なポイント:
=の前後にスペースを入れない(入れるとエラーになる)- コマンドにスペースやオプションが含まれる場合はシングルクォートまたはダブルクォートで囲む
- シングルクォートの中ではシェル変数が展開されない。ダブルクォートでは展開される
実際に作ってみる。
alias ll='ls -alh --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
これをターミナルで実行すると、そのセッション中だけ有効になる。ターミナルを閉じれば消える。
エイリアスを永続化する:.bashrc / .zshrc に書く
ターミナルを閉じても使えるようにするには、シェルの設定ファイルに書く必要がある。
使っているシェルによってファイルが違う。
# 現在のシェルを確認する
echo $SHELL
- bash →
~/.bashrc(対話シェル)または~/.bash_profile(ログインシェル) - zsh →
~/.zshrc
設定ファイルをエディタで開いて末尾に追記する。
# vim の場合
vim ~/.bashrc
# nano の場合(初心者向け)
nano ~/.bashrc
# VSCode がある場合
code ~/.bashrc
ファイルの末尾に、わかりやすくコメントを書いてまとめておくと管理しやすい。
# ===========================
# My Aliases
# ===========================
# ナビゲーション
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias home='cd ~'
alias proj='cd ~/projects'
# ls 系
alias ll='ls -alh --color=auto'
alias la='ls -A --color=auto'
alias lt='ls -lt --color=auto' # 更新時刻順
alias lz='ls -lS --color=auto' # ファイルサイズ順
# よく使うコマンドの短縮
alias c='clear'
alias h='history'
alias q='exit'
alias reload='source ~/.bashrc' # zsh なら source ~/.zshrc
書き終わったら保存して、変更を現在のセッションに反映させる。
source ~/.bashrc
# または
. ~/.bashrc
これで次回以降のターミナル起動時も自動的に読み込まれる。
実際に役立つエイリアス集
Git 操作を速くするエイリアス
Git を使う人なら絶対に入れておきたい。
# Git の基本
alias gs='git status'
alias ga='git add'
alias gaa='git add .'
alias gc='git commit -m'
alias gca='git commit -am'
alias gp='git push'
alias gpl='git pull'
alias gd='git diff'
alias gl='git log --oneline --graph --decorate'
alias gb='git branch'
alias gco='git checkout'
alias gcb='git checkout -b'
alias gst='git stash'
alias gstp='git stash pop'
# よく使う複合操作
alias gpush='git push origin $(git branch --show-current)'
alias gundo='git reset --soft HEAD~1' # 直前のコミットを取り消し(変更は残す)
alias gclean='git restore .' # ワーキングツリーの変更を全部捨てる(注意)※Git 2.23以降の推奨構文
Docker / Docker Compose 向け
alias d='docker'
alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
alias dcr='docker compose restart'
alias dcl='docker compose logs -f'
alias dps='docker ps'
alias dpsa='docker ps -a'
# 止まったコンテナとゴミを一括削除
alias dclean='docker system prune -f'
# コンテナに入る(bash が使えるコンテナ用)
dexec() {
docker exec -it "$1" bash
}
システム管理向け
# ネットワーク確認
alias myip='curl -s ifconfig.me'
alias localip='ip addr show | grep "inet " | grep -v 127.0.0.1'
# ディスク・メモリ確認
alias df='df -h'
alias du='du -sh'
alias free='free -h'
# プロセス確認
alias psg='ps aux | grep' # 例: psg nginx
# ポートを使っているプロセスを調べる(番号指定)
portcheck() {
lsof -i :"$1"
}
# ファイル検索(find の短縮)
alias ff='find . -name' # 例: ff "*.log"
開発作業向け
# Node.js / npm
alias ni='npm install'
alias nid='npm install --save-dev'
alias nr='npm run'
alias ns='npm start'
alias nt='npm test'
alias nb='npm run build'
# Python
alias py='python3'
alias pip='pip3'
alias venv='python3 -m venv venv && source venv/bin/activate'
alias activate='source venv/bin/activate'
# サーバーを開く(カレントディレクトリをHTTPで公開)
alias serve='python3 -m http.server 8080'
関数エイリアス:引数が必要な場合
エイリアスは引数を柔軟に扱えない。引数が必要な場合はシェル関数を使う。書き方は同じく .bashrc / .zshrc に書けばいい。
# ディレクトリを作ってすぐに移動する
mkcd() {
mkdir -p "$1" && cd "$1"
}
# ファイル検索して内容も表示する(fgrepはシステムコマンドと名前が被るためrgfindを使用)
rgfind() {
grep -r "$1" . --include="$2"
}
# 使い方: rgfind "TODO" "*.js"
# バックアップを作る(日時付き)
bak() {
cp "$1" "$1.bak_$(date +%Y%m%d_%H%M%S)"
}
# 使い方: bak config.json → config.json.bak_20260227_143022 が作られる
# ポートを kill する
killport() {
lsof -t -i:"$1" | xargs kill -9
}
# 使い方: killport 3000
oh-my-zsh を使っているなら:プラグインで一気に解決
zsh ユーザーで oh-my-zsh を使っているなら、プラグインを有効にするだけで大量の有用なエイリアスが使えるようになる。
~/.zshrc の plugins=(...) の部分を編集する。
plugins=(
git
docker
docker-compose
npm
python
z
)
git プラグインだけで gst(git status)、gco(git checkout)など 150 以上のエイリアスが追加される。詳細は alias | grep ^g で確認できる。
z プラグインは特に便利で、過去に移動したことのあるディレクトリに、パスの一部を入力するだけで飛べるようになる。
z proj # ~/projects に飛ぶ(過去に cd したことがあれば)
エイリアスの確認・削除・管理
特定のエイリアスを確認する
alias gs # gs が何に割り当てられているか確認
# 出力: alias gs='git status'
エイリアスを一時的に無効にする
既存のコマンドと名前が被ったとき、一時的にエイリアスを無効にしてオリジナルのコマンドを実行したい場合は \ をつける。
# ls が alias ls='ls --color=auto' で上書きされていても
\ls # color なしのオリジナル ls が実行される
エイリアスを削除する
unalias gs # gs エイリアスを削除
unalias -a # 全エイリアスを削除(注意して使う)
.bashrc の変更を確認してから適用するワークフロー
# 変更前にバックアップ
cp ~/.bashrc ~/.bashrc.backup
# 編集
vim ~/.bashrc
# 構文エラーがないか確認(bash の場合)
bash -n ~/.bashrc
# 問題なければ反映
source ~/.bashrc
よくあるトラブルと解決策
「command not found」になる
エイリアスが定義されているはずなのに使えない場合、source ~/.bashrc を実行し忘れていることが多い。またはファイルの記述に誤りがある。
# エイリアスが定義されているか確認
alias | grep エイリアス名
スペースや特殊文字を含むパスでエラーになる
スペースを含むパスは必ずクォートで囲む。
# NG
alias mydir='cd /home/user/My Projects'
# OK
alias mydir='cd "/home/user/My Projects"'
エイリアスの中でエイリアスを使いたい
デフォルトではエイリアスの展開は1段階のみ。エイリアスの中で別のエイリアスを使いたい場合は関数にする。
まとめ
alias は「覚えるのが面倒なオプション」と「長いパス」をなくすためのツールだ。最初は数個から始めて、「またこのコマンド打った」と感じたらエイリアス化するサイクルを回すといい。
今すぐやること:
aliasを実行して現在の設定を確認する~/.bashrcまたは~/.zshrcに自分のエイリアスセクションを追加するsource ~/.bashrcで反映させる
慣れてきたら関数エイリアスにも手を出すと、さらに作業効率が上がる。シェルを自分色に染めていくのも、ターミナル作業の面白さの一つだ。