文章目录
Linux中有几个命令可以查看文件的内容,而不需要调用其他文本编辑器
1 查看文件类型(file命令)
在显示文件内容之前,应该先了解一下文件的类型。如果打开了一个二进制文件,你会在屏幕上看到各种乱码,甚至会把你的终端仿真器挂起。
file命令是一个随手可得的便捷工具。它能够探测文件的内部,并决定文件是什么类型的
$ file my_file
my_file: ASCII text
上面例子中的文件是一个text(文本)文件。file命令不仅能确定文件中包含的文本信息,还能确定该文本文件的字符编码,ASCII
$ file New_Dir
New_Dir: directory
上面例子中的文件就是一个目录。因此,以后可以使用file命令作为另一种区分目录的方法
$ file my_script
my_script: Bourne-Again shell script, ASCII text executable
上面的例子展示了file命令对脚本文件的返回结果。
最后一个例子是二进制可执行程序。file命令能够确定该程序编译时所面向的平台以及需要何种类型的库。如果你有从未知源处获得的二进制文件,这会是个非常有用的特性:
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.24,
[...]
$
2 查看整个文件内容
2.1 cat命令
cat命令是显示文本文件中所有数据的得力工具。
cat 文件
比如查看当前用户目录下的hello文件
[admin@iZbp1hld5mqm15c6sdgqfkZ ~]$ cat ~/hello
hello world
-n参数:显示行号
-n参数会给所有的行加上行号
[admin@iZbp1hld5mqm15c6sdgqfkZ ~]$ cat -n ~/hello
1 hello world
-b 参数:只给有文本的显示行号
[admin@iZbp1hld5mqm15c6sdgqfkZ ~]$ cat -b ~/hello
1 hello world
2 你好 世界
-T参数:不显示制表符
[admin@iZbp1hld5mqm15c6sdgqfkZ ~]$ cat -T ~/hello
hello world
你好 世界
-T参数会用^I字符组合去替换文中的所有制表符
[admin@iZbp1hld5mqm15c6sdgqfkZ ~]$ cat -T ~/hello
hello world
你好 世界
i^Iam cool
2.2 more命令
cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作。
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。
eg:
- 屏幕的底部,more命令显示了一个标签,其表明你仍然在more程序中以及你现在在这个文本文件中的位置。
- 你可以通过按空格键或回车键以逐行向前的方式浏览文本文件。浏览完之后,按q键退出
2.3 less命令
less命令的命名是个文字游戏(从俗语“less is more”得来),它为more命令的升级版。它提供了一些极为实用的特性,能够实现在文本文件中前后翻动,而且还有一些高级搜索功能。
- 打开的文件内容太大而无法放入一个页面时,您将看到一个冒号 (😃
- 要转到下一页,请 f 按键或 空格键
- 如果要向下移动特定数量的行,请键入数字,后跟空格或 f 键
- 按 向下键 或 回车 向后滚动一行,通过 向上键 向前滚动一行
- 要返回上一页,请 b 按键。通过键入数字后跟 b 键,向上移动特定行数。
- 如果要搜索模式,请键入 / ,然后键入要搜索的模式。一旦你按下回车键, less 就会向前搜索匹配项。向后搜索使用 ? 后跟搜索模式
- 要退出 less 并返回命令行,请按 q 。
3 查看部分文件
3.1 tail命令
tail命令会显示文件最后几行的内容(文件的“尾部”)。默认情况下,它会显示文件的末尾10行。
-n参数来修改所显示的行数
tail -n 2 app.log
只看最末尾的两行
-f参数是tail命令的一个突出特性。它允许你在其他进程使用该文件时查看文件的内容**。tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式**。
3.2 head命令
head命令,顾名思义,会显示文件开头那些行的内容。默认情况下,它会显示文件前10行的文本。
类似于tail命令,它也支持-n参数,这样就可以指定想要显示的内容了
文件的开头通常不会改变,因此head命令并像tail命令那样支持-f参数特性