1.日志管理
1)显示文件内容
a.cat指令 - 直接显示文件中所有的内容
cat 文件 - 直接查看文件所有内容
总结: 查看文件内容的时候可以加参数-n,让内容在显示的时候显示行号
b.查看部分内容
head -N 文件地址 - 显示指定文件前N行内容(-n参数无效)
tail -N 文件地址 - 显示指定文件最后N行内容(-n参数无效)
c.分页显示
less 文件 - 按页显示文件内容(通过快捷键控制内容显示过程; 文件内容不会打印到shell/终端里)
less -N 文件 - 按页显示文件内容,每次翻页的时候翻N行
more 文件 - 按页显示文件内容(通过快捷键控制内容显示过程; 文件内容会打印到shell/终端里)
more -N 文件 - 按页显示文件内容,每次翻页的时候翻N行
快捷键:
- 按 j 向下一行
- 按 k 向上一行
- 按 f 向下翻一页
- 按b 向上翻一页
- 按 g 到全文开头
- 按 G 到全文结尾
- 按 Q 退出
2)结果的处理
凡是会打印结果的指令,我们都可以通过相关指令对结果进行处理
a. 管道 - |
如果需要对某一个指令的结果使用另外的指令进行二次处理的时候,就需要用到管道(|)
b.sort - 排序
sort - 从小到大排序(将一行内容作为一个字符串,按字符串大小对应内容进行排序,默认不区分大小写)
cat a.txt |sort # 对a.txt的文件内容从小到大排序显示
sort的参数:
-r - 逆序
-nk 1 - 数值大小排序
-nk 2 - 字符大小排序(默认)
cat a.txt|sort -nk 1 # 对a.txt的文件内容按数字大小从小到大排序
cat a.txt|sort -rnk 1 # 对a.txt的文件内容按数字大小从大到小排序
cat a.txt|sort -nk 2 # 对a.txt的文件内容按字符大小从小到大排序(默认)
cat a.txt|sort -rnk 2 # 对a.txt的文件内容按字符大小从大到小排序
1)字符串比较大小的规则: 比较第一对不相等的字符的大小
abc mn -> mn > abc
abc amn -> amn > abc
你好 如果 ->
1098 < 71
2)字符比较大小的规则:比较的是字符的编码值的大小
3)编码值
计算机只能保存数字(数字在计算机中的存储方式:二进制补码)
为了能够让计算机存储文字符号,给每个文字符号绑定了一个固定的数字,每次需要存符号的时候,就存储这个符号对应的那个数字。(符号对应的数字就是这个符号的编码值)
4)编码表(保存和记录了符号和数字之间的对应的关系)
ASCII码表
Unicode编码表
c.uniq -去重
uniq - 只能将紧挨着的相同行去掉重复的(如果需要去掉所有重复的行,先排序将相同的行放到一起)
cat a.txt|uniq # 去掉a.txt文件内容中相邻重复的行
cat a.txt|sort|uniq # 去掉a.txt文件内容中所有重复的行
uniq的参数
-c #统计重复的次数
d.awk - 获取列
awk ‘{print $N}’ - 获取内容中第N列的数据
history|awk '{print $2}' # 获取历史记录第2列的内容
history|awk '{print $2,$3}' # 获取历史记录第2列和第3列的内容
练习:
history |awk '{print $3}' |sort |uniq ‐c | sort ‐nk 1 | tail ‐3 # 统计最常用的3个指令及其使用次数
3)输出重定向 - > / >> (将指令的打印结果保存包文件中)
执行有打印结果的指令 > 文件地址 - 将指定指令执行的结果保存到指定文件中(先清除原文件内容再添加)
执行有打印结果的指令 >> 文件地址 - 将指定指令执行的结果保存到指定文件中(直接将结果追加到原文件中)
history > a.txt #将当前历史记录直接保存到a.txt文件中
# 将最常用的3个指令及其使用次数保存到a.txt文件中
history |awk '{print $3}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐3 > a.txt
- 如果重定向的文件是现在操作的文件,是无法重定向的,需要重新创建一个文件
4)统计
wc -c/-w/-l 文件地址 - 统计指定文件中字符/单词/行的数量 (注意:统计字符数量的数,会比实际的字符数多1,多的\0这个字符串结束标志)
有打印结果的指令 | wc -c/-w/-l
5)查找
grep - 找内容
a. grep 内容 文件地址 - 在指定文件中查找指定内容(返回文件中所有包含指定内容的行)
grep you a.txt # 获取a.txt中包含you的所有的行
grep的参数:
-n - 显示结果的时候显示行号
-i - 查找内容的时候忽略大小写
-E - 按正则表达式进行匹配
使用方法: grep -E '正则表达式' 文件
注意: Linux操作系统中正则表达式不支持:\d,\D,\w,\W,\s,\S,\b,\B; 其他语法都支持
-v - 忽略字段
grep you a.txt -v # 获取a.txt中不包含you的所有的行
b. 执行有打印结果的指令 |grep 内容 - 在指令执行结果中查找指定内容
c. grep -r 内容 文件夹地址 -在指定文件夹中所有的文件中查找指定内容
find - 找文件
find 文件夹路径 -name 文件名 - 在指定文件夹下按文件名找指定文件
# 找指定文件名
find dir1 -name 'test1.py' # 在文件夹dir1找名字是test1.py的文件
find dir1 -name '*.txt' # 在文件夹dir1找后缀是txt的所有文件
find dir1 -name 'test*.txt'
find dir1 -name 'test*'
find dir1 -name '*c.txt'
find 文件夹路径 -size +/-文件大小 - 在指定文件夹下找文件大小满足条件的所有的内容(包含文件和文件夹)
find dir1 -size +4k # 查找在文件夹dir1中所有大于4k的文件
find dir1 -size -4k # 查找在文件夹dir1中所有小于4k的文件
find dir1 -size +5k -size -10k # 查找在文件夹dir1中所有大于5k并且小于10k的文件(文件大小如果是小数,算的时候向上取整)
find dir1 -size +4k -name '*.txt' # 查找在文件夹dir1中所有大于4k的txt文件
2.压缩和归档
压缩可以让文件变小,一般在需要传输前都会先对文件进行压缩。注意,压缩指令只针对文件有效,并且一次只能压缩一个文件。
归档可以将一个文件夹变成一个文件(tar文件)
1)归档和解归档 - tar
tar -cvf 归档文件地址 需要归档的原文件地址 - 将文件进行归档操作(既可以对文件进行归档也可以对文件夹 归档)
tar -xvf 需要解归档文件地址 - 将指定的归档文件解归档
2)压缩和解压: gzip,gunzip,xz
a.gzip
gzip 文件地址 - 压缩指定文件(压缩后会生成一个gz文件,并且会删除原文件)
gzip -c 文件地址 > 压缩文件地址
- 将指定文件压缩指定位置,并且保留原文件
gzip -d 压缩文件地址 - 解压指定文件(解压完成后会删除原压缩文件,解压后的文件直接放在被解压的压缩文件所在的位置)
gzip -l 压缩文件地址 - 列出压缩文件中的内容
b.gunzip(解压tgz文件)
gunzip 压缩文件地址 - 解压指定文件(解压完成后会删除原压缩文件)