Сейчас буду выяснять с учетом всего того, что вы написали.
Но при этом нужно учитывать и тонкости Unix Shell.
Например команда kill существует сразу в двух ипостасях.
В виде встроеннонной команды интепретатора bash
$ enable -a | grep kill
enable kill
И в виде исполняемого файла
$ file /bin/kill
/bin/kill: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, stripped
Без явного указания пути к файлу, интепретатор bash всегда и без исключений вызывает на выполнение свою встроенную команду.
При этом их функциональность не идентична.
Встроенная команда kill интепретатора bash не умеет выводить таблицу сигналов с информацией о сигналах:
Встроенная команда интепретатора bash:
$ kill --help | grep -A5 Options
Options:
-s sig SIG is a signal name
-n sig SIG is a signal number
-l list the signal names; if arguments follow `-l' they are
assumed to be signal numbers for which names should be listed
-L synonym for -l
$ kill -t
bash: kill: t: недопустимое указание сигнала
Транзитная команда, исполняемый файл:
$ /bin/kill --help | grep -A7 Аргументы
Аргументы, обязательные для длинных параметров, обязательны и для коротких.
-s, --signal=СИГНАЛ, -СИГНАЛ
задает имя или номер посылаемого сигнала
-l, --list перечисляет имена сигналов или переводит имена в номера и
наоборот
-t, --table печатает таблицу с информацией о сигналах
--help показать эту справку и выйти
--version показать информацию о версии и выйти
$ /bin/kill -t
1 HUP Обрыв терминальной линии
2 INT Прерывание
3 QUIT Выход
4 ILL Недопустимая инструкция
5 TRAP Ловушка трассировки/останова
6 ABRT Аварийный останов
7 BUS Ошибка шины
8 FPE Исключение в операции с плавающей точкой
9 KILL Убито
10 USR1 Определяемый пользователем сигнал 1
11 SEGV Ошибка сегментирования
12 USR2 Определяемый пользователем сигнал 2
13 PIPE Обрыв канала
14 ALRM Сигнал таймера
15 TERM Завершено
16 STKFLT Ошибка стека
17 CHLD Дочерний процесс завершился
18 CONT Продолжено
19 STOP Остановлено (сигнал)
20 TSTP Остановлено
21 TTIN Остановлено (ввод с терминала)
22 TTOU Остановлено (вывод на терминал)
23 URG Ситуация срочного ввода/вывода
24 XCPU Превышен лимит процессорного времени
25 XFSZ Превышен лимит размера файла
26 VTALRM Виртуальный таймер истек
27 PROF Профилировочный таймер истек
28 WINCH Окно изменилось
29 POLL Возможен ввод/вывод
30 PWR Сбой питания
31 SYS Неверный системный вызов
34 RTMIN Сигнал реального времени 0
35 RTMIN+1 Сигнал реального времени 1
36 RTMIN+2 Сигнал реального времени 2
37 RTMIN+3 Сигнал реального времени 3
38 RTMIN+4 Сигнал реального времени 4
39 RTMIN+5 Сигнал реального времени 5
40 RTMIN+6 Сигнал реального времени 6
41 RTMIN+7 Сигнал реального времени 7
42 RTMIN+8 Сигнал реального времени 8
43 RTMIN+9 Сигнал реального времени 9
44 RTMIN+10 Сигнал реального времени 10
45 RTMIN+11 Сигнал реального времени 11
46 RTMIN+12 Сигнал реального времени 12
47 RTMIN+13 Сигнал реального времени 13
48 RTMIN+14 Сигнал реального времени 14
49 RTMIN+15 Сигнал реального времени 15
50 RTMAX-14 Сигнал реального времени 16
51 RTMAX-13 Сигнал реального времени 17
52 RTMAX-12 Сигнал реального времени 18
53 RTMAX-11 Сигнал реального времени 19
54 RTMAX-10 Сигнал реального времени 20
55 RTMAX-9 Сигнал реального времени 21
56 RTMAX-8 Сигнал реального времени 22
57 RTMAX-7 Сигнал реального времени 23
58 RTMAX-6 Сигнал реального времени 24
59 RTMAX-5 Сигнал реального времени 25
60 RTMAX-4 Сигнал реального времени 26
61 RTMAX-3 Сигнал реального времени 27
62 RTMAX-2 Сигнал реального времени 28
63 RTMAX-1 Сигнал реального времени 29
64 RTMAX Сигнал реального времени 30
И 'man kill' даст ошибочное представление о том что выведет команда 'kill -t':
$ man kill | grep -A3 ОБЗОР
ОБЗОР
kill [-s СИГНАЛ | -СИГНАЛ] PID...
kill -l [СИГНАЛ]...
kill -t [СИГНАЛ]...
$ man kill | grep -A1 '\-t,'
-t, --table
вывести информацию о сигналах в виде таблицы
Такие тонкости тоже нужно учитывать.
При наличии транзитной команды, встроенную команду можно при желании по-умолчанию и отключить через 'enable -n <команда>' в ~/.bashrc. Какой из этих вариантов лучше, сложный вопрос. У всего есть свои плюсы и минусы.
К слову встроенная команда echo интерпретатора bash, совсем не умеет выводить help. А посмотреть там есть на что.
Есть также различия встроенной и транзитной команды pwd, которые в ряде случаев могут быть очень заметны:
# ln -s /home/altlinux /home/altlinux/alt
$ cd alt
Встроенная
$ pwd
/home/altlinux/alt
Транзитная
$ /bin/pwd
/home/altlinux
А различия есть потому, что у встроенной и транзитной, разные умолчания:
$ pwd --help | grep 'By default'
By default, `pwd' behaves as if `-L' were specified.
$ /bin/pwd --help | grep 'Если параметр не указан'
Если параметр не указан, то предполагается -P.
Эта команда покажет, для каких встроенных команд интерпретатора bash есть альтернативы в виде исполняемых файлов, а для каких альтернатив нет:
enable | cut -f2 -d ' ' | while read line; do which $line; done
Альтернативы встроенным командам интепретатора bash:
$ enable | cut -f2 -d ' ' | while read line; do which $line >> alter-bash-commands.txt &>/dev/null; done
$ grep -v '\[' alter-bash-commands.txt
/bin/echo
/bin/false
/bin/kill
/usr/bin/printf
/bin/pwd
/usr/bin/test
/bin/true