Linux文件管理二
一、查看文件内容
1、cat命令
功能:正序输出文件的内容
基本语法:
# cat 文件名称
案例:查看/tmp/passwd文件
# cat /tmp/passwd
2、head命令
功能:查看一个文件的前n 行,如果不指定n,则默认显示前10 行
基本语法:
# head -n 文件名称
案例:查看/tmp/passwd头十行
# head /etmp/passwd
3、tail命令
功能:查看一个文件的最后n 行,如果不指定n,则默认显示最后10 行
基本语法:
# tail -n 文件名称
案例:查看/tmp/passwd最后十行
tail /tmp/passwd
tail -f特殊用法:动态查看一个文件内容的输出信息,常用于查看日志
案例:查询/var/log/messages文件的日志信息
# tail -f /var/log/messages
退出方式可以直接按快捷键:Ctrl + C
4、less命令
功能:分屏显示文件内容
基本语法:
# less 文件名称
注意:less命令不是加载整个文件到内存,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。
less 命令的执行会打开一个交互界面,下面是一些常用交互命令(和more类似):
按键 | 功能 |
---|---|
回车键 | 向下移动一行。 |
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页。 |
上下方向键 | 向上与向下移动,less命令特有功能键。 |
less -N 文件名称 | 显示行号。 |
/ 字符串 | 搜索指定的字符串。 |
q | 退出less |
二、文件统计命令
1、wc命令
功能:统计文本的行数、单词数和字节数。
基本语法:
# wc [选项] 文件名称
选项说明:
-l:表示lines,行数(以回车/换行符为标准)
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数(空格,回车,换行)
案例:统计/tmp/passwd文件的总行数
# wc -l /tmp/passwd
2、du命令
功能:查看文件或目录占用磁盘空间大小
基本语法:
# du [选项] 统计的文件或文件夹
选项说明:
-s :summaries,只显示汇总的大小,统计文件夹的大小
-h :以较高的可读性显示文件或文件夹的大小,(KB/MB/GB/TB)
案例:显示/var/log/messages文件的大小(占用磁盘空间,显示文件大小的单位)
# du -h messages
8.0K messages
案例:统计/var/log文件夹的大小
# du -sh /var/log
16M /var/log
三、文件处理命令
1、find命令
功能:文件查找。
基本语法:
# find 搜索路径 [选项]
选项说明:
-name:指定要搜索文件的名称,支持*星号通配符
-type:代表搜索的文件类型,f代表普通文件,d代表文件夹等
案例:搜索/var目录中boot.log文件
# find /var -name "boot.log" -type f
案例:全盘搜索ssh目录
# find / -name "ssh" -type d
案例:搜索/var/log目录下的所有的以".log"结尾的文件信息
# find /var/log -name "*.log" -type f
2、grep命令
功能:在文件中直接找到包含指定关键词的那些行,并把这些信息高亮显示出来。
基本语法:
# grep [选项] 要搜索的关键词 搜索的文件名称
选项说明:
-n :代表显示包含关键词的行号信息
案例:在/var/log/messages文件中搜索包含关键词"network"的行
# grep network /var/log/messages
案例:在/var/log/messages文件中搜索包含关键词"network"的行,然后显示行号信息
# grep -n network /var/log/messages
案例:搜索/var/log目录下所有文件,找到包含关键词"network"的所有行信息
# grep network /var/log/*
3、echo命令
功能:在终端中输入指定的文本内容
基本语法:
# echo "文本内容"
案例:在终端中,输出hello world字符串
# echo "hello world"
4、输出重定向
场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
> :标准输出重定向 : 覆盖输出,会覆盖掉原先的文件内容
>>:追加重定向 : 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
案例:把echo输出的"hello world"写入到readme.txt文件中
# cat readme.txt
111
222
333
# echo "hello world" > readme.txt
# cat readme.txt
hello world #readme.txt文件原有的内容已被覆盖
案例:把echo输出的"hello linux"写入到readme.txt,要求不能覆盖原来的内容
# echo "hello linux" >> readme.txt
# cat readme.txt
hello world
hello linux #readme.txt文件原有的内容没有被覆盖,在原来的基础上追加