设为首页 收藏本站
查看: 921|回复: 0

[经验分享] linux的内置命令

[复制链接]

尚未签到

发表于 2018-5-16 10:56:28 | 显示全部楼层 |阅读模式
  谈到linux下的内置命令,说实话,在学习shell脚本之前本没有听说过,更不知道它和linux下一般的命令有何不同!解释内置命令之前,先来看一个例子:
建立一个shell脚本,内容如下:
  [cpp] view plain copy

  •   #! /bin/bash  
  •   ls   
  •   cd ..  
  在这个脚本中,我们可以注意到有一个命令-----> cd .. ,按照以前直接在命令行上的经验,执行这个脚本后会先显示出本目录下的所有文件后回退到上层目录是吧!下面就来看一下真正的执行结果(如下图):
DSC0000.jpg
很明显可以看出,shell脚本最后还是在原目录下,只不过将上层目录的文件显示了出来。看到这是不是有点疑惑了,shell脚本中的命令执行结果为何与命令行上直接执行结果不同呢?这是因为cd .. 是内置命令,当在命令行上直接执行时,因为内置命令在磁盘上没有对应的可执行程序,所以shell不必再去磁盘上查找,这样就大大加快了执行的速度;但是当内置命令在shell脚本中被执行时,会产生子进程去执行内置命令,而shell(即bash)作为父进程只需等待子进程执行后退出就好,也就是说shell脚本中执行内置命令创建子进程与bash无关。那么,自然而然,上面的情况就解释的通了。
引用比较书面化的说法:内置命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。
下面就是我自己了解的一些linux下的内置命令(有些命令的测试会以图片的的形式贴出来):
1.cd .. :回退到上一层目录
2.help:显示所有内置命令列表,或者显示一个具体命令的用法(如下图所示就是执行help命令之后显示的我的系统下的所有内置命令)
DSC0001.jpg

3.echo:用来显示显示一行文字,默认自动换行
4.printf :显格式字符串,格式:printf   "格式字符串"  参数
5.history:查看以往使用的所有命令
6.:(冒号命令):空操作
7.  . 或者source :后面加上./shell脚本表示可直接执行shell脚本
8.exit:退出当前进程
9.set:列出所有的变量和函数的内容
10.read:从标准输入读取一行数据
11.time:打印设置命令执行的real user sys 时间
DSC0002.jpg
12.exec:该命令后面直接跟命令或者程序,执行后即取代了原来的shell执行环境,也就是执行重定向生效
例如:exec < +文件名表示所有的由标准输入读入的数据的操作都将更改为由文件读入
13.bg :把作业放到后台
14.bind:显示当前的套接字与函数的绑定情况
15.enable:启用或者禁用shell内置命令
16.dirs :显示当前记录的目录
17.export:设置环境变量
18.kill [-signal process] :想由PID 号或作业号指定的进程发送信号,输入kill -l信号列表。
19.test:检查文件类型,并计算条件表达式
20.ulimit:显示或者设置进程可用资源的最大限额
21.unset [name ]:取消指定变量的值或者函数的定义
22.unalias:取消所有的命名别名设置
23.suspend:终止当前shell的运行
24.shift [n]:将位置参量左移N次
下面就是一些内置命令在shell脚本下的执行结果(如下图):
DSC0003.jpg

DSC0004.jpg

由上图可以看出,所有的内置命令在shell脚本内部全是由子进程去执行的,所以最终还是在原目录下。

判断是不是linux内置命令: type 命令
查看内置命令的使用:help 内置命令

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-460902-1-1.html 上篇帖子: linux 的目录总结 下篇帖子: Linux vim 使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表