Termux的使用

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 上下载最新版本。下载安装后打开界面如下图。

image

接下来为了下载方便就先要换源了,换源过程 教育网镜像站已经写的很清楚了,按照里面的操作。

随后先 apt upgrade 升级一下软件,中间询问一路 y 就可以了。

升级完成后需要第二次换源,因为下载一些工具时镜像源设置会刷新掉。如果你认真看的话升级过程中有询问,可以选 n

用 TUI 工具再次换源时会多一个“Mirror group(镜像组)”,请根据实际网络情况是选择单个镜像还是镜像组。
第二次才出现是因为 termux 的应用本体已经很久没更新了,虽然是滚动发行版最终应用版本都一样样,但我觉得还是要定期发布更新的,你看 Arch 也会定时发布 iso。
2024.06 终于更新了,现在只要换一次就好了。
不过在 Github 发布之前,Google Play 就发布了更新,其和 Github 上的明显有不同。Play 版是没有换源的那个 TUI 工具的。

使用注意事项

文件路径

如果你 pwdcd 之类的在里面探索一圈,你会发现文件结构和平时 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。