菜鸟科技网

Unix常用查询命令有哪些?

在Unix/Linux系统中,查询命令是日常管理和运维的核心工具,通过这些命令可以高效获取系统状态、文件信息、进程数据等关键内容,以下从文件系统、系统状态、网络通信、用户与权限、进程管理五个维度,详细介绍Unix常用查询命令的功能与用法。

Unix常用查询命令有哪些?-图1
(图片来源网络,侵删)

文件系统查询命令

文件系统查询是Unix操作中最频繁的操作之一,主要命令包括lsfinddudf等。

ls命令用于列出目录内容,其常用选项包括:-l以长格式显示(包含权限、所有者、大小、修改时间等),-a显示隐藏文件(以开头的文件),-h以人类可读格式显示文件大小(如K、M、G),-t按修改时间排序。ls -lath会按修改时间从新到旧列出所有文件,包括隐藏文件,并以可读格式显示大小。

find命令用于按条件查找文件,其基本语法为find 路径 条件,常用条件包括:-name按文件名匹配(支持通配符,如*.txt),-type按文件类型查找(f为普通文件,d为目录),-size按文件大小查找(如+10M表示大于10MB的文件),-mtime按修改时间查找(如-7表示7天内修改过的文件)。find /home -name "*.log" -mtime +30会查找/home目录下30天前修改过的所有.log文件。

du命令用于查看目录或文件占用的磁盘空间,常用选项-h以可读格式显示,-s仅显示总计大小(不显示子目录详情)。du -sh /var/log会显示/var/log目录的总占用空间。

Unix常用查询命令有哪些?-图2
(图片来源网络,侵删)

df命令用于查看文件系统的磁盘使用情况,常用选项-h以可读格式显示,-T显示文件系统类型。df -hT会列出所有挂载点的磁盘使用量、文件系统类型及挂载点路径。

系统状态查询命令

系统状态查询主要涉及硬件资源、运行时间、系统负载等信息,常用命令有topfreeuptimeuname等。

top命令实时显示系统进程状态,包括CPU占用率、内存使用、进程ID等信息,按P按CPU占用排序,M按内存占用排序,q退出。top -b -n 1可输出单次结果并退出,适合脚本处理。

free命令查看内存使用情况,-h选项以可读格式显示,-m以MB为单位。free -h会显示总内存、已用、空闲、缓冲区等数据。

Unix常用查询命令有哪些?-图3
(图片来源网络,侵删)

uptime命令显示系统运行时间和负载平均值(1分钟、5分钟、15分钟)。uptime 15:30:10会显示当前时间及系统负载。

uname命令显示系统信息,-a显示所有信息(内核版本、主机名、系统架构等),-r显示内核版本。uname -a会输出类似Linux hostname 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 16:31:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux的结果。

网络通信查询命令

网络相关命令用于检查连接、端口状态、路由等信息,常用命令包括netstatsspingtraceroute等。

netstat命令显示网络连接、路由表、接口信息等,常用选项-tuln显示TCP/UDP监听端口(不解析主机名),-an显示所有连接(以数字形式显示地址和端口)。netstat -tuln | grep :80可查看80端口是否被监听。

ssnetstat的替代工具,性能更优,语法类似。ss -tulnp | grep :22可查看22端口(SSH)的监听进程。

ping命令测试网络连通性,-c指定发送次数,-i设置间隔时间。ping -c 4 8.8.8.8向Google服务器发送4个ICMP包。

traceroute(Linux中为traceroute,macOS中为tracert)显示数据包到目标主机的路径。traceroute www.baidu.com会显示经过的路由器IP地址。

用户与权限查询命令

Unix是多用户系统,用户和权限查询常用命令有whowidchmod等。

who命令显示当前登录系统的用户及终端信息,-u显示登录时间,-q显示用户数量。who -u会输出用户名、终端、登录时间及空闲时间。

w命令是who的增强版,显示用户正在执行的进程。w username可查看指定用户的活动。

id命令显示用户和组的ID信息,-u显示用户ID,-g显示主组ID,-G显示所有组ID。id -u root会返回0(root用户ID)。

chmod命令修改文件权限,-R递归修改目录权限。chmod 755 script.sh设置所有者可读写执行,组和其他用户可读执行。

进程管理查询命令

进程查询和管理是系统运维的核心,常用命令有pspgrepkilljobs等。

ps命令查看当前进程,-ef显示所有进程(完整格式),-aux显示所有进程(包括用户信息),-ef | grep nginx可查找nginx进程。ps -ef | grep sshd会显示所有sshd进程。

pgrep按名称查找进程ID,例如pgrep -f nginx返回nginx进程的PID。

kill命令终止进程,-9强制终止,例如kill -9 1234终止PID为1234的进程。

jobs查看当前终端的后台任务,-l显示进程ID,fg将任务调到前台。jobs -l会显示后台任务及其PID。

相关问答FAQs

Q1: 如何查找占用CPU最高的进程?
A: 使用top命令,按P键按CPU占用排序,或通过ps命令结合sortps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 10,该命令会按CPU占用从高到低显示前10个进程。

Q2: 如何查看某个端口被哪个进程占用?
A: 使用netstatss命令,例如netstat -tuln | grep :8080ss -tuln | grep :8080,会显示8080端口的监听进程;或使用lsof -i :8080,直接显示占用8080端口的进程详情。

分享:
扫描分享到社交APP
上一篇
下一篇