このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンド演習32

以下のコマンドの演習を行います。

実際にコマンド操作を行いながら、Linuxの操作に慣れていきましょう。

演習01:コマンドのパスを表示します。

・lsコマンドの実行可能ファイルのパスを表示します。

$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls
演習02:複数のコマンドのパスを表示

・whichコマンドを「-a」オプションを指定して実行します。

 lsコマンドが複数のディレクトリに存在する場合、それらの実行可能ファイルのパスを全て表示します。

$ which -a ls
alias ls='ls --color=auto'
	/usr/bin/ls
	/bin/ls

・「/usr/bin」「/bin」ディレクトリ内にある lsコマンドの実行ファイルを確認します。

$ ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117608 11月 17  2020 /usr/bin/ls
$ ls -l /bin/ls
-rwxr-xr-x. 1 root root 117608 11月 17  2020 /bin/ls
演習03:環境変数PATHを確認します。

・printenv コマンドを使って環境変数PATHの内容を調べます。

$ printenv PATH
(省略)
WINDOWPATH=1
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
COLORTERM=truecolor
XAUTHORITY=/run/gdm/auth-for-user01-JQMS4e/database
_=/usr/bin/printenv

 printenv コマンドをオプションを指定せずに実行すると何画面もスクロールするほど、大量に表示されます。PATH変数はその出力の中に埋もれています。

・そこで、「PATH」と指定してprintenv コマンドを実行します。

$ printenv PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/user01/.local/bin:/home/user01/bin

「/usr/bin」「/bin」ディレクトリがPATHの中にあることが確認できます。

 シェルは組み込みコマンドでない場合、外部コマンドを 環境変数PAHTに格納されているディレクトリを左から順に検索して実行するようになっています。

 「which -a ls」を実行して「/usr/bin/ls」「/bin/ls」の順に一覧に表示されたのは、環境変数PATHに格納されているディレクトリの順が「/usr/bin」「/bin」となっていたからなのです。