Как я могу перечислить все доступные командные команды оболочки?

Мы знаем, что bash поддерживает количество встроенных команд, таких как:

$ type type cd help command
type is a shell builtin
cd is a shell builtin
help is a shell builtin
command is a shell builtin

Я хочу получить встроенные команды . Как это сделать с помощью командной строки?

1
задан 18 August 2014 в 18:12

4 ответа

Вы можете использовать compgen -b из оболочки bash, чтобы получить список встроенных команд оболочки.

9
ответ дан 24 May 2018 в 04:32

В качестве альтернативы вы можете отображать с помощью команды enable: (Ответы обоих @ karel и @ steeldriver работают нормально.)

enable -a | cut -d " " -f 2,3

Если какой-либо встроенный отключен, то он отображается с -n

Пример вывода:

$ enable -a | cut -d " " -f 2,3
.
:
[
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
compopt
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
false
fc
fg
getopts
hash
help
history
jobs
kill
let
local
logout
mapfile
popd
printf
pushd
pwd
read
readarray
readonly
return
set
shift
shopt
source
suspend
test
times
trap
true
type
typeset
ulimit
umask
unalias
unset
wait
6
ответ дан 24 May 2018 в 04:32

Просто введите терминал:

man bash

Это откроет руководство по bash. Прокрутите вниз, вы найдете команды SHELL BUILTIN COMMANDS. Здесь вы можете узнать обо всех встроенных командах и о том, что они делают. Если вы хотите руководство в формате txt, используйте эту команду

man bash > FILENAME.txt

Теперь у вас есть текстовый файл руководства bash.

1
ответ дан 24 May 2018 в 04:32

Для тех, кто ненавидит внешние внешние двоичные файлы просто для форматирования / извлечения данных:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)
0
ответ дан 24 May 2018 в 04:32
  • 1
    Почему бы просто не использовать вместо FIFO перенаправление? [F1] – David Foerster 21 September 2016 в 01:56
  • 2
    Это также сработает. Это просто привычка, в которой я участвую, так что любая переменная манипуляция, которую я хочу делать внутри цикла while, не выполняется внутри под-оболочки. (Манипуляция переменными внутри под-оболочки будет означать, что изменения не сохраняются за пределами другого конца цикла). – Nicola Worthington 24 April 2017 в 12:45

Другие вопросы по тегам:

Похожие вопросы: