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 grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz /usr/share/info/grep.info.gz whereis ssh |tr ' ' '\n'
help
более полный список:
compgen -b
или:
enable -a
enable – Встроенная команда Linux позволяющая разрешать или запрещать встроенную команду.
Посчитать количество встроенных команд
enable | nl
После того, как bash найдет исполняемый файл, она записывает эту информацию в таблицу соответствий имени команды исполняемому файлу. Это происходит для того, чтобы в будущем сократить время поиска (не обращаться лишний раз к диску). Увидеть данную таблицу можно с помощью команды hash
root@host:~$ hash hits command 1 /bin/rm 1 /usr/bin/man 1 /bin/ls
hits - сколько раз была выполнена команда в текущей сессии. Очистить данную таблицу можно с помощью той же команды hash с ключом -r
Когда пользователь вводит команду, Bash определяет, что именно запускать, по строго определённому алгоритму поиска.
Этот механизм называется Command Lookup Order.
Bash проверяет источники в следующем порядке:
Схема:
Alias ↓ Keyword ↓ Function ↓ Builtin ↓ PATH (/usr/bin, /bin, ...) ↓ command not found
Alias проверяется первым.
Пример:
alias ls='ls --color=auto'
Проверка:
alias ls
Проверка типа команды:
type ls
Вывод:
ls is aliased to `ls --color=auto'
Удаление alias:
unalias ls
Ключевые слова являются частью синтаксиса Bash.
Примеры:
if then else fi for while do done case esac function select time [[ ]]
Проверка:
type if
Вывод:
if is a shell keyword
Если существует функция с таким именем, выполняется она.
Пример:
ls() { echo "Fake ls" }
Выполнение:
ls
Вывод:
Fake ls
Удаление функции:
unset -f ls
Builtin — встроенные команды Bash.
Примеры:
cd echo read export unset declare type
Проверка:
type cd
Вывод:
cd is a shell builtin
Builtin выполняются быстрее, так как не требуют создания нового процесса.
Если команда не найдена ранее, Bash ищет её в переменной PATH.
Просмотр PATH:
echo $PATH
Пример:
<code> /usr/local/sbin:/usr/local/bin:/usr/sbin:/u