惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
F
Full Disclosure
I
InfoQ
Jina AI
Jina AI
GbyAI
GbyAI
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
腾讯CDC
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
B
Blog
A
About on SuperTechFans
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
C
Check Point Blog
J
Java Code Geeks
L
LangChain Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
爱范儿
爱范儿
Recorded Future
Recorded Future
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 聂微东
量子位
G
Google Developers Blog
Vercel News
Vercel News
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

阮一峰的网络日志

科技爱好者周刊(第 396 期):互联网通信的替代方案 科技爱好者周刊(第 396 期):互联网通信的替代方案 - 阮一峰的网络日志 科技爱好者周刊(第 395 期):软件开发的第三种方式 科技爱好者周刊(第 395 期):软件开发的第三种方式 - 阮一峰的网络日志 科技爱好者周刊(第 393 期):脑腐状态 科技爱好者周刊(第 392 期):axios 投毒与好莱坞式骗术 科技爱好者周刊(第 391 期):AI 的贫富分化 科技爱好者周刊(第 390 期):没有语料,大模型就是智障 套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的"套壳"疑云 科技爱好者周刊(第 389 期):未来如何招聘程序员 科技爱好者周刊(第 388 期):测试是新的护城河 零安装的"云养虾":ArkClaw 使用指南 科技爱好者周刊(第 387 期):你是领先的 科技爱好者周刊(第 386 期):当外卖员接入 AI 字节全家桶 Seed 2.0 + TRAE 玩转 Skill 科技爱好者周刊(第 385 期):马斯克害怕中国车企吗? 智谱旗舰 GLM-5 实测:对比 Opus 4.6 和 GPT-5.3-Codex 科技爱好者周刊(第 384 期):为什么软件股下跌 科技爱好者周刊(第 383 期):你是第几级 AI 编程 Kimi 的一体化,Manus 的分层 科技爱好者周刊(第 382 期):独立软件的黄昏 AI native Workspace 也许是智能体的下一阶段 科技爱好者周刊(第 381 期):中国 AI 大模型领导者在想什么 科技爱好者周刊(第 380 期):为什么人们拥抱"不对称收益" 科技爱好者周刊(第 379 期):《硅谷钢铁侠》摘录 我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验 科技爱好者周刊(第 378 期):预测是新的互联网热点 科技爱好者周刊(第 377 期):14万美元的贫困线 科技爱好者周刊(第 376 期):太空数据中心的争议 科技爱好者周刊(第 375 期):一扇门的 Bug 终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了 科技爱好者周刊(第 374 期):6GHz 的问题 VS Code 使用国产大模型 MiniMax M2 教程 科技爱好者周刊(第 373 期):数据模型是新产品的核心 国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例 科技爱好者周刊(第 372 期):软件界面如何设计 大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5 科技爱好者周刊(第 371 期):一个乐观主义者的专访 科技爱好者周刊(第 370 期):正确的代码高亮 错误处理:异常好于状态码 科技爱好者周刊(第 369 期):Tim 与罗永浩的对谈 科技爱好者周刊(第 368 期):不要这样管理软件团队 一天之内,智谱和 Anthropic 都发了最强编程模型 科技爱好者周刊(第 367 期):Nano Banana 的几个妙用 科技爱好者周刊(第 366 期):旧金山疯狂的 AI 广告 科技爱好者周刊(第 365 期):流量变现正在崩塌 科技爱好者周刊(第 364 期):最难还原的魔方 科技爱好者周刊(第 363 期):最好懂的神经网络解释 科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计 科技爱好者周刊(第 361 期):暗网 Tor 安全吗? 科技爱好者周刊(第 360 期):Dan Wang 的新书 科技爱好者周刊(第 359 期):Palantir 值得关注 科技爱好者周刊(第 358 期):如何拯救一家濒临倒闭的创业公司 扣子空间网页设计,是在挑战 V0 吗? 《唐纵日记》摘录 科技爱好者周刊(第 357 期):稳定币的博弈 科技爱好者周刊(第 356 期):公司强推 AI 编程,我该怎么办 科技爱好者周刊(第 355 期):两本《芯片战争》 科技爱好者周刊(第 354 期):8000mAh 手机电池,说明了什么? 科技爱好者周刊(第 353 期):苹果的"液态玻璃"是为了 AR 科技爱好者周刊(第 352 期):Bug 追踪系统的正确样子 科技爱好者周刊(第 351 期):GitHub Issues(几乎)是最好的笔记应用 科技爱好者周刊(第 350 期):Java 三十周年 科技爱好者周刊(第 349 期):神经网络算法的发明者 科技爱好者周刊(第 348 期):李飞飞,从移民到 AI 明星 科技爱好者周刊(第 347 期):冷启动的破解之道 科技爱好者周刊(第 346 期):未来就是永恒感的丧失 科技爱好者周刊(第 345 期):HDMI 2.2 影音可能到头了 科技爱好者周刊(第 344 期):制造业正在"零工化" 科技爱好者周刊(第 343 期):如何阻止 AI 爬虫 科技爱好者周刊(第 342 期):面试的 AI 作弊----用数字人去面试 科技爱好者周刊(第 341 期):低代码编程,恐怕不会成功 科技爱好者周刊(第 340 期):技术炒作三十年 科技爱好者周刊(第 339 期):代币是什么 科技爱好者周刊(第 338 期):重新思考 6G 科技爱好者周刊(第 337 期):互联网创业几乎没了 科技爱好者周刊(第 336 期):面对 AI,互联网正在衰落 科技爱好者周刊(第 335 期):年底的未来已来 科技爱好者周刊(第 334 期):年终笔记四则 科技爱好者周刊(第 333 期):一切都要支付两次 科技爱好者周刊(第 332 期):西蒙·威利森的年终总结,梁文锋的访谈 科技爱好者周刊(第 331 期):你可能是一个 NPC 科技爱好者周刊(第 330 期):李开复梳理人工智能 科技爱好者周刊(第 329 期):示意图利器 D2 科技爱好者周刊(第 328 期):AI 模型不是一门好生意 科技爱好者周刊(第 327 期):没有链接的互联网 科技爱好者周刊(第 326 期):世界没有那么多财富 科技爱好者周刊(第 325 期):VS Code 编辑器的下一站是 Zed? 科技爱好者周刊(第 324 期):人类已知的最大质数 科技爱好者周刊(第 323 期):技术公司的口号比拼 科技爱好者周刊(第 322 期):内容行业的内幕 科技爱好者周刊(第 321 期):傅盛回忆录 科技爱好者周刊(第 320 期):乒乓仓 科技爱好者周刊(第 319 期):如何拍出爆款视频 科技爱好者周刊(第 318 期):创业咖啡馆的记忆 科技爱好者周刊(第 317 期):驴子、老虎和狮子的寓言 科技爱好者周刊(第 316 期):你一生的故事 科技爱好者周刊(第 315 期):一份谷歌离职报告 科技爱好者周刊(第 314 期):《黑神话:悟空》可以产业化吗? 科技爱好者周刊(第 313 期):如果新加坡没有空调
Termux 入门教程:架设手机 Server 下载文件
阮一峰 · 2019-07-23 · via 阮一峰的网络日志

手机文件,比如照片和视频,如何下载到桌面电脑?

普通用户可以使用手机线,将手机和电脑连起来。作为开发者,其实有更方便的方法,就是在手机架设一个 HTTP 服务,然后从桌面浏览器访问手机。

本文讲解如何使用 Termux 架设手机的 HTTP 服务器。

一、Termux 是什么?

Termux 是一个安卓手机的 Linux 模拟器,可以在手机上模拟 Linux 环境。它提供一个命令行界面,让用户与系统互动。

它就是一个普通的手机 App,可以从应用商店下载安装。不需要 root 权限,也不需要设置,打开就能使用。

二、环境准备

打开 Termux 以后,就是一个全屏的命令行界面。虽然可以用手机的触摸键盘输入命令,但还是推荐使用蓝牙键盘。

第一步,更新一下系统,保证使用最新版本。


# 连接远程仓库,获取软件包信息
$ apt update

# 更新本地已经安装的软件包
$ apt upgrade

第二步,测试系统。


# 安装 sl 软件包
$ apt install sl

# 运行
$ sl

上面命令安装测试包sl,然后运行。如果一切正常,会显示一个火车的命令行动画。

第三步,访问本机存储。

手机 App 默认只能访问自己的数据,如果要访问手机的存储,需要请求权限。


$ termux-setup-storage

执行上面的命令以后,会跳出一个对话框,询问是否允许 Termux 访问手机存储,点击"允许"。

这会在当前目录下生成一个storage子目录,它是手机存储的符号链接,后文下载文件就是到这个目录去下载。

三、软件包管理

除了apt命令,Termux 还提供pkg命令进行软件包管理。


# 安装软件包
$ pkg install [package name]

# 卸载软件包
$ pkg uninstall [package name]

# 列出所有软件包
$ pkg list-all

其实,pkg底层就是apt,只是运行前会执行一次apt update,保证安装的是最新版本。所以,apt install sl基本等同于pkg install sl

Termux 支持的软件包清单,可以到这里查看。

四、Node.js

下面,安装 Node.js。


$ apt install nodejs

安装完成后,就可以运行 JavaScript 脚本了。比如,新建一个脚本hello.js


// hello.js
console.log('hello world');

然后,执行这个脚本。


$ node hello.js
hello world

五、架设 Server

现在,通过 Node.js 运行 HTTP Server。

首先,安装 npm 模块http-server


$ npm install -g http-server

然后,运行 Server。


$ http-server

正常情况下,命令行会提示 Server 已经在 8080 端口运行了,并且还会提示外部可以访问的 IP 地址。

举例来说,手机的局域网 IP 是 192.168.2.6,那么我们通过桌面电脑的浏览器访问http://192.168.2.6:8080,就可以看到 Termux 的根目录了。进入下面的storage子目录,就可以下载手机文件了。

如果手机和电脑不在同一个局域网,那可以打开手机的热点功能,让桌面电脑通过手机热点上网,再访问手机的 HTTP Server。

这里顺便提一下,下面的命令可以从命令行查看手机的 IP 地址。


$ apt install net-tools
$ ifconfig

六、Python

不使用 Node.js,而使用其他方法架设 HTTP Server 也是可以的。下面演示 Python 的方法。


$ apt install python
$ python -m http.server 8080

然后,桌面电脑就可以访问手机了。

Termux 是非常强大的工具,除了上面的方法,还可以架设 Apache 服务器,或者通过其他途径(FTP、SSH、Rsync)访问手机,这里就不详细介绍了。

(完)