Linux Shell第二期

接着上一期的话题说,上一期我们初步对Linux Shell有了一个感性的人是,但是我们对Linux中的各种命令都还很陌生,接下来我们将介绍一下shell的命令种类。

一、Shell命令的种类
Shell命令一共有:内建命令、shell函数和外部命令。
内建命令:就是shell程序本身包含的命令。例如cd命令等,另外一点是内建命令一般是为了改变shell本身的属性设置,所以在执行内建命令时,没有进程的创建和消亡;另一部门内建命令是I/O命令,例如echo命令;
**Shell函数:**Shell函数是一序列程序代码,以shell语言写成。详细内容后面会加以介绍;
外部命令:外部命令是独立于shell的可执行程序;例如find、grep、echo.sh。命令行Shell在执行外部命令时,会创建一个当前shell的复制进程来执行。
1、首先创建一个命令行shell进程的复制(子进程);
2、在子进程的运行环境中,查找外部命令在Linux文件系统中的位置;
3、在子进程里,以新程序取代shell拷贝并执行,此时父进程进入休眠,等待子进程执行完毕;
4、子进程执行完毕后,父进程接着从终端读取下一条命令,过程如图:
这里写图片描述
大家可以使用echo.sh这个来测试一下:
#! /bin/sh
cd/tmp
echo “Hello World!”
这个程序中比第一个例子中多了一行cd/tmp,很明显这句命令的意思就是改变目录。
好我们就先来跑一下看看结果怎么样,运行流程和第一期的一致如图:
这里写图片描述
我们可以使用pwd这条内建命令来查看当前的目录,很明显当前的目录并没有改变,这几奇怪了,是不是大家都还在疑惑,别急,下面我将一一的进行讲解。
我们上面是不是说过外部命令的执行流程,对,就是复制当前shell去一个新的运行环境中执行echo.sh中的命令,因此当子进程执行命令结束了又返回了父进程的运行环境中,因此我们我们看到的还是父进程中的当前目录,这也就不奇怪了。到这是不是我们开始想到如果在echo.sh的内容中加入pwd这条命令是不是就可以看见子进程的当前目录了呢,没错,我们先尝试一下看,在echo.sh中添加一条命令pwd如下图:
这里写图片描述
然后保存退出,执行该命令,结果如下:
这里写图片描述
是不是就对了,没错就是这样的!
大家是不是又在想,如果有的人就想使用,该命令改变父进程的目录呢,没错,你的想法很好,确实有这样的命令可以实现,使用source echo.sh即可。
这里写图片描述
Linux shell中提供了source命令去在父进程中执行命令行,因此使用source执行shell脚本时,不会创建子进程,而是在父进程中直接执行。

总结:好了这一期的讲解就到此为止,大家有什么需要和我交流的,欢迎积极留言,如果文中有什么错误,也请各位积极回应!下一期,我们将介绍shell变量及其相关知识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值