makoto_blog

パパさん_blog

プログラミング勉強メモや雑記など。

Linux コマンドとパス

組み込みコマンド

シェルに内蔵されているコマンド。シェルにより多少の違いあり。bashの主な組み込みコマンド。

  • alias
  • bg:ジョブをバックグラウンドで実行
  • cd
  • echo
  • exit
  • export:環境変数を設定
  • fg:ジョブをフォアグラウンドで実行
  • history
  • jobs:ジョブを表示する
  • kill:プロセスにシグナルを送信
  • pwd
  • unalias:エイリアスを削除

外部コマンド

コマンドと同じ名前の実行プログラム。
whichコマンドで実行ファイルの場所がわかる。

mhaya@mhaya-V5-131:~$ which ls
/bin/ls
mhaya@mhaya-V5-131:~$ ls -l /bin/ls
-rwxr-xr-x 1 root root 133792  1月 18  2018 /bin/ls
mhaya@mhaya-V5-131:~$ file /bin/ls
/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0

外部コマンドを実行するには、本来は「/bin/ls」のようにフルパスで指定しなければならないが、面倒なのでこうする。
シェルはコマンドが実行されると、組み込みコマンドでなければ、変数PATHに格納されているディレクトリを片っ端から検索し一致するコマンドがあれば実行する。
これをコマンドサーチパスという。
AS400でいうところのライブラリみたいなもんである(コマンドとプログラムの違いはあれど)。

私の環境だと /bin には以下のコマンドが格納されていた。

mhaya@mhaya-V5-131:~$ ls /bin
いっぱい

多くのディストリビューションでは一般ユーザーとrootユーザーではパスの内容が違う。