1.意义:shell编程可以理解为就是写脚本,可以用来维护服务器等一些功能。
2.shell原理:
当我们在Linux下输入:ls -al 或者 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解释后送给linux执行,其执行完毕后送给shell再返回来。