エイリアスを使ってLinuxコマンドをカスタマイズしよう!

  • このエントリーをはてなブックマークに追加
  • Pocket

どうも、こんにちは。新川です。

 

いきなりですが、Linuxとか使用していると長いコマンド打つの面倒になってきませんか?

例えば自分がよく使うコマンドで面倒だと思うのが、プロセスが起動しているか確認するときに使用する以下のコマンドです。

ps -ef | grep <プロセス名など> | grep -v grep

 

上記は、ps コマンドで表示されたプロセス一覧から、grep コマンドに指定した文字列が含まれるものを出力するコマンドです。

grep -v grep は上記コマンドを実行した時に起動するプロセスの出力を、除外するものとなります。

 

よく使用するコマンドだけど長くて打つのが面倒だ!

なんてお悩みも「エイリアス(別名)」を使用すれば問題解決です。

 

今回はそんな便利なエイリアスを紹介したいと思います。

 

 

エイリアスとは

エイリアスは別名という意味ですが、その言葉の通り、長いコマンドなどを任意の文字列で”別名”として登録することができます。

 

例えば、冒頭で例に出したコマンドを”psck”という別名として登録したとします。

すると、”psck”とコマンドを打つだけで「ps -ef | grep <プロセス名など> | grep -v grep」コマンドが実行されることになります。

 

では、実際にエイリアス を使ってみましょう。

 

 

エイリアスを使ってみよう

エイリアスの登録

エイリアスの登録はとても簡単で、以下のコマンドを実行することで登録を行うことができます。

alias <別名>='<コマンド>’

 

実行例) ” ls -l “コマンドを” ll “として登録する。

[root@node1 ~]# alias ll=’ls -l’
[root@node1 ~]#

 

エイリアスの確認

登録したエイリアスは、aliasコマンドを実行することで確認できます。

 

実行例)

[root@node1 ~]# alias
alias cp=’cp -i’
alias ll=’ls -l’
alias mv=’mv -i’
alias rm=’rm -i’
[root@node1 ~]#

 

自分のLinux環境では、上記の通り “ll” 以外にもデフォルトでいくつかのエイリアスが登録されていました。

 

上記の “cp”、”mv”、”rm” コマンドは、ファイルのコピー、移動、削除のコマンドですが、全てにオプションの “-i” がついています。

オプションの “-i” は、ファイル操作前に確認プロンプトを表示するオプションです。

これにより、タイプミスなどで上記コマンドを誤って実行してしまった場合でも、ファイル操作前に確認プロンプトが表示される様になり、誤操作を抑止できます。

 

こういった安全面を考慮する場合でもエイリアスは便利ですね。

 

エイリアスの登録解除

エイリアスの登録をミスってしまったり、登録していたエイリアスが不要になったりした場合は、以下の コマンドを実行します。

unalias <別名>

 

実行例) 登録していた “ll” を解除する。

[root@node1 ~]# unalias ll
[root@node1 ~]#
[root@node1 ~]# alias
alias cp=’cp -i’
alias mv=’mv -i’
alias rm=’rm -i’
[root@node1 ~]#

 

unalias実行後に “ll” がなくなっていることが確認できます。

 

また、デフォルトで登録されている “cp” コマンドなどの様に、別名が通常のコマンドと同じ名前であり、オプションが設定されている場合、一時的にエイリアスを解除したい時があると思います。

そんな時は、コマンドの前にバックスラッシュをつけて実行することで、エイリアスが無効になります。

 

実行例)

[root@node1 ~]# \cp test1 test2
[root@node1 ~]#

 

関数の使用

上記で alias コマンドによるエイリアスの登録方法を説明しましたが、実は alias コマンドには落とし穴があります。

 

それは引数が使えないということです。

 

例えば冒頭で例に上げたプロセスチェックのコマンドですが、チェックしたいプロセスを引数として渡してコマンドを実行したいと思い、以下の通りエイリアスを登録したとします。

alias psck=’ps -ef | grep “${1}” | grep -v grep’

 

ですが、コマンドを実行すると正常に実行出来ずエラーとなってしまいます。

どうやら、引数を展開するときにこちらの意図した動きをしてくれていないようです。

 

引数を使用したい場合には、alias コマンドは使用せず関数を使ってエイリアスを設定します。

上記のプロセスチェックを関数で設定すると以下になります。

psck () {
ps -ef | grep “${1}” | grep -v grep;
}

 

こうすることで、以下の様に引数を使用してコマンドを実行出来る様になります。

[root@node1 ~]# psck “sshd”
root      1331     1  0 Apr25 ?        00:00:00 /usr/sbin/sshd
root      4950  1331  0 00:14 ?        00:00:00 sshd: root@pts/0
[root@node1 ~]#

 

また、当たり前ですが関数で設定したものは、alias コマンドでの表示、unalias コマンドでの登録解除を行うことができません。

設定した関数の確認と解除を行うには、以下を実行します。

 

  • 関数の確認 : declare -f
  • 関数の解除 : unset <関数名>

 

実行例)

[root@node1 ~]# declare -f
psck ()
{
ps -ef | grep “${1}” | grep -v grep
}
[root@node1 ~]#
[root@node1 ~]# unset psck
[root@node1 ~]#

 

エイリアスの永続設定

エイリアスの登録を紹介しましたが、このままでは一度ログアウトすると登録したエイリアスが解除されてしまいます。

次回ログイン以降も登録したエイリアスを使用したい場合は、ユーザプロファイルに設定を行います。

 

ユーザホームディレクトリで「.bash_profile」ファイルを開き、エイリアスを設定します。

[root@node1 ~]# vi .bash_profile
alias の登録時に実行するコマンドを記載します。
関数の場合も、関数をそのまま記載します。

設定内容を “:wq” で保存し、ファイルを閉じます。

 

設定が完了したら、以下のコマンドを実行し設定内容を反映します。

[root@node1 ~]# source .bash_profile
[root@node1 ~]#

 

これで、再ログイン後も設定したエイリアスを使用することが出来る様になりました。

 

 

エイリアスの使用例

実際に私が使用しているエイリアスをいくつか紹介したいと思います。

 

システムログ確認

alise slog=’cat /var/log/messages’

システムログを参照するだけのエイリアスです。

OSの設定を変更していてエラーがでた時、設定変更→動作→システムログ確認といったトライアンドエラーで対応する場合に、毎回システムログのパスを打たなくていいので地味に便利です。

 

作業ディレクトリ作成・移動

alias wdir=’mkdir /work/date +"%Y%m%d"; cd /work/date +"%Y%m%d"

私は作業ディレクトリとして、毎回その日の年月日のディレクトリを作成しているのですが、”wdir” を実行すると年月日ディレクトリを作成し、そのディレクトリまで移動する様になっています。

 

全サーバ疎通確認

alias pingall=’for SV in cat ~/server.list; do ping -c 3 ${SV}; done;’

server.listに設定された全サーバに対し、ping コマンドを実行する様になっています。

シェルで実行してもいいのですが、わざわざシェルを指定する必要がなく、どこのディレクトリにいてもコマンドとして実行できるので、こちらの方が使い勝手が良いです。

 

カレントディレクトリ配下のファイル・ディレクトリ詳細一覧の表示(フルパス)

alise findcr=’find pwd -exec ls -ld {} \;’

このディレクトリの下に何があったかなぁと思った時や、ディレクトリ・ファイル一覧を作成する時に使用しています。

 

タイムスタンプが n 日前より古いファイルの削除

fddrm () {
find pwd -mtime +${1} -exec rm -f {} \;
}

カレントディレクトリにあるファイルの中で、タイムスタンプが引数として渡す n 日前よりも古いものを削除します。

アプリのログを削除運用していない場合などに、まだ必要と思われる n 日前より古いログファイルを削除するときなどに使用します。

 

 

まとめ

今回紹介したエイリアスはとても便利な機能ですが、使用される前に1つ注意点があります。

それは、エイリアスを多用するとLinuxコマンドがなかなか覚えられないということです。

 

なぜかというと、コマンドオプションや複雑なコマンドも一度エイリアスに登録すると、それ以降は特に意識せず使えるようになってしまうからです。

 

パソコンに慣れると、漢字が書けなくなるといった現象と同じですね。

 

便利な機能ではありますが、しっかりと基礎を理解したうえで利用するのが良いでしょう。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*