Termux 高级终端安装使用配置教程

Termux 高级终端安装使用配置教程

🟣使用的是国光的termux

下载链接

1
https://www.coolapk.com/apk/com.termux

基本命令

Termux 除了支持 apt 命令外,还在此基础上封装了 pkg 命令,pkg 命令向下兼容 apt 命令。apt 命令大家应该都比较熟悉了,这里直接简单的介绍下 pkg 命令:

1
2
3
4
5
6
7
8
9
10
pkg search <query>              # 搜索包
pkg install <package> # 安装包
pkg uninstall <package> # 卸载包
pkg reinstall <package> # 重新安装包
pkg update # 更新源
pkg upgrade # 升级软件包
pkg list-all # 列出可供安装的所有包
pkg list-installed # 列出已经安装的包
pkg show <package> # 显示某个包的详细信息
pkg files <package> # 显示某个包的相关文件夹路径

软件安装

除了通过上述的 pkg 命令安装软件以外,如果我们有 .deb 软件包文件,也可以使用 dpkg 进行安装。

1
2
3
4
dpkg -i ./package.de         # 安装 deb 包
dpkg --remove [package name] # 卸载软件包
dpkg -l # 查看已安装的包
man dpkg # 查看详细文档

目录结构

1
2
3
4
5
6
7
8
echo $HOME
/data/data/com.termux/files/home

echo $PREFIX
/data/data/com.termux/files/usr

echo $TMPPREFIX
/data/data/com.termux/files/usr/tmp/zsh

长期使用 Linux 的朋友可能会发现,这个 HOME 路径看上去和我们电脑端的不太一样,这是为了方便 Termux 提供的特殊的环境变量。

端口查看

Android 10 以下版本

Andorid 10 以下的版本是可以正常使用 netstat 命令的,这样可以方便的查看端口开放信息:

1
2
3
4
5
# 查看所有端口
netstat -an

# 查看3306端口的开放情况
netstat -an|grep 3306

Android 10 版本

Andorid 10 版本的 Termux 下无法正常使用 netstat -an 命令,国光的解决方法是安装一个 nmap,然后扫描本地端口(弯道超车):

1
2
3
4
5
# 安装nmap端口扫描神器
pkg install nmap

# 扫描本地端口
nmap 127.0.0.1

更换国内源

使用 pkg update 更新一下的时候发现默认的官方源网速有点慢,在这个喧嚣浮躁的时代,我们难以静下心等待,这个时候就得更换成国内的 Termux 清华大学源了,加快软件包下载速度。

方法一:自动替换(推荐)

green

🟢可以使用如下命令自动替换官方源为 TUNA 镜像源

1
2
3
4
5
6
7
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list

sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list

sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

pkg update

🟣更换源几秒钟就可以执行完 pkg update 了,心里顿时乐开了花。

终端配色方案

green

🟢
该脚本主要使用了 zsh 来替代 bash 作为默认 shell,并且支持色彩和字体样式,同时也激活了外置存储,可以直接访问 SD 卡下的目录。主题默认为 agnoster,颜色样式默认为 Tango,字体默认为 Ubuntu

1
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"  

如果因为不可抗力的原因,出现 port 443: Connection refused 网络超时的情况,那么执行下面国光迁移到国内的地址的命令即可:

1
sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)"  

手机 App 默认只能访问自己的数据,如果要访问手机的存储,需要请求权限,如果你刚刚不小心点了拒绝的话,那么可以执行以下命令来重新获取访问权限:

1
termux-setup-storage

脚本允许后先后有如下两个选项:
1
2
Enter a number, leave blank to not to change: 14
Enter a number, leave blank to not to change: 6

分别选择色彩样式字体样式,重启 Termux app 后生效配置。不满意刚刚的效果,想要继续更改配色方案的话,可以根据下面命令来更改对应的色彩配色方案:

  • 设置色彩样式:

    输入 chcolor 命令更换色彩样式,或者执行 ~/.termux/colors.sh 命令

  • 设置字体

    运行 chfont 命令更换字体,或者执行 ~/.termux/fonts.sh 命令

zsh 主题配色

编辑家目录下的.zshrc 配置文件

1
$ vim .zshrc

第一行可以看到,默认的主题是 agnoster 主题:

PRINTSCREEN_20240401_212044.png

实际上这个主题也蛮酷的,如果你还想更换其他主题的话,那么在.oh-my-zsh/themes 目录下放着 oh-my-zsh 所有的主题配置文件,只要将默认的 agnoster 更换为其他的主题文件名即可。

主题比较多,国光这里就不列举了,感兴趣大家可以一个个尝试去看看。 当然如果你是个变态的话,可以尝试 random 主题,每打开一个会话配色主题都是随机的。

1
ZSH_THEME="random"

🟣如果 oh-my-zsh 主题满足不了你们的话,Github 上还有很多高度定制的主题,感兴趣的朋友可以自己去折腾研究看看。

超级管理员身份

实际上 Termux 不需要 root 权限也可以折腾各种各样的操作的,大家不必对 root 抱有啥幻想,本文的操作基本上没有涉及到手机要用到 root 的地步。

手机没有 root

利用 proot 可以为手机没有 root 的用户来模拟一个 root 的环境,这里主要是经典的 Linux 文件系统布局上的模拟。

1
pkg install proot -y

然后终端下面输入:

1
termux-chroot

即可模拟 root 环境,该环境模仿 Termux 中的常规 Linux 文件系统,但是不是真正的 root。

输入 exit 可回到普通用户的文件系统。

SSH

安装 openssh

1
pkg install openssh

电脑 ssh 连接 Termux

这个使用场景比较少,但是既然要打造中国的 Termux 文档的效果,还是一起写上去吧,首先确保你已经安装了 openssh 软件包,没有安装的话参考上一个小结进行安装,实现这个效果有两大种方法:

  1. SSH 通过密码认证连接

  2. SSH 通过公私钥连接

    1. PC 端生成公私钥,然后将 公钥 拷贝到 Termux 中,通过公私钥连接。
    2. Termux 端生成公私钥,然后将 私钥拷贝到 PC 中,通过公私钥连接。

启动 ssh 服务

安装完成后,sshd 服务默认没有启动,所以得手动启动下:

1
sshd

green

🟢因为手机上面低的端口有安全限制,所以这里 openssh 默认的 sshd 默认的服务端口号为 8022

停止 ssh 服务

如果需要停止 ssh 服务,只需要 kill 杀掉进程即可:

1
pkill sshd

开发环境搭建

Vim

🟣Vim 被称为编辑器之神,基本上 Linux 发行版都会自带 Vim,这个在前文基本工具已经安装了,如果你没有安装的话,可以使用如下命令安装:

1
pkg install vim

🟣并且官方也已经封装了 vim-python,对 Python 相关的优化。

1
pkg install vim-python
  • 解决汉字乱码

    如果你的 Vim 打开汉字出现乱码的话,那么在家目录 (~) 下,新建.vimrc 文件

    1
    vim .vimrc

    添加内容如下:

    1
    2
    3
    set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
    set enc=utf8
    set fencs=utf8,gbk,gb2312,gb18030

    然后 source 下变量

    1
    source .vimrc

Java

green

🟢Termux 早期原生编译 JAVA 只能使用 ecj (Eclipse Compiler for Java) 和 dx 了,然后使用 Android 自带的 dalvikvm 运行。后面 Termux 官方也封装了 openjdk-17 这样安装起来就更方便了。

还有如果想要完整体验 JAVA 环境的话,另一个方法就是 Termux 里面安装一个完整的 Linux 系统,然后在 Linux 里面运行 Java,安装系统部分下面文章会详细介绍,这种思路也是可以的。

Openjdk-17

1
Openjdk-17

当然这个包可能不太稳定。

PHP

green

🟢PHP 是一种开源的脚本语言,适用于网络开发。语法借鉴吸收 C 语言、Java 和 Perl 等流行计算机语言的特点,易于学习,PHP 是世界上最好的语言(手动狗头)。

安装 PHP

Termux 官方封装了 PHP,所以我们安装起来就很方便:

1
pkg install php

安装完成后查看下版本信息:
1
php --version

运行测试文件

green

🟢自 PHP5.4 之后 PHP 内置了一个 Web 服务器。在 Termux 下可以很方便地测试 PHP 文件

首先在家 (~) 目录下建一个 www 文件夹,然后在 www 文件夹下新建一个 index.php 文件,内容为:

1
<?php phpinfo();?>

完整的步骤如下:
1
2
3
4
5
# 新建 www 文件夹
mkdir ~/www

# 创建 inedx.php 文件
echo '<?php phpinfo();?>' > ~/www/index.php

编写完成 index.php 文件后,尝试使用 PHP 内置的 WebServer 直接启动:
1
2
3
4
5
# 进入家目录
cd ~

# 启动 WebServer
php -S 0.0.0.0:8888 -t www/

自己制定端口后,浏览器访问 http://127.0.0.1:8888

Python

green

🟢Python 是近几年非常流行的语言,Python 相关的书籍和资料也如雨后春笋一般不断涌现,带来了活跃了 Python 学习氛围。

安装 Python3

Termux 安装 Python 默认版本是 Python3 的版本,与此同时也顺便安装了 clang

1
pkg install python -y

注意版本区分

green

🟢如果你同时安装了 Python3 和 Python2 版本的话,最好向下图中这样验证一下各个版本情况,做到心知肚明

MariaDB (MySQL)

green

🟢MariaDB 是 MySQL 关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

安装 MariaDB

Termux 官方也封装了 MariaDB,所以安装起来很方便:

1
pkg install mariadb

初始化数据库

green

🟢早期的 Termux 安装完 MySQL 是需要初始化数据库的,新版本在安装时候就已经初始化了数据库

启动 MySQL 服务

green

🟢因为正常启动完成后,MySQL 这个会话就一直存活,类似与 Debug 调试一样,此时使用 Ctrl + C -> 中止当前进程也无济于事,体验式就一点都不优雅,所以这里国光使用 Linux 自带的 nohup 命令将其放到后台启动。

1
nohup mysqld &

停止 MySQL 服务

Termux 下没有好的办法退出 MySQL 服务,只能强制杀掉进程了,使用如下命令格式可以轻松杀掉进程:

1
kill -9 `pgrep mysql`

远程登录 MySQL

1
2
grant all on *.* to root@'%' identified by 'lizhanqi0228' with grant option;
flush privileges;

Nginx

green

🟢Nginx 是一个高性能的 Web 和反向代理服务器,Nginx 用的熟悉的话,下面搭建各种网站也就轻而易举了。

安装 Nginx

Termux 安装 Nginx 也很简单,一条命令即可:

1
pkg install nginx

测试 Nginx

测试检查 Nginx 的配置文件是否正常:

1
nginx -t

启动 Nginx

1
nginx

🟣

Termux 在 Nginx 上默认运行的端口号是 8080, 使用 pgrep 命令也可以查看 Nginx 进程相关的 PID 号。

然后手机本地直接访问 http://127.0.0.1:8080 查看 Nginx 是否正常启动

重启 Nginx

一般当修改完 Nginx 相关的配置文件时,我们需要重启 Nginx,使用如下命令即可重启:

1
nginx -s reload

停止 Nginx

  • 方法一 原生停止

    1
    nginx -s stop

    或者

    1
    nginx -s quit

    green

    🟢quit 是一个优雅的关闭方式,Nginx 在退出前完成已经接受的连接请求。Stop 是快速关闭,不管有没有正在处理的请求。

  • 方法二 杀掉进程

    只需三番钟,里造会干我一样,爱象节款游戏 扯远了,只需要 1 条命令,即可优雅的终止掉 Nginx 服务:

    1
    kill -9 `pgrep nginx`

Nginx 解析 PHP

green

🟢Termux 下的 Nginx 解析 PHP 这里单独拿出一级标题来叙述,成功解析的话,下面安装 wordpress 等 PHP 网站就会轻松很多。

安装 php-fpm
> Nginx 本身不能处理 PHP,它只是个 Web 服务器,当接收到 PHP 请求后发给 PHP 解释器处理。Nginx 一般是把请求转发给 fastcgi 管理进程处理,PHP-FPM 是一个 PHP FastCGI 管理器,所以这里得先安装它:
1
pkg install php-fpm
安装完成顺便检查一下版本信息吧:
1
php-fpm -v
配置 php-fpm

green

🟢编辑 php-fpm 的配置文件 www.conf

1
vim $PREFIX/etc/php-fpm.d/www.conf

定位搜索 listen = 找到

1
listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock

将其改为:
1
listen = 127.0.0.1:9000

???啥 你不会使用 vim 搜索 ㄟ (▔,▔) ㄏ 那就老老实实一个个翻页吧。

配置 Nginx

编辑 Nginx 的配置文件 nginx.conf

1
vim $PREFIX/etc/nginx/nginx.conf

下面国光贴出配置好的完整配置文件,大家可以参考下面这些图,只需要两大步骤:

  1. 添加 index.php 到默认首页的规则里面:
    PRINTSCREEN_20240401_222818.png

  2. 取消 location ~ .php$ 这些注释,按照图片上的 提示修改:
    PRINTSCREEN_20240401_222910.png

Termux 里面的 Nginx 默认网站的根目为:

1
/data/data/com.termux/files/usr/share/nginx/html

如果想要修改默认路径的话 只需要在配置文件中 替换 2 处出现的这个路径即可

下面贴一份完整的配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
worker_processes  1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

server {
listen 8080;
server_name localhost;
location / {
root /data/data/com.termux/files/usr/share/nginx/html;
index index.html index.htm index.php;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /data/data/com.termux/files/usr/share/nginx/html;
}

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/data/com.termux/files/usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}

测试 PHP 解析

green

🟢Nginx 默认网站的根目录为:

1
/data/data/com.termux/files/usr/share/nginx/html

在这个网站根目录下新建 info.php 内容为:<?php phpinfo(); ?>

1
echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php
启动服务

先启动 php-fpm 服务:

1
php-fpm

然后再启动 Nginx 服务:
1
nginx

🟣如果你的 Nginx 已经启动了的话,使用 nginx -s reload 重启 Nginx