不积跬步,无以至千里
每天进步一点点
#!/bin/bash
#clear log
cd /var/log
cat /dev/null > messages
cat /dev/null > wtmp
echo "Logs cleaned up."
现在我们来分析该脚本. 纵观整个脚本,发现是linux 命令的堆叠.只不过是将一大堆命令放在一个文件中。
文件第一行 #!/bin/bash,代表利用bash来解析该文件(稍后做重点解释)
'#',代表注释
cd:进入目录的linux命令
cat:查看文件内容的命令
echo:将字符串输出到标准输出
重点及延升
1.#!/bin/bash
表示此脚本使用 /bin/bash来解释它,也有#!/bin/sh,#!/usr/bin/env php ,#!/usr/bin/env python,这些都是一个意思,这是规定好的标准写法。shell分了很多种,由于不同的操作系统实现的内置默认shell可能不一样,有bash,sh,csh,tcsh....,但是大部分是兼容的。#!/usr/bin/env php和#!/usr/bin/env python,表示用php和python解析器执行此文件。
#!实际上是一个2字节的魔法数字,这是指定文件类型的特殊标记
2./dev/null
在Linux操作系统中/dev/null和/dev/zero是两个特殊的文件,在脚本开发和运维中经常用这两个文件.
/dev/null文件相当于是一个"黑洞",是一个只写文件,所有写入该文件的数据都会丢失,也无法从/dev/null文件中读取任何内容
eg:禁止标准输出
cat $filename > /dev/null
禁止标准错误
rm $badname 2>/dev/null
清除日志文件内容
cat /dev/null > /var/log/messages
特殊用法 ,程序打印的日志将不再记录,避免系统空间被不需要的日志占用
ln -s /dev/null ~/.netscape/cookies
将该cookie的日志文件链接到/dev/null,所夺将内容写入该文件都将被清空
/dev/zero创建一个指定大小的临时文件
/dev/null文件是空设备,也称为位桶,主要用于被写入,任何写入它的输出都会被丢弃.
/dev/zero文件主要是用作一个标准的"0输入设备,它可以提供无尽的0,可以使用/dev/zero来初始化文件
3.>和>>:>表示重新写入,>>表示继续写入