shell高级知识(1)

不积跬步,无以至千里

每天进步一点点

#!/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.>和>>:>表示重新写入,>>表示继续写入





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值