100 天 Linux 入门:从命令行到 Shell 脚本,告别"光标恐惧"
- [100 天 Linux 入门:从命令行到 Shell 脚本,告别"光标恐惧"](#100 天 Linux 入门:从命令行到 Shell 脚本,告别“光标恐惧”)
-
- 引言
- [第一阶段(第 1--30 天):破冰终端,玩转常用命令](#第一阶段(第 1–30 天):破冰终端,玩转常用命令)
- [第二阶段(第 31--70 天):深入系统,掌握核心逻辑](#第二阶段(第 31–70 天):深入系统,掌握核心逻辑)
- [第三阶段(第 71--100 天):脚本实战,实现自动化操作](#第三阶段(第 71–100 天):脚本实战,实现自动化操作)
- [Linux 学习进阶路径图](#Linux 学习进阶路径图)
- [100 天后,继续进阶的方向](#100 天后,继续进阶的方向)

🚀 个人主页 :有点流鼻涕 · CSDN
💬 座右铭 : "向光而行,沐光而生。"

打开 Linux 系统,屏幕上弹出一个黑底白字的窗口,闪烁的光标像一双等待评判的眼睛------不少零基础学习者到这一步就慌了神,手指悬在键盘上迟迟不敢落下,生怕输错一个字符就"搞崩系统"。这种被戏称为"光标恐惧"的情绪,是每个 Linux 新手的必经之路。但其实,这道看似冰冷的终端界面,藏着高效操作的大门。接下来的 100 天,我们将以"小步快跑、动手实践"为原则,从命令行基础到 Shell 脚本进阶,一步步驯服光标,让 Linux 成为你的实用工具,而非心理负担。
引言
我们的核心目标很明确:100 天后,你能从容应对 Linux 终端操作,理解系统运行逻辑,还能编写实用 Shell 脚本自动化处理重复任务,彻底和"光标恐惧"说再见。下面,就开启这段循序渐进的学习之旅吧。
第一阶段(第 1--30 天):破冰终端,玩转常用命令
这一阶段的核心是"熟悉"------打破对终端的陌生感,掌握最常用的基础命令,能在终端中自由导航、查看文件、搜索内容。记住:新手输错命令是常态,终端的报错信息不是"警告",而是"提示",大胆尝试就好。
我们先从最基础的导航命令开始,再逐步拓展到文件操作、内容搜索等功能,每天掌握 2--3 个命令,搭配实操巩固。以下是本阶段的核心命令汇总及实操示例:
核心命令清单
-
导航类:cd(切换目录)、ls(查看目录内容)、pwd(显示当前路径)
-
文件操作类:touch(创建文件)、mkdir(创建目录)、rm(删除文件/目录)、cp(复制)、mv(移动/重命名)
-
内容查看类:cat(查看文件内容)、head(查看头部内容)、tail(查看尾部内容)、less(分页查看)
-
搜索类:grep(文本搜索)、find(文件搜索)
-
权限类:chmod(修改文件权限,基础用法)
实操代码示例:批量搜索并查看目标内容
假设我们要在当前目录及子目录中,搜索所有包含"Linux"关键词的 .txt 文件,并查看这些文件的具体内容,可执行以下命令:
bash
#!/bin/bash
# 搜索当前目录及子目录下含"Linux"的.txt文件,输出文件路径
find ./ -name "*.txt" -exec grep -l "Linux" {} \;
# 对上一步找到的文件,逐一查看内容(按q退出查看)
for file in $(find ./ -name "*.txt" -exec grep -l "Linux" {} \;); do
echo "=== 正在查看文件:$file ==="
less $file
done
代码解释:find 命令负责定位文件,-name 指定后缀为 .txt,-exec 联动 grep 命令筛选含"Linux"的文件,-l 只输出文件名;循环结构逐个读取找到的文件,用 less 分页查看内容,避免一次性输出过多信息。本阶段重点是理解每个命令的作用,不必深究循环语法,能手动执行单条命令即可。
小提示:每天实操时,可新建一个专门的练习目录(如 mkdir linux-practice),在该目录下随意创建文件、写入内容,反复测试命令,即使删错文件也不会影响系统核心功能。
第二阶段(第 31--70 天):深入系统,掌握核心逻辑
度过了基础命令的破冰期,这一阶段我们要从"会用"升级到"理解"------搞懂 Linux 文件系统结构、权限管理原理、进程控制方法,以及文本处理技巧。这些内容是后续编写 Shell 脚本的基础,也是真正理解 Linux 系统的关键。
核心学习内容
-
文件系统:根目录(/)结构、绝对路径与相对路径、链接文件(软链接/硬链接)
-
权限管理:用户与组(user/group)、权限符号(r/w/x)、chmod 高级用法、chown(修改所有者)
-
进程控制:ps(查看进程)、top(实时监控进程)、kill(终止进程)、bg/fg(后台/前台进程)
-
文本处理:管道(|)、重定向(>、>>、<)、sed、awk 基础用法

实操代码示例:文本处理与权限调整
假设我们有一个名为 data.txt 的文件,内容杂乱,需要提取其中以"日期:"开头的行,去重后保存到新文件,再调整新文件权限,仅允许所有者读写、同组用户只读:
bash
#!/bin/bash
# 提取以"日期:"开头的行,去重后写入 new_data.txt(重定向用法)
grep "^日期:" data.txt | uniq > new_data.txt
# 查看新文件内容
cat new_data.txt
# 调整文件权限:所有者r/w,同组r,其他无权限(数字权限法)
chmod 640 new_data.txt
# 查看权限调整结果(ls -l 显示详细权限)
ls -l new_data.txt
代码解释:管道(|)将 grep 的输出作为 uniq 的输入,实现"筛选-去重"联动;> 表示覆盖写入新文件(>> 为追加);chmod 640 中,6 对应所有者 rw(4+2)、4 对应同组 r(4)、0 对应其他无权限。通过这串命令,能熟练掌握管道、重定向与权限管理的核心用法。
小提示:本阶段可尝试用 top 命令监控系统进程,观察打开浏览器、终端等操作时进程的变化;也可修改自己练习文件的权限,测试不同用户(如新建测试用户)对文件的访问效果,加深对权限逻辑的理解。
第三阶段(第 71--100 天):脚本实战,实现自动化操作
这是最终进阶阶段------将前 70 天掌握的知识整合,学习 Shell 脚本编写,用代码实现重复任务的自动化。从简单的脚本片段到完整的实用工具,你会发现 Linux 终端的真正威力:一次编写,多次复用,大幅提升效率。
核心学习内容
-
脚本基础:脚本文件格式(#!/bin/bash)、执行方式(chmod +x、bash 脚本名)
-
变量:环境变量、自定义变量、位置参数(1、 2... )、特殊变量( 2...)、特殊变量( 2...)、特殊变量(?、$)
-
流程控制:条件判断(if-else、case)、循环(for、while)
-
函数:自定义函数、函数参数、返回值
-
错误处理:脚本容错、日志输出、异常捕获
实操代码示例:完整自动化备份脚本
以下是一个实用的文件备份脚本,可自动备份指定目录到目标路径,支持日志记录、备份文件压缩,还能判断备份是否成功,符合 Shell 脚本最佳实践(含详细注释):
bash
#!/bin/bash
# 自动化备份脚本:备份指定目录到目标路径,生成压缩包并记录日志
# 定义自定义变量
SOURCE_DIR="/home/user/linux-practice" # 要备份的源目录
TARGET_DIR="/home/user/backup" # 备份目标目录
BACKUP_NAME="backup_$(date +%Y%m%d_%H%M%S).tar.gz" # 备份文件名(含时间戳,避免重复)
LOG_FILE="$TARGET_DIR/backup_log.txt" # 日志文件路径
# 确保目标目录和日志文件存在
if [ ! -d "$TARGET_DIR" ]; then
mkdir -p "$TARGET_DIR" # -p 确保父目录不存在时也能创建
fi
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# 记录备份开始时间
echo "=== 备份开始:$(date +%Y-%m-%d %H:%M:%S) ===" >> "$LOG_FILE"
# 执行备份:压缩源目录到目标路径,忽略错误信息(2>/dev/null)
tar -zcf "$TARGET_DIR/$BACKUP_NAME" "$SOURCE_DIR" 2>/dev/null
# 判断备份是否成功($? 为上一条命令的返回值,0表示成功)
if [ $? -eq 0 ]; then
echo "备份成功!备份文件:$TARGET_DIR/$BACKUP_NAME" >> "$LOG_FILE"
else
echo "备份失败!请检查源目录是否存在:$SOURCE_DIR" >> "$LOG_FILE"
exit 1 # 退出脚本,返回错误状态码
fi
# 记录备份结束时间
echo "=== 备份结束:$(date +%Y-%m-%d %H:%M:%S) ===" >> "$LOG_FILE"
echo "----------------------------------------" >> "$LOG_FILE"
# 可选:保留最近7天的备份文件,删除更早的文件
find "$TARGET_DIR" -name "backup_*.tar.gz" -mtime +7 -delete >> "$LOG_FILE" 2>&1
echo "已删除7天前的旧备份文件" >> "$LOG_FILE"
脚本使用方法:1. 将上述代码保存为 backup.sh;2. 执行 chmod +x backup.sh 赋予执行权限;3. 运行 ./backup.sh 启动备份,也可通过 crontab 设置定时备份(如每天凌晨2点执行)。该脚本包含日志记录、容错处理、自动清理旧备份等功能,可直接用于日常文件备份,也可根据需求修改源目录、目标目录等参数。
Linux 学习进阶路径图
从陌生到熟练,我们的学习路径可总结为以下流程,每一步都层层递进,扎实落地:
熟悉终端:克服光标恐惧,掌握基本操作
掌握基础命令:导航、文件操作、搜索
理解重定向与管道:实现命令联动与文本处理
编写简单脚本:用变量、循环实现基础自动化
构建实用工具:融入权限、进程、错误处理,落地实用需求
100 天后,继续进阶的方向
坚持 100 天的实操练习,你已经告别了"光标恐惧",成为能熟练运用 Linux 终端和 Shell 脚本的使用者。但 Linux 的世界远不止于此,以下这些资源能帮你继续深耕:
-
TLDR:简洁的命令行手册,提供命令的常用示例,避免冗长文档,适合快速查询(安装:sudo apt install tldr)。
-
ExplainShell:在线工具(https://explainshell.com/),输入任意命令后,会逐段解析命令含义,帮你理解复杂命令的构成。
-
Bash Guide:由 Linux 社区维护的 Bash 脚本指南,覆盖从基础到高级的脚本技巧,适合系统学习。
-
Crontab 定时任务:将编写好的 Shell 脚本设置为定时执行,实现全自动化运维(如定时备份、日志清理)。
-
服务器实操:在云服务器(如阿里云、腾讯云)上部署 Linux 系统,尝试搭建网站、数据库,将知识落地到真实场景。
最后想对你说:学习 Linux 没有捷径,"光标恐惧"的本质是对未知的恐惧,而破解恐惧的唯一方法就是动手。每天花 30--60 分钟实操,100 天后,你会发现那个曾经让你紧张的闪烁光标,已经变成了得心应手的工具。坚持下去,你会在 Linux 的世界里,解锁更多高效操作的可能。现在,就打开终端,从第一条 ls 命令开始吧!
