shell命令分类

linux的shell命令总共分为5中,alias,function,file,builtin,keyword。

alias就是别名,function就是自己创建的shell函数,file就是path路径里的一些二进制或者其他sh文件等挂在硬盘上的文件,keyword就是shell的关键字。

可以通过type -t command来查看,另外如果一个命令是file的话,可以通过type -p command查看该命令的绝对路径..。

关于一个命令的运行到底有没有开辟新的进程,我们可以通过一种方法查看,首先运行该命令,然后ps -elf | grep一下就可以了,可以肯定的是file类型的command肯定是在子进程中运行的,但是builtin就不好说了,我man type一下:

 

Shell builtin commands are commands that can be executed within the running shell's process.  Note that, in the case of csh(1) builtin commands, the command is executed in a sub-

     shell if it occurs as any component of a pipeline except the last.

 

     If a command specified to the shell contains a slash ``/'', the shell will not execute a builtin command, even if the last component of the specified command matches the name of

     a builtin command.  Thus, while specifying ``echo'' causes a builtin command to be executed under shells that support the echo builtin command, specifying ``/bin/echo'' or

     ``./echo'' does not.

上面说的很清楚,第一段的意思是builtin命令可以在当前shell中运行,但是在csh中,如果在使用管道的时候内建命令不是在最后面,就会在子进程中运行。第二段的意思是如果使用绝对路径或者相对路径使用命令,即使最终引用的命令和builtin命令一样,也会在子进程中运行,相当于file类型的了。

阿里云双十一云服务器拼团活动,已经打到最低价99元一年!有需要的可以考虑一波了!

https://m.aliyun.com/act/team1111/#/share?params=N.9g4CZ2TwSh.qilw7y0a

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值