Linux查看文件内容和压缩文件命令
- 2022 年 9 月 21 日
- 筆記
- Linux查看文件内容和压缩文件命令
查看文件内容
一些重要的目录:
/usr/share/ 帮助文档、说明文档
/var/log/ 日志
/var/run/ 运行中程序
/var/tmp 临时文件
- 根(/)相当于一个入口,文件的总入口,也是唯一入口
- bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件 —————-命令
- sbin 管理员可使用的二进制文件————-命令ls cd useradd
- boot 系统内核、启动文件
- dev 硬件文件(黄色)
- etc 配置文件等同于windows 注册表,一般都是文本文件
- usr应用程序和操作系统相关的文件 bin sbin
- var/log日志文件,数据变化的
- proc 主要保存系统的内核、进程、外部设备状态和网络状态等
- mnt 默认挂载点
- opt 第三方应用程序安装所在目录程序
Cat(查看文件内容)
格式:
cat [选项] 文件名
选项:
选项 | 效果 |
-n | 显示行号包括空行 |
-b | 跳过空白行编号 |
-s | 将所有的连续的多个空行替换为一个空行(压缩成一个空行) |
-A | 显示隐藏字符 |
示例:
Cat 查看文件内容
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat –n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat –b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
cat加选项
-n
[root@localhost jlx]#cat -n 1.txt //显示行号包括空行
2 222
3
4
5 222
6
7
8 333
-b
[root@localhost jlx]#cat -b 1.txt //跳过空白行编号
2 222
3 333
4 444
-s
[root@localhost jlx]#cat -s 1.txt //将所有的连续的多个空行替换为一个空行
222
333
444
-A
[root@localhost jlx]#cat -A 1.txt //显示隐藏字符
222$
$
$
333$
$
$
444$
more(分页查看文件内容)
格式:
more 文件名
操作说明:
指令 | 功能 |
空格 | 向下 一页 |
回车 | 向下一行 |
b | 向上 |
q | 退出 |
语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
实例
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more –s testfile
从第 20 行开始显示 testfile 之文档内容。
more +20 testfile
less(分页查看文件内容)
格式:
less 文件名
操作说明:
指令 | 功能 |
空格 | 向下 一页 |
回车 | 向下一行 |
b | 向上 |
q | 退出 |
/ | 查找内容 |
n | 向下查找 |
N | 向上查找 |
实例
1、查看文件
less log2013.log
2、ps查看进程信息并通过less分页显示
ps –ef |less
3、查看命令历史使用记录并通过less分页显示
[root@localhost test]# history | less
22 scp –r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd ..
24 scp –r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……
4、浏览多个文件
less log2013.log log2014.log
说明:
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
附加备注
1.全屏导航
-
ctrl + F – 向前移动一屏
-
ctrl + B – 向后移动一屏
-
ctrl + D – 向前移动半屏
-
ctrl + U – 向后移动半屏
单行导航
-
j – 下一行
-
k – 上一行
3.其它导航
-
G – 移动到最后一行
-
g – 移动到第一行
-
q / ZZ – 退出 less 命令
4.其它有用的命令
-
v – 使用配置的编辑器编辑当前文件
-
h – 显示 less 的帮助文档
-
&pattern – 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
-
ma – 使用 a 标记文本的当前位置
-
‘a – 导航到标记 a 处
head/tail(查看头部和尾部内容)
格式:
head -n <行数> 文件名 (不加行数默认开头十行)
tail -n<行数> 文件名 (不加行数默认结尾十行)
tail -f 文件名:实时跟踪最后十行
实例
要显示 runoob_notes.log 文件的开头 10 行,请输入以下命令(默认带参赛 -n 10):
head runoob_notes.log
以上命令等价于:
head –n 10 runoon_notes.log
显示 notes.log 文件的开头 5 行,请输入以下命令:
head –n 5 runoob_notes.log
显示文件前 20 个字节:
head –c 20 runoob_notes.log
【“ | ”管道符 将前面命令的结果 交给后面的命令执行】 【tips:不是所有的命令都支持管道符】
拓展:
通过组合完成要求: 我只要第二行
[root@localhost jlx]#cat 2.txt|head -n 2|tail -n 1
2
wc(统计文件中的信息)
格式:
wc [选项] 目标文件
不加选项,则默认统计行数、单词个数、字节数三者
-
-l:统计行数
-
-w:统计单词个数
-
-c:统计字节数
实例
在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:
wc testfile
先查看testfile文件的内容,可以看到:
$ cat testfile
Linux networks are becoming more and more common, but scurity is often an overlooked
issue. Unfortunately, in today’s environment all networks are potential hacker targets,
fro0m tp–secret military research networks to small home LANs.
Linux Network Securty focuses on securing
Linux in a networked environment, where the
security of the entire network needs to be considered rather than just isolated machines.
It uses a mix of theory and practicl techniques to teach administrators how to install and
use security applications, as well as how the applcations work and why they are necesary.
使用 wc统计,结果如下:
$ wc testfile # testfile文件的统计信息
3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。
如果想同时统计多个文件的信息,例如同时统计testfile、testfile_1、testfile_2,可使用如下命令:
wc testfile testfile_1 testfile_2 #统计三个文件的信息
输出结果如下:
$ wc testfile testfile_1 testfile_2 #统计三个文件的信息
3 92 598 testfile #第一个文件行数为3、单词数92、字节数598
9 18 78 testfile_1 #第二个文件的行数为9、单词数18、字节数78
3 6 32 testfile_2 #第三个文件的行数为3、单词数6、字节数32
15 116 708 总用量 #三个文件总共的行数为15、单词数116、字节数708
grep(66检索、过滤文件内容)
格式:
grep [选项] 查找条件 目标文件
选项:
选项 | 作用 |
-i | 查找时忽略大小写 |
-v | 反向查找,输出与查找条件不相符的行 |
-o | 只显示匹配项 |
-r | 在目录内递归查找 |
-n | 显示匹配行及行号 |
语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]
实例
1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep test *file
结果如下所示:
$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串”update”的文件,并打印出该字符串所在行的内容,使用的命令为:
grep –r update /etc/acpi
输出结果如下:
$ grep –r update /etc/acpi #以递归的方式查找“etc/acpi”
#下包含“update”的文件
/etc/acpi/ac.d/85–anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)
Rather than
/etc/acpi/resume.d/85–anacron.sh:# (Things like the slocate updatedb cause a lot of
IO.)
Rather than
/etc/acpi/events/thinkpad–cmos:action=/usr/sbin/thinkpad–keys—update
3、反向查找。前面各个例子是查找并打印出符合条件的行,通过”-v”参数可以打印出不符合条件行的内容。
grep –v test *test*
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
$ grep–v test* #查找文件名中包含test 的文件中不包含test 的行
testfile1:helLinux!
testfile1:Linis a free Unix–type operating system.
testfile1:Lin
testfile_1:HELLO LINUX!
testfile_1:LINUX IS A FREE UNIX–TYPE OPTERATING SYSTEM.
testfile_1:THIS IS A LINUX TESTFILE!
testfile_2:HELLO LINUX!
testfile_2:Linux is a free unix–type opterating system.
正则表达式:
-
^ 以什么开头 放最前
-
$ 以什么什么结尾 放最后
-
空白行怎么表示?——^$
-
grep -n ‘bash$’ passwd 以bash结尾的行
-
grep -n ‘^$’ fstab 找出空白行
-
grep -nv ‘^$’ fstab 找出非空白行
压缩文件
gzip和bzip2
区别:
Bzip2 -k 保留源文件,压缩比gzip 要好一点
常用选项:
标题 | |
-9 | 压缩 |
-d | 解压缩 |
格式:
-
压缩
gzip [-9] 文件名
bzip2 [-9] 文件名
-
解压缩
-
gzip -d .gz格式的压缩文件
-
bzip2 -d .bz2格式的压缩文件
语法
gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][文件…] 或 gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][目录]
实例
压缩文件
[root@runoob.com a]# ls //显示当前目录文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //压缩目录下的所有文件
[root@runoob.com a]# ls //显示当前目录文件
a.c.gz b.h.gz d.cpp.gz
[root@runoob.com a]#
接范例1, 列出详细的信息
[root@runoob.com a]# gzip –dv * //解压文件,并列出详细信息
a.c.gz: 0.0% — replaced with a.c
b.h.gz: 0.0% — replaced with b.h
d.cpp.gz: 0.0% — replaced with d.cpp
[root@runoob.com a]#
接范例1,显示压缩文件的信息
[root@runoob.com a]# gzip –l *
compressed uncompressed ratio uncompressed_name
24 0 0.0% a.c
24 0 0.0% b.h
26 0 0.0% d.cpp