Linux中的系统命令是用户与操作系统内核交互的核心工具,通过命令行界面(CLI)实现对文件管理、进程控制、网络配置、系统监控等功能的操作,这些命令通常位于/bin
、/usr/bin
、/sbin
等目录下,通过Shell解释器(如Bash、Zsh)解析执行,本文将详细介绍Linux常用系统命令的分类、功能及使用方法,并结合实际场景说明其应用逻辑。

文件与目录管理命令
文件管理是Linux操作的基础,常用命令包括ls
、cd
、cp
、mv
、rm
、mkdir
、touch
、cat
、more
、less
等。
-
ls
:列出目录内容,通过选项可显示详细信息,如-l
以长格式显示(包含权限、所有者、大小、修改时间等),-a
显示隐藏文件(以开头的文件),-h
以人类可读格式显示文件大小(如KB、MB)。ls -lah
会列出当前目录所有文件(包括隐藏文件),并以易读格式显示大小。 -
cd
:切换当前工作目录。cd
后接目标路径,如cd /home/user
切换到/home/user
目录;cd ..
返回上级目录;cd ~
切换到当前用户主目录;cd -
在最近两次工作目录间切换。 -
cp
:复制文件或目录。cp 源文件 目标文件
实现文件复制,如cp file1.txt file2.txt
;-r
选项用于递归复制目录,如cp -r dir1 dir2
;-p
保留文件属性(权限、时间戳等)。(图片来源网络,侵删) -
mv
:移动文件或目录,也可用于重命名。mv file1.txt dir1/
将文件移动到目录;mv old_name.txt new_name.txt
重命名文件。 -
rm
:删除文件或目录。rm file.txt
删除文件;-r
递归删除目录(如rm -r dir
);-f
强制删除,不提示确认(慎用)。 -
mkdir
:创建目录。mkdir new_dir
创建单层目录;-p
选项可创建多级嵌套目录,如mkdir -p parent/child
。 -
touch
:创建空文件或更新文件时间戳。touch new_file.txt
创建空文件;若文件已存在,则更新其访问和修改时间为当前时间。(图片来源网络,侵删) -
cat
/more
/less
:查看文件内容。cat file.txt
直接显示整个文件内容,适合小文件;more file.txt
分页显示(按空格键翻页,q
退出);less file.txt
支持上下滚动、关键词搜索(),功能更强大。
文本处理命令
Linux擅长文本流处理,常用命令包括grep
、sed
、awk
、sort
、uniq
、head
、tail
等。
-
grep
:文本搜索工具。grep "pattern" file.txt
在文件中搜索包含"pattern"的行,-i
忽略大小写,-v
反选(不包含匹配行的内容),-r
递归搜索目录。grep -r "error" /var/log/
在日志目录中搜索包含"error"的行。 -
sed
:流编辑器,用于对文本进行编辑(替换、删除、插入等)。sed 's/old/new/g' file.txt
将文件中所有"old"替换为"new"(s
表示替换,g
表示全局);-i
选项直接修改文件,如sed -i 's/old/new/g' file.txt
。 -
awk
:文本分析工具,按列处理文本。awk '{print $1, $3}' file.txt
打印文件的第1列和第3列;-F
选项指定分隔符,如awk -F: '{print $1}' /etc/passwd
以冒号为分隔符,打印/etc/passwd
文件的第一列(用户名)。 -
sort
:对文本行排序。sort file.txt
按字典序排序;-n
按数字大小排序,-r
降序排序,-k
指定按某列排序,如sort -k 3,3n file.txt
按第三列数字升序排序。 -
uniq
:去除重复行。uniq file.txt
需先对文件排序(sort file.txt | uniq
);-d
仅显示重复行,-c
统计每行重复次数。 -
head
/tail
:查看文件开头或结尾部分。head -n 10 file.txt
显示文件前10行;tail -n 10 file.txt
显示文件末尾10行;-f
选项实时跟踪文件变化(如tail -f /var/log/syslog
查看系统日志实时更新)。
系统信息与监控命令
Linux提供了丰富的命令用于查看系统状态和资源使用情况。
-
uname
:显示系统信息。uname -a
显示所有信息(内核版本、主机名、系统架构等);-r
显示内核版本,-m
显示系统架构(如x86_64)。 -
top
/htop
:动态查看进程资源占用。top
默认按CPU占用排序,实时更新进程列表(q
退出);htop
是top
的增强版,支持彩色显示、鼠标操作、进程树视图等(需安装)。 -
ps
:查看当前进程状态。ps aux
显示所有进程的详细信息(用户、CPU占用、内存占用、命令等);-ef
以BSD格式显示进程,grep
结合可筛选特定进程,如ps aux | grep nginx
查看nginx相关进程。 -
df
/du
:磁盘空间管理。df -h
显示各文件系统的磁盘使用情况(-h
以易读格式);du -sh *
统计当前目录下各文件及子目录的大小(-s
仅显示总计,-h
易读格式)。 -
free
:查看内存使用情况。free -h
以易读格式显示总内存、已用、空闲、缓冲区等信息。 -
iostat
/vmstat
:系统性能监控工具(需安装sysstat
包)。iostat -x 1
每秒显示磁盘I/O统计信息;vmstat 1
每秒显示进程、内存、 paging、I/O、CPU等摘要信息。
用户与权限管理命令
Linux是多用户系统,权限管理是核心安全机制。
-
useradd
/userdel
:添加/删除用户。sudo useradd -m new_user
创建新用户并创建主目录(-m
);sudo userdel -r new_user
删除用户及其主目录(-r
)。 -
passwd
:修改用户密码,普通用户可修改自己的密码,管理员可修改任意用户密码(如sudo passwd username
)。 -
chmod
:修改文件权限,权限分为读(r=4)、写(w=2)、执行(x=1),可通过数字或符号表示。chmod 755 file.txt
设置所有者权限为rwx(7),组和其他用户权限为r-x(5);chmod u+x script.sh
为所有者添加执行权限。 -
chown
:修改文件所有者。sudo chown user:group file.txt
将文件所有者改为user,所属组改为group;-R
选项递归修改目录及子文件的所有者。 -
su
/sudo
:切换用户。su - username
切换到指定用户(加载其环境变量);sudo command
以管理员权限执行命令(需配置sudoers文件)。
网络配置与调试命令
Linux网络功能强大,常用命令包括ifconfig
/ip
、ping
、netstat
、ss
、curl
、wget
等。
-
ifconfig
/ip
:查看/配置网络接口。ifconfig
显示网络接口信息(IP、MAC地址等);ip addr show
是iproute2
工具包的命令,功能更全面(逐步替代ifconfig
)。sudo ip addr add 192.168.1.100/24 dev eth0
为eth0
接口配置IP地址。 -
ping
:测试网络连通性。ping www.baidu.com
发送ICMP包测试与目标主机的连通性,-c
指定发送包数量(如ping -c 4 www.baidu.com
)。 -
netstat
/ss
:查看网络连接状态。netstat -tuln
显示所有监听端口(-t
TCP,-u
UDP,-l
仅显示监听端口,-n
以数字形式显示地址和端口);ss -tuln
是netstat
的替代品,速度更快,信息更全。 -
curl
/wget
:下载网络资源。curl -O http://example.com/file.zip
下载文件并保持原文件名;wget -r -np http://example.com/dir/
递归下载目录内容(-r
递归,-np
不遍历父目录)。
进程管理命令
-
jobs
:查看后台任务。Ctrl+Z
可将前台进程放入后台,jobs
显示当前会话的后台任务(如[1]+ Stopped vim
)。 -
bg
/fg
:切换进程前后台。bg %1
将任务1转为后台运行;fg %1
将任务1调回前台。 -
kill
/pkill
:终止进程。kill PID
通过进程ID终止进程;-9
选项强制终止(如kill -9 1234
);pkill nginx
通过进程名终止所有nginx进程。
软件包管理命令
不同Linux发行版使用不同的包管理工具:
发行版 | 包管理工具 | 示例命令 |
---|---|---|
Debian/Ubuntu | apt | sudo apt update 更新索引,sudo apt install nginx 安装nginx |
CentOS/RHEL | yum/dnf | sudo yum update 更新,sudo yum install httpd 安装Apache |
Arch Linux | pacman | sudo pacman -Syu 更新系统,sudo pacman -s vim 安装vim |
压缩与归档命令
-
tar
:打包/解包工具。tar -czf archive.tar.gz dir/
将目录打包为gzip压缩的归档文件;-x
解包,-v
显示过程,-f
指定文件名,如tar -xzf archive.tar.gz
解压gzip文件。 -
zip
/unzip
:处理zip格式。zip -r archive.zip dir/
递归压缩目录;unzip archive.zip
解压zip文件。
相关问答FAQs
Q1: 如何查看Linux系统当前运行的所有进程及其详细信息?
A1: 可使用ps
命令结合grep
筛选进程。ps aux
显示所有进程的详细信息(包括用户、PID、CPU占用、内存占用、命令等);若需查看特定进程(如nginx),可执行ps aux | grep nginx
,该命令会列出所有包含"nginx"的进程行。top
或htop
命令可动态实时显示进程资源占用情况,htop
还支持进程树视图和交互式操作(如终止进程),功能更直观。
Q2: Linux中如何批量重命名多个文件?
A2: 批量重命名可结合mv
命令和循环实现,将当前目录下所有.txt
文件扩展名改为.bak
,可执行:for file in *.txt; do mv "$file" "${file%.txt}.bak"; done
。${file%.txt}
会删除变量$file
末尾的.txt
,再拼接.bak
实现重命名,若需更复杂的重命名(如修改文件名前缀),可使用rename
命令(需安装,不同发行版语法略有差异),例如rename 's/^old/new/' *
将所有文件名以"old"开头的改为以"new"开头。