【免费下载链接】linuxupskillchallenge
Learn the skills required to sysadmin a remote Linux server from the commandline.
Linux Upskill Challenge 是一门免费开源的 Linux 服务器管理课程,专注命令行实战。本文带你完成 Day 11 与 Day 12 两课:用find、locate、grep高效查找文件与文件内容,再用SFTP在本地电脑和远程服务器之间安全传输文件,是 Linux 新手快速提升运维技能的关键一步。📚
Day 11:Linux 文件搜索的 4 个核心命令
"我知道这个文件存在,却找不到它在哪"——这是新手管理 Linux 服务器时最常见的挫败感。Day 11 一课教你 4 个查找工具:locate、find、grep、which,原文见 docs/11.md。
locate 命令:基于索引的最快文件查找方法
locate直接查本地索引数据库,速度极快:
$ locate access.log /var/log/apache2/access.log /var/log/apache2/access.log.1 /var/log/apache2/access.log.2.gz两个注意点(详见 docs/11.md):
- 没安装怎么办:
sudo apt install plocate - 索引可能过期:索引由
updatedb每晚定时生成,刚创建的文件可能查不到,可手动执行sudo updatedb刷新
find 命令用法:按名称、时间、大小精确搜索
find直接扫描文件系统,支持按名称、大小、修改时间等条件组合搜索(详见 docs/11.md):
find /var -name access.log # 按文件名找 find /home -mtime -3 # 找 /home 下最近 3 天修改过的文件💡 实战彩蛋:Day 10 的定时备份任务里就用到了find——每天自动删除 7 天前的旧备份,命令见 docs/10.md。学会find,备份清理就自动化了。
| 对比项 | locate | find |
|---|---|---|
| 原理 | 查索引数据库 | 实时扫描文件系统 |
| 速度 | 极快 | 较慢(范围越大越慢) |
| 结果时效 | 可能滞后 | 实时准确 |
| 搜索条件 | 仅文件名模糊匹配 | 名称、时间、大小、权限等 |
| 适用场景 | 快速定位单个文件 | 复杂条件批量查找 |
grep -R 递归搜索文件内容技巧
知道某个配置项"存在于某处"但记不清具体文件时,用grep的递归模式-R整个目录树搜索(详见 docs/11.md):
grep -R -i "PermitRootLogin" /etc/*-i表示忽略大小写,配置写成Permitrootlogin也能找到。注意它只适用于纯文本文件,最适合/etc和/var/log;压缩日志(如access.log.2.gz)则用zgrep搜索。
which 命令快速定位可执行文件
输入nano会启动编辑器,但它的程序文件到底在哪?用which查看:
echo $PATH # 查看系统查找命令的目录列表 which nano # 输出:/usr/bin/nano多试几个命令(grep、vi、reboot),你会发现它们通常都在名叫bin的子目录里。
Day 11 任务:找出所有包含 "Permission" 的文件
用今天学的组合拳完成练习(任务原文见 docs/11.md):在服务器各目录中,找出所有文件名或内容包含单词 "Permission" 的文件。
Day 12:用 SFTP 安全传输文件
有了自己的服务器后,下一步就是"把文件搬上去、把日志搬下来":备份文件下载到桌面、网页图片上传到服务器等(原文见 docs/12.md)。
SFTP 是什么:为什么文件传输首选 SFTP 而不是 FTP
Linux 服务器可选的文件共享协议很多:SMB、WebDAV、FTP、scp、rsync、SFTP 等(详见 docs/12.md)。对"本地电脑 ↔ 服务器"的日常传输,课程推荐SFTP(基于 SSH 协议的文件传输),核心优势:
- ✅无需额外配置:只要能
ssh登录,就能用 SFTP,不用在服务器上装任何服务 - ✅传输加密:传统 FTP 以明文发送账号密码,在公共网络下可能被"抓包"窃取,SFTP 全程走 SSH 加密通道
- ✅支持浏览目录、创建/删除文件夹,管理体验完整
- ✅不扩大攻击面:不开新端口、不启新服务,防火墙策略通常也放行
SFTP 客户端配置:服务器、端口、协议怎么填
不同系统的客户端选择(详见 docs/12.md):
| 系统 | 推荐客户端 |
|---|---|
| Linux / macOS | 系统自带命令行sftp;Linux 桌面版还可在文件管理器中按Ctrl+L输入sftp://用户名@服务器地址直接连接 |
| Windows | WinSCP 或 FileZilla |
| macOS | CyberDuck 或 FileZilla |
连接时只需填 3 项:SERVER填服务器 IP 地址、PORT填22、PROTOCOL选SFTP或SSH。这类客户端通常也支持 scp、FTP 等协议,注意不要选错。
上传、下载文件与同步备份:Day 12 必练任务
课程安排了 4 个动手任务(见 docs/12.md):
- 下载:把服务器上 home 目录和
/var/log中的文件拷到本地桌面 - 上传:在服务器 home 下建
images文件夹,把本地图片传上去 - 感受权限边界:切到根目录尝试创建
images文件夹——以普通用户登录会因权限不足而失败,只有自己的 home 目录才有完整权限 - 配合 sudo 移动文件:上传完成后,通过
ssh登录并用sudo把文件移动到目标位置
小技巧:大文件批量同步场景下,课程还延伸介绍了
rsync高效增量同步,可作为进阶方向(见 docs/12.md)。
常见问题速查
Q:find搜索全系统时满屏 "Permission denied" 怎么办?普通用户没有权限进入的部分目录会报错。加sudo以 root 身份执行即可;或用管道过滤报错:find /var -name access.log 2>&1 | grep -vi "Permission denied"。
Q:locate查不到刚创建的文件?索引默认每晚由 cron 更新,手动执行sudo updatedb刷新后即可查到。
小结:2 天学会 Linux 文件查找与传输
- 快查单个文件→
locate(记得索引可能过期) - 复杂条件批量找→
find(名称、时间、大小任意组合) - 找文件里的内容→
grep -R(压缩文件用zgrep) - 搬文件→ SFTP 客户端,IP + 端口 22 + SFTP 协议即可
完成这两课,你就具备了日常管理远程 Linux 服务器的核心"找文件、传文件"能力。继续 docs/index.md 的课程目录,下一站是 Day 13 用户与组管理;更多背景可参考 docs/how-this-works.md 中的 FAQ。🚀
【免费下载链接】linuxupskillchallenge
Learn the skills required to sysadmin a remote Linux server from the commandline.
相关推荐
解密Inode与符号链接:Linux Upskill Challenge Day 19 Linux文件系统深度解析
解密Inode与符号链接:Linux Upskill Challenge Day 19 Linux文件系统深度解析 本文带你完成 Linux Upskill C
日志轮转与故障排查:Linux Upskill Challenge Day 18 logrotate实战运维指南
日志轮转与故障排查:Linux Upskill Challenge Day 18 logrotate实战运维指南 在 Linux Upskill Challen
软件架构模式全景解读:从分层、事件驱动到微内核、微服务与基于空间的架构
软件架构模式全景解读:从分层、事件驱动到微内核、微服务与基于空间的架构 导读 本文基于开源仓库 android tech frontier 中收录的《软件架构模
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考