32blogby Studio Mitsu

Linuxのaliasコマンド完全ガイド:シェルを10倍速くする設定術

aliasの基本から永続化・管理・実践パターンまで徹底解説。oh-my-zshのプラグインやgit・docker向けのエイリアス集も収録。

by omitsu18 min read
目次

alias ll='ls -alh' のように、長いコマンドに短い名前をつけるのが alias だ。.bashrc.zshrc に書けば永続化でき、関数を使えば引数付きのショートカットも作れる。

ターミナル作業をしていると、同じコマンドを何十回も打っている自分に気づくことがある。

git statusdocker-compose up -dcd /home/user/projects/myapp……。

これ、全部エイリアスにできる。今回は Linux / macOS のシェルで使える alias コマンドを徹底的に掘り下げる。基本の使い方から、実際に業務で使えるエイリアス集、oh-my-zsh との連携まで、これ一本で完全に理解できるようにまとめた。

aliasとは何か

alias はコマンドに別名(ショートカット)をつける仕組みだ。長いコマンドや、オプションを毎回指定しなければならないコマンドを、短い名前で呼び出せるようになる。

macOS や多くの Linux ディストリビューションでは、最初からいくつかのエイリアスが定義されている。現在定義済みのエイリアスを確認するには、引数なしで alias を実行する。詳しくは GNU Bash マニュアルの Aliases セクションを参照。

bash
alias

出力例(Ubuntu の場合):

bash
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'

llls -alF の短縮形として使えるわけだ。

エイリアスの基本的な作り方

構文はシンプルだ。

bash
alias エイリアス名='コマンド文字列'

重要なポイント:

  • = の前後にスペースを入れない(入れるとエラーになる)
  • コマンドにスペースやオプションが含まれる場合はシングルクォートまたはダブルクォートで囲む
  • シングルクォートの中ではシェル変数が展開されない。ダブルクォートでは展開される

実際に作ってみる。

bash
alias ll='ls -alh --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'

これをターミナルで実行すると、そのセッション中だけ 有効になる。ターミナルを閉じれば消える。

エイリアスを永続化する:.bashrc / .zshrc に書く

ターミナルを閉じても使えるようにするには、シェルの設定ファイルに書く必要がある。

使っているシェルによってファイルが違う。

bash
# 現在のシェルを確認する
echo $SHELL
  • bash~/.bashrc(対話シェル)または ~/.bash_profile(ログインシェル)
  • zsh~/.zshrc

設定ファイルをエディタで開いて末尾に追記する。

bash
# vim の場合
vim ~/.bashrc

# nano の場合(初心者向け)
nano ~/.bashrc

# VSCode がある場合
code ~/.bashrc

ファイルの末尾に、わかりやすくコメントを書いてまとめておくと管理しやすい。

bash
# ===========================
# 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

書き終わったら保存して、変更を現在のセッションに反映させる。

bash
source ~/.bashrc
# または
. ~/.bashrc

これで次回以降のターミナル起動時も自動的に読み込まれる。

実際に役立つエイリアス集

Git 操作を速くするエイリアス

Git を使う人なら絶対に入れておきたい。

bash
# 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 向け

bash
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
}

システム管理向け

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"

開発作業向け

bash
# 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 に書けばいい。

bash
# ディレクトリを作ってすぐに移動する
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 を使っているなら、プラグインを有効にするだけで大量の有用なエイリアスが使えるようになる。

~/.zshrcplugins=(...) の部分を編集する。

bash
plugins=(
  git
  docker
  docker-compose
  npm
  python
  z
)

git プラグインだけで gst(git status)、gco(git checkout)など 150 以上のエイリアスが追加される。git プラグインの全エイリアス一覧で定義を確認できるほか、alias | grep ^g でも一覧表示できる。

z プラグインは過去に移動したディレクトリに、パスの一部を入力するだけで飛べるツールだ。より高機能な代替として zoxide もある。oh-my-zsh には zoxide プラグインも用意されている。

bash
z proj   # ~/projects に飛ぶ(過去に cd したことがあれば)

エイリアスの確認・削除・管理

特定のエイリアスを確認する

bash
alias gs   # gs が何に割り当てられているか確認
# 出力: alias gs='git status'

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

既存のコマンドと名前が被ったとき、一時的にエイリアスを無効にしてオリジナルのコマンドを実行したい場合は \ をつける。

bash
# ls が alias ls='ls --color=auto' で上書きされていても
\ls    # color なしのオリジナル ls が実行される

エイリアスを削除する

bash
unalias gs        # gs エイリアスを削除
unalias -a        # 全エイリアスを削除(注意して使う)

.bashrc の変更を確認してから適用するワークフロー

bash
# 変更前にバックアップ
cp ~/.bashrc ~/.bashrc.backup

# 編集
vim ~/.bashrc

# 構文エラーがないか確認(bash の場合)
bash -n ~/.bashrc

# 問題なければ反映
source ~/.bashrc

応用テクニック

type / command -v でエイリアスをデバッグする

コマンドがエイリアスなのか、関数なのか、バイナリなのかを調べるには type を使う。

bash
type ls
# ls is aliased to 'ls --color=auto'

type mkcd
# mkcd is a function

type grep
# grep is aliased to 'grep --color=auto'

type curl
# curl is /usr/bin/curl

スクリプトの中でコマンドの存在確認をする場合は command -v が移植性が高い。

bash
if command -v docker &>/dev/null; then
  alias dc='docker compose'
fi

OS ごとにエイリアスを切り替える

macOS と Linux で同じ .bashrc を共有しているとき、OS によってコマンドが違う場面がある。$OSTYPE で分岐する。

bash
case "$OSTYPE" in
  linux*)
    alias open='xdg-open'
    alias pbcopy='xclip -selection clipboard'
    alias pbpaste='xclip -selection clipboard -o'
    ;;
  darwin*)
    alias ls='ls -G'
    alias readlink='greadlink'  # brew install coreutils
    ;;
esac

これで dotfiles を 1つ管理するだけで Linux でも macOS でも使える。

エイリアス専用ファイルに分離する

エイリアスが増えてきたら .bashrc を肥大化させずに専用ファイルに分離する。

bash
# ~/.bashrc の末尾に追記
if [ -f ~/.aliases ]; then
  source ~/.aliases
fi

~/.aliases にエイリアスだけを書く。チーム内で dotfiles リポジトリを共有する場合にも管理しやすい。

zsh 専用:グローバルエイリアス(alias -g)

zsh では alias -g で、コマンドの途中でも展開されるグローバルエイリアスを定義できる。パイプラインの省略に便利だ。

bash
# zsh のみ
alias -g L='| less'
alias -g G='| grep'
alias -g H='| head'
alias -g T='| tail'
alias -g C='| wc -l'
alias -g J='| jq .'
alias -g S='| sort'
alias -g U='| sort -u'

使い方:

bash
ps aux G nginx      # → ps aux | grep nginx
cat access.log C    # → cat access.log | wc -l
curl -s api.example.com/data J  # → ... | jq .

bash ではこの機能は使えない。bash ユーザーは関数で代替する。

zsh 専用:サフィックスエイリアス(alias -s)

zsh の alias -s は、ファイルの拡張子に対してデフォルトのプログラムを割り当てる。

bash
# zsh のみ
alias -s json='code'
alias -s md='code'
alias -s log='less'
alias -s py='python3'
alias -s html='open'
bash
# ファイル名だけ打つとエディタ/ビューアが開く
config.json    # → code config.json
README.md      # → code README.md
error.log      # → less error.log

よくあるトラブルと解決策

「command not found」になる

エイリアスが定義されているはずなのに使えない場合、source ~/.bashrc を実行し忘れていることが多い。またはファイルの記述に誤りがある。

bash
# エイリアスが定義されているか確認
alias | grep エイリアス名

スペースや特殊文字を含むパスでエラーになる

スペースを含むパスは必ずクォートで囲む。

bash
# NG
alias mydir='cd /home/user/My Projects'

# OK
alias mydir='cd "/home/user/My Projects"'

エイリアスの中でエイリアスを使いたい

デフォルトではエイリアスの展開は1段階のみ。エイリアスの中で別のエイリアスを使いたい場合は関数にする。

関連記事

FAQ

aliasとシェル関数の違いは?

aliasは単純なコマンド置換しかできない。引数を受け取ったり、条件分岐や繰り返しを含む処理にはシェル関数を使う。alias gs='git status' のような単純な短縮にはalias、mkcd() { mkdir -p "$1" && cd "$1"; } のように引数を柔軟に扱いたい場合は関数が適している。

aliasが効かない場合のデバッグ方法は?

まず type エイリアス名 で現在の状態を確認する。「not found」なら source ~/.bashrc を忘れている可能性が高い。alias | grep エイリアス名 で定義の有無を確認し、.bashrc の構文エラーは bash -n ~/.bashrc でチェックできる。

bashとzshでaliasの書き方は違う?

基本構文は同じだ。alias 名前='コマンド' はどちらでも使える。違いはzsh独自の機能で、alias -g(グローバルエイリアス)と alias -s(サフィックスエイリアス)はzshでしか使えない。

エイリアスが多すぎて管理できなくなったらどうする?

~/.aliases のような専用ファイルに分離し、.bashrc から source ~/.aliases で読み込む。カテゴリごとに ~/.aliases_git~/.aliases_docker のように分けるのも手だ。dotfiles管理ガイドで詳しく解説している。

sudoでaliasが効かないのはなぜ?

sudo は新しいシェルでコマンドを実行するため、現在のシェルで定義したエイリアスが引き継がれない。alias sudo='sudo '(末尾にスペース)を定義すると、sudo の後のコマンドもエイリアス展開されるようになる。

oh-my-zshのプラグインエイリアスと自分のエイリアスが競合したらどうなる?

後から定義された方が優先される。.zshrc ではプラグインの読み込み後に自分のエイリアスが定義されるので、通常は自分のエイリアスが勝つ。競合を確認するには alias | grep エイリアス名 で現在の定義を確認する。

まとめ

alias は「覚えるのが面倒なオプション」と「長いパス」をなくすためのツールだ。最初は数個から始めて、「またこのコマンド打った」と感じたらエイリアス化するサイクルを回すといい。

今すぐやること:

  1. alias を実行して現在の設定を確認する
  2. ~/.bashrc または ~/.zshrc に自分のエイリアスセクションを追加する
  3. source ~/.bashrc で反映させる

慣れてきたら関数エイリアスにも手を出すと、さらに作業効率が上がる。シェルを自分色に染めていくのも、ターミナル作業の面白さの一つだ。

関連記事: