当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 有些地方不明白...
帖子发表于 : 2011-05-11 15:26 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
引用:
这些命令都是 Linux 系统终端执行 help 命令之后出现的...
下面的命令都是直接从终端复制的,但是括号标点太多,空格都不起作用,至此带来的不便之处还请见谅...
引用:
问题一: Bash 脚本的命令是不是就这些啊?
问题二: 如果这些命令是 Bash 脚本的,那么其它的命令是不是就是调用的?
问题三: 这些命令是不是 Bash 内嵌的?
问题四: find / -name fg -print 为什么找不到 fg 可执行文件?
问题五: find / -name echo -print 能找到 echo 可执行文件,那么,这个命令是调用的吗?
Linux 系统终端... 写道:
GNU bash, version 3.2.39(1)-release (i486-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 [&] (( expression ))
. filename [arguments] :
[ arg... ] [[ expression ]]
alias [-p] [name[=value] ... ] bg [job_spec ...]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] caller [EXPR]
case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
complete [-abcdefgjksuv] [-pr] [-o continue [n]
declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]
disown [-h] [-ar] [jobspec ...] echo [-neE] [arg ...]
enable [-pnds] [-a] [-f filename] eval [arg ...]
exec [-cl] [-a name] file [redirec exit [n]
export [-nf] [name[=value] ...] or false
fc [-e ename] [-nlr] [first] [last fg [job_spec]
for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM
function NAME { COMMANDS ; } or NA getopts optstring name [arg]
hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]
history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif
jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
let arg [arg ...] local name[=value] ...
logout popd [+N | -N] [-n]
printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]
pwd [-LP] read [-ers] [-u fd] [-t timeout] [
readonly [-af] [name[=value] ...] return [n]
select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti
shift [n] shopt [-pqsu] [-o long-option] opt
source filename [arguments] suspend [-f]
test [expr] time [-p] PIPELINE
times trap [-lp] [arg signal_spec ...]
true type [-afptP] name [name ...]
typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
umask [-p] [-S] [mode] unalias [-a] name [name ...]
unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
variables - Some variable names an wait [n]
while COMMANDS; do COMMANDS; done { COMMANDS ; }


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 15:38 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
有些命令只能内嵌,比如 cd 和 fg。有些命令很常用,所以内嵌了加快运行,如 [ 和 echo。另外,找命令对应的可执行文件,可以用 which xxx。列出所有能找到的,用 which -a xxx

PS: which bash 也应该内嵌了。


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 15:52 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
谢谢好心人指教...

另外,我用的这个版本的 Bash 里没有内嵌 which 命令到 Bash 里...

引用:
find / -name which -print
/bin/which


愿好人一生平安...


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 15:57 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
是不是放在 /bin 目录里的就是内嵌的?您刚刚说的 echo 正是在 /bin 目录里的,但是 [ 不在...


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 16:02 
头像

注册: 2009-01-06 15:18
帖子: 13005
地址: 人间
送出感谢: 1
接收感谢: 24
内部命令与外部命令区别
引用:
当你执行一个命令的时候.系统的寻找方式是:
alias / function / 内部命令/外部命令


引用:
速度有差别,内部命令不用启动一个子shell来执行,外部命令则需要启动一个子shell执行它。比如命令basename的执行速度明显不入${var##*/}


/bin目录一说 是路径问题 存在于PATH中


_________________
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 16:08 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
Yume, type xxx 看吧。所谓内部,也只是当前shell的内部而已。别当回事。


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 16:32 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
Yume 写道:
谢谢好心人指教...

另外,我用的这个版本的 Bash 里没有内嵌 which 命令到 Bash 里...

引用:
find / -name which -print
/bin/which


愿好人一生平安...

Yume 写道:
是不是放在 /bin 目录里的就是内嵌的?您刚刚说的 echo 正是在 /bin 目录里的,但是 [ 不在...


看来只有 zsh 的 which 是内嵌的。[ 不在 /bin 下。是否内嵌和它的外部命令版所在的位置没有特别的关系。
代码:
>>> which -a [
[: shell built-in command
/usr/bin/[


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-11 16:40 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
谢谢各位回帖者的热心帮助,愿好人一生平安...

看来我还有好多路要走啊... 写道:
remeber 写道:
内部命令与外部命令区别
引用:
当你执行一个命令的时候.系统的寻找方式是:
alias / function / 内部命令/外部命令


引用:
速度有差别,内部命令不用启动一个子shell来执行,外部命令则需要启动一个子shell执行它。比如命令basename的执行速度明显不入${var##*/}


/bin目录一说 是路径问题 存在于PATH中


eexpress 写道:
Yume, type xxx 看吧。所谓内部,也只是当前shell的内部而已。别当回事。


lilydjwg 写道:
看来只有 zsh 的 which 是内嵌的。[ 不在 /bin 下。是否内嵌和它的外部命令版所在的位置没有特别的关系。

代码:
>>> which -a [
[: shell built-in command
/usr/bin/[


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 有些地方不明白...
帖子发表于 : 2011-05-20 0:56 

注册: 2007-11-28 8:52
帖子: 130
送出感谢: 0 次
接收感谢: 1
额 内嵌什么的没看懂


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译