Linux作为一款开源的类Unix操作系统,其强大的命令行工具是系统管理和高效操作的核心,掌握Linux命令不仅能提升工作效率,还能深入理解系统运行机制,以下从文件管理、系统监控、网络配置、文本处理、压缩打包、用户管理、权限控制、进程管理、磁盘管理、软件安装及系统信息查询等多个维度,详细梳理Linux常用命令,并辅以表格对比关键参数,最后附相关FAQs。

文件与目录管理
文件操作是Linux最基础的功能,ls
命令用于列出目录内容,-l
选项显示详细信息(权限、所有者、大小、修改时间等),-a
显示隐藏文件,-h
以人类可读格式显示文件大小(如K、M)。cd
命令用于切换目录,cd ..
返回上级目录,cd -
在最近两次目录间切换。mkdir
创建目录,-p
选项可递归创建多级目录(如mkdir -p /tmp/test/a
)。rm
删除文件或目录,-r
递归删除目录,-f
强制删除不提示。cp
复制文件,-r
复制目录,-p
保留权限和时间戳;mv
用于移动文件或重命名,-i
选项覆盖前提示。touch
创建空文件或更新文件时间戳,cat
查看文件内容,more
/less
分页查看(less
支持上下翻页和搜索),head
/tail
查看文件前/后几行(tail -f
实时追踪日志更新)。
系统监控与信息查询
top
动态监控系统进程、CPU/内存占用,-d
调整刷新间隔,-p
指定进程ID;htop
是top
的增强版,支持彩色显示和鼠标操作。free
查看内存使用情况,-h
以人类可读格式显示。df
查看磁盘分区使用率,-h
显示友好单位,-T
显示文件系统类型。du
统计目录大小,-sh
显示总大小(s
汇总,h
人性化显示)。ps
查看当前进程,-ef
显示所有进程详细信息,aux
显示所有进程及其资源占用。uname -a
显示系统全部信息(内核版本、主机名等),lscpu
查看CPU架构信息,uptime
显示系统运行时间和负载平均值。
网络配置与诊断
ifconfig
或ip addr
查看/配置网络接口,ifconfig eth0 up/down
启用/禁用网卡,ip addr add 192.168.1.100/24 dev eth0
添加IP地址。ping
测试网络连通性,-c
指定发送次数(如ping -c 4 www.baidu.com
)。netstat
查看网络连接状态,-an
显示所有连接(数字形式),-tuln
显示监听的TCP/UDP端口。ss
是netstat
的替代工具,速度更快,-tuln
参数同netstat
。wget
下载文件,-b
后台下载,-c
断点续传;curl
用于传输数据,支持HTTP/HTTPS/FTP等协议,-o
指定保存文件名。ssh
远程登录,ssh user@host
,-p
指定端口(如ssh -p 22 user@192.168.1.1
)。scp
secure copy,用于安全复制文件,-r
递归复制目录(如scp -r /local user@remote:/remote
)。
文本处理与搜索
grep
文本搜索,-i
忽略大小写,-n
显示行号,-v
反向匹配(不包含关键词的行),-r
递归搜索目录(如grep -rn "error" /var/log
)。sed
流编辑器,用于文本替换、删除等,'s/old/new/g'
全局替换(如sed 's/test/T/g' file.txt
)。awk
文本处理工具,按列处理数据,-F
指定分隔符(如awk -F: '{print $1}' /etc/passwd
打印用户名)。sort
排序,-n
按数字排序,-r
降序,-k
指定列(如sort -n -k 2 file.txt
)。uniq
去重,-c
统计重复次数,需配合sort
使用(如sort file.txt | uniq -c
)。find
文件查找,-name
按名称查找(支持通配符),-type
按类型查找(f文件,d目录),-exec
执行命令(如find / -name "*.log" -exec rm {} \;
删除所有.log文件)。

压缩与打包
tar
打包/解包工具,-c
创建档案,-x
解压,-v
显示过程,-f
指定文件名,-z
调用gzip压缩,-j
调用bzip2压缩,打包并gzip压缩:tar -czf archive.tar.gz /dir
;解压gzip文件:tar -xzf archive.tar.gz
。zip
/unzip
处理.zip文件,zip -r archive.zip /dir
递归压缩,unzip archive.zip
解压。gzip
/gunzip
压缩/解压.gz文件,-k
保留原文件(如gzip -k file.txt
生成file.txt.gz)。
用户与权限管理
useradd
创建用户,-m
创建家目录,-s
指定默认shell(如useradd -m -s /bin/bash username
)。passwd
修改用户密码,sudo
以其他用户身份执行命令(需配置sudoers)。chmod
修改文件权限,-R
递归修改目录权限,权限用数字表示(r=4, w=2, x=1),如chmod 755 file.txt
(所有者rwx,组用户r-x,其他r-x)。chown
修改文件所有者,-R
递归修改,如chown user:group file.txt
(所有者user,组group)。chgrp
修改文件所属组,如chgrp group file.txt
。
进程与服务管理
kill
终止进程,-9
强制终止,需指定进程ID(PID),如kill -9 1234
。killall
按进程名终止进程,如killall nginx
。systemctl
管理系统服务,start/stop/restart
启动/停止/重启服务,enable/disable
设置开机自启/禁用,status
查看服务状态(如systemctl restart nginx
)。jobs
查看后台任务,bg
将任务转为后台运行,fg
将任务调回前台,ctrl+z
暂停当前任务。
磁盘与文件系统管理
fdisk
磁盘分区工具,sudo fdisk -l
查看磁盘分区表,fdisk /dev/sdb
进入分区模式。mkfs
格式化文件系统,如mkfs.ext4 /dev/sdb1
将分区格式化为ext4。mount
挂载文件系统,mount /dev/sdb1 /mnt
挂载分区到/mnt,umount
卸载(如umount /mnt
)。parted
高级分区工具,支持GPT分区表,parted /dev/sdb mklabel gpt
创建GPT标签。

软件安装与包管理
不同发行版包管理器不同:Debian/Ubuntu用apt
,sudo apt update
更新软件列表,sudo apt install package
安装软件,sudo apt remove package
卸载,CentOS/RHEL用yum
或dnf
,sudo yum install package
安装,sudo yum remove package
卸载,源码安装需编译,./configure
配置,make
编译,sudo make install
安装。
以下为部分常用命令速查表:
命令类别 | 常用命令 | 功能说明 | 关键选项示例 |
---|---|---|---|
文件管理 | ls, cd, mkdir, rm, cp, mv | 列出目录、切换目录、创建目录、删除、复制、移动 | ls -la, mkdir -p, rm -rf, cp -r |
系统监控 | top, htop, free, df, ps | 进程监控、内存查看、磁盘使用、进程列表 | top -d 5, free -h, ps aux |
网络配置 | ifconfig, ping, netstat, ssh, scp | 网卡配置、连通性测试、端口查看、远程登录、文件传输 | ifconfig eth0 up, ping -c 4, scp -r |
文本处理 | grep, sed, awk, sort, find | 文本搜索、编辑、列处理、排序、文件查找 | grep -rn, sed 's/old/new/g', find -name |
压缩打包 | tar, zip, gzip | 打包/解包、zip压缩、gzip压缩 | tar -czf, zip -r, gzip -k |
用户权限 | useradd, passwd, chmod, chown | 创建用户、修改密码、权限修改、所有者修改 | useradd -m, chmod 755, chown user:group |
相关问答FAQs
Q1: 如何查看Linux系统当前的负载情况?
A1: 可以使用uptime
命令查看系统负载,它会显示最近1分钟、5分钟、15分钟的平均负载值(如uptime
输出load average: 0.10, 0.20, 0.15
,表示15分钟内平均有0.15个进程在等待CPU)。top
或htop
命令的顶部也会实时显示负载信息,负载值超过CPU核心数时可能表示系统繁忙。
Q2: Linux中如何查找包含特定关键词的文件并替换其中的内容?
A2: 分两步操作:首先用find
命令查找文件,再用sed
命令替换内容,在当前目录及子目录中查找所有.txt文件并替换其中的"old"为"new",可执行:find . -name "*.txt" -type f -exec sed -i 's/old/new/g' {} \;
。find . -name "*.txt" -type f
查找所有.txt文件,-exec sed -i 's/old/new/g' {} \;
对每个文件执行sed替换(-i
直接修改文件内容,g
全局替换),注意:操作前建议备份文件,避免误替换导致数据丢失。