Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bashエイリアス入門:aliasコマンドの基本から実践的な活用例まで徹底解説

Bashエイリアス入門:aliasコマンドの基本から実践的な活用例まで徹底解説

写真提供: pchow98

ドラマ『エイリアス』のジェニファー・ガーナーのように華麗に活躍することはできなくても、Linuxのaliasコマンドを効果的に使いこなすことは誰にでも可能です。

aliasコマンドとは、簡単に言えば「文字列の置き換え」機能です。ある名前を入力すると、それが事前に登録しておいた別のコマンド(オプション付き)へと自動的に置き換えられて実行されます。

この記事では、bashエイリアスの一時的な設定・解除方法と、永続的な設定方法を解説します。さらに、bashの起動ファイルにそのまま組み込める便利なエイリアスの実例も多数紹介します。

本記事は、継続的に公開しているbashチュートリアルシリーズの一部です。これまでの「bash入門」や「bash終了ステータス」に関する記事も、あわせてご参照ください。

エイリアスの設定方法

エイリアスは、コマンドライン上でも、.bash_profile.bashrcの中でも、以下の構文で定義できます。

$ alias name='unix command with options'
  • alias – シェルの組み込みコマンドです
  • name – ユーザーが自由に決められるエイリアス名です
  • command – 実行したいUNIXコマンド。オプションを含めて指定できます

つまり、「name」が「command」の別名(エイリアス)になります。「name」をコマンドとして入力するたびに、bashが自動的に対応するコマンドとオプションに置き換えて実行してくれます。

注意点: 等号(=)の前後にスペースを入れてはいけません。また、置き換える文字列が複数の単語で構成される場合は、コマンド全体を引用符('または")で囲む必要があります。

コマンドライン上で直接実行した場合、そのエイリアスは一時的なものになります。つまり、シェルを終了するまでしか有効になりません。一方、bashの起動ファイルにエイリアスを記述しておけば、永続的に使えるようになります。

以下に紹介するエイリアスは実用性が高いものばかりです。~/.bashrcファイルに設定してみてください。

よく使われる定番エイリアス例

以下のエイリアスは、そのままコピー&ペーストしてすぐに使えます。あなたのお気に入りのエイリアスは何ですか?

vimで最終更新ファイルを開く

alias Vim="vim `ls -t | head -1`"

サイズの大きい上位5つのファイルを検索する

alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"

bashプロセスをgrepで検索する

alias psg="ps -aux ¦ grep bash"

隠しファイルも含めて、識別子・カラー表示付きで一覧表示する

alias ls='ls -aF --color=always'

詳細形式(ロングフォーマット)で一覧表示する

alias ll='ls -l'

履歴と画面をすべてクリアする

alias hcl='history -c; clear'

基本的なコマンドを対話式かつ詳細表示にする

alias cp="cp -iv"      # 対話式・詳細表示
alias rm="rm -i"      # 対話式
alias mv="mv -iv"       # 対話式・詳細表示
alias grep="grep -i"  # 大文字小文字を区別しない

頻繁に使うコマンドを短縮する

alias x="exit"

画面をクリアしてファイル一覧を表示する

alias cls='clear;ls'

ディスク使用量を確認する

alias dus='df -h'

ディレクトリ間を素早く移動する

alias ..='cd ..'
alias ...='cd ../..'

cdコマンド関連のエイリアスをもっと知りたい方は、関連記事をご参照ください。

環境に合わせて修正が必要なエイリアス例

このセクションで紹介するエイリアスは、実際に使う前にご自身の環境に合わせて修正が必要です。

Firefoxのロックファイルを削除する

alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' # NAMEを編集してください

SSHでリモートマシンにログインする

alias server_name='ssh 192.168.1.1 -l tom' # IPアドレスとユーザー名を変更してください
alias ser2='ssh www.dbserver.com -l kgf' # 必要な数だけエイリアスを作成できます

リモートCVSサーバーにログインする

export CVS_RSH=/usr/local/bin/ssh
alias cvl='cvs -d :ext:username@cvs.server.com:/usr/local/cvsroot'  # 適宜変更してください

CD-ROMをアンマウントする

alias umnt='umount /mnt/cdrom'  # CD-ROM / USBメモリなど

設定済みのエイリアスを確認する方法

引数なしでaliasを実行すると、現在のシェルに設定されているエイリアスの一覧を表示できます。

$ alias
alias ..='cd ..'
alias ...='cd ../..'
alias mnt='mount /mnt/cdrom'
alias umnt='umount /mnt/cdrom'
alias dus='df -h'

特定のエイリアスだけを確認したい場合は、以下のように「alias エイリアス名」の形式で入力します。

$ alias dus
alias dus='df -h'

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

エイリアスではなく元のコマンド本体を呼び出したい場合は、バックスラッシュ(\)でエイリアスをエスケープして呼び出します。

$ \aliasname

たとえば、alias cp="cp -iv"と設定している場合、ファイルを上書きしようとすると毎回確認を求められます。大量のファイルをコピーする際、すでに上書きされることが分かっているなら、この確認はむしろ煩わしく感じるでしょう。そんなときは、一時的に通常のcpコマンドを使いたくなりますよね。

そこで、エイリアスcpが存在していても、以下のようにエスケープすれば本来のcpコマンドを使用できます。

\cp * /backup/files/

特定のエイリアスを削除する方法

unaliasは、エイリアスを削除するためのシェル組み込みコマンドです。特定のエイリアスを削除するには次のようにします。

$ unalias hcl
$ hcl
-bash: hcl: command not found

すべてのエイリアスを一括削除する方法

unalias-aオプションを付けると、設定されているすべてのエイリアスを削除できます。

$ unalias -a
$ alias

注意:シェル関数の方が高速

重要なポイント: シェル関数の方が処理速度が速いという特徴があります。シェルは関数を先に検索し、その後でエイリアスを参照するため、エイリアスの解決は相対的に遅くなります。エイリアスの方が理解しやすい反面、ほぼすべての用途において、シェル関数の方がエイリアスよりも推奨されています。標準コマンドをエイリアスや関数で置き換える場合は、十分に注意してください。

この記事で紹介したエイリアスは、サンプルのbashエイリアスファイルとしてまとめています。コピー&ペーストして、あなたのbash起動ファイルにそのまま活用できます。

エイリアスは非常に便利な機能ですが、次回のbash記事で紹介する「bash関数」は、少なくとも同じくらい興味深く、さらに実用的なものです。ぜひお楽しみに。

  1. Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

    シンボリックリンク(symlink)とは、Linux上で他のファイルやディレクトリ(フォルダ)を指し示すファイルの一種です。シンボリックリンクは、コマンドラインで ln コマンドを使用することで簡単に作成できます。シンボリックリンクは、ファイルやディレクトリへのショートカットとして機能するため、日々の作業で非常に役立ちます。この記事では、ln コマンドを使ってファイルやディレクトリへのシンボリックリンクを作成する方法を、具体例とともに解説します。Linuxにおけるソフトリンクとハードリンクの違いとは?ソフトリンク(シンボリックリンク)は、システム上の元ファイルを指し示します。一方、ハードリンク

  2. Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル

    Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の