日常的linux系统核管理工作中必不可少的脚本就shell脚本。
什么是shell:
是系统和计算机硬件交互时使用的中间介质。它只是一个系统的工具。实际上,在shell和计算机硬件之间的还有一层东西就是系统内核。用户直接面对的不是计算机硬件而是shell,用户把命令告诉shell,(计算机里面只有而二进制,计算机是不懂人类的指令的)然后shell解析人类的指令在传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。
shell脚本:不能作为正式的编程语言,shell脚本就是一些命令的集合。所有的操作都记录到一个文档中,然后去调用文档中的命令。这样一部操作就可以完成。这个文档就是shell脚本。凡是自定义的脚本建议放到/user/local/sbin目录下
shell脚本的基本结构以及如何执行
shell脚本通常都是以.sh为后缀名的
shell脚本的执行很简单,直接“sh filename”即可。使用sh命令去执行一个shell脚本的时候可以加一个-x选项来查看这个脚本的执行过程。
在脚本中引用变量时需要叫上‘$’符号
shell 脚本中的逻辑判断:if逻辑判断,在判断数值大小除了可以用“(( ))”还可以使用[ ]
在shell脚本中,除了用if来判断逻辑外,还有一种常用的方式,那就是case了。
grep ,sed,awk为正则表达式必须掌握的工具
grep:过滤一个或多个字符
cat:截取某一个字段
| :管道符,他的作用在于将字符前面的命令的结果丢给符号后面的命令
~:用户的家目录,如果是root则是/root,普通用户则是/home/username。在root用户下切换到test用户下,为su test。pwd 打印当前目录
&:如果想把一条命令放到后台执行,则需要加上这个字符,通常用于命令运行时间非常长的情况。使用jobs可以查看当前shell中后台执行的任务,用fg可以调到前台执行,sleep命令就是休眠的意思。后面跟数字,单位为秒。CTRL+z使之暂停,在输入bg可以再次进入后台执行。
>,>>,2>,2>>:前面讲过重定向符号>以及>>分别表示替代和追加的意思。然后还有两个字符就是2>,2>>分别表示错误重定向和错误追加重定向。
“$”: 用于变量前面的标识符外,就是和“!”结合起来使用。表示上一条命令中最后一个变量(总之就是上一条命令中最后出现的那个东西)
echo 变量名;打印变量的值
取消某个变量:unset 变量名
pstree:这个命令会把linux系统中所有进程通过树形结构打印出来 。
export:就是声明一下这个变量的意思。
linux自定义变量是有规则的:设定变量的格式为“a=b”等号两边不能有空格。
环境变量PATH,这个变量是shell预设的一个变量。shell预设的变量都是大写的。PATH就替代了所有常用命令的绝对路径的设定。