linux命令cat问题的简单介绍

linux命令:du、sort、more、cat、less

一个比较经典的问题:

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的济阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

如果线上机器的磁盘占用率超级高,怎么办?

这时候优先想到的肯定是,定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉。

那么,问题来了,如何定位到占用磁盘空间最大的文件?

一个办法是执行如下命令:

里面涉及三个指令:du、sort、more

既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记。

首先是du

作用:用来查看文件所占用的磁盘情况。

格式:du [选项] [文件]

可用选项(如下为du --help展示的内容):

操作示例:

对几个比较常用的选项单独拿出来,在机器上实际操作,效果如下:

首先,当前目录如下:

du:

其实吧,从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量,所以,感觉一般情况下-c这个选项并没有什么用。

du -s:只计算总量

不过,注意:-s与-a不能同时存在,会报错的。

sort

作用:对输出的结果进行排序

可用选项:

-r:代表逆序排序

-n:按照字符串数值排序

-g:按照常规数值排序

-f:忽略字母大小写

实测效果:

首先是测试文件的原始状态:

测试一:sort

可以发现:

空行排在了第一位;

不管数字有多大,字符串都会排在数字的后面;

数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);

more

作用:用于一页一页地展示文件内容。

几个常用操作:

空格:翻到下一页

b:翻到上一页

/:启动字符串搜索(类似于vim)

此外:

more +n XXX:从XXX文件的第n行开始展示

more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行

cat

作用:一次性的展示所有文件内容

cat有两个比较有用的选项:

-n:输出所有行号

-b:只对非空行输出行号

此外,

cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ

并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more

less:

作用:对文件或者输出内容进行分页展示,并且less可以用于打开多个文件

常用操作:

j:向上滚动一行

k:向下滚动一行(类似于vim)

g:跳到第一行

G:跳到最后一行

b:向上翻一页

空格:翻页

n%:跳转到整个文件的n%处

:e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去

/:进行字符串搜索

v:启动编辑

常用选项:

-N:在每一行前面都显示行号

-m:显示读取文件的百分比

-M:显示读取文件的百分比、行号和总行数

注意:

其他两个比较简单的指令:

head:显示一个文件的前N行

用法:head -n 行数 文件名

tail:显示一个文件的最后N行

用法:tail -n 行数 文件名

不过,使用tai的时候,因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:

tail -f 文件名

关于LINUX CAT命令

楼上的 f1.c清空的原理讲的正确 但是

$ cat f1.c f1.c

会造成死循环 ,瞬间会造成巨大的文件 , 不要误导人了 呵呵

lz 要想明白这个 一定要了解的到底是干什么的

对于你的命令 cat f1.c f1.c 表示

cat 命令以 f1.c 文件作为 stdin,同时以 f1.c 文件作为 stdout

一般的 ,linux中的文件都有一个标记叫做EOF ,End of File ,此标记表示为文本结束符 ,这样一来 f1.c的文件尾部就是EOF , 执行最后一步的重定向时 就将EOF重定向到了 f1.c ,这样 直接将一个EOF重定向到文件的时候表示将文件清空

其实你的命令等效于

$ cat EOF f1.c

EOF

对于stdin来讲 它是忠实的呈现来源的各个字节的

这个例子没什么实用价值 也就是让人了解 的功能以及特点, 逻辑上来讲 从一个文件读入在重新输出到文件本身有什么意思呢.

> 命令'>linux cat >> 命令

cat 命令用于连接文件并打印到标准输出设备上。cat是concatenate的简写,类似于dos下面的type命令,使用权限为所有使用者。

cat file1 file2的意思是把 file1 的文档内容输入file2 这个文档里。

扩展资料:

cat的语法格式:

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

比如:

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 textfile2

参考资料:cat(linux命令)-百度百科

关于linux命令cat问题?

cat 1.txt /dev/null cat 1.txt 2.txt || echo "$(date +%F\ %T) $(cat 1.txt 21)" err.txt

上面的意思是首先cat 1.txt,丢弃标准输出和错误输出;如果这个命令正确(即读取到了1.txt的内容),那么执行cat 1.txt 2.txt,即把1.txt的内容追加写到2.txt中;如果这个文件不正确(即“没有这个文件或目录”),那么执行echo "$(date +%F\ %T) $(cat 1.txt 21)" err.txt,即把时间和错误信息放在一行,写入err.txt中。


文章名称:linux命令cat问题的简单介绍
文章分享:http://scyanting.com/article/hjgsoo.html