基础命令
1) 软件安装
Termux除了支持Debian/Ubuntu系apt命令外,还针对软件特殊环境封装了pkg命令,pkg向下兼容了apt命令:
pkg search
pkg install
pkg uninstall
pkg reinstall
pkg update # 更新源
pkg upgrade # 升级软件包
pkg list-all # 列出可供安装的所有包
pkg list-installed # 列出已经安装的包
pkg show
pkg files
pkg install
另外,dpkg也同样受到支持,可以用来安装准备好的.deb安装包。
dpkg -i ./package.de # 安装 .deb 包
dpkg --remove [package name] # 卸载软件包
dpkg -l # 查看已安装的包
man dpkg # 查看详细文档
2) termux保持后台运行
大部分Termux需要后台运行,而安卓默认锁屏时是限制后台运行的,所以这里我们需要几个步骤来保持cpu及网络处于活跃。
①开启termux唤醒锁
termux-wake-lock #开启唤醒锁
termux-wake-unlock #关闭唤醒锁
建议将唤醒锁的开启写入开机自启服务,以免自己忘记:
echo 'termux-wake-lock &' >>$PREFIX/etc/termux-login.sh
②关闭省电策略和允许后台运行
关闭省电策略和允许后台运行的方式手机型号不同方法也不同,这里就不不细说了,根据自己手机来就好。
3)[Process completed (signal 9) - press Enter] 问题修复
如果你的手机是Android 12,Termux放在后台一段时间后你会发现[Process completed (signal 9) - press Enter]的提示,这主要是Android 12及以上引入的新机制,超过32个行程会自动杀死先开启的进程,而当这个被啥事的进程是Termux会话时,就会出现[Process completed (signal 9) - press Enter]的提示。
解决办法:
到Android官网下载最新Windows版的Platform Tools,解压后进入Platform Tools目录,可以看到ADB和Fastboot的执行文件,在此处打开终端(比如win10默认的Powershell)。
手机打开开发者模式(一般是在设置→关于手机中连点版本号多次)的usb调试。手机usb连接电脑,模式为文件传输。
在电脑终端输入:
./adb devices
卡没到连接成功提示后按照你的安卓版本执行以下命令:
# Android 12L和Android 13:
./adb shell "settings put global settings_enable_monitor_phantom_procs false"
# Android 12:
./adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647"
该命令没有结果输出,执行完重启手机即可。
4)更换国内源
现在新版本更换软件源十分简单,一条命令即可:
termux-change-repo
方向键选择,空格键选中,这里一般情况下选清华源就好:
在这里插入图片描述在这里插入图片描述然后更新软件被最新版本:
pkg upgrade -y
========================
此处有坑,第一次执行完pkg upgrade后,软件源会自动换回官方源,,,所以,更新完再执行一次换源操作吧,第二次界面会有点稍稍不同,网络没其他问题的话还是选择清华源就好:
在这里插入图片描述
在这里插入图片描述
5)获取手机存储权限
termux-setup-storage
执行后会弹出访问授权,同意即可。
获取手机存储权限以后会在home文件夹下生成storage文件夹,并在内生成若干子目录,每一个子目录都是安卓内部存储的软链接:在这里插入图片描述
对于storage下的软链接,我们可以根据自己的需求进行删除和增加:
ln -s $HOME/storage [文件或文件夹路径] #建立软链接
rm -rf [链接文件或文件夹路径] #删除软链接
注意,在删除软链接时,路径结尾一定不能带/,不然删除的就是原文件!!!
6)基础软件安装
pkg install vim git wget curl -y
2. 美化相关
1) 修改启动问候语
Termux默认问候语长这个样子:在这里插入图片描述
基本上除了第一次使用Termux时有点用处,越到后来越显臃肿,那就改了它吧,问候语路径在$PREFIX/etc/motd,使用Termux内置文本编辑器编辑即可:
vim $PREFIX/etc/motd
在这里插入图片描述
修改为自己想要的文字或ASSIC字符图案:
_____
|_ _|__ _ __ _ __ ___ _ ___ __
| |/ _ \ '__| '_ ` _ \| | | \ \/ /
| | __/ | | | | | | | |_| |> <
|_|\___|_| |_| |_| |_|\___
Put wings on your dreams!
保存重新打开会话就可以看到效果了:
在这里插入图片描述
2) 定制功能键区
在 Termux v0.66 之后的版本我们可以通过配置~/.termux/termux.properties文件来定制我们的常用功能按键:
vim ~/.termux/termux.properties
找到Extra-keys所在块,添加:
extra-keys = [ \
['ESC','$','~','PGUP','HOME','UP','END','ENTER'], \
['TAB','CTRL','ALT','PGDN','LEFT','DOWN','RIGHT','BKSP'] \
]
保存,使用以下命令执行更改:
termux-reload-settings
效果:
在这里插入图片描述
其中可定制按键可以直接是字符符号(比如$ # / 等),也可以是下边列表给出的特殊按键:
CTRL 特殊键
ALT 特殊键
FN 特殊键
ESC 退回键
TAB 表格键
HOME 原位键
END 结尾键
PGUP 上翻页键
PGDN 下翻页键
INS 插入键
DEL 删除键
BKSP 退格键
UP 方向键 上
LEFT 方向键 左
RIGHT 方向键 右
DOWN 方向键 下
ENTER 回车键
BACKSLASH 反斜杠 \
QUOTE 双引号键
APOSTROPHE 单引号键
F1~F12 F1-F12 按键
上面列出的三个“特殊键”在附加键定义中最多只能列出一次,即不能有多个CTRL键。任何“特殊键”的多个实例将导致错误,这些键不能正确工作。
关于反斜杠的注意事项:这个字符有特殊含义,您不应该直接使用它来定义键。使用 BACKSLASH 代替,或者用'\\'来正确转义。
3) zsh——终端美化
这里使用的是Gitee上的一个开源zsh管理插件Tmoe-zsh ,基于ZINIT工具开发,个人感觉启动速度和视觉延迟是要优于单纯的ohmyzsh的,Tmoe-zsh集成了很多功能,zsh的安装卸载,备份还原比较方便。
安装命令:
pkg install curl && . <(curl -L l.tmoe.me/ee/zsh) -y
个人配置:
配置选项 zshtheme zshcolor zshfont
选择 powerlevel10k Neon Go Mono
选项数字 171 85 14
安装结束输入:zsh 使配置生效,效果:在这里插入图片描述
如果对第一次配置结果不满意,使用以下命令可再次配置:
zshtheme #修改zsh主题
zshcolor #修改终端配色
zshfont #修改终端字体
zsh-i #打开Tmoe-zsh管理器
Tmoe除了配置zsh字体主题外,还自动安装了一些高效插件:PLUGINS 预装插件说明
fast_syntax_highlighting语法高亮插件,速度比zsh-syntax-highlighting更快。
在这里插入图片描述
zsh-autosuggestions自动建议插件,当您键入时,它根据历史记录和完成提示命令。这时候只要按→键,就可以自动补全完整命令:在这里插入图片描述
4.超级管理员身份
Termux操作实际上基本涉及不到root权限,这里姑且为了文档完整性吧它写出来,对于已经root和未root手机,官方提供两种方法。
1)手机已经root
安装tsu,这是Termux版本的su,是真正的利用root权限,请谨慎操作。安装:
pkg install tsu
切换root管理员:
tsu
此时回弹出root授权提示允许即可,效果如下:在这里插入图片描述
在管理员身份下输入exit即可退回普通用户模式。
2)手机未root
针对未root的用户,官方使用proot来为用户模拟root环境,安装:
pkg install proot
使用:
termux-chroot
proot主要是模拟Linux文件系统布局,并未真正的取得root权限。同样的,在模拟Linux系统布局下下输入exit切换回普通用户模式。
5.备份恢复
程序猿生存第一要义是什么?
备份备份备份!!!
备份不及时,数据两行泪!!!
官方镜像打包恢复方法Wiki:https://wiki.termux.com/wiki/Backing_up_Termux
1)备份
确保Termux取得存储访问权限:
termux-setup-storage
进入Termux根目录:
cd /data/data/com.termux/files
将系统备份为 termux.tar.gz:
tar -zcf /sdcard/termux.tar.gz home usr
如果没有滥用root权限的话,等待一会应该就可以备份完成了。在这里插入图片描述
2)恢复
确保Termux取得存储访问权限:
termux-setup-storage
进入Termux根目录:
cd /data/data/com.termux/files
解压提取之前备份的内容:
tar -zxf /sdcard/termux.tar.gz --recursive-unlink --preserve-permissions
操作完成重启Termux,数据已经恢复。
在这里插入图片描述
此外 官方Wiki 还提到了两种备份与恢复方法,但都是根据上文方法来的,不如上文直观,就不再赘述了。
6.ssh访问
如果,我说如果有那么一天你很懒,想躺床上访问其他服务器,又或者有那么一天你很闲,想要用电脑来控制手机,那Termux+ssh就能满足你。
1) 安装 openssh
OpenSSH是基于SSH(Secure SHell)协议的免费开源实现。SSH 协议族可以用来进行远程控制, 或在计算机之间传送文件。
Termux 官方已经封装好了,我们安装起来也会很简单:
pkg install openssh
2) Termux远程连接服务器
ssh [email protected] -p 22
在这里插入图片描述
3) 电脑ssh连接Termux
其实闲不闲什么的是开玩笑,主要在手机上操作这个屏幕,这个键盘,它实在是 折!磨!人!好了废话不多说,展示。
首先确保已经安装openssh,没有的话回去安装。其次实现ssh访问Termux有两种认证方法:
通过密码认证连接
通过公私钥连接
Termux 端生成公私钥,然后将私钥拷贝到 PC 中,通过公私钥连接。
PC 端生成公私钥,然后将公钥拷贝到 Termux 中,通过公私钥连接。
① ssh服务启停
启动 ssh 服务
openssh安装后,sshd服务默认是不开启的,我们得手动启动服务:
sshd
因为权限关系Termux无法控制低端口0~1023,所以这里sshd默认端口为8022。
停止ssh服务
想要停止ssh服务,简单粗暴,使用kill命令杀掉进程即可:
pkill sshd
你说为什么不讲重启命令?杀了让它重生!多简单的事!我觉得不需要我教。
另外想要实现ssh服务开机自启,可以使用termux-services工具来完成:
pkg install termux-services busybox #安装termux-services
sv-enable sshd #将sshd设为开机启动命令
sv-disable sshd #取消开机自启
termux-services是Termux十分方便的自启动管理工具,在这篇文章:Termux服务自启动 (你点它了吧?没跳转过去对吧?想知道为什么吗?因为我还没开始写呢!)中我会详细分享它的用法。
② 通过密码认证连接
Termux 默认可以使用密码认证进行连接的,如果你想禁用,修改ssh配置文件:$PREFIX/etc/ssh/sshd_config,文件内容:
PrintMotd yes
PasswordAuthentication yes
Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server
就三行,很简单:
PrintMotd 是否显示登录成功的欢迎信息,例如上次登入的时间、地点等
PasswordAuthentication 是否启用密码认证
Subsystem sftp SFTP 服务相关的设定
此外Termux的ssh服务同样支持监听端口修改,在配置文件添加一行:
Port 10086
监听端口就修改到了10086,注意自定义端口不要小于1024,原因讲过就不再重复了。
修改用户密码
Termux用户初始密码是随机的,这里我们想用密码认证势必要修改了它,执行passwd命令就能直接修改密码:在这里插入图片描述
可能有人会想:啊?不需要旧密码就能直接修改密码,别人拿到我的手机就能修改我的Termux密码,太不安全了吧!
呃,或者有没有一种可能,咱就是说,其实可以给手机设个密码呢?
使用电脑端连接
终端中直接输入:
ssh 192.168.1.2 -p 8022
在这里插入图片描述
看到这可能就有人发现一点不同寻常,你没看错,Termux和常规Linux不太一样,ssh连接时是不需要指定用户名的。
③ 通过公私钥连接
公私钥连接相比密码认证来说安全了不止一点,当然,前提是你自己不泄露公私钥文件手动狗头。
Termux端生成公私钥,使用私钥连接
Termux生成公私钥对:
ssh-keygen
有选项就狂按回车:在这里插入图片描述
完成后会在~/.ssh下多出三个文件:id_rsa, id_rsa.pub,authorized_keys。
然后将公钥(id_rsa.pub)拷贝到验证文件(authorized_keys)中:
cat id_rsa.pub > authorized_keys
接着将私钥(id_rsa)拷贝到PC端,并在PC端赋予其600权限:
chmod 600 id_rsa
然后PC端就可以通过-i指定私钥文件的方式连接Termux而不需要输入密码了:
ssh -i id_rsa 192.168.1.2 -p 8022
在这里插入图片描述
PC端生成公私钥,使用公钥连接
首先在 PC 端生成秘钥对:
ssh-keygen
有选项就狂按回车:
在这里插入图片描述
完成后会在~/.ssh下多出三个文件:id_rsa, id_rsa.pub,authorized_keys。
然后需要把公钥 id_rsa.pub 拷贝到手机的data\data\com.termux\files\home\.ssh文件夹中。
接下来在Termux操作将公钥(id_rsa.pub)拷贝到验证文件(authorized_keys)中:
cat id_rsa.pub > authorized_keys
重启SSH服务,就刚刚说的:让它重生!
pkill sshd &&sshd
接下来就能在PC端通过公私钥对,无密码连接Termux了:
ssh 192.168.1.2 -p 8022