目录

一、文件查看与搜索

1. locate命令

2. find命令

3. grep命令

4. tail 命令

5. less命令

二、查看进程状态

ps命令

三、查看网络状态

netstat命令

四、性能评估与诊断

1. top命令

2. strace命令

3. free命令

4. df命令


我们在Linux环境中进行问题排查时,需要掌握一些基本的Linux指令。以下是一些常用的Linux指令,我觉得是非常必要的:

一、文件查看与搜索

1. locate命令

# 通过文件名来搜索文件的具体路径
locate filename 

在此之前,需要重新建立整个系统所有文件和目录的资料库,方便以后再查找文件:

sudo updatedb

如果执行locate命令时出现以下错误:

-bash: updatedb: command not found

解决方法:执行

yum install mlocate

2.find命令

# 查找 /etc/nginx 目录下名为 nginx.conf 的文件

find /etc/nginx -name nginx.conf

# 查找 /etc/nginx 目录下所有 .conf 结尾的文件

find /etc/nginx -name '*.conf'

3. grep命令

# 查找文件中所有包含字符串"hello"的行
grep 'hello' file.txt 

# 在/path/to/directory目录下查找所有包含"hello"字符串的文件
# -r 或 -R:递归地搜索目录及其子目录中的文件。
# -n: 表示在输出中包含匹配行的行号。
# -w: 表示匹配整个单词
grep -r 'hello' /path/to/directory

# 在 /etc/nginx 目录及其子目录中搜索包含文本 "443" 的 .conf 文件
grep -rnw '/etc/nginx' -e '443' --include=*.conf

4. tail 命令

# 实时查看文件内容
tail -f /var/log/syslog 

5. less命令

less filename.out

快捷键 shift + F :跳转到文件尾,实时刷新;

ctrl + Z:结束查看。

less运行时可以输入的命令有:

        空白键:向下翻动一页;

        [down]:向下翻动一行;

        [up]:向上翻动一行;

        /字串:向下搜寻『字串』的功能;

        ?字串:向上搜寻『字串』的功能;

        q:离开 less 这个程序;

二、查看进程状态

ps命令

# 查看当前运行的进程,通过grep可以过滤出特定进程,排除grep本身的进程
ps -ef | grep <进程名> | grep -v grep
ps -ef | grep <进程号> | grep -v grep

-e 选项表示显示所有进程,

-f 选项表示使用全格式输出,即显示更详细的进程信息。

输出的信息通常包括UID(用户ID)、PID(进程ID)、PPID(父进程ID)、C(CPU利用率)、STIME(开始时间)、TTY(控制终端)、TIME(CPU时间)、CMD(命令行)等字段。

三、查看网络状态

netstat命令

# 列出所有当前正在监听的端口
netstat -l

# 查看特定端口的使用情况,如被哪个进程占用
netstat -tulpn | grep <port_number>

# 杀进程
kill -9 <进程ID>

netstat 是一个显示网络状态的工具

        -t 选项表示显示TCP连接。

        -u 选项表示显示UDP连接。

        -l 选项表示仅显示监听状态的套接字。

        -p 选项表示显示每个连接的进程ID和程序名。

        -n 选项表示以数字形式显示地址和端口号,而不是尝试解析为主机名、服务名等。

四、性能评估与诊断

1. top命令

作为一个常用的性能分析工具,实时显示系统中正在运行的进程以及它们的CPU使用率、内存使用率等信息。

启动top命令:直接在终端中输入top即可启动。

查看统计信息:top命令的前几行会显示系统的整体统计信息,如总的任务数、CPU使用率、内存使用率等。

查看进程信息:在top命令的输出中,可以看到各个进程的PID(进程ID)、USER(用户)、PR(优先级)、NI(nice值)、VIRT(虚拟内存使用量)、RES(常驻内存使用量)、SHR(共享内存大小)、S(进程状态)、%CPU(CPU使用率)和%MEM(内存使用率)等信息。

2. strace命令

用于跟踪一个进程的系统调用。

1. 分析进程行为:

strace -p <进程ID>

找到占用率高的进程,使用strace -p <进程ID>跟踪系统调用,以了解进程在做什么。可以看到进程发出了哪些系统调用、系统调用的参数是什么、以及这些系统调用的返回值是什么。

2. 确定原因:

  • 进程可能是正常的但计算密集,例如在进行大量数据处理或渲染。
  • 也可能是存在性能问题,如死循环、不恰当的算法实现等。
  • 也有可能是被恶意软件利用,进行非法活动。

3. 采取相应措施:

  • 优化代码:如果进程是计算密集型的正常应用,考虑优化其算法或使用更高效的技术。
  • 升级硬件:如果服务器硬件过旧,考虑升级CPU或增加核心数量。
  • 限制资源:使用cgroups(Linux)或其他资源管理工具限制进程的资源使用。
  • 终止进程:如果进程是恶意或存在严重问题,考虑安全地终止它。
  • 调整优先级:使用nice或renice(Linux)调整进程的优先级,降低其对CPU的占用。

3. free命令

用于显示系统的内存使用情况。用户可以获取到关于系统内存(程序运行)的各种信息,如总内存、已用内存、空闲内存、共享内存、缓存/缓冲区内存等。

free命令的常用参数包括:

        -b:以字节(Byte)为单位显示内存使用情况。

        -k:以千字节(KB)为单位显示内存使用情况。

        -m:以兆字节(MB)为单位显示内存使用情况。

        -g:以吉字节(GB)为单位显示内存使用情况。

        -o:不显示缓冲区调节列。

        -s :持续观察内存使用情况,每隔指定的秒数刷新一次显示。

        -t:显示内存总和列。

4. df命令

用于显示文件系统的磁盘空间(存放资料)使用情况。用户可以查看每个文件系统的磁盘空间总量、已使用的空间量、剩余空间量以及挂载点等信息。

df [选项] [文件名]

选项是用来指定命令的行为的,而文件名则是用来指定要查看的文件系统。如果没有指定文件名,那么df命令将显示所有当前已挂载的文件系统的磁盘空间信息。

常用的选项包括:

        -a:显示所有文件系统,包括虚拟文件系统。

        -B:指定显示时的块大小,比如以M、G为单位显示。

        -h:以人类可读的格式显示信息,比如将字节转换为KB、MB等。

        -k:以KB为单位显示各文件系统。

        -m:以MB为单位显示各文件系统。

        -t:只显示指定类型的文件系统。

例如,要查看当前文件系统的磁盘空间使用情况,可以直接输入“df”命令;要查看指定文件系统的信息,可以输入“df /dev/sda1”;要以GB为单位且输出人类可读格式的文件系统信息,可以使用“df -h /”命令。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐