日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

獲取有關 Linux shell 內置命令的幫助

 

linux 內置命令屬于用戶 shell 的一部分,本文將告訴你如何識別它們并獲取使用它們的幫助。

-- Sandra Henry-stocker(作者)

Linux 內置命令是內置于 shell 中的命令,很像內置于墻中的書架。與標準 Linux 命令存儲在 /usr/bin 中的方式不同,你不會找到它們的獨立文件,你可能使用過相當多的內置命令,但你不會感覺到它們與 ls 和 pwd 等命令有何不同。

內置命令與其他 Linux 命令一樣使用,它們可能要比不屬于 shell 的類似命令運行得快一些。Bash 內置命令包括 alias、export 和 bg 等。

正如你擔心的那樣,因為內置命令是特定于 shell 的,所以它們不會提供手冊頁。使用 man 來查看 bg,你會看到這樣的東西:

$ man bg
No manual entry for bg

判斷內置命令的另一個提示是當你使用 which 命令來識別命令的來源時,Bash 不會響應,表示沒有與內置命令關聯的文件:

$ which bg
$

另一方面,如果你的 shell 是 /bin/zsh,你可能會得到一個更有啟發性的響應:

% which bg
bg: shell built-in command

bash 提供了額外的幫助信息,但它是通過使用 help 命令實現的:

$ help bg
bg: bg [job_spec ...]
 Move jobs to the background.
 Place the jobs identified by each JOB_SPEC in the background, as if they
 had been started with `&'. If JOB_SPEC is not present, the shell's notion
 of the current job is used.
 Exit Status:
 Returns success unless job control is not enabled or an error occurs.

如果你想要查看 bash 提供的所有內置命令的列表,使用 compgen -b 命令。通過管道將命令輸出到列中,以獲得較好格式的清單。

$ compgen -b | column
. compgen exit let return typeset
: complete export local set ulimit
[ compopt false logout shift umask
alias continue fc mapfile shopt unalias
bg declare fg popd source unset
bind dirs getopts printf suspend wait
break disown hash pushd test
builtin echo help pwd times
caller enable history read trap
cd eval jobs readarray true
command exec kill readonly type

如果你使用 help 命令,你將看到一個內置命令列表以及簡短描述。但是,這個列表被截斷了(以 help 命令結尾):

$ help
GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
 job_spec [&] history [-c] [-d offset] [n] or histo>
 (( expression )) if COMMANDS; then COMMANDS; [ elif CO>
 . filename [arguments] jobs [-lnprs] [jobspec ...] or jobs ->
 : kill [-s sigspec | -n signum | -sigsp>
 [ arg... ] let arg [arg ...]
 [[ expression ]] local [option] name[=value] ...
 alias [-p] [name[=value] ... ] logout [n]
 bg [job_spec ...] mapfile [-d delim] [-n count] [-O ori>
 bind [-lpsvPSVX] [-m keymap] [-f filen> popd [-n] [+N | -N]
 break [n] printf [-v var] format [arguments]
 builtin [shell-builtin [arg ...]] pushd [-n] [+N | -N | dir]
 caller [expr] pwd [-LP]
 case word in [PATTERN [| PATTERN]...) > read [-ers] [-a array] [-d delim] [-i>
 cd [-L|[-P [-e]] [-@]] [dir] readarray [-d delim] [-n count] [-O o>
 command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ...] or>
 compgen [-abcdefgjksuv] [-o option] [-> return [n]
 complete [-abcdefgjksuv] [-pr] [-DEI] > select NAME [in WORDS ... ;] do COMMA>
 compopt [-o|+o option] [-DEI] [name ..> set [-abefhkmnptuvxBCHP] [-o option-n>
 continue [n] shift [n]
 coproc [NAME] command [redirections] shopt [-pqsu] [-o] [optname ...]
 declare [-aAfFgilnrtux] [-p] [name[=va> source filename [arguments]
 dirs [-clpv] [+N] [-N] suspend [-f]
 disown [-h] [-ar] [jobspec ... | pid . <p&gt'> test [expr]
 echo [-neE] [arg ...] time [-p] pipeline
 enable [-a] [-dnps] [-f filename] [nam> times
 eval [arg ...] trap [-lp] [[arg] signal_spec ...]
 exec [-cl] [-a name] [command [argumen> true
 exit [n] type [-afptP] name [name ...]
 export [-fn] [name[=value] ...] or exp> typeset [-aAfFgilnrtux] [-p] name[=va>
 false ulimit [-SHabcdefiklmnpqrstuvxPT] [li>
 fc [-e ename] [-lnr] [first] [last] or> umask [-p] [-S] [mode]
 fg [job_spec] unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMANDS> unset [-f] [-v] [-n] [name ...]
 for (( exp1; exp2; exp3 )); do COMMAND> until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name (> variables - Names and meanings of som>
 getopts optstring name [arg] wait [-fn] [id ...]
 hash [-lr] [-p pathname] [-dt] [name .> while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...] { COMMANDS ; }

從上面的清單中可以看出,help 命令本身就是內置的。

你可以通過向 help 命令提供你感興趣的內置命令名稱來獲取關于它們的更多信息,例如 help dirs:

$ help dirs
dirs: dirs [-clpv] [+N] [-N]
 Display directory stack.
 Display the list of currently remembered directories. Directories
 find their way onto the list with the `pushd' command; you can get
 back up through the list with the `popd' command.
 Options:
 -c clear the directory stack by deleting all of the elements
 -l do not print tilde-prefixed versions of directories relative
 to your home directory
 -p print the directory stack with one entry per line
 -v print the directory stack with one entry per line prefixed
 with its position in the stack
 Arguments:
 +N Displays the Nth entry counting from the left of the list
 shown by dirs when invoked without options, starting with
 zero.
 -N Displays the Nth entry counting from the right of the list
 shown by dirs when invoked without options, starting with
 zero.
 Exit Status:
 Returns success unless an invalid option is supplied or an error occurs.

內置命令提供了每個 shell 的大部分功能。你使用的任何 shell 都有一些內置命令,但是如何獲取這些內置命令的信息可能因 shell 而異。例如,對于 zsh,你可以使用 man zshbuiltins 命令獲得其內置命令的描述。

$ man zshbuiltins
ZSHBUILTINS(1) General Commands Manual ZSHBUILTINS(1)
NAME
 zshbuiltins - zsh built-in commands
SHELL BUILTIN COMMANDS
 Some shell builtin commands take options as described in individual en‐
 tries; these are often referred to in the list below as `flags' to avoid
 confusion with shell options, which may also have an effect on the behav‐
 iour of builtin commands. In this introductory section, `option' always
 has the meaning of an option to a command that should be familiar to most
 command line users.
…

在這個冗長的手冊頁中,你將找到一個內置命令列表,其中包含有用的描述,如下摘錄中所示:

bg [ job ... ]
job ... &
 Put each specified job in the background, or the current job if
 none is specified.
bindkey
 See the section `Zle Builtins' in zshzle(1).
break [ n ]
 Exit from an enclosing for, while, until, select or repeat loop.
 If an arithmetic expression n is specified, then break n levels
 instead of just one.

最后

Linux 內置命令對于每個 shell 都很重要,它的操作類似特定于 shell 的命令一樣。如果你經常使用不同的 shell,并注意到你經常使用的某些命令似乎不存在或者不能按預期工作,那么它可能是你使用的其他 shell 之一中的內置命令。


via: https://www.networkworld.com/article/3410350/getting-help-for-linux-shell-built-ins.html

作者: Sandra Henry-Stocker 選題: lujun9972 譯者: MjSeven 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出

分享到:
標簽:Linux shell
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定