busybox命令:yes、zcat

  • 2018-05-17
  • 110
  • 0
  • 0

yes用途说明

yes命令用于重复输出字符串(output a string repeatedly until killed)。这个命令可以帮你自动回答命令行提示,例如,进入一个含有多个文件的目录,执行 “yes | rm -i *”,所有的 rm: remove regular empty file `xxx’? 提示都会被自动回答 y。这在编写脚本程序的时候会很用处。yes命令还有另外一个用途,可以用来生成大的文本文件。

 

常用参数

yes命令不指定参数时,不断的输出y;指定字符串参数时,就不断的输出该字符串。要终止输出,必须杀掉该进程,比如按Ctrl+C,或killall yes。(Repeatedly output a line with all specified STRING(s), or ‘y’.)比如:要不断输出n时,输入yes n。

 

使用示例

示例一 删除文件时自动回答y

[root@web ~]# ls -l *.txt
-rw-r–r– 1 root root     7 11-28 11:54 1.txt
-rw-r–r– 1 root root 10217 07-06 13:10 data.txt
[root@web ~]# yes | rm -i *.txt
rm:是否删除 一般文件  “1.txt” | rm -i.txt” rm:是否删除 一般文件 “data.txt”? [root@web ~]# yes | rm -i *.txt
rm: lstat “*.txt” 失败: 没有那个文件或目录

[root@web ~]# ls -l *.txt
ls: *.txt: 没有那个文件或目录
[root@web ~]#

 

示例二 生成大的文本文件

下面的脚本把yes命令输出的内容保存到文件中,然后1秒钟之后停止输出。在这台测试机器上,生成了一个93M的文件。

#!/bin/sh  
  
yes hello >hello.txt &  
PID=$!  
  
sleep 1  
kill $PID  
  
ls -l hello.txt  

[root@web ~]# cat yes.sh
#!/bin/sh

yes hello >hello.txt &
PID=$!

sleep 1
kill $PID

ls -l hello.txt

sagit:/data/data/berserker.android.apps.sshdroid/home/a # sh a.sh
-rw-rw-rw- 1 root root 81018880 May 17 13:21 hello.txt

问题出现了:

内容转载,作者是谁?


zcat

cat是用于查看普通文件的。zcat 是用于查看压缩的文件,直接显示在终端的。

命令的实际意义:

单个磁盘的容量现在已经超过了 1TB,但是大型数据文件、日志文件、图像以及电影等媒体文件很快就把磁盘装满了。为了节省空间,可以把许多文件压缩到原大小的几分之一。
例如,Apache 日志文件(是简单的文本)可以压缩到原大小的十分之一。尽管压缩可以节省磁盘空间,但是也会增加工作量。例如,如果需要分析压缩的 Apache 日志文件,就必须解压它,处理数据,然后重新压缩它。如果有大量日志文件(如果保留分析趋势所需的记录,这种情况很常见),那么开销会非常大。
幸运的是,zcat 命令就可以 “在原地” 查看压缩文件内容。


用法:

zcat FILE

Decompress to stdout


实战:

阿里云CDN日志的查看:

下载到Windows,发现大家好麻烦,还要解压改后缀什么的

日志一般都是gz格式,下载下来。

跟查看txt文件一样,直接查看了日志:

方不方便,强不强大。。。

  1. 2017:  看我如何装个小童车(0)
  2. 2017:  [音乐]小小炮娘,很少烦恼,眼望四周...(2)

评论

偷偷告诉你,这还毛都没有 T T

发表评论