Внутренняя команда - это команда, которая встроена конкретно в bash, а Внешняя команда - это исполняемый бинарный файл на диске. Определить тип команды
type cat type type type grep
Чтобы отобразить полный тип, например если алиас указывает на внешнюю команду, затем где лежит команда
$ type -a ls ls is aliased to `ls --color=auto' ls is /usr/bin/ls ls is /bin/ls
alias alias catp=’cat /etc/passwd’ unalias catp
Определение местоположения исполняемого файла
which grep
Определение местоположения исполняемого файла + исходники + man
whereis grep whereis ssh |tr ' ' '\n'
enable – Встроенная команда Linux позволяющая разрешать или запрещать встроенную команду.
Посчитать количество встроенных команд
enable | nl
Когда поиск команды идет по директориям, описанным в переменной PATH, то будет выполнена первая найденная команда.
После того, как bash найдет исполняемый файл, она записывает эту информацию в таблицу соответствий имени команды исполняемому файлу. Это происходит для того, чтобы в будущем сократить время поиска (не обращаться лишний раз к диску). Увидеть данную таблицу можно с помощью команды hash
root@host:~$ hash hits command 1 /bin/rm 1 /usr/bin/man 1 /bin/ls
hits - сколько раз была выполнена команда в текущей сессии. Очистить данную таблицу можно с помощью той же команды hash с ключом -r