Linux常见命令完整指南
文章目录
- Linux常见命令完整指南
- 1. 命令分类与结构概览
- 1.1 系统信息类
- 1.2 文件操作类
- 1.3 权限管理类
- 1.4 进程管理类
- 1.5 网络相关类
- 2. 系统信息类命令详解
- 2.1 uname - 显示系统信息
- 2.2 uptime - 查看系统负载
- 3. 文件操作类命令详解
- 3.1 ls - 列出目录内容
- 3.2 cd - 切换工作目录
- 3.3 cp - 复制文件/目录
- 3.4 mv - 移动或重命名
- 3.5 rm - 删除文件/目录
- 3.6 find - 强大的文件查找工具
- 3.7 grep - 强大的文本搜索工具
- 3.8 xargs - 管道参数转换器
- 4. 权限管理类命令详解
- 4.1 chmod - 修改文件权限
- 4.2 chown - 修改文件所有者
- 5. 进程管理类命令详解
- 5.1 ps - 查看进程快照
- 5.2 top - 实时监控系统状态
- 5.3 kill - 终止进程
- 6. 网络相关命令详解
- 6.1 ifconfig / ip addr
- 6.2 ping - 测试连通性
- 6.3 netstat - 查看网络状态
- 7. 命令组合使用技巧
- 7.1 管道操作 (`|`)
- 7.2 重定向操作 (`>`, `>>`)
- 7.3 find 与 grep 的黄金组合
- 8. 新手常见问题解答 (FAQ)
1. 命令分类与结构概览
Linux 命令是与系统交互的核心工具。本指南将常用命令分为五大类,帮助你快速建立知识体系。
1.1 系统信息类
用于查看系统内核、主机名、运行时间等基础状态。
uname: 显示系统信息hostname: 显示或设置主机名uptime: 查看系统运行时间和负载
1.2 文件操作类
最基础的日常操作,包括查看、移动、复制和删除。
ls: 列出目录内容cd: 切换工作目录cp: 复制文件/目录mv: 移动或重命名rm: 删除文件/目录find: 查找文件grep: 文本搜索过滤
1.3 权限管理类
Linux 是多用户系统,严格的权限控制是其安全核心。
chmod: 修改文件权限chown: 修改文件所有者chgrp: 修改文件所属组
1.4 进程管理类
监控和控制系统运行的程序。
ps: 查看当前进程快照top: 实时监控进程状态kill: 终止进程
1.5 网络相关类
配置和诊断网络连接。
ifconfig: 配置网络接口(旧版,新版推荐ip addr)ping: 测试网络连通性netstat: 查看网络连接状态
2. 系统信息类命令详解
2.1 uname - 显示系统信息
语法格式:
uname[选项]参数详解:
| 选项 | 说明 |
|---|---|
-a | 显示所有信息(内核名、主机名、内核版本、硬件架构等) |
-r | 仅显示内核发行版本号 |
-s | 显示内核名称(如 Linux) |
-m | 显示硬件架构(如 x86_64) |
使用示例:
# 查看内核完整信息$uname-a Linux ubuntu-server5.4.0-42-generic#46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux# 仅查看内核版本(常用于排查驱动兼容性)$uname-r5.4.0-42-generic2.2 uptime - 查看系统负载
语法格式:
uptime[选项]使用示例:
$uptime10:30:15 up15days,2:30,3users, load average:0.05,0.08,0.1010:30:15: 当前系统时间up 15 days, 2:30: 系统已运行时间3 users: 当前登录用户数load average: 平均负载(1分钟、5分钟、15分钟)。注意:如果该数值超过 CPU 核心数,说明系统负载较高。
3. 文件操作类命令详解
3.1 ls - 列出目录内容
语法格式:
ls[选项][目录/文件]参数详解:
| 选项 | 说明 |
|---|---|
-l | 长格式显示(包含权限、所有者、大小、时间) |
-a | 显示所有文件(包含以.开头的隐藏文件) |
-h | 以人类可读格式显示大小(如 1K, 234M, 2G) |
-t | 按修改时间排序(最新在最前) |
-R | 递归显示子目录内容 |
图示说明:
图1:ls -l与ls -a的输出对比,展示隐藏文件和详细属性
使用示例:
# 查看当前目录下所有文件的详细信息,大小易读$ls-lah# 按时间顺序列出最近修改的文件$ls-lt3.2 cd - 切换工作目录
语法格式:
cd[目录路径]常用快捷键:
cd或cd ~: 回到当前用户的家目录cd ..: 返回上一级目录cd -: 返回上一次所在的目录(类似电视遥控器的“回看”键)
3.3 cp - 复制文件/目录
语法格式:
cp[选项]源文件 目标路径参数详解:
| 选项 | 说明 |
|---|---|
-r | 递归复制,复制目录时必须加此选项 |
-i | 覆盖前询问确认(安全起见推荐) |
-p | 保留源文件的属性(权限、时间戳等) |
使用示例:
# 复制文件$cpfile.txt backup/file.txt.bak# 复制整个目录$cp-r src_folder/ dest_folder/3.4 mv - 移动或重命名
语法格式:
mv[选项]源文件 目标路径功能说明:
- 如果目标路径是目录,则将源文件移动进去。
- 如果目标路径是文件名,则将源文件重命名。
图示说明:
图2:cp(复制)与mv(移动/重命名)的区别示意
3.5 rm - 删除文件/目录
语法格式:
rm[选项]文件/目录参数详解:
| 选项 | 说明 |
|---|---|
-r | 递归删除(删除目录必须) |
-f | 强制删除,不提示确认(慎用!) |
-i | 删除前逐一询问 |
⚠️ 危险警告:
rm -rf /是 Linux 界的核武器,会强制删除根目录下所有文件,导致系统崩溃。
切记:使用rm -rf时,务必检查路径!建议先用ls确认要删除的文件列表。
3.6 find - 强大的文件查找工具
语法格式:
find[查找路径][查找条件][处理动作]参数详解:
| 选项 | 说明 |
|---|---|
-name | 按文件名查找(支持通配符*) |
-type | 按文件类型查找(f=文件,d=目录) |
-size | 按大小查找(+10M=大于10M,-1k=小于1k) |
-mtime | 按修改时间查找(-7=7天内,+30=30天前) |
-exec | 对找到的文件执行命令(高级用法) |
图示说明:
图3:find命令在目录树中查找特定文件的过程
使用示例:
# 在当前目录及子目录查找名为 config.xml 的文件$find.-name"config.xml"# 查找 /var/log 下大于 100M 的日志文件$find/var/log -type f -size +100M# 查找最近 7 天内修改过的 .py 脚本$find/home -name"*.py"-mtime -73.7 grep - 强大的文本搜索工具
语法格式:
grep[选项]"搜索模式"[文件]参数详解:
| 选项 | 说明 |
|---|---|
-i | 忽略大小写 |
-v | 反向查找(显示不匹配的行) |
-n | 显示匹配行的行号 |
-r | 递归查找(在目录所有文件中搜索) |
-E | 支持扩展正则表达式 |
图示说明:
图4:grep过滤文本流,仅输出匹配行
使用示例:
# 在文件中查找包含 "error" 的行(忽略大小写)$grep-i"error"application.log# 查找当前目录下所有代码中包含 "TODO" 的地方$grep-r"TODO"./src/# 查找不包含注释行(#开头)的配置$grep-v"^#"nginx.conf3.8 xargs - 管道参数转换器
语法格式:
command|xargs[选项][命令]为什么需要 xargs?
许多 Linux 命令(如rm,mv,cp)不直接支持通过管道接受参数。xargs的作用就是将标准输入(stdin)转换成命令行参数。
参数详解:
| 选项 | 说明 |
|---|---|
-n N | 每次传递 N 个参数给命令 |
-d | 指定分隔符(默认是空格或换行) |
-I {} | 使用{}作为占位符,替换参数位置 |
-0 | 配合find -print0使用,处理包含空格的文件名 |
图示说明:
图5:xargs将输入流转换为命令参数的原理
使用示例:
# 批量删除(比 -exec 更快)$find.-name"*.tmp"|xargsrm# 多行输入转单行$catfile.txt|xargs# 复杂操作:将找到的文件移动到 backup 目录$find.-name"*.log"|xargs-I{}mv{}backup/4. 权限管理类命令详解
4.1 chmod - 修改文件权限
语法格式:
chmod[选项]模式 文件名模式表示法:
数字法(最常用):
r(读) = 4w(写) = 2x(执行) = 1- 示例:
755=rwx(4+2+1) +r-x(4+0+1) +r-x(4+0+1)
符号法:
u(User),g(Group),o(Others),a(All)+(添加),-(移除),=(设置)
图示说明:
图6:Linux 权限位解析与chmod 755效果
使用示例:
# 赋予脚本可执行权限$chmod+x script.sh# 设置只有所有者可读写,其他人无权限$chmod600secret_key.pem# 递归修改目录下所有文件权限$chmod-R755/var/www/html/4.2 chown - 修改文件所有者
语法格式:
chown[选项]用户名[:组名]文件名使用示例:
# 将文件所有者改为 nginx$chownnginx web.conf# 将目录及其子文件的所有者改为 www,组改为 www$chown-R www:www /data/webroot/5. 进程管理类命令详解
5.1 ps - 查看进程快照
语法格式:
ps[选项]常用组合:
ps aux: 显示所有用户的所有进程(BSD风格)ps -ef: 显示所有进程的完整格式(System V风格)
使用示例:
# 查找名字中包含 'nginx' 的进程$psaux|grepnginx5.2 top - 实时监控系统状态
功能:类似 Windows 的任务管理器,动态显示 CPU、内存占用最高的进程。
交互快捷键:
P: 按 CPU 使用率排序M: 按内存使用率排序q: 退出
5.3 kill - 终止进程
语法格式:
kill[信号]PID常用信号:
-15(SIGTERM): 默认信号,通知进程正常退出(温柔)。-9(SIGKILL):强制杀死,进程无法捕获或忽略(强硬,可能导致数据丢失)。
使用示例:
# 优雅停止 PID 为 1234 的进程$kill1234# 强制杀死卡死的进程$kill-912346. 网络相关命令详解
6.1 ifconfig / ip addr
ifconfig: 传统工具(需安装net-tools包)。ip addr: 新一代工具,功能更强大。
使用示例:
# 查看本机 IP 地址$ipaddr show6.2 ping - 测试连通性
语法格式:
ping[选项]目标IP/域名参数详解:
-c N: 发送 N 个包后停止(Linux 默认会一直 ping 下去)。
使用示例:
# 检测百度是否连通,只发4个包$ping-c4baidu.com6.3 netstat - 查看网络状态
常用参数组合:netstat -tunlp
-t: TCP 协议-u: UDP 协议-n: 显示数字地址(不解析域名,速度快)-l: 仅显示监听(Listening)状态的端口-p: 显示占用端口的进程 PID 和名称
使用示例:
# 查看本机开放了哪些端口$netstat-tunlp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp000.0.0.0:800.0.0.0:* LISTEN1024/nginx tcp000.0.0.0:220.0.0.0:* LISTEN890/sshd7. 命令组合使用技巧
Linux 命令的强大之处在于管道(|)和重定向(>)。
7.1 管道操作 (|)
将前一个命令的输出,作为后一个命令的输入。
# 查看进程太多,用 grep 过滤只看 java 进程$psaux|grepjava# 查看文件太多,用 less 分页查看$ls-l /etc|less7.2 重定向操作 (>,>>)
将命令输出保存到文件。
>: 覆盖写入>>: 追加写入
# 将当前日期写入 log.txt(覆盖旧内容)$date>log.txt# 将 ping 结果追加到 network.log$ping-c4google.com>>network.log7.3 find 与 grep 的黄金组合
这两个命令结合使用,能解决绝大多数搜索难题。
场景一:在特定文件中搜索内容
先用find找到文件,再用grep搜索内容。
# 查找 src 目录下所有 .c 文件中包含 "main" 的行$findsrc/ -name"*.c"|xargsgrep"main"技巧:
xargs将find的输出(文件列表)转换为grep的参数。
场景二:批量处理文件
找到文件后进行删除、移动或备份。
# 删除所有 .tmp 临时文件(慎用!)$find.-name"*.tmp"-execrm{}\;# 将所有日志文件移动到 backup 目录$find.-name"*.log"-execmv{}backup/\;注意:
{}代表找到的文件名,\;是命令结束符。
8. 新手常见问题解答 (FAQ)
Q1: 为什么我输入密码时屏幕上什么都不显示?
A: 这是 Linux 的安全机制。密码输入是隐形的,不会显示星号或圆点。放心输入完按回车即可。
Q2:command not found是什么意思?
A: 表示系统找不到你输入的命令。原因可能是:
- 命令拼写错误。
- 该软件未安装(如
ifconfig需安装net-tools)。 - 命令不在系统的环境变量
PATH中。
Q3: 如何中断当前正在执行的命令?
A: 按Ctrl + C可以强制中断大多数前台运行的命令。
Q4: 怎么退出vim或vi编辑器?
A: 这是新手最大的噩梦!
- 按
Esc键(确保进入命令模式)。 - 输入
:wq并回车(保存并退出)。 - 或者输入
:q!并回车(不保存强制退出)。
参考资源:
- Linux man pages (
man command) - CSDN Linux 技能树