评论

收藏

[Linux] 掌握了这几个 Linux 命令可以让你工作效率提升三倍

服务系统 服务系统 发布于:2022-09-13 14:50 | 阅读数:375 | 评论:0

很多程序员熟悉了在 Windows 环境下开发,而我们服务器一般都是 Linux 系统。当有一天你需要在 Linux 服务器上做一些配置或者故障排除的时候,你会很困惑,不知道如何下手。原因是对 Linux 常用的命令还不熟悉,今天我就给大家介绍几个 Linux 常用命令。掌握它们的用法后,我们在使用 的时候就能如鱼得水,可以大大提高工作效率。

DSC0000.png

1、top 命令

第一个命令是 top,这是 Linux 下常用的性能分析工具,可以实时显示系统中各个进程的资源占用情况,类似于 Windows 下的任务管理器。

DSC0001.png

每个顶部行表示一种类型的性能数据:

top:这一行是汇总信息,09:26:48 是系统时间;up 169 days 表示运行时间;1 user 表示当前登录用户数;load average 是负载情况,后面的三个数字分别表示 1 分钟、5 分钟、15 分钟的负载情况 load average 的数据是每隔 5 秒钟检查一次活动进程的数量,然后计算结果。
Tasks 任务:total 表示进程总数;running 表示正在运行的进程;sleeping 表示休眠的进程;stopped 表示已停止的进程;zombie 表示僵尸进程。
CPU 状态:us 是用户空间占用 CPU 的百分比;sy 是内核空间占用 CPU 的百分比;ni 是改变过优先级的进程占用 CPU 的百分比;id 是 空闲 CPU 百分比;wa 是 IO 等待占用 CPU 的百分比;hi 是硬中断占用 CPU 的百分比;si 是软中断占用 CPU 的百分比。
Mem 内存:total 是内存总量;used 是使用掉的内存;free 是空闲的内存;buffers 是缓存的内存量。
Swap 交换分区:total、used、free 跟内存一样;cached 是缓冲的交换区总量下面的列表是各个进程的状态监控,具体每一项含义如下:

PID — 进程 id
USER — 进程所有者
PR — 进程优先级
NI — nice 值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
SHR — 共享内存大小,单位
kbS — 进程状态。D = 不可中断的睡眠状态 R = 运行 S = 睡眠 T = 跟踪 / 停止 Z = 僵尸进程
%CPU — 上次更新到现在的 CPU 时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的 CPU 时间总计,单位 1/100 秒 COMMAND — 进程名称(命令名 / 命令行)

2、ps 命令

第二个命令是 ps,常用的命令是 ps aux 或 ps -ef,主要作用是查看进程,经常和 grep 一起使用。此命令的主要用例是查看进程状态或查找进程号。使用示例如下:
ps aux | grep 'nginx' 或者 ps -ef | grep 'nginx'
3、grep 命令

此命令用于查找指定文件或文件夹中的字符串,通常与 ps、cat、tail 等命令一起使用。例子如下:
tail -f app.log | grep 'register'
4、netstat 命令

这是一个与网络相关的命令,我用这个命令最重要的是找到端口,例如:
netstat -lntup | grep 80
除此之外,netstat 还有许多其他特性,如果您感兴趣,可以自己搜索。

5、find 命令

find 命令用于查找指定目录中的文件,比如在服务器上 \home\www 目录查找 app.c 这个文件,就可以这样来查:find /home -name "*.c"

6、kill 命令

kill 命令是用来杀死进程的,例如杀死编号为 2198 的进程,则命令是:kill 2198。也可以使用 kill -9 2198 来彻底杀死这个进程。

7、tail 命令

我们经常使用 tail 命令来监视实时日志,有时与 grep 结合使用:
tail -f app.log | grep login
该命令实时查看当前目录中 app.log 日志中带有 login 标识符的输入流。

8、cat 命令

cat 命令经常用于查看文件,有时与 grep 一起使用,如下所示:
cat app.log | grep 'login' | more
这个命令先打开当前目录中的 app.log 日志文件,然后通过 grep 查询带有 login 的日志,最后使用 more 对其进行分页显示。

如果要以相反的顺序显示,可以使用 tac 命令,它具有与 cat 相同的效果,如下所示:
tac app.log | grep 'login' | more