初级程序员必备的十大技能之基础 Linux 命令(二)

简介: 教程来源 http://vrhyh.cn/ 本节系统介绍Linux文件内容查看与处理核心命令:`cat`快速显示/合并文件;`less`/`more`分页浏览;`head`/`tail`查看首尾及实时日志;`grep`精准搜索与过滤;`sed`流式文本替换删除;`awk`结构化字段处理;`vim`高效终端编辑。覆盖日常运维、日志分析与脚本开发必备技能。

三、文件内容查看与处理

3.1 cat - 查看完整文件

cat file.txt                    # 输出整个文件
cat file1.txt file2.txt         # 合并输出多个文件
cat -n file.txt                 # 显示行号
cat -b file.txt                 # 显示非空行行号
cat -s file.txt                 # 压缩连续空行为一行

# 快速创建文件
cat > newfile.txt
输入内容...
按 Ctrl+D 保存

# 合并文件
cat header.html content.html footer.html > full.html

3.2 less/more - 分页查看

less file.txt                   # 分页查看(推荐,功能更强)
more file.txt                   # 分页查看(较老)

# less 快捷键
Space / f       # 下一页
b               # 上一页
/pattern        # 向下搜索 pattern
?pattern        # 向上搜索 pattern
n               # 下一个匹配
N               # 上一个匹配
g               # 跳转到文件开头
G               # 跳转到文件结尾
q               # 退出

3.3 head/tail - 查看开头/结尾

head file.txt                   # 前10行
head -20 file.txt               # 前20行
head -n 20 file.txt             # 同上

tail file.txt                   # 后10行
tail -20 file.txt               # 后20行
tail -f log.txt                 # 实时跟踪文件变化(日志监控最常用)
tail -f -n 100 app.log          # 显示最后100行并持续跟踪

# 显示中间部分
head -50 file.txt | tail -20    # 显示 31-50 行

3.4 grep - 搜索文本

# 基础搜索
grep "error" log.txt            # 搜索包含 error 的行
grep -i "error" log.txt         # 忽略大小写
grep -r "TODO" ./src            # 递归搜索目录
grep -n "error" log.txt         # 显示行号
grep -v "debug" log.txt         # 反向搜索(不包含 debug 的行)

# 正则表达式
grep "^ERROR" log.txt           # 以 ERROR 开头的行
grep "ERROR$" log.txt           # 以 ERROR 结尾的行
grep "[0-9]\+" log.txt          # 包含数字的行
grep -E "error|warning" log.txt # 多个关键词(扩展正则)
egrep "error|warning" log.txt   # 等价于 grep -E

# 上下文
grep -A 3 "error" log.txt       # 显示匹配行及其后3行
grep -B 2 "error" log.txt       # 显示匹配行及其前2行
grep -C 5 "error" log.txt       # 显示匹配行及其前后5行

# 统计与过滤
grep -c "error" log.txt         # 统计匹配行数
grep -l "error" *.log           # 只显示包含匹配的文件名
grep -L "error" *.log           # 只显示不包含匹配的文件名

# 实际案例
# 查找所有未使用的函数调用
grep -r "oldFunction" --include="*.js" --exclude-dir=node_modules ./

# 查看除注释外的配置行
grep -v "^#" /etc/nginx/nginx.conf | grep -v "^$"

3.5 sed - 流编辑器

# 替换文本
sed 's/old/new/' file.txt       # 替换每行第一个 old
sed 's/old/new/g' file.txt      # 替换所有 old
sed 's/old/new/2' file.txt      # 替换每行第二个 old
sed 's/old/new/gi' file.txt     # 忽略大小写

# 指定行操作
sed '3s/old/new/' file.txt      # 只替换第3行
sed '3,6s/old/new/g' file.txt   # 替换3-6行
sed '/pattern/s/old/new/g' file # 匹配 pattern 的行才替换

# 删除行
sed '3d' file.txt               # 删除第3行
sed '3,6d' file.txt             # 删除3-6行
sed '/^$/d' file.txt            # 删除空行
sed '/pattern/d' file.txt       # 删除匹配的行

# 插入/追加
sed '3i\新行内容' file.txt      # 在第3行前插入
sed '3a\新行内容' file.txt      # 在第3行后追加

# 原地修改(直接修改文件)
sed -i 's/old/new/g' file.txt
sed -i.bak 's/old/new/g' file.txt  # 备份原文件

# 实际案例
# 批量替换配置文件中的端口
sed -i 's/port=8080/port=3000/g' config.properties

# 删除 HTML 标签
sed 's/<[^>]*>//g' index.html

3.6 awk - 文本处理语言

# 基础结构:awk '{pattern + action}' file

# 打印列
awk '{print $1}' file.txt       # 打印第1列
awk '{print $1, $3}' file.txt   # 打印第1、3列
awk '{print NF}' file.txt       # 打印每行列数
awk '{print $NF}' file.txt      # 打印最后一列

# 指定分隔符
awk -F',' '{print $1}' data.csv # CSV 文件,逗号分隔
awk -F':' '{print $1}' /etc/passwd

# 条件过滤
awk '/error/ {print $0}' log.txt   # 匹配 error 的行
awk '$3 > 100 {print $0}' data.txt # 第3列大于100
awk 'NR>=10 && NR<=20' file.txt    # 第10-20行

# 内置变量
NR  # 当前行号
NF  # 当前行的字段数
$0  # 整行内容
$1  # 第1个字段

# 计算
awk '{sum+=$1} END {print sum}' numbers.txt   # 求和
awk '{sum+=$1} END {print sum/NR}' numbers.txt # 平均值
awk '{count[$1]++} END {for(i in count) print i, count[i]}' log.txt  # 统计频率

# 格式化输出
awk '{printf "%-10s %5d\n", $1, $2}' data.txt

# 实际案例
# 统计访问日志中每个 IP 的访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

# 找出 CPU 使用率超过 80% 的进程
ps aux | awk '$3 > 80 {print $2, $11}'

3.7 vim - 终端编辑器

# 三种模式
- 普通模式:浏览代码,执行命令
- 插入模式:输入文本
- 命令模式:执行保存、退出等操作

# 进入/退出
vim file.txt                   # 打开文件
:w                             # 保存
:q                             # 退出
:wq                            # 保存并退出
:q!                            # 强制退出(不保存)

# 移动(普通模式)
h/j/k/l                        # 左/下/上/右
w                              # 下一个单词开头
b                              # 上一个单词开头
0                              # 行首
$                              # 行尾
gg                             # 文件开头
G                              # 文件结尾
Ctrl+f / Ctrl+b                # 下/上翻页

# 编辑
i                              # 在光标前插入
a                              # 在光标后插入
o                              # 在下方新行插入
dd                             # 删除当前行
yy                             # 复制当前行
p                              # 粘贴
u                              # 撤销
Ctrl+r                         # 重做

# 搜索
/pattern                       # 向下搜索
?pattern                       # 向上搜索
n                              # 下一个匹配
N                              # 上一个匹配

# 替换
:%s/old/new/g                  # 全局替换
:3,6s/old/new/g                # 3-6行替换

# 配置 ~/.vimrc
set number                     # 显示行号
set tabstop=2                  # Tab 宽度2空格
set expandtab                  # Tab 转空格
set syntax=on                  # 语法高亮

来源:
http://bgnno.cn/

相关文章
|
28天前
|
关系型数据库 MySQL 测试技术
JOIN、IN、EXISTS谁最快?实测三种写法性能差异与执行计划深度剖析
本文用MySQL 8.0实测拆解`IN`/`EXISTS`/`JOIN`子查询性能:从执行计划、半连接优化、临时表开销等底层原理出发,结合10万+100万数据实测(`EXISTS`最快95ms),给出三条选型铁律——告别盲从“最佳实践”,只选最适配业务与数据的写法!
|
28天前
|
人工智能 Linux API
全平台零门槛:Win11、Mac、Linux 通用 Hermes Agent 安装教程
Hermes Agent是Nous Research开源的自进化AI助手(MIT协议),越用越懂你。支持多工具并行、自动记忆习惯,Python编写,v0.13.0版。兼容Win/macOS/Linux/Docker,国内用户可配清华镜像快速部署,需API密钥(如Kimi)。
|
Java 数据库连接 Nacos
Nacos报错问题之启动不了如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
2515 2
|
28天前
|
人工智能 IDE API
阿里云DevBox一键部署Hermes Agent与Claude Code:从零搭建AI驱动开发闭环完整教程
2026年,AI驱动开发已经从辅助工具进化为可独立完成全流程任务的数字化开发团队。Hermes Agent与Claude Code的组合,正是当前最成熟、最稳定、最贴近真实工程场景的AI协同开发架构。阿里云基于云开发机DevBox推出的一键部署方案,让普通开发者无需关心底层环境配置,几分钟内即可拥有一支具备需求分析、方案设计、代码编写、调试优化、经验沉淀能力的全天候AI开发团队。
296 5
|
1月前
|
数据可视化 网络协议 测试技术
VSPING 赋能网站测试,零门槛排查网站问题,新手也能轻松上手
VSPING是一站式智能网站测试工具,覆盖200+国内外节点,支持双端测速、全协议连通性、DNS及域名污染检测。无需技术基础,输入网址一键测试,可视化报告让结果一目了然,助您零门槛规避上线风险,保障访问流畅与口碑。(239字)
250 5
|
5天前
|
人工智能 JavaScript 编译器
限时免费:云效 AI 代码评审新增跨文件感知,改一处查全局
云效 AI 代码评审新增跨文件感知能力,免费开放。改了一个函数,AI 自动追踪所有调用方,提 MR 时就能发现那些藏在 Diff 之外的风险。实测召回率提升 19 个百分点。
|
5天前
|
存储 消息中间件 SQL
Java在分布式链路追踪系统(Jaeger)中的实现与集成
微服务架构中,一个用户请求可能跨越多达几十个服务。当出现延迟增加或错误时,难以定位具体哪个服务出问题。
123 5
|
1月前
|
人工智能 架构师 测试技术
AI编程王炸组合:顶级三剑客 OpenSpec 定方向,Superpowers定纪律,Harness定协同
AI编程王炸组合:顶级三剑客 OpenSpec 定方向,Superpowers定纪律,Harness定协同
|
28天前
|
搜索推荐 程序员
初级程序员必备的十大技能之问题排查与自学能力(一)
教程来源 http://qeext.cn/ 本文系统讲解程序员两大终极能力:问题排查与自学方法。涵盖六步调试法、二分/排除/对比定位技巧、错误解读、高效搜索、文档阅读及结构化学习路径,助你从“能写代码”进阶为“稳解难题、快学新技术”的高价值工程师。
|
1月前
|
人工智能 前端开发 Cloud Native
2026 前端研发效能白皮书:如何利用智能开发助手提升页面构建速度?
在 2026 年的前端开发生态中,页面构建已从手写代码转向“设计即生产”的智能化模式。本文立足阿里云开发者社区,评测年度 AI 编程辅助工具,揭示如何通过多模态解析与智能体协作实现前端产出的量级增长。
183 6