第七章.文件管理命令
在学习完编辑文件的命令之后,那么来到了管理文件的一些基本命令
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
tail 只看尾巴几行
接下来就详细为各位道友介绍下每个命令的用法
cat
用法1:cat 文件名
用法2:cat 文件1 文件2 > 文件 3(运用了输出重定向,将1,2的内容覆盖到3中)
关于输入和输出重定向,等下还会详细解释,先来看下cat的其他用法
选项与参数:
- -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
- -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -T :将 [tab] 按键以 ^I 显示出来;
- -v :列出一些看不出来的特殊字符
tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
[root@www ~]# tac /etc/issue Kernel \r on an \m CentOS release 6.4 (Final)
nl
与cat不同的是,会显示行号
语法:
nl [-bnw] 文件
选项与参数:
- -b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值); - -n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ; - -w :行号栏位的占用的位数。
more
在查看大型文件时,就可以用到这个命令而不是用cat命令
回车键 向下移动一行
空格键 向下移动一页
b 向上移动一页
q 退出
less
less基本命令与more差不多,less支持向上翻页
/ 字符串 高亮显示指定的字符串
方向键进行翻页
那么我们对他们的功能进行一个对比
-
功能:
more
命令:逐页显示文本文件内容,每次显示一页,按空格键可以向下翻页,按Q键退出。less
命令:也可以逐页显示文本文件内容,但功能更强大。它支持向上和向下滚动,可以搜索文本,可以跳转到指定行,可以使用各种快捷键进行操作。
-
滚动和导航:
more
命令:只能向下滚动,只能一页一页地浏览文本,无法返回上一页。less
命令:可以向上和向下滚动,可以以一页或一行为单位滚动,并且可以使用向上和向下箭头键进行导航。
-
搜索:
more
命令:不支持搜索功能。less
命令:支持搜索功能,可以使用/
进行向下搜索,使用?
进行向上搜索,搜索匹配的文本会被高亮显示。
-
退出:
more
命令:按下Q键即可退出。less
命令:按下Q键即可退出。
综上所述,less
命令相对于more
命令来说功能更强大,更适合于对大型文本文件的查看和浏览,尤其是当需要搜索和导航文件内容时。
head file
显示文件开头(默认十行)
head -n file 置顶显示前几行
tail
tail查看一个文件最后n行
tail file
tail -n file
tail -f file 可以查看新增的数据
2.统计文件信息
wc 统计文件内容数量
wc - lwc file
l:行数
w:单词数
c:字节
du
du 文件名
du -h (以高可读性显示)
du 目录名
du -s (只显示目录)
查看目录大小:
du [选项] [目录]
如果省略目录参数,则默认为当前目录。du命令会递归地计算指定目录及其子目录中的文件大小,并以字节为单位显示每个目录的大小总和。
常用选项:
-h:以人类可读的格式显示文件大小,例如使用K、M、G等单位。
-s:仅显示总计大小,而不显示详细信息。
示例:
du -h /path/to/directory
列出目录中的文件大小:
du [选项] [文件]
du命令也可以用于计算单个文件的大小。
示例:
du -h /path/to/file.txt
du命令常用于确定磁盘上的大文件或大文件夹,以便进行磁盘空间管理和清理
3.文本处理
find
查找文件
-name 根据文件名进行查找
-type 根据文件类型查找
f 文件 d 目录
find / -name file -type f
find
find / -name "*.log" -type f 查找/下.log后缀的文件
find / -type d 查找/下所有目录
grep
在文件中直接找到包含指定信息的那一行 并把信息显示出来
grep 查找的内容 文件名
grep network /var/log/* 可以指定多个文件名
echo
用于输出指定内容
echo ‘文本内容’
利用
'>' 覆盖
'>>' 追加
cat /etc/passwd > 1 将passwd的内容输出重定向到 文件 1
输出重定向
'>' 覆盖
'>>' 追加
使用>进行重定向输出
ll > 2
将文件的详细信息 输出给 文件2
ll >> 5
grep network /var/log/* 可以指定多个文件名
echo
用于输出指定内容
echo ‘文本内容’
利用
'>' 覆盖
'>>' 追加
cat /etc/passwd > 1 将passwd的内容输出重定向到 文件 1
输入重定向
将命令的输入内容从键盘输入改为从文件输入
文件1的内容为/root
进行输入重定向重定向给命令cd
当前的工作目录跳转至了/root
因为 "<" 符号会将文件中的内容作为 "cd" 命令的参数,而参数 "/root" 是一个有效的目录路径,可以被 "cd" 命令正确解析。
<<,则更为常用一些,它将运算符解释为读取输入的指令,直到找到包含指定分隔符的行。直到包含分隔符的行的所有输入行都被输入到命令的标准输入中。命令形式一般如下:
command << delimiter
document
delimiter
其中delimiter代表用户定义的分隔符(可以是任意字符),两个分隔符之间,是输入的多行参数。
wc -l << EOF
abcd
1234
EOF
## 其输出结果为2,统计了输入的行数。
如果想把文件2传到文件3中
那么今天就到这里啦