在计算机领域,运维工程师的工作至关重要,而 Linux 系统是他们日常工作中常用的操作系统。掌握一些必备的 Linux 命令,能帮助运维工程师在故障排查、系统优化等全场景下高效工作。下面就为大家详细介绍这些实用的 Linux 命令。

一、系统基本信息查看命令

1. uname 命令

这个命令可以显示系统的基本信息,比如内核版本、主机名等。

# 技术栈:Shell
# 查看系统内核信息
uname -a
# 输出示例:Linux myserver 5.15.0-47-generic #51-Ubuntu SMP Thu Aug 11 07:51:15 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

应用场景:当你需要了解系统的内核版本,判断是否需要更新内核时,就可以使用这个命令。 技术优缺点:优点是简单直接,能快速获取系统关键信息;缺点是显示的信息有限,对于更详细的系统信息还需要结合其他命令。 注意事项:该命令在不同的 Linux 发行版中输出格式可能略有不同,但基本信息是一致的。

2. hostname 命令

用于查看或设置主机名。

# 技术栈:Shell
# 查看当前主机名
hostname
# 输出示例:myserver

应用场景:在网络环境中,需要明确主机的名称,便于进行网络配置和管理。 技术优缺点:优点是操作简单,能快速获取或修改主机名;缺点是修改主机名后可能需要重启系统才能完全生效。 注意事项:修改主机名时要确保新的主机名符合网络规范,避免出现名称冲突。

二、文件和目录操作命令

1. ls 命令

列出目录中的文件和子目录。

# 技术栈:Shell
# 列出当前目录下的所有文件和目录
ls
# 输出示例:file1.txt  dir1  file2.sh
# 列出当前目录下的所有文件和目录,包括隐藏文件
ls -a
# 输出示例:.  ..  .bashrc  file1.txt  dir1  file2.sh

应用场景:在查找文件或了解目录结构时经常使用。 技术优缺点:优点是使用频率高,能快速查看目录内容;缺点是对于大量文件和目录,输出信息可能会很长,不便于查看。 注意事项:可以结合其他参数,如 -l 以长格式显示文件信息。

2. cd 命令

用于切换当前工作目录。

# 技术栈:Shell
# 切换到指定目录
cd /home/user/dir1
# 切换到上一级目录
cd ..

应用场景:在进行文件操作时,需要频繁切换工作目录。 技术优缺点:优点是操作简单,能快速定位到目标目录;缺点是如果目录路径输入错误,可能会导致切换失败。 注意事项:输入目录路径时要确保路径正确,使用绝对路径或相对路径都可以。

3. mkdir 命令

创建新的目录。

# 技术栈:Shell
# 创建一个名为 newdir 的目录
mkdir newdir
# 创建多级目录
mkdir -p dir1/dir2/dir3

应用场景:当需要组织文件结构,创建新的目录时使用。 技术优缺点:优点是能快速创建目录;缺点是如果目录已经存在,再次创建会报错。 注意事项:使用 -p 参数可以避免因父目录不存在而创建失败的问题。

4. rm 命令

删除文件或目录。

# 技术栈:Shell
# 删除一个文件
rm file1.txt
# 删除一个目录及其所有子目录和文件
rm -r dir1

应用场景:清理不需要的文件和目录。 技术优缺点:优点是能彻底删除文件和目录;缺点是删除操作不可逆,一旦删除就无法恢复。 注意事项:使用 rm -r 时要谨慎,确保要删除的目录是正确的。

三、进程管理命令

1. ps 命令

查看当前系统中的进程信息。

# 技术栈:Shell
# 查看当前用户的所有进程
ps -u username
# 输出示例:
# PID TTY          TIME CMD
# 1234 pts/0    00:00:00 bash
# 5678 pts/0    00:00:00 top

应用场景:当系统出现性能问题,需要查看哪些进程占用资源较多时使用。 技术优缺点:优点是能快速查看进程的基本信息;缺点是输出信息可能不够详细,对于复杂的进程分析还需要结合其他工具。 注意事项:可以使用不同的参数组合来获取更详细的进程信息。

2. top 命令

实时监控系统中各个进程的资源使用情况。

# 技术栈:Shell
# 启动 top 命令
top

应用场景:在性能优化时,实时查看进程的 CPU、内存使用情况,找出资源消耗大户。 技术优缺点:优点是实时性强,能直观地看到系统资源的使用情况;缺点是信息更新较快,对于不熟悉的用户可能难以捕捉关键信息。 注意事项:可以在 top 界面中使用一些快捷键进行排序和筛选。

3. kill 命令

终止指定的进程。

# 技术栈:Shell
# 终止进程号为 1234 的进程
kill 1234
# 强制终止进程号为 5678 的进程
kill -9 5678

应用场景:当某个进程出现异常,无法正常关闭时,使用该命令终止进程。 技术优缺点:优点是能快速终止进程;缺点是强制终止进程可能会导致数据丢失或系统不稳定。 注意事项:尽量使用正常的终止信号(如默认的 15),只有在必要时才使用 -9 强制终止。

四、网络相关命令

1. ping 命令

用于测试网络连接是否正常。

# 技术栈:Shell
# 测试与百度的网络连接
ping www.baidu.com
# 输出示例:
# PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
# 64 bytes from 180.101.49.12: icmp_seq=1 ttl=54 time=12.3 ms

应用场景:在排查网络故障时,首先使用该命令测试网络连通性。 技术优缺点:优点是简单易用,能快速判断网络是否可达;缺点是只能测试网络的连通性,不能深入分析网络问题。 注意事项:如果 ping 不通,可能是网络配置问题、防火墙限制等原因。

2. ifconfig 命令

查看和配置网络接口信息。

# 技术栈:Shell
# 查看所有网络接口信息
ifconfig
# 输出示例:
# eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
#         inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
#         inet6 fe80::a00:27ff:fe66:1234  prefixlen 64  scopeid 0x20<link>
#         ether 08:00:27:66:12:34  txqueuelen 1000  (Ethernet)
#         RX packets 1000  bytes 102400 (100.0 KiB)
#         RX errors 0  dropped 0  overruns 0  frame 0
#         TX packets 500  bytes 51200 (50.1 KiB)
#         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

应用场景:在配置网络时,查看网络接口的 IP 地址、子网掩码等信息。 技术优缺点:优点是能详细展示网络接口的配置信息;缺点是在一些新的 Linux 系统中,逐渐被 ip 命令取代。 注意事项:不同的网络接口名称可能不同,如 eth0、ens33 等。

3. netstat 命令

查看网络连接、路由表等信息。

# 技术栈:Shell
# 查看所有网络连接信息
netstat -an
# 输出示例:
# Active Internet connections (servers and established)
# Proto Recv-Q Send-Q Local Address           Foreign Address         State
# tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
# tcp        0      0 192.168.1.100:22        192.168.1.200:56789     ESTABLISHED

应用场景:在排查网络连接问题、查看端口占用情况时使用。 技术优缺点:优点是能提供丰富的网络连接信息;缺点是输出信息较多,需要一定的经验来分析。 注意事项:可以结合不同的参数来筛选和显示所需的信息。

五、系统性能优化命令

1. df 命令

查看磁盘使用情况。

# 技术栈:Shell
# 查看所有文件系统的磁盘使用情况
df -h
# 输出示例:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        20G   10G   9.1G  53% /
# /dev/sdb1        50G   20G   28G  42% /data

应用场景:在系统磁盘空间不足时,使用该命令查看磁盘使用情况,找出占用空间较大的分区。 技术优缺点:优点是能直观地显示磁盘使用情况;缺点是不能深入分析文件占用空间的具体情况。 注意事项:-h 参数可以以人类可读的格式显示磁盘大小。

2. free 命令

查看系统内存使用情况。

# 技术栈:Shell
# 查看系统内存使用情况
free -m
# 输出示例:
#               total        used        free      shared  buff/cache   available
# Mem:           7987        2000        4000         100        1987        5500
# Swap:          2047           0        2047

应用场景:在系统出现内存不足的问题时,使用该命令查看内存使用情况,判断是否需要增加内存或优化内存使用。 技术优缺点:优点是能快速了解系统内存的使用情况;缺点是对于内存的详细使用情况,还需要结合其他工具进行分析。 注意事项:-m 参数可以以 MB 为单位显示内存大小。

3. vmstat 命令

实时监控系统的虚拟内存、CPU 等资源使用情况。

# 技术栈:Shell
# 每隔 1 秒输出一次系统资源使用情况,共输出 5 次
vmstat 1 5
# 输出示例:
# procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
#  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
#  0  0      0 4000000  10000 500000    0    0     0     0   10   20  10  5 85  0  0
#  0  0      0 4001000  10000 500000    0    0     0     0   11   21  11  6 83  0  0

应用场景:在进行系统性能优化时,实时监控系统资源的使用情况,找出性能瓶颈。 技术优缺点:优点是能实时、全面地监控系统资源;缺点是输出信息较多,需要一定的专业知识来分析。 注意事项:可以根据需要调整时间间隔和输出次数。

应用场景总结

这些 Linux 命令在运维工程师的日常工作中有着广泛的应用场景。在故障排查方面,当系统出现性能问题时,可以使用 top、ps 等命令查看进程资源使用情况,找出占用资源过多的进程;使用 ping、ifconfig 等命令排查网络连接问题。在系统优化方面,通过 df、free 等命令了解磁盘和内存使用情况,合理分配资源;使用 vmstat 等命令实时监控系统性能,进行针对性的优化。

技术优缺点总结

这些命令的优点是操作简单、功能强大,能快速解决各种实际问题。但也存在一些缺点,比如部分命令输出信息较多,需要一定的经验和专业知识来分析;有些命令的功能相对单一,需要结合其他命令才能完成更复杂的任务。

注意事项总结

在使用这些命令时,要注意命令的参数使用,不同的参数会有不同的功能;对于一些危险的操作,如删除文件和强制终止进程,要谨慎操作,避免造成数据丢失或系统不稳定;同时,要根据不同的 Linux 发行版和系统环境,注意命令的兼容性。