学到老,活到老~
文章目录
前言
在面试过程中,命令行针对日志的操作是高频的问题,今天我们就来彻底解决这个问题。
Linux常用指令
ls:列出目录下的文件和子目录。
cd:切换当前工作目录。
mkdir:创建一个新的目录。
rm:删除一个文件或目录。
cp:复制一个文件或目录。
-
cp file1 file2:将file1复制到file2。
-
cp -r dir1 dir2:将dir1目录及其内容递归地复制到dir2。
-
cp -i file1 dir1:将file1复制到dir1,如果dir1目录下已存在同名文件,则提示用户选择是否覆盖。
-
cp -a dir1 dir2:将dir1目录及其内容递归地复制到dir2,并保留所有文件属性(包括权限、时间戳等)。
-
cp -v file1 dir1:将file1复制到dir1,并显示每个成功复制的文件名。
mv:移动一个文件或目录,或者更改它的名称。
相当于剪切
mv file1 file2:将file1重命名为file2。
mv file1 dir1:将file1移动到dir1目录下,同时保留原始文件名。
mv -i file1 dir1:将file1移动到dir1目录下,如果dir1目录下已存在同名文件,则提示用户选择是否覆盖。
mv dir1 dir2:将dir1目录重命名为dir2。
mv -v file1 dir1:将file1移动到dir1目录下,并显示每个成功移动的文件名。
cat:连接文件并打印到标准输出设备上。
grep:在文件中查找指定的字符串。
在文件中查找指定字符串
在指定目录及其子目录下,找寻指定字符串
find:在文件系统中查找文件。
chmod:修改文件或目录的权限。
使用格式为
chmod [选项] 模式 文件名
模式由三个数字组成,分别表示所有者权限,群组权限,及其他用户权限。
数字 | 描述 |
---|---|
0 | 没有权限 |
1 | 执行权限 |
2 | 写权限 |
3 | 写和执行权限 |
4 | 读权限 |
5 | 读和执行权限 |
6 | 读和写权限 |
7 | 读、写和执行权限 |
如下图,修改X1.txt的访问权限。
chown:修改文件或目录的所有者。
ps:列出系统中运行的进程。
ps aux
top:实时显示系统中进程的资源占用情况。
如下图,直接输入top即可
ping:测试与另一台计算机之间的网络连接。
ssh:远程登录到另一台计算机。
scp:在本地和远程计算机之间复制文件。
tar:将多个文件和目录打包成单个文件,可以进行压缩。
将多个文件归档
tar -cf 归档文件名 文件名
在已有归档里添加新文件
tar -rf 归档文件名 添加文件名
查看归档文件中的文件列表
tar -tf 归档文件名
zip: 压缩文件或目录
zip zipfile.zip file1.txt file2.txt directory1/
unzip:解压缩zip文件。
df:显示磁盘空间使用情况。
du:显示目录或文件的大小。
tail: 查看日志
less: 分页查看日志或搜索日志
less是一个Linux中非常有用的命令,它可以让用户在终端中查看文件内容,支持向前/向后翻页、跳转、搜索等操作。下面介绍一些less的常见使用方法:
查看文件:less filename
这个命令会在终端中打印出filename文件的内容,并且允许你向上/向下翻页。
向前/向后翻页:空格键(向前翻页)和b键(向后翻页)
按下空格键或b键可以向前/向后翻一页。
跳转到文件开始或结束处:g键或G键
按下g键将跳转到文件的开始处,按下G键将跳转到文件的结尾处。
跳转到特定行:输入行号+回车键
在less中输入一个数字并按下回车键,将跳转到该行。
搜索文本:输入"/" + 匹配模式 + 回车键
在less中输入"/"加上想要搜索的模式,并按下回车键将进行文本搜索。
退出less:q键
在less中按下q键可以直接退出该程序。
这些是less的一些常用命令,其他的命令可以通过输入"h"获取帮助信息来学习。
1. 查看日志文件内容
1.1 cat
使用cat命令可以显示整个日志文件的内容,适用于文件较小的情况。
cat +文件路径
1.2 less
使用less命令可以逐页查看大型日志文件,并支持上下滚动、搜索等操作。
常用的less命令选项包括:
-N:显示每行的行号。
less -N 文件路径
/ :搜索
less 文件名
/要搜索的字段
-i:搜索时忽略大小写。
less -i 文件路径
-F:当文件内容较短时,不显示提示。
/pattern:在文件中向下搜索指定模式。
?pattern:在文件中向上搜索指定模式。
n:重复上一次搜索。
N:反向重复上一次搜索。
G:跳转到文件末尾。
g:跳转到文件开头。
q:退出less。
1.3 tail
tail 文件路径
使用tail命令可以查看日志文件的末尾内容,常用于实时监控日志的更新。
1.4 grap
使用grep命令可以根据关键字过滤日志文件,只显示包含指定关键字的行。
grep "关键字段" 文件路径
2. 删除日志文件
rm 文件路径
使用rm命令可以删除指定的日志文件。
3. 分析日志文件(搜索,查看,处理)
在Linux中,分析日志文件可以使用以下几个常用的命令和工具:
grep命令:用于在文件中搜索匹配指定模式的行。
示例:grep “error” logfile.txt - 在日志文件中搜索包含"error"关键字的行。
tail命令:用于查看文件的末尾内容,常用于实时查看日志文件。
示例:tail -f logfile.txt - 实时查看日志文件的末尾内容。
awk命令:用于按指定规则处理文件,特别适合处理结构化的日志文件。
示例:awk ‘/error/ {print $2}’ logfile.txt - 提取包含"error"关键字的行的第二个字段。
sed命令:用于处理和转换文件内容,例如替换、删除或插入文本。
示例:sed ‘s/error/ERROR/g’ logfile.txt - 将日志文件中的所有"error"替换为"ERROR"。
替换字符串:(s/g)
sed ‘s/old_string/new_string/g’ filename
将文件中所有的 old_string 替换为 new_string。
删除行:(d)
sed ‘/pattern/d’ filename
删除文件中包含指定模式 pattern 的所有行。
显示特定行:(-n, p)
sed -n ‘2p’ filename
只显示文件中的第二行。
添加和插入行:
sed ‘3a\New line after line 3’ filename
在文件的第三行后面添加一行。
sed ‘2i\New line before line 2’ filename
在文件的第二行前面插入一行。
保存修改到原文件(in-place编辑):
sed -i ‘s/old_string/new_string/g’ filename
直接在文件中进行替换,不输出到终端。
使用多个编辑命令:
sed -e ‘s/pattern1/replace1/’ -e ‘s/pattern2/replace2/’ filename
使用多个编辑命令,每个命令用 -e 分隔。
journalctl命令:用于查看系统日志,特别适用于系统服务的日志查看。
示例:journalctl -u service-name - 查看指定服务的日志。
性能测试 压缩,解压缩
- 压缩,tar -zcvf 压缩后的文件名 1.txt 2.txt 3.txt
- 解压缩,tar -xvf 被解压缩的文件名 -C/存放文件的路径
进程和端口管理
查看当前系统正在运行的进程
- ps -ef
- ps aux
查看端口的具体服务
- netstat -ntulp | grep 端口号,根据端口号,查询进程号
- ps -aux | grep 进程号,查询具体的进程服务
服务器层监控
查看系统整体的CPU和内存的使用情况
top
VIRT为虚拟内存,RES为物理内存
查看系统内存使用情况
free -m
系统核心指标- CPU进程数,可用内存数,CPU时间消耗
vmstat 1,每秒输出一次统计信息
r,CPU进程数
free,可用内存
us, sy, id, wa, st, 用户时间,系统,空闲时间,等待时间,额外消耗的时间
si, so 交换区写入和读出的数量
输出日志最后10行
dmesg | tail
磁盘IO情况
iostat -xz 1
r/s, w/s, rKB/s, wKB/s,每秒读写次数以及读写量
await,IO操作平均等待时间
%util,设备利用率,设备的繁忙程度,超过60,影响IO性能
avgqu-sz,向设备发出的请求的平均数量,若大于1,硬件设备已经饱和
网络设备的吞吐量(设备能接受的最大数据传输速率Mbit/s)
sar -n DEV 1
rxpck/s, txpck/s, rxKB/s, txKB/s,每秒收发的数据包数量及大小
rxcmp/s, txcmp/s,每秒收发的压缩包
rxmcst/s,每秒接收的多播数据包
查看TCP连接状态
sar -n TCP,ETCP 1
active/s,每秒发起的TCP连接数,connect
passive/s,每秒远程发起的TCP连接数,accep
ETCP可查看错误统计
atmptf/s,每秒重传失败数
estres/s,每秒断开连接数
retrans/s,每秒重传数
isegerr/s,每秒错误数