Linux 命令备忘(2)

1. tail

tail 命令的功能是查看文件内容的末尾几行,默认10行。这个命令在查看线上 log 时使用频率是最高的,其比较重要的参数选项如下:

-n : 其后接 数字N 表示指定显示末尾的 N-f :追踪显示文件的更新,使用这个指令后终端会停驻在这里,等待文件更新再显示出新内容。通常用于查看日志,
持续显示新加入的内容,也可用 tailf 替代

2. zgrep

zgrep的功能是在压缩文件中寻找匹配的正则表达式,用法和grep命令近乎完全一致。这个命令存在的价值在于线上 log 的大小到达一定阈值的时候都会被压缩处理,这时候将其解压出来再过滤显然是不现实的。
另外zgrep/grep 默认是只过滤出带有匹配字符的那一行内容,这在排查线上问题的时候是非常不便的,因为我们通常需要错误 log 附近的其他 log 共同判断问题所在。这个需求可以通过指定 -C参数实现,常用的命令组合如下:

过滤当前目录下所有压缩文件,找出带有关键字 error 的那一行log及其前后 10 行的内容
zgrep -niC10 error ./*

3. lsof

显示打开文件的列表,可用于查看端口占用 lsof -i :49172

COMMAND   PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
idea    85040 nathan.yang  949u  IPv4 0x592f1a341f736e8b      0t0  TCP localhost:49172 (LISTEN)

较重要的列信息的意义如下

COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件

其参数列表如下:

参数 功能
-a 列出打开文件存在的进程
-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情

4. tar

tar 命令用于打包或者解压文件,需注意打包是指将一大堆文件或目录变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。区分这两个概念的原因在于Linux 中很多压缩程序只能针对一个文件进行压缩,这样当想要压缩一大堆文件时,必须先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩。常用的压缩/解压命令有zip/unzip gzip/gunzip

tar 的常用命令组合及参数表如下

压缩:tar -zcvf destName.tar.gz srcFile
解压:tar -zxvf srcName.tar.gz
参数 功能
-A或–catenate 新增文件到已经存在的备份文件
-B 设置区块大小
-c或–create 建立新的备份文件
-C <目录> 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-d 记录文件的差别
-x或–extract或–get 从备份文件中还原文件
-t或–list 列出备份文件的内容
-z或–gzip或–ungzip 通过gzip指令处理备份文件
-Z或–compress或–uncompress 通过compress指令处理备份文件
-f<备份文件>或–file=<备份文件> 指定备份文件
-v或–verbose 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 支持bzip2解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p或–same-permissions 用原来的文件权限还原文件
-P或–absolute-names 文件名使用绝对名称,不移除文件名称前的“/”号
-N <日期格式> 或 --newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里
–exclude=<范本样式> 排除符合范本样式的文件
发布了97 篇原创文章 · 获赞 88 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45505313/article/details/103780363