Shell命令原理
shell命令:
- 用简单的图示理解shell要点:
1> 简单讲,其实shell就是逐条执行命令,在终端执行的命令都是一条一条敲上去,再执行的,shell脚本就是事先写很多命令,然后执行脚本,让shell一次性将这些命令执行完。
2> shell脚本和编程语言相似,也有变量和流程控制语句,但shell脚本是解释执行的,不需要编译,shell程序从脚本中一条一条读取并执行这些命令。
因此学好shell脚本编程很关键
在理解Shell脚本运行的原理之前,我们必须得先搞清楚shell运行的原理
shell 运行原理:
当我们在Linux下输入:
ls -t 或者 cd ..
发生了什么?
在解释原理之前,我们必须分清楚的是:我们在Linux输入的命令是有区别的,具体来说,分为内部命令(built-in)以及外部命令,向ls,cat,mkdir这些都属于外部命令,而echo,cd,pwd这些都属于内置命令,如何区分这些命令是否是内置,外部命令,可以利用type命令来辨别。
输入ls,cd这些内部或者外部的命令有什么区别?
像cd,pwd这些内置命令是属于Shell的一部分,当Shell一运行起来就随Shell加载入内存,因此,当我们在命令行上输入这些命令就可以像调用函数一样直接使用,效率非常高。
而如ls,cat这些外部命令却不是如此,当我们在命令行输入cat,当前的Shell会fork一个子进程,然后调用exec载入这个命令的可执行文件,比如bin/cat,因此效率上稍微低了点。
理解了单个命令的运行原理,知道了内部命令和外部命令的运行区别,接下来就可以学习shell脚本了,其实除了shell脚本外,Python也是目前发展迅速的脚本语言,因为他们都是解释性语言,不需要编译,直接逐条读取并执行。
shell脚本的运行原理:
- 我们编写一个Shell脚本bash.sh,比如:
先pwd一下:
cd code
echo "hello guys!"
echo "welcome to my Blog:linuxboy.org!!"
执行脚本bash.sh:
shell对输入的命令的分析:
在Linux中,有一些命令,例如cd是包含在shell内部的命令,还有一些命令,例如cp、mv或rm是存在于文件系统中某个目录下的单独的程序。对于用户而言,没必要关心一个命令是在shell内部还是在shell外部。
shell对于命令的分析过程如下:
- 1、首先,检查用户输入的命令是否是内部命令,如果不是在检查是否是一个应用程序;
- 2、shell在搜索路径或者环境变量中寻找这些应用程序;
- 3、如果键入命令不是一个内部命令并且没有在搜索路径中查找到可执行文件,那么将会显示一条错误信息;
- 4、如果能够成功找到可执行文件,那么该内部命令或者应用程序将会被分解为系统调用传给Linux内核,然后内核在完成相应的工作;
上一篇: 第五节总结