☰
高效查找文件与传输文件:Linux Upskill Challenge Day 11-12 find/locate与SFTP实战指南
2026/10/25 1:49:37 网站建设 项目流程

【免费下载链接】linuxupskillchallenge

Learn the skills required to sysadmin a remote Linux server from the commandline.

项目地址:https://gitcode.com/gh_mirrors/lin/linuxupskillchallenge
点击查看免费下载

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,备份清理就自动化了。

对比项locatefind
原理查索引数据库实时扫描文件系统
速度极快较慢(范围越大越慢)
结果时效可能滞后实时准确
搜索条件仅文件名模糊匹配名称、时间、大小、权限等
适用场景快速定位单个文件复杂条件批量查找

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://用户名@服务器地址直接连接
WindowsWinSCP 或 FileZilla
macOSCyberDuck 或 FileZilla

连接时只需填 3 项:SERVER填服务器 IP 地址、PORT填22、PROTOCOL选SFTP或SSH。这类客户端通常也支持 scp、FTP 等协议,注意不要选错。

上传、下载文件与同步备份:Day 12 必练任务

课程安排了 4 个动手任务(见 docs/12.md):

  1. 下载:把服务器上 home 目录和/var/log中的文件拷到本地桌面
  2. 上传:在服务器 home 下建images文件夹,把本地图片传上去
  3. 感受权限边界:切到根目录尝试创建images文件夹——以普通用户登录会因权限不足而失败,只有自己的 home 目录才有完整权限
  4. 配合 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.

项目地址:https://gitcode.com/gh_mirrors/lin/linuxupskillchallenge
点击查看免费下载
上一篇:DiPlay无线CarPlay怎么连?车载热点与Wi-Fi Direct选择指南,一步到位稳定连接
下一篇:如何30分钟跑通Jumper?从零安装MuJoCo强化学习环境的最简教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询