Linux命令详解+示例(炫彩超全)
一、系统基础信息命令
1. ifconfig
- 功能:配置和显示网络接口信息,包括 IP 地址、子网掩码、MAC 地址等
- 常用参数:
ifconfig [接口名]
:显示指定网络接口信息ifconfig [接口名] [IP地址]
:设置网络接口 IP 地址ifconfig [接口名] down
:禁用网络接口ifconfig [接口名] up
:启用网络接口
- 示例:
2. top
- 功能:实时监控系统进程和资源使用情况
- 常用参数:
-d [秒数]
:设置刷新间隔时间-p [PID]
:只监控指定进程 ID-u [用户名]
:只监控指定用户的进程
- 交互命令(在 top 界面中):
P
:按 CPU 使用率排序M
:按内存使用率排序N
:按 PID 排序q
:退出 top
- 示例:
列名 | 详细解释 |
S | 进程的当前状态,常见状态: - R:运行中(Running 或 Runnable)。 - S:睡眠中(Interruptible Sleep,可被信号唤醒)。 - D:不可中断睡眠(Uninterruptible Sleep,通常因等待 I/O 操作)。 - Z:僵尸进程(Zombie,进程已终止但资源未释放)。 - T:停止状态(Stopped,如被 Ctrl+Z 暂停)。- t:追踪状态(Traced,被调试器追踪)。 |
3. free
- 功能:显示系统内存使用情况
- 常用参数:
-h
:以人类可读的单位(GB/MB)显示-m
:以 MB 为单位显示-g
:以 GB 为单位显示-s [秒数]
:持续刷新显示,间隔指定秒数
- 示例:
4. df
- 功能:显示文件系统磁盘空间使用情况
- 常用参数:
-h
:人性化显示(自动转换单位)-T
:显示文件系统类型-i
:显示 inode 使用情况-k
:以 KB 为单位显示
- 示例:
5. hostname
- 功能:显示或设置系统主机名
- 常用参数:
-i
:显示主机的 IP 地址-f
:显示主机的 FQDN(完全限定域名)
- 示例:
6. uname
- 功能:显示系统内核相关信息
- 常用参数:
-a
:显示所有信息(内核版本、主机名、硬件架构等)-r
:只显示内核版本-m
:显示硬件架构-s
:显示内核名称
- 示例:
7. date
- 功能:显示或设置系统日期和时间
- 常用参数:
+%Y-%m-%d
:显示年 - 月 - 日+%H:%M:%S
:显示时:分: 秒-s "2025-08-16 15:30:00"
:设置系统时间
- 示例:
8. uptime
- 功能:显示系统运行时间、用户数和负载信息
- 说明:输出格式为 "当前时间 系统运行时间 登录用户数 平均负载 (1 分钟 5 分钟 15 分钟)"
- 示例:
二、防火墙管理命令
9. systemctl status firewalld
- 功能:查看 firewalld 防火墙服务状态
- 示例:
10. systemctl start firewalld
- 功能:启动 firewalld 防火墙服务
- 示例:
systemctl start firewalld # 启动防火墙
11. systemctl stop firewalld
- 功能:停止 firewalld 防火墙服务
- 示例:
systemctl stop firewalld # 停止防火墙
12. systemctl enable firewalld
- 功能:设置 firewalld 防火墙开机自启动
- 示例:
systemctl enable firewalld # 开机自动启动防火墙
13. systemctl disable firewalld
- 功能:取消 firewalld 防火墙开机自启动
- 示例:
systemctl disable firewalld # 禁止开机启动防火墙
三、文件与目录操作命令
14. ls
- 功能:列出目录内容
- 常用参数:
-l
:详细列表格式(权限、所有者、大小、修改时间等)-a
:显示所有文件(包括隐藏文件,以。开头的文件)-h
:人性化显示文件大小-R
:递归显示子目录内容-t
:按修改时间排序-r
:反向排序
- 示例:
15. ll
- 功能:
ls -l
的别名,详细列出文件和目录信息 - 示例:
16. cd
- 功能:切换当前工作目录
- 特殊目录:
~
:当前用户的家目录.
:当前目录..
:上级目录-
:上一次所在目录
- 示例:
17. mkdir
- 功能:创建目录
- 常用参数:
-p
:递归创建目录,若父目录不存在则自动创建-m
:创建目录时指定权限
- 示例:
mkdir data # 在当前目录创建data目录
mkdir -p data/mysql/log # 递归创建多级目录
mkdir -m 755 docs # 创建docs目录并设置权限为755
18. cp
- 功能:复制文件或目录
- 常用参数:
-i
:覆盖前提示-r
:递归复制目录(复制目录必须使用)-v
:显示复制过程-a
:保留文件属性并递归复制(常用于备份)-f
:强制复制,不提示
- 示例:
cp file1.txt file2.txt # 复制file1.txt为file2.txt
cp -i file1.txt /opt/ # 复制到/opt目录,若存在则提示
cp -rv data/ data_bak/ # 递归复制目录并显示过程
cp -a /etc /backup/ # 备份/etc目录,保留属性
19. rm
- 功能:删除文件或目录
- 常用参数:
-i
:删除前提示(默认)-f
:强制删除,不提示-r
:递归删除目录及其内容-v
:显示删除过程
- 示例:
rm file.txt # 删除文件,会提示确认
rm -f file.txt # 强制删除文件,不提示
rm -r data/ # 递归删除目录,会提示
rm -rf data/ # 强制递归删除目录,不提示(危险操作)
rm -v *.log # 删除所有.log文件并显示过程
20. mv
- 功能:移动或重命名文件 / 目录
- 常用参数:
-i
:覆盖前提示-v
:显示移动过程-f
:强制移动,不提示
- 示例:
mv file.txt /opt/ # 将file.txt移动到/opt目录
mv oldname.txt newname.txt # 重命名文件
mv -i file.txt /opt/ # 移动时若目标存在则提示
mv dir1/ dir2/ # 若dir2不存在则重命名dir1为dir2;若dir2存在则移动dir1到dir2下
21. touch
- 功能:创建空文件或更新文件的访问和修改时间
- 常用参数:
-a
:只更新访问时间-m
:只更新修改时间-t
:指定时间戳(格式:[[CC] YY] MMDDhhmm [.ss])
- 示例:
touch newfile.txt # 创建空文件
touch file1.txt file2.txt # 同时创建多个文件
touch -t 202508161530 file.txt # 设置文件时间为2025-08-16 15:30
touch existing.txt # 更新现有文件的时间戳为当前时间
22. pwd
- 功能:显示当前工作目录的绝对路径
- 示例:
四、文件内容查看命令
23. cat
- 功能:连接文件并打印到标准输出
- 常用参数:
-n
:显示行号-b
:显示行号,但不包括空行-s
:将连续多个空行压缩为一个空行-v
:显示非打印字符
- 示例:
cat file.txt # 显示文件内容
cat -n file.txt # 显示内容并带行号
cat file1.txt file2.txt # 同时显示多个文件内容
cat file1.txt >> file2.txt # 将file1内容追加到file2
24. tail
- 功能:显示文件末尾内容
- 常用参数:
-n [数字]
:显示最后 N 行-f
:实时跟踪文件变化(常用于日志监控)-F
:与 - f 类似,但文件被删除重建后仍能继续跟踪-v
:显示文件名
- 示例:
tail file.txt # 默认显示最后10行
tail -n 20 file.txt # 显示最后20行
tail -f /var/log/messages # 实时监控系统日志
tail -F app.log # 持续跟踪app.log,即使文件被轮转
25. head
- 功能:显示文件开头内容
- 常用参数:
-n [数字]
:显示前 N 行-v
:显示文件名-q
:不显示文件名(当显示多个文件时)
- 示例:
head file.txt # 默认显示前10行
head -n 5 file.txt # 显示前5行
head -v file1.txt file2.txt # 显示多个文件的前10行并显示文件名
26. grep
- 功能:在文件中搜索匹配的字符串
- 常用参数:
-i
:忽略大小写-n
:显示匹配行的行号-v
:显示不匹配的行-r
:递归搜索目录下的所有文件-E
:使用扩展正则表达式-w
:匹配整个单词-c
:统计匹配的行数
- 示例:
grep "error" app.log # 在app.log中搜索包含error的行
grep -i "Error" app.log # 忽略大小写搜索
grep -n "warning" app.log # 显示包含warning的行及其行号
grep -r "mysql" /opt/ # 递归搜索/opt目录下所有文件中的mysql
grep -E "error|warning" app.log # 搜索包含error或warning的行
grep -c "success" app.log # 统计包含success的行数
27. more
- 功能:分页显示文件内容
- 常用操作:
- 空格键:显示下一屏
- Enter 键:显示下一行
b
键:回退一屏/字符串
:向下搜索字符串q
键:退出
- 示例:
more largefile.txt # 分页查看大文件
more +100 file.txt # 从第100行开始查看
28. less
- 功能:分页显示文件内容,功能比 more 更强大
- 常用操作:
- 上下箭头:逐行滚动
PageUp/PageDown
:翻页/字符串
:向下搜索?字符串
:向上搜索n
:重复上一次搜索N
:反向重复上一次搜索q
:退出
- 示例:
less largefile.txt # 查看大文件
less +/error app.log # 打开文件并直接定位到第一个error
五、文件查找命令
29. find
- 功能:在指定目录下查找文件和目录
- 常用参数:
-name [模式]
:按文件名查找(支持通配符 * 和?)-iname [模式]
:按文件名查找,忽略大小写-type [类型]
:按类型查找(f: 文件,d: 目录,l: 链接)-size [大小]
:按文件大小查找(+ 表示大于,- 表示小于,单位 k,M,G)-mtime [天数]
:按修改时间查找(+N: 超过 N 天,-N: 少于 N 天)-user [用户名]
:按所有者查找-exec [命令] {} \;
:对找到的文件执行指定命令
- 示例:
find / -name "file.txt" # 从根目录查找名为file.txt的文件
find /opt -iname "*.java" # 在/opt中查找.java文件,忽略大小写
find /home -type d -name "data" # 在/home中查找名为data的目录
find / -size +100M # 查找大于100MB的文件
find /var/log -mtime +7 # 查找/var/log下7天前修改的文件
find . -name "*.log" -exec rm -f {} \; # 删除当前目录下所有.log文件
30. which
- 功能:查找命令的可执行文件路径
- 常用参数:
-a
:显示所有匹配的路径,而不仅仅是第一个
- 示例:
which ls # 显示ls命令的路径,如:/bin/ls
which -a java # 显示所有java命令的路径
which python3 # 查找python3的位置
31. whereis
- 功能:查找命令的二进制文件、源文件和帮助文档位置
- 常用参数:
-b
:只查找二进制文件-s
:只查找源文件-m
:只查找帮助文档
- 示例:
whereis gcc # 显示gcc相关的文件路径
whereis -b python # 只显示python的二进制文件路径
whereis -m ls # 只显示ls命令的帮助文档位置
六、用户与权限管理命令
32. useradd
- 功能:创建新用户
- 常用参数:
-d [目录]
:指定用户的家目录-g [组名/ID]
:指定用户的初始组-G [组名/ID]
:指定用户的附加组(多个组用逗号分隔)-s [shell]
:指定用户的登录 shell-u [UID]
:指定用户的 UID-m
:自动创建用户的家目录
- 示例:
useradd love # 创建用户love
useradd -d /home/love love # 指定家目录创建用户
useradd -g developers -G managers zhangsan # 指定初始组和附加组
useradd -s /sbin/nologin test # 创建不能登录的用户test
33. passwd
- 功能:设置或修改用户密码
- 常用参数:
-l
:锁定用户账户-u
:解锁用户账户-d
:删除用户密码-e
:强制用户下次登录时修改密码
- 示例:
passwd love # 为用户love 设置密码
passwd -l love # 锁定love 账户
passwd -u love # 解锁love 账户
passwd -e love # 强制love 下次登录修改密码
34. userdel
- 功能:删除用户
- 常用参数:
-r
:删除用户的同时删除其家目录和邮件池
- 示例:
userdel love # 删除用户love (保留家目录)
userdel -r love # 删除用户love 及其家目录
35. id
- 功能:显示用户的 UID、GID 及所属组信息
- 常用参数:
-u
:只显示 UID-g
:只显示 GID-G
:只显示所属的所有组 ID-n
:显示名称而非 ID
- 示例:
id love # 显示用户love的完整ID信息
id -u love # 只显示love的UID
id -Gn love # 显示love所属的所有组名
36. su
- 功能:切换用户身份
- 常用参数:
-
或-l
:模拟完整登录(加载目标用户的环境变量)-c [命令]
:执行指定命令后返回原用户
- 示例:
su love # 切换到love 用户(不加载环境变量)
su - root # 切换到root用户并加载环境变量
su - love -c "ls -l" # 以love 用户执行ls -l命令
37. chown
- 功能:修改文件或目录的所有者和所属组
- 常用参数:
-R
:递归修改目录下所有文件和子目录-v
:显示修改过程
- 语法:
chown [所有者][:[所属组]] 文件/目录
- 示例:
chown love file.txt # 将file.txt的所有者改为love
chown love:developers file.txt # 同时修改所有者和所属组
chown -R love:developers data/ # 递归修改data目录的所有者和组
38. chmod
- 功能:修改文件或目录的权限
- 权限说明:
- 权限对象:u (所有者)、g (同组用户)、o (其他用户)、a (所有用户)
- 权限类型:r (读,4)、w (写,2)、x (执行,1)
- 操作符:+(添加)、-(移除)、=(设置)
- 常用参数:
-R
:递归修改目录权限-v
:显示修改过程
- 示例:
chmod 755 file.txt # 设置权限为rwxr-xr-x
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w file.txt # 移除同组用户的写权限
chmod o=r file.txt # 设置其他用户只有读权限
chmod -R 770 data/ # 递归设置data目录权限为rwxrwx---
七、压缩与解压命令
39. gzip
- 功能:压缩文件(只能压缩单个文件,不能压缩目录)
- 常用参数:
-d
:解压文件(同 gunzip)-r
:递归压缩目录中的所有文件-v
:显示压缩过程-l
:列出压缩文件的信息-k
:保留原文件(默认会删除原文件)
- 示例:
gzip file.txt # 压缩file.txt为file.txt.gz,删除原文件
gzip -k file.txt # 压缩并保留原文件
gzip -v *.log # 压缩所有.log文件并显示过程
gzip -d file.txt.gz # 解压文件(同gunzip)
40. gunzip
- 功能:解压.gz 格式的压缩文件
- 常用参数:
-v
:显示解压过程-k
:保留压缩文件
- 示例:
gunzip file.txt.gz # 解压为file.txt,删除原压缩文件
gunzip -k file.txt.gz # 解压并保留压缩文件
gunzip -v *.gz # 解压所有.gz文件并显示过程
41. zip
- 功能:压缩文件和目录为.zip 格式
- 常用参数:
-r
:递归压缩目录-q
:安静模式,不显示压缩过程-v
:显示详细信息-d
:从压缩文件中删除文件-u
:更新压缩文件中的文件
- 示例:
zip files.zip file1.txt file2.txt # 压缩多个文件
zip -r data.zip data/ # 递归压缩目录
zip -v docs.zip *.docx # 压缩并显示详细信息
42. unzip
- 功能:解压.zip 格式的压缩文件
- 常用参数:
-d [目录]
:指定解压目录-l
:列出压缩文件内容-v
:显示详细信息-q
:安静模式-o
:覆盖现有文件,不提示
- 示例:
unzip files.zip # 解压到当前目录
unzip files.zip -d /opt/data # 解压到指定目录
unzip -l files.zip # 查看压缩文件内容
unzip -o files.zip # 覆盖解压,不提示
43. tar
- 功能:打包文件和目录,可结合压缩算法
- 常用参数:
-c
:创建新的归档文件-x
:从归档文件中提取文件-v
:显示处理过程-f [文件]
:指定归档文件名-z
:使用 gzip 压缩 / 解压-j
:使用 bzip2 压缩 / 解压-J
:使用 xz 压缩 / 解压-C [目录]
:指定解压目录
- 示例:
tar -cvf archive.tar file1.txt dir1/ # 打包文件和目录
tar -zcvf archive.tar.gz file1.txt dir1/ # 打包并gzip压缩
tar -jcvf archive.tar.bz2 file1.txt # 打包并bzip2压缩
tar -zxvf archive.tar.gz # 解压.tar.gz文件
tar -zxvf archive.tar.gz -C /opt # 解压到指定目录
tar -tvf archive.tar # 查看归档文件内容
八、进程管理命令
44. ps
- 功能:显示系统中的进程状态
- 常用参数:
-e
:显示所有进程-f
:全格式显示-l
:长格式显示-u [用户]
:显示指定用户的进程-p [PID]
:显示指定 PID 的进程-aux
:显示所有进程的详细信息(BSD 风格)
- 示例:
ps -ef # 显示所有进程的详细信息
ps -aux # 显示所有进程的详细信息(BSD风格)
ps -u love # 显示用户love的进程
ps -ef | grep mysql # 查找mysql相关进程
ps -p 1234 # 显示PID为1234的进程信息
45. lsof
- 功能:列出系统中打开的文件和进程信息
- 常用参数:
-i [协议][:端口]
:显示网络连接相关的进程-p [PID]
:显示指定进程打开的文件-u [用户]
:显示指定用户打开的文件-c [命令]
:显示指定命令打开的文件
- 示例:
lsof -i :3306 # 查看占用3306端口的进程
lsof -i tcp:80 # 查看使用TCP 80端口的进程
lsof -p 1234 # 查看PID为1234的进程打开的文件
lsof -u love # 查看用户love打开的文件
46. jps
- 功能:显示当前系统中运行的 Java 进程(需要安装 JDK)
- 常用参数:
-q
:只显示进程 ID,不显示类名-m
:显示进程启动时的参数-l
:显示主类的完整包名或 JAR 文件路径-v
:显示 JVM 参数
- 示例:
jps # 显示Java进程ID和主类名
jps -l # 显示完整的类名或JAR路径
jps -v # 显示Java进程的JVM参数
47. kill
- 功能:向进程发送信号,通常用于终止进程
- 常用信号:
1 (SIGHUP)
:重新加载进程9 (SIGKILL)
:强制终止进程15 (SIGTERM)
:正常终止进程(默认)
- 示例:
kill 1234 # 向PID为1234的进程发送终止信号
kill -9 1234 # 强制终止PID为1234的进程
kill -1 1234 # 让PID为1234的进程重新加载配置
48. pkill
- 功能:根据进程名发送信号(杀死进程)
- 常用参数:
-i
:忽略大小写-u [用户]
:只匹配指定用户的进程-f
:匹配完整的命令行,而不仅仅是进程名
- 示例:
pkill mysql # 终止所有名为mysql的进程
pkill -i java # 忽略大小写终止所有java进程
pkill -u love # 终止用户love的所有进程
pkill -f "python app.py" # 终止命令行为"python app.py"的进程
九、软件包管理命令
49. rpm
- 功能:管理 RPM 格式的软件包
- 常用参数:
-i
:安装软件包-v
:显示详细信息-h
:显示安装进度-e
:卸载软件包-q
:查询软件包-a
:查询所有已安装的软件包-f [文件]
:查询哪个包包含指定文件--force
:强制安装--nodeps
:忽略依赖关系
- 示例:
rpm -ivh package.rpm # 安装软件包并显示进度
rpm -ivh --force package.rpm # 强制安装
rpm -e package # 卸载软件包
rpm -qa | grep python # 查询已安装的python相关包
rpm -qf /usr/bin/ls # 查询哪个包包含ls命令
50. yum
- 功能:基于 RPM 的包管理工具,自动处理依赖关系
- 常用参数:
install [包名]
:安装软件包remove [包名]
:卸载软件包update [包名]
:更新软件包(不指定包名则更新所有)list [包名]
:列出软件包信息search [关键词]
:搜索软件包clean all
:清理缓存makecache
:生成缓存
- 示例:
yum install firefox # 安装火狐浏览器
yum remove firefox # 卸载火狐浏览器
yum update # 更新系统所有软件包
yum update kernel # 只更新内核
yum list installed | grep java # 查看已安装的java包
yum search python3 # 搜索python3相关包
yum clean all # 清理yum缓存
十、文件上传下载命令
51. rz
- 功能:从本地计算机上传文件到 Linux 服务器(需要安装 lrzsz 工具)
- 常用参数:
-y
:覆盖已存在的文件-E
:强制重命名文件,避免冲突
- 安装方法:
yum install lrzsz
- 示例:
rz # 打开文件选择窗口上传文件
rz -y # 上传并覆盖现有文件
52. sz
- 功能:从 Linux 服务器下载文件到本地计算机(需要安装 lrzsz 工具)
- 常用参数:
-a
:以文本方式传输-b
:以二进制方式传输-e
:对控制字符进行转义
- 示例:
sz file.txt # 下载file.txt到本地
sz file1.txt file2.txt # 同时下载多个文件
sz -b data.tar.gz # 以二进制方式下载压缩包
十一、文本编辑命令
53. vi
- 功能:文本编辑器,几乎所有 Linux 系统都预装
- 工作模式:
- 命令模式:打开文件默认进入此模式,可执行保存、退出等操作
- 插入模式:按 i、a、o 等键进入,可编辑文本
- 末行模式:命令模式下按:进入,可执行保存、退出等命令
- 常用操作:
- 进入插入模式:i (当前位置前)、a (当前位置后)、o (下一行)
- 退出插入模式:按 Esc 键
- 保存退出:命令模式下输入
:wq
- 不保存退出:命令模式下输入
:q!
- 保存不退出:命令模式下输入
:w
- 查找:命令模式下输入
/关键词
,按 n 查找下一个 - 删除行:命令模式下按
dd
- 复制行:命令模式下按
yy
,粘贴按p
- 示例:
vi /etc/profile # 编辑系统环境变量文件
vi newfile.txt # 创建并编辑新文件
54. vim
- 功能:vi 的增强版文本编辑器,增加了语法高亮、代码补全等功能
- 额外增强功能:
- 语法高亮:自动对代码文件进行语法着色
- 多级撤销:支持多次撤销操作
- 代码折叠:可折叠代码块
- 命令补全:支持命令和文件名补全
- 常用参数:
-o [文件1] [文件2]
:水平分割窗口打开多个文件-O [文件1] [文件2]
:垂直分割窗口打开多个文件-R [文件]
:以只读模式打开文件
- 常用命令(末行模式):
:set nu
:显示行号:set nonu
:隐藏行号:set hlsearch
:开启搜索高亮:set autoindent
:自动缩进:split
:水平分割窗口:vsplit
:垂直分割窗口:tabnew
:新建标签页
- 安装方法:
yum install vim
- 示例:
vim app.java # 编辑Java文件,会显示语法高亮
vim -o file1.txt file2.txt # 水平分割窗口编辑两个文件
vim -R /etc/passwd # 只读模式查看密码文件