news 2025/12/26 4:45:08

【Linux】Linux常见命令完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux】Linux常见命令完整指南

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-generic

2.2 uptime - 查看系统负载

语法格式:

uptime[选项]

使用示例:

$uptime10:30:15 up15days,2:30,3users, load average:0.05,0.08,0.10
  • 10: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 -lls -a的输出对比,展示隐藏文件和详细属性

使用示例:

# 查看当前目录下所有文件的详细信息,大小易读$ls-lah# 按时间顺序列出最近修改的文件$ls-lt

3.2 cd - 切换工作目录

语法格式:

cd[目录路径]

常用快捷键:

  • cdcd ~: 回到当前用户的家目录
  • 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 -7

3.7 grep - 强大的文本搜索工具

语法格式:

grep[选项]"搜索模式"[文件]

参数详解:

选项说明
-i忽略大小写
-v反向查找(显示不匹配的行)
-n显示匹配行的行号
-r递归查找(在目录所有文件中搜索)
-E支持扩展正则表达式

图示说明:

图4:grep过滤文本流,仅输出匹配行

使用示例:

# 在文件中查找包含 "error" 的行(忽略大小写)$grep-i"error"application.log# 查找当前目录下所有代码中包含 "TODO" 的地方$grep-r"TODO"./src/# 查找不包含注释行(#开头)的配置$grep-v"^#"nginx.conf

3.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[选项]模式 文件名

模式表示法:

  1. 数字法(最常用):

    • r(读) = 4
    • w(写) = 2
    • x(执行) = 1
    • 示例:755=rwx(4+2+1) +r-x(4+0+1) +r-x(4+0+1)
  2. 符号法:

    • 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|grepnginx

5.2 top - 实时监控系统状态

功能:类似 Windows 的任务管理器,动态显示 CPU、内存占用最高的进程。

交互快捷键:

  • P: 按 CPU 使用率排序
  • M: 按内存使用率排序
  • q: 退出

5.3 kill - 终止进程

语法格式:

kill[信号]PID

常用信号:

  • -15(SIGTERM): 默认信号,通知进程正常退出(温柔)。
  • -9(SIGKILL):强制杀死,进程无法捕获或忽略(强硬,可能导致数据丢失)。

使用示例:

# 优雅停止 PID 为 1234 的进程$kill1234# 强制杀死卡死的进程$kill-91234

6. 网络相关命令详解

6.1 ifconfig / ip addr

  • ifconfig: 传统工具(需安装net-tools包)。
  • ip addr: 新一代工具,功能更强大。

使用示例:

# 查看本机 IP 地址$ipaddr show

6.2 ping - 测试连通性

语法格式:

ping[选项]目标IP/域名

参数详解:

  • -c N: 发送 N 个包后停止(Linux 默认会一直 ping 下去)。

使用示例:

# 检测百度是否连通,只发4个包$ping-c4baidu.com

6.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/sshd

7. 命令组合使用技巧

Linux 命令的强大之处在于管道(|)重定向(>)

7.1 管道操作 (|)

将前一个命令的输出,作为后一个命令的输入。

# 查看进程太多,用 grep 过滤只看 java 进程$psaux|grepjava# 查看文件太多,用 less 分页查看$ls-l /etc|less

7.2 重定向操作 (>,>>)

将命令输出保存到文件。

  • >: 覆盖写入
  • >>: 追加写入
# 将当前日期写入 log.txt(覆盖旧内容)$date>log.txt# 将 ping 结果追加到 network.log$ping-c4google.com>>network.log

7.3 find 与 grep 的黄金组合

这两个命令结合使用,能解决绝大多数搜索难题。

场景一:在特定文件中搜索内容
先用find找到文件,再用grep搜索内容。

# 查找 src 目录下所有 .c 文件中包含 "main" 的行$findsrc/ -name"*.c"|xargsgrep"main"

技巧:xargsfind的输出(文件列表)转换为grep的参数。

场景二:批量处理文件
找到文件后进行删除、移动或备份。

# 删除所有 .tmp 临时文件(慎用!)$find.-name"*.tmp"-execrm{}\;# 将所有日志文件移动到 backup 目录$find.-name"*.log"-execmv{}backup/\;

注意:{}代表找到的文件名,\;是命令结束符。


8. 新手常见问题解答 (FAQ)

Q1: 为什么我输入密码时屏幕上什么都不显示?
A: 这是 Linux 的安全机制。密码输入是隐形的,不会显示星号或圆点。放心输入完按回车即可。

Q2:command not found是什么意思?
A: 表示系统找不到你输入的命令。原因可能是:

  1. 命令拼写错误。
  2. 该软件未安装(如ifconfig需安装net-tools)。
  3. 命令不在系统的环境变量PATH中。

Q3: 如何中断当前正在执行的命令?
A: 按Ctrl + C可以强制中断大多数前台运行的命令。

Q4: 怎么退出vimvi编辑器?
A: 这是新手最大的噩梦!

  1. Esc键(确保进入命令模式)。
  2. 输入:wq并回车(保存并退出)。
  3. 或者输入:q!并回车(不保存强制退出)。

参考资源:

  • Linux man pages (man command)
  • CSDN Linux 技能树
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!