Pertanyaan Bagaimana saya mendaftar semua perintah shell builtin yang tersedia?


Kami tahu bash mendukung jumlah perintah buitin  seperti:

$ 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

Saya ingin mendapatkannya daftar semua perintah shell builtin yang tersedia. Bagaimana saya melakukannya dengan command-line?


11
2017-08-18 13:12


asal


gnu.org/software/bash/manual/… - Achu


Jawaban:


Dari jenis terminal:

help

Dari help help:

Display information about builtin commands.

15
2017-08-18 13:15





Kamu dapat memakai compgen -b dari shell bash untuk mendapatkan daftar perintah builtin shell.


12
2017-08-18 14:36





Atau Anda dapat menampilkan dengan enable perintah: (Jawaban @ karel dan @ steeldriver berfungsi dengan baik.)

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

Jika ada builtin yang dinonaktifkan maka ditampilkan dengan -n di luar put.

Contoh keluaran:

$ 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

8
2017-08-19 12:20





Cukup ketik Terminal:

man bash

Ini akan membuka manual bash. Gulir ke bawah Anda akan menemukan SHELL BUILTIN COMMANDS. Di sini Anda dapat mengetahui tentang semua perintah bawaan dan apa yang mereka lakukan. Jika Anda ingin manual dalam format txt, gunakan perintah ini

man bash > FILENAME.txt

Sekarang Anda memiliki file teks manual bash.


1
2018-01-30 20:37





Bagi mereka yang membenci forking binari eksternal hanya untuk pemformatan data / ekstraksi:

while read -r _ cmd ; do echo $cmd ; done < <(enable -a)

0
2017-09-20 22:09



Mengapa tidak hanya sebuah pipa, bukan pengalihan FIFO? enable -a | while read ... - David Foerster
Itu juga akan berhasil. Ini hanyalah kebiasaan saya sehingga setiap manipulasi variabel yang saya lakukan di dalam loop sementara tidak dieksekusi di dalam sub-shell. (Memanipulasi variabel di dalam sub-shell berarti bahwa perubahan tidak berlangsung di luar ujung loop yang lain). - Nicola Worthington