【Linux】命令行常规操作全攻略:入门+实战+速查

【Linux】命令行常规操作全攻略:入门+实战+速查

  • 前言
  • [1. Linux 命令行概述与核心应用](#1. Linux 命令行概述与核心应用)
    • [1.1 命令行释义](#1.1 命令行释义)
    • [1.2 典型使用场景](#1.2 典型使用场景)
  • [2.Linux 命令行常用方法对比](#2.Linux 命令行常用方法对比)
  • 3.核心命令解读
    • [3.1 核心指令模块](#3.1 核心指令模块)
    • [3.2 案例说明:文件与目录操作](#3.2 案例说明:文件与目录操作)
      • [3.2.1 核心指标说明](#3.2.1 核心指标说明)
      • [3.2.2 代码展示](#3.2.2 代码展示)
      • [3.2.3 示例结果展示](#3.2.3 示例结果展示)
    • [3.3 进阶实战:文本处理与日志分析](#3.3 进阶实战:文本处理与日志分析)
      • [3.3.1 核心原理](#3.3.1 核心原理)
      • [3.3.2 完整代码实现](#3.3.2 完整代码实现)
      • [3.3.3 运行结果](#3.3.3 运行结果)
  • 4.拓展与应用方向
  • 5.总结

前言

Linux 命令行(Terminal / Shell)是每一个开发者、运维工程师、数据工程师绕不开的基本功。无论是管理服务器、跑数据脚本、还是部署项目,命令行都是效率最高的操作方式。

本文以实用为核心,系统梳理 Linux 命令行的常规操作,涵盖文件管理、权限控制、进程管理、网络查询等高频场景,每个命令配合真实案例说明,适合入门到进阶的读者系统学习。

关键词

Linux;命令行;Shell;Terminal;文件操作;权限管理;进程管理;网络命令;grep;awk;运维基础


1. Linux 命令行概述与核心应用

1.1 命令行释义

命令行界面(CLI,Command Line Interface),是用户通过输入文本指令与操作系统交互的方式。Linux 默认的命令解释器是 Bash(Bourne Again Shell)

相比图形界面(GUI),命令行的核心优势在于:

  • 效率高:一行命令完成批量操作
  • 可脚本化:命令可以组合、自动化,形成可复用的脚本
  • 资源占用低:服务器环境几乎都是纯命令行,哪儿都可以用
  • 远程友好:SSH 连接远程服务器,命令行是唯一选择

1.2 典型使用场景

  • 后端开发:编译运行代码、查看日志、管理进程
  • 数据分析:处理大文件、跑 Python/SQL 脚本、定时任务
  • 运维部署:服务器配置、权限管理、网络排查、容器操作
  • 日常效率:批量重命名文件、搜索内容、压缩备份

2.Linux 命令行常用方法对比

Linux 命令行操作可以分为几个层级,可以根据场景和技术水平选择合适的方案。

方法类型 核心特点 优点 缺点 适用场景
单个命令 直接执行单条命令 简单直观、快速上手 无法自动化、重复操作繁琐 临时查询、一次性操作
管道组合 用 ` ` 连接多个命令 灵活强大、一行完成复杂操作 需要理解各命令用法、调试困难
Shell 脚本 将命令写入 .sh 文件 可复用、可维护、支持逻辑控制 需要编程基础、调试成本高 自动化部署、定时任务
系统工具 使用 systemctl、docker 等 专业可靠、生产级别 学习曲线陡、配置复杂 服务管理、容器编排

3.核心命令解读

3.1 核心指令模块

指令模块,指的是常用命令的分类:

  • 文件操作lscdmkdirrmcpmvfind
  • 文本处理catgrepawksedsortuniq
  • 权限管理chmodchownsudo
  • 进程管理pstopkillpkillsystemctl
  • 网络命令pingsshcurlwgetsslsof
  • 压缩工具tarzipgzip

3.2 案例说明:文件与目录操作

文件操作是使用频率最高的一类命令,几乎每次打开终端都会用到。

3.2.1 核心指标说明

bash 复制代码
# ls -l 输出解读
-rw-r--r-- 1 admin dev 1024 Apr 1 10:00 config.conf
│││││││││ │ │    │   │    │   │  │  │
│││││││││ │ │    │   │    │   │  │  └─ 文件名
│││││││││ │ │    │   │    │   │  └──── 时间
│││││││││ │ │    │   │    │   └─────── 文件大小(字节)
│││││││││ │ │    │   │    └─────────── 所属组
│││││││││ │ │    │   └──────────────── 所有者
│││││││││ │ └────┴───────────────────── 硬链接数
│││││││││ └──────────────────────────── 文件类型和权限
└─────────┴──────────────────────────── 权限详解:
  - 第1位:- 普通文件,d 目录,l 软链接
  - 2-4位:所有者权限(rwx)
  - 5-7位:所属组权限(rwx)
  - 8-10位:其他人权限(rwx)

3.2.2 代码展示

bash 复制代码
# 查看当前目录详细信息(含隐藏文件,大小人性化显示)
ls -lah

# 递归创建多级目录
mkdir -p /data/project/logs

# 查找当前目录下所有 .log 文件
find . -name "*.log" -type f

# 查找 7 天前修改的日志文件
find /var/log -name "*.log" -mtime +7

# 将找到的文件删除(-exec 执行命令)
find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;

# 批量重命名:把所有 .txt 改为 .md
for f in *.txt; do mv "$f" "${f%.txt}.md"; done

# 复制整个目录及其内容
cp -r /data/project /backup/project_backup

# 移动文件到另一个目录
mv config.conf /etc/app/config.conf

# 创建软链接(快捷方式)
ln -s /data/project/logs /var/log/app_logs

3.2.3 示例结果展示

bash 复制代码
$ ls -lah
total 48
drwxr-xr-x  5 admin dev   160 Apr 1 17:00 .
drwxr-xr-x 12 admin dev   384 Apr 1 16:00 ..
-rw-r--r--  1 admin dev  1024 Apr 1 10:00 config.conf
-rw-r--r--  1 admin dev  2048 Apr 1 09:30 data.csv
drwxr-xr-x  3 admin dev    96 Apr 1 08:00 logs
-rwxr-xr-x  1 admin dev   512 Apr 1 07:00 deploy.sh

$ find . -name "*.log" -type f
./logs/app.log
./logs/error.log
./logs/access.log

$ mkdir -p /data/project/logs
$ echo "创建成功"
创建成功

3.3 进阶实战:文本处理与日志分析

日志排查、数据处理是日常工作的核心场景,这里展示如何用 grepawksed 组合完成复杂任务。

3.3.1 核心原理

  • grep:按行搜索,输出匹配的行
  • awk:按列处理,支持条件判断和统计
  • sed:流编辑器,支持替换、删除、插入等操作
  • 管道 |:前一个命令的输出作为下一个命令的输入

3.3.2 完整代码实现

bash 复制代码
# 1. 查看日志中的错误信息
grep "ERROR" app.log

# 2. 忽略大小写搜索
grep -i "error" app.log

# 3. 显示匹配行的行号
grep -n "timeout" app.log

# 4. 反向匹配:显示不包含关键词的行
grep -v "DEBUG" app.log

# 5. 递归搜索目录下所有文件
grep -r "database" /etc/

# 6. 搭配管道:查看进程中包含 python 的条目
ps aux | grep python

# 7. awk 打印第 1 列和第 4 列(默认空格分隔)
awk '{print $1, $4}' access.log

# 8. awk 统计日志中各状态码出现次数
awk '{print $9}' access.log | sort | uniq -c | sort -rn

# 9. awk 条件过滤:只显示状态码为 500 的行
awk '$9 == 500 {print}' access.log

# 10. sed 将文件中所有 "localhost" 替换为 "127.0.0.1"
sed -i 's/localhost/127.0.0.1/g' config.conf

# 11. sed 删除文件中的空行
sed -i '/^$/d' config.conf

# 12. sed 删除注释行
sed -i '/^#/d' config.conf

# 13. 综合案例:统计 access.log 中各 IP 的请求数,排序输出
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

3.3.3 运行结果

bash 复制代码
$ grep "ERROR" app.log
2026-04-01 10:23:45 ERROR [main] Database connection failed
2026-04-01 10:24:12 ERROR [worker] Timeout after 30s

$ awk '{print $9}' access.log | sort | uniq -c | sort -rn
    1523 200
     342 404
      89 500
      45 403

$ awk '$9 == 500 {print}' access.log
192.168.1.100 - - [01/Apr/2026:10:23:45 +0800] "GET /api/user HTTP/1.1" 500 1024
192.168.1.101 - - [01/Apr/2026:10:24:12 +0800] "POST /api/data HTTP/1.1" 500 2048

$ awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10
    523 192.168.1.100
    342 192.168.1.101
    198 192.168.1.102
     89 192.168.1.103

4.拓展与应用方向

  • Shell 脚本编程 :将常用命令组合成 .sh 脚本,实现自动化部署、定时备份、监控告警等任务
  • 定时任务 crontab :用 crontab -e 配置周期性任务,如每天凌晨自动清理日志、定时备份数据库
  • vim 编辑器精通:服务器上编辑配置文件的必备工具,掌握基本的插入、保存、退出、查找替换操作
  • 环境变量管理 :理解 PATHexport.bashrc / .zshrc 的配置方式,自定义命令别名
  • 系统监控与诊断 :结合 df(磁盘)、free(内存)、iostat(IO)、netstat 做全面的系统健康检查
  • tmux / screen:终端复用工具,SSH 断线不丢失任务,多窗口并行操作
  • 权限与安全 :深入理解 sudoumask、SELinux 等权限机制,提升系统安全性

5.总结

其实吧,Linux 命令行看似门槛高,真实运用的高频命令只有那部分,任何代码语言都差不多。

建议从文件操作和 grep 开始上手,结合实际项目场景逐步积累,命令行是开发者的基本功,早练早受益。

相关推荐
a里啊里啊2 小时前
Docker安装全流程-包括修改默认安装路径
运维·docker·容器
信创DevOps先锋2 小时前
Gitee DevOps:国产化研发体系的破局者与赋能者
运维·安全·devops
RrEeSsEeTt2 小时前
【HackTheBox】- BoardLight 靶机学习
linux·学习·网络安全·渗透测试·kali·红队·hackthebox
ruiang2 小时前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
ZzzZZzzzZZZzzzz…2 小时前
MySQL备份还原方法1---mysqldump
linux·运维·数据库·mysql·还原备份
zfoo-framework2 小时前
minikube+docker desktop搭建k8s环境部署SpringBoot应用(仅仅是玩玩,端口映射很麻烦)
运维·docker·容器
果果燕2 小时前
ARM嵌入式学习(四)--- C语言应用:led、beep、key
linux·运维·算法
以太浮标2 小时前
华为eNSP模拟器 - 设备及技术栈场景全维度解析
运维·网络·网络协议·网络安全·华为·负载均衡·信息与通信
今夕资源网2 小时前
github开源桌面快速启动神器:ZTools 高性能 可扩展应用启动器,支持macOS/Windows,适配办公与开发需求
macos·github·工具箱·ztools·桌面启动·音速启动·高性能启动器