Termux的使用
手机上搞搞 Linux?我劝你三思。在此特别同意Termux第三方中文维基
的介绍
在看这个维基/使用Termux之前,请先学好Linux基础!而不是看到某些文章/视频就跃跃欲试!
Termux 是什么
Termux is a terminal emulator and Linux environment bringing powerful terminal access to Android.
Termux 是运行在 Android 上的 terminal。不需要root,运行于内部存储(不在SD卡上)。
自带了一个包管理器,可以安装许多现代化的开发和系统维护工具。比如:
neovim、tmux、zsh、clang、gcc…
自带的包管理器 pkg
实际是给 apt
又包了一层,感觉没啥必要,直接用 apt
就可以了。
安装及换源
我们打开Termux 官网(中文),可以看到我们能在 F-droid 或 Github 上下载最新版本。下载安装后打开界面如下图。
接下来为了下载方便就先要换源了,换源过程 教育网镜像站已经写的很清楚了,按照里面的操作。
随后先 apt upgrade
升级一下软件,中间询问一路 y
就可以了。
升级完成后需要第二次换源,因为下载一些工具时镜像源设置会刷新掉。如果你认真看的话升级过程中有询问,可以选 n
。
用 TUI 工具再次换源时会多一个“Mirror group(镜像组)”,请根据实际网络情况是选择单个镜像还是镜像组。
第二次才出现是因为 termux 的应用本体已经很久没更新了,虽然是滚动发行版最终应用版本都一样样,但我觉得还是要定期发布更新的,你看 Arch 也会定时发布 iso。
2024.06 终于更新了,现在只要换一次就好了。
不过在 Github 发布之前,Google Play 就发布了更新,其和 Github 上的明显有不同。Play 版是没有换源的那个 TUI 工具的。
使用注意事项
文件路径
如果你 pwd
、cd
之类的在里面探索一圈,你会发现文件结构和平时 Linux 有差别。
除去安卓限制导致文件位于 /data/data/com.termux/files
外,你会发现就算把 files/
当为 /
也不对,etc
竟然也在 usr
中。这给我们平时编辑配置文件带来的不便。
不过也有解决办法,官方提供了一个 $PREFIX
环境变量,指向了 usr
的绝对路径,只需在我们平时的习惯前加上这个环境变量就好了。比如 /etc/apt/sources.list
就可以用 $PREFIX/etc/apt/sources.list
代替。
网络
如果手机没有 root 权限,那是用不了那些数字较小(小于 1024)的端口的,这点要注意。
在高于 Android 10 的系统上,一些网络工具如 netstat
也无法使用了。
SSH 服务
如果感觉屏幕小、没有外置键盘,想在其他设备上访问,可以通过SSH服务。官方 Wiki 在这里。
输入 apt install openssh
安装SSH,输入 sshd
启动SSH服务,然后就可以通过 SSH 客户端连接了。
对客户端:
- 主机名:使用
ifconfig
(自带)或ip a
查看当前设备ip,或者在系统设置的网络里查看。 - 端口号:默认端口号是
8022
- 用户名:安装时提示内会有形如
u0_a000
的用户名,如果没看到也可以使用whoami
查看。 - 密码:之前未设置请使用
passwd
设置密码(都知道输入时不会显示字符吧)。
Wiki 里提到 Termux 没有初始化系统,所以每次都要手动运行 sshd
。在 Wiki 里搜索自启动方法,找到一个解决方案:Termux-services。
VS Code / code-server
很多人装 Termux 是为了临时敲一敲代码,纯命令行操作对大部分人来说又太难受。这个时候肯定需要一款方便的 GUI 编辑器,如 VS Code。
但 Termux 没有 GUI,就算装了桌面有了 GUI 后 VS Code 也不能安装,因为 Termux 毕竟不是真 Linux,没有适合的版本。这个时候有几个办法:
- 一是用
proot
跑一个 Linux 容器,装上桌面,用Termux X11
等显示。 - 二是用“阉割的第三方网页版 VS Code” -
code-server
。 - 三是在容器里装
code-server
,但,很多人之前这么做是因为没法直接装,现在没必要。
这里不套娃了,只讲一下第二个。
code-server 具体怎么整,(code-server)官方文档永远是你应该看的。只需要
- Run
pkg install tur-repo
- Run
pkg install code-server
- You can now start code server by simply running
code-server
.
安装并启动后浏览器打开127.0.0.1:8080
,这里推荐 Firefox、Chrome、Edge 等支持 PWA 的浏览器,可以将其加到桌面。
打开后你会发现它提示要密码,密码的配置文件在哪?官方文档告诉你在~/.config/code-server/config.yaml
。这里可以使用 nano 或 vim 编辑(不会?请看文章开头)
图形界面(Termux X11)
Termux 本身是没有GUI支持的,我们可以通过 Termux X11 来获得GUI支持。
之前常用的 VNC 也可以,但是现在有 x11 肯定还是用 x11 更好。
如果不想看大段英文,可以参考这篇文章,正好是这两天更新了。里面Termux的X11与proot内Linux发行版的X11都有写。
Termux X11:手機上的XWayland伺服器使用教學
容器(proot)内装 Linux 发行版
termux 可以通过 proot 容器运行 Linux 发行版,推荐使用 proot-distro
对其管理,可以查看官方仓库的介绍。
首先安装 proot-distro 这个包:
apt install proot-distro
之后 proot-distro --help
看看帮助。
proot-distro list
列出支持的发行版。proot-distro install xxx
进行安装。
如我要安装 Debian 就可以输入proot-distro install debian
。proot-distro login xxx
登陆进容器中。
指定用户可以加上--user xxx
,如proot-distro login --user root debian
像 Ubuntu 22.04 的镜像大概只有 20MB,Alpina 更小,但是因为是从 Github 下载,速度挺慢的。
不过官方仓库的 README 中 “Adding distribution” 说了存放 metadata 的位置,我们可以将其改为从 Github 代理网站下载。下面是一个例子,按需将 debian 改为你要的发行版。
cd $PREFIX/etc/proot-distro
cp debian.sh debian-bak.sh
sed -i 's#https://github#https://ghp.ci/https://github#g' debian.sh
proot-distro install debian
若该网站失效,请自行搜索“Github 代理”寻找可用网站。
更多详细用法见帮助和仓库的 README。