第一部分讲的是一些基本的东西,比如shell入门,了解shell[怎么输入shell命令等],一些基本的命令,比如ls,cp,mv,cd,touch等,还有一些shell的基本设置,比如可以用set和printenv命令,另外还有一些监控程序,比如df,du等命令的使用,以及排序,压缩命令还有grep命令,还有shell的数组,形如,

mytest=(one two three four five)这样的,引用的时候用${mytest[n]}n从0开始

还有使用别名alias命令,接下来讲了和系统安全有点关系的用户的添加删除等[useradd,userdel,usermod,passwd,chpasswd,chsh,chf,chage]还有group有关的东西,以及umask的使用和解释,还有SUID和GUID的设置和使用。

接下来就是讲编辑器的使用,VI,EMacs,GEdit和KWrite,建议使用VI,学习起来比Emacs要简单,而且功能也强大。

第二篇是大头,主讲shell脚本的编程

第8章,讲的是基本的命令和shell命令的编写,管道和数学计算

基本的shell命令你只要在脚本里面写上可以执行的shell命令,然后会自动照着你写的顺序来执行,,一般命名为xxx.sh,然后需要用chmod u+x xxx.sh来给脚本加上可执行权限,然后就可以用./xxx.sh来执行脚本 了,不然需要用sh xxx.sh来执行,用echo来输出要显示的东西,比如在shell脚本中有

echo “This is a test”

那么会输出”This is a test”,这里需要说明的是,在shell中的引号,一般我们说的引号有3种,双引号,单引号和反引号。在shell脚本中,双引号和单引号都是用来把一个字符串包括起来,但是这两者是有区别的,双引号里面的变量会用值来替代,单引号的则输出变量名,比如下面的

test=11
echo “This is a date $test”
echo ‘this is a date $test’

第一个会输出:This is a 111,但是第二个输出的是This is a $test,还有就是如果你的字符串里面有单引号的话,那么你得用双引号把这个字符串括起来,不然就不行,比如”This is bob’s test”,反引号就表示执行反引号里面的命令,然后返回命令执行后的结果,如果反引号里面的不是命令,则返回空,如果命令出错,则返回错误信息。

接下来是使用变量,变量不需要定义,直接用就行了,bash里面默认是没有浮点数的。不过如果不使用浮点数进行判断之类的可以计算并输出浮点数的,当然如果想要支持浮点数,可以试试zsh。

数学计算,有加减乘除,算式有几种,但是用这种是最好的var=$[$var1 + $var2]这样的会比expr什么的好很多。如果只想输出浮点数,比如要输出3.44/5的结果,其实还是可以的,可以用shell的计算器bc然后通过管道来实现,比如下面的代码

var=</span><span style="color: #b0c4de; font-weight: bold;">echo</span> <span style="color: #7fffd4;">" scale=4; 3.44/5"</span> | bc<span style="color: #7fffd4;">
echo “The answer is $var”

会输出3.44/5之后带4为小数的浮点数结果0.6880,其中scale=4是设置精度的,这个可以参考bc的用法不过,这样得到的浮点数可以用来显示,用来进行比较的话,就不行了。实际上是存成了字符串然后输出的。

脚本退出有一个状态,用$?表示,如果成功执行的话会是0,不成功的话会是一个1-255的数,可以用exti $var来人工设定脚本的退出值,不过如果var大于255的话,会被取余掉的。比如返回300的话,那么显示出来的是44[=300%256]

后面的请查看《Linux命令行和shell脚本编程笔记2》和《Linux命令行和shell脚本编程笔记3》

Comments