免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4797 | 回复: 11
打印 上一主题 下一主题

[系统安装] 内置命令到底能不能用which查找其完整路径? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-14 12:41 |只看该作者 |倒序浏览
[root@MGWSDT_FEWS bin]# type cd
cd is a shell builtin
[root@MGWSDT_FEWS bin]# which cd
/usr/bin/which: no cd in (.:/usr/expect/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/real/RealPlayer:/root/bin)
鸟哥私房菜对此的解释是因为cd是内置命令,故which cd找不到。
但pwd也是内置命令,为什么用which命令可以找到呢?
[root@MGWSDT_FEWS ~]# type pwd
pwd is a shell builtin
[root@MGWSDT_FEWS ~]# which pwd
/bin/pwd

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2013-08-14 12:48 |只看该作者
$ which pwd
/bin/pwd

你的是什么系统?我这里pwd不是内置的

论坛徽章:
0
3 [报告]
发表于 2013-08-14 13:10 |只看该作者
内部命令是shell 自带的,你怎么查

论坛徽章:
0
4 [报告]
发表于 2013-08-14 14:13 |只看该作者
这是我的系统:
[root@MonitoringServer ~]# lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: RedHatEnterpriseWorkstation
Description:    Red Hat Enterprise Linux Workstation release 6.3 (Santiago)
Release:        6.3
Codename:       Santiago

论坛徽章:
0
5 [报告]
发表于 2013-08-14 15:14 |只看该作者
为了实现执行的效率,shell内置命令是在源码中实现的,在linux文件中查找不到的,
如果能查找到那也就不能叫内置命令了。另外which命令是会去环境变量的PATH中找,不在PATH中就找不到的。

论坛徽章:
0
6 [报告]
发表于 2013-08-14 15:16 |只看该作者
pwd不是内置命令,它在/bin/pwd

论坛徽章:
0
7 [报告]
发表于 2013-08-14 15:24 |只看该作者
可是
[root@MGWSDT_FEWS bin]# type cd
cd is a shell builtin
[root@MGWSDT_FEWS ~]# type pwd
pwd is a shell builtin

这里都说是 ‘ is a shell builtin’啊?为什么pwd不是内置命令呢?

论坛徽章:
5
金牛座
日期:2015-07-03 13:32:00卯兔
日期:2015-07-03 13:32:17程序设计版块每日发帖之星
日期:2015-11-29 06:20:0015-16赛季CBA联赛之同曦
日期:2015-12-15 09:36:06CU十四周年纪念徽章
日期:2016-07-06 17:18:48
8 [报告]
发表于 2013-08-14 16:28 |只看该作者
BASH_BUILTINS(1)                                              BASH_BUILTINS(1)

NAME
       bash,  :,  .,  [,  alias, bg, bind, break, builtin, cd, command, compgen, complete, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, fc, fg,
       getopts, hash, help, history, jobs, kill, let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt,  source,  suspend,  test,  times,
       trap, type, typeset, ulimit, umask, unalias, unset, wait - bash built-in commands, see bash(1)

which pwd为/bin/pwd

个人判断:pwd既是内建命令,也是外部命令

$type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

论坛徽章:
5
金牛座
日期:2015-07-03 13:32:00卯兔
日期:2015-07-03 13:32:17程序设计版块每日发帖之星
日期:2015-11-29 06:20:0015-16赛季CBA联赛之同曦
日期:2015-12-15 09:36:06CU十四周年纪念徽章
日期:2016-07-06 17:18:48
9 [报告]
发表于 2013-08-14 16:28 |只看该作者
本帖最后由 seanking1987 于 2013-08-14 16:29 编辑

BASH_BUILTINS(1)                                              BASH_BUILTINS(1)

NAME
       bash,  :,  .,  [,  alias, bg, bind, break, builtin, cd, command, compgen, complete, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, fc, fg,
       getopts, hash, help, history, jobs, kill, let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt,  source,  suspend,  test,  times,
       trap, type, typeset, ulimit, umask, unalias, unset, wait - bash built-in commands, see bash(1)

which pwd为/bin/pwd

个人判断:pwd既是内建命令,也有外部命令

$type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

论坛徽章:
0
10 [报告]
发表于 2013-08-14 17:07 |只看该作者
多谢seanking1987,这个解释合理!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP