Linuxにおけるエイリアスとコマンド実行のメカニズム

エイリアスの確認方法

Linux環境では、コマンドにデフォルトのオプションや引数を付与するためにエイリアスが活用されています。例えば、lsコマンドはls -Fのエイリアスとして設定されている場合があります。

特定のコマンドがエイリアスかどうかを確認するには、aliasまたはtypeコマンドを使用します。

alias コマンド名
type コマンド名

実行結果の例

[root@localhost vagrant]# alias ls
alias ls='ls -F'
[root@localhost vagrant]# type ls
ls is aliased to `ls -F'
[root@localhost vagrant]# 

エイリアスの定義

alias エイリアス名='コマンド 选项'
alias ls='ls -F'

エイリアスの削除

unalias エイリアス名
unalias ls
[root@localhost vagrant]# alias ls   //lsのエイリアス確認
alias ls='ls -F'
[root@localhost vagrant]# type ls   //lsのエイリアス確認
ls is aliased to `ls -F'
[root@localhost vagrant]# unalias ls  //lsのエイリアス削除
[root@localhost vagrant]# alias ls   //エイリアス削除後の確認
bash: alias: ls: not found    //エイリアスが存在しないことを確認
[root@localhost vagrant]# type ls  
ls is /bin/ls
[root@localhost vagrant]# alias ls='ls -F'  //エイリアスの再定義
[root@localhost vagrant]# alias ls   //再定義後の確認
alias ls='ls -F'
[root@localhost vagrant]# 

要点: エイリアスと同名のコマンドが存在する場合、シェル首先是エイリアスが優先的に実行されます。コマンドのデフォルトオプションは、同名のエイリアスを定義することで実装されており、エイリアスを確認することでデフォルトオプションを把握できます。

コマンドの実行メカニズム

シェルでコマンドを実行する際、パスを指定して実行する場合と、コマンド名のみを入力して実行する場合があります。

フルパスで実行した場合は、指定されたパスにある実行ファイルを直接実行します。

コマンド名のみを入力した場合は、内部コマンドであればメモリから直接読み出して実行し、外部コマンドであればPATH環境変数に定義された複数のディレクトリを順次に検索し最初に見つかった実行ファイルを実行します。見つからない場合はコマンド不存在のエラーが表示されます。

内部コマンドと外部コマンド的区别

内部コマンドはシェル組み込みのコマンドであり、システム起動時にメモリに読み込まれ 즉시実行可能です。シェルのインタープリタ自体が提供する機能です。

外部コマンドはディスク上に独立的実行ファイルとして存在し、実行時に 해당 파일을ディスクから読み出します。

上記のとおりパスを指定して実行する方法と、PATH変数内のディレクトリから検索する方法はいずれも外部コマンドの実行に該当します。

内部コマンドと外部コマンドの判別

type コマンド名
[root@localhost vagrant]# type echo   //内部コマンド
echo is a shell builtin
[root@localhost vagrant]# type vim  //外部コマンド
vim is /usr/bin/vim

タグ: linux Shell alias command-execution bash

6月22日 16:07 投稿