释放小七猫的分享欲

Android 配置 Termux 轻量美化教程,最全能终端工具

tags: NAS
@ 31/03/2026

Android 配置 Termux 轻量美化教程,最全能终端工具

最近经常在手机上使用终端工具,此前一直在使用 JuiceSSH,非常好用,但这款软件似乎已经停止更新,于是想着手搓一个 Termux 来作为终端工具使用。因为手机最近刚 Root,应该能发挥这款软件的全部性能。

如果你的手机是联发科芯片的话,开发者选项里面的 Linux 子系统或许更适合你。

场外工作

场外工作是指针对非 Termux 软件本身的配置项,主要是手机的文件权限和后台策略。

这使得 termux 可以在后台运行,不会被杀后台,以及可以访问到手机存储的权限。

软件包配置

配置 Termux 之前,我们可以先安装几个必要软件

pkg i sv-service openssh neovim fastfetch git net-tools

启动 openssh 服务:

sv-enable openssh

注意,Termux 的 sshd 端口号是 8022,不是 22,因此需要用以下方式连接:

# ssh
ssh -p 8022 [ip]
# scp
scp -P 8022 [files] [ip]:[path]

配置 Termux

接下来配置 Termux 自身的一些选项。Termux 的配置文件放置于 ~/.termux/文件夹下面,主要配置以下三份文件:

  1. font.ttf:终端使用的字体。Termux 只认这一个文件作为终端字体。
  2. colors.properties:配色方案,常用的有 gruvbox,onedark,onelight 等
  3. termux.properties:终端特性,定义了 Termux 的某些行为

首先说说 font.ttf,针对在座的所有终端字体,我只推荐 Hack Nerd Font Mono-Regular,纯等宽、无连字、图标完整,完美显示 Powerlevel10k / Starship /lsd/eza 等图标。

将下载的字体重命名为font.ttf并传输到 ~/.termux/ 下即可。

然后是配色文件,可以让 AI 帮你生成各种配色,Onedark 对应 ~/.termux/colors.properties如下:

# 标准 Onedark 配色方案
# 终端背景色
background=#1e2127

# 默认文字前景色
foreground=#abb2bf

# 光标颜色
cursor=#abb2bf

# 黑色 / 亮黑色
color0=#282c34
color8=#5c6370

# 红色 / 亮红色
color1=#e06c75
color9=#e06c75

# 绿色 / 亮绿色
color2=#98c379
color10=#98c379

# 黄色 / 亮黄色
color3=#d19a66
color11=#d19a66

# 蓝色 / 亮蓝色
color4=#61afef
color12=#61afef

# 品红 / 亮品红
color5=#c678dd
color13=#c678dd

# 青色 / 亮青色
color6=#56b6c2
color14=#56b6c2

# 白色 / 亮白色
color7=#abb2bf
color15=#ffffff

最后是 Termux 行为配置,修改 ~/.termux/termux.properties:

# 字体大小(根据手机屏幕自行调整:14~22 之间)
font-size=18

# 底部额外按键栏(ESC、Tab、方向键、Ctrl、Alt 等)
extra-keys=[['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]

# 使用纯黑界面(护眼、省电、美观)
use-black-ui=true

# 启用全屏模式
fullscreen=true

# 全屏模式兼容修复
use-fullscreen-workaround=true

# 光标不闪烁
terminal-cursor-blink-rate=0

# 光标样式为竖线(bar),可选 block/underline
terminal-cursor-style=bar

# 终端滚动缓存行数(调大避免翻页丢失历史)
terminal-transcript-rows=50000

# 关闭会话切换时的弹窗提示
disable-terminal-session-change-toast=true

# 启动时不自动弹出软键盘
hide-soft-keyboard-on-startup=true

# 音量键仅控制音量,不模拟 Ctrl
volume-keys=volume

# 修复部分键盘退格键/输入兼容性
enforce-char-based-input=true

# 忽略终端响铃(不震动、不发声)
bell-character=ignore

# 手机返回键 = ESC(非常实用)
back-key=escape

# 快捷键:新建会话 / 切换下一会话 / 切换上一会话 / 重命名会话
shortcut.create-session=ctrl + t
shortcut.next-session=ctrl + n
shortcut.previous-session=ctrl + p
shortcut.rename-session=ctrl + r

Shell 配置

我的习惯是使用 zsh 作为终端,配置方法以前有发过,但 Termux 略有不同,再发一次吧。

将 zsh 设置为默认终端。

pkg i zsh
chsh -s zsh

拉取功能插件

# 自动补全
git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/plugins/zsh-autosuggestions

# 语法高亮
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting ~/.zsh/plugins/zsh-syntax-highlighting

# 这个插件我也没弄明白是干嘛的,可选。。。。
git clone --depth=1 https://github.com/zsh-users/zsh-completions ~/.zsh/plugins/zsh-completions

# p10k 主题
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.zsh/plugins/powerlevel10k

将 zsh 的插件统一放置在 ~/.zsh/plugins/ 下。

编写 zsh 配置文件

环境变量存放位置为 ~/.zprofile,配置文件在 ~/.zshrc,主要编写 ~/. zshrc 文件

将以下代码加入 .zshrc 以使用插件,其中对 zsh-completion 插件进行了一些配置,提高使用体验

fpath=(~/.zsh/plugins/zsh-completions/src $fpath)
autoload -Uz compinit
if [[ -n ~/.zcompdump(#qN.mh+168) ]]; then
  compinit
else
  compinit -C
fi
# ========== zsh-completions 常用配置 ==========
# 1. 基础核心(必须)
zstyle ':completion:*' menu select                    # 菜单选择补全
zstyle ':completion:*' rehash true                    # 新命令立即生效(必加)
zstyle ':completion:*' use-cache on                   # 补全缓存(提速)
zstyle ':completion:*' cache-path ~/.zsh/cache        # 缓存路径

# 2. 智能匹配 + 模糊补全(体验神器)
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' max-errors 2                   # 允许输错 2 个字符仍补全

# 3. 交互体验优化(必开)
setopt ALWAYS_TO_END                                  # 补全后光标跳到末尾
setopt COMPLETE_IN_WORD                               # 单词中间也能正常补全

# 4. 显示美化(清晰好看)
zstyle ':completion:*' group-name ''                  # 自动分组显示
zstyle ':completion:*:descriptions' format '%B--- %d ---%b'  # 分组标题
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # 彩色补全
zstyle ':completion:*:default' list-prompt '%S%M matches%s'  # 显示匹配数
zstyle ':completion:*' file-sort modification         # 文件按修改时间排序(最近优先)

# 5. 路径补全优化
zstyle ':completion:*' expand yes                     # 展开路径
zstyle ':completion:*' squeeze-slashes yes            # 合并 // 为 /

# 6. kill 进程补全(实用必备)
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:processes' command 'ps -au$USER'

source ~/.zsh/plugins/powerlevel10k/powerlevel10k.zsh-theme
source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

然后进行功能配置,直接复制粘贴下面代码即可

### 常用命令别名 {{{
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
alias ls='ls -a --color=auto'
alias ll='ls -al --color=auto'
alias grep='grep --color=auto'
# alias nvim="nvim -u ~/.config/nvim/init-plugin.lua"
# }}}

### 个性化功能配置 {{{
# 容器相关
pm_ls()         { podman ps -a; }
pm_ls_net()     { podman network ls; }
pm_ls_pod()     { podman pod ls; }
pm_stop_all()   { podman stop $(podman ps -q); }
pm_start_all()  { podman start $(podman ps -aq); }
pm_rm_all()     { pm_stop_all; podman rm $(podman ps -q); }
pm_rm_pod_all() { pm_stop_all; podman pod rm $(podman pod list -q); }
pm_clean()      { podman system prune -a --volumes; }

# 更新软件
update() { ; }

# 清理垃圾
clean() { pm_clean; }

# 双击 ESC 在命令前插入 sudo
sudo-command-line() {
    [[ -z $BUFFER ]] && zle up-history
    [[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER"
    zle end-of-line                 #光标移动到行末
}
zle -N sudo-command-line
bindkey "\e\e" sudo-command-line
# }}}

### 终端代理 {{{
hostip="127.0.0.1"
# hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
proxy_on() {
    proxy_status="on"
    export https_proxy="http://${hostip}:7890"
    export http_proxy="http://${hostip}:7890"
    export all_proxy="socks5://${hostip}:7890"
    echo -e "终端代理已开启。"
}

proxy_off(){
    unset http_proxy https_proxy all_proxy
    echo -e "终端代理已关闭。"
    proxy_status="off"
}
# }}}

### 历史纪录相关配置 {{{
# 历史文件路径
export HISTFILE="$HOME/.zsh/.zsh_history"
# 历史纪录条目数量
export HISTSIZE=200
# 注销后保存的历史纪录条目数量
export SAVEHIST=200
# 以附加的方式写入历史纪录
setopt INC_APPEND_HISTORY
# 如果连续输入的命令相同,历史纪录中只保留一个
setopt HIST_IGNORE_DUPS
# 为历史纪录中的命令添加时间戳
setopt EXTENDED_HISTORY
# 启用 cd 命令的历史纪录,cd -[TAB]进入历史路径
setopt AUTO_PUSHD
# 相同的历史路径只保留一个
setopt PUSHD_IGNORE_DUPS
#  转换时间戳并打印历史命令
hist() {
  # 获取参数:不传则显示全部,传数字则显示最近 N 条
  local lines="${1:-0}"

  awk -F': |:0;' '
    /^: [0-9]+:[0-9]*;/ {
      printf "%s | %s\n", strftime("%Y-%m-%d %H:%M:%S", $2), $3
    }
  ' $HISTFILE | if [ "$lines" -gt 0 ] 2>/dev/null; then
    tail -n "$lines"
  else
    cat
  fi
}
# }}}

### 杂项 {{{
# 编辑器
export EDITOR=vim
export VISUAL=vim
# 禁用 core dumps
limit coredumpsize 0
# 以下字符视为单词的一部分
WORDCHARS='*?_-[]~=&;!#$%^(){}<>'
# }}}

升级、清理脚本需要自己编写,安卓 Termux 不需要终端代理,应当删除。

exec zsh 重启 zsh,插件会自动进行下载,需要自行解决网络问题。

p10k 在首次进入时需要进行配置,按照提示进行即可,配置之后,会在 zshrc 行首和行尾分别添加

if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

以及

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

需要把上面三句代码移动到 4 个 source 的后面,否则每次启动终端都会报错。

由于安卓内核不支持 gitstatsd 插件,因此需要手动在 ~/.p10k.zsh 最后添加一行

typeset -g POWERLEVEL9K_DISABLE_GITSTATUS=true

否则每次启动都会报错。

SSH 配置

最初的目的是为了取代 JuiceSSH,这个软件非常好用,但目前已经停止开发,永远停留在了 3.3.0 版本,非常可惜。

SSH 的配置文件存放于 ~/.ssh/,主要配置 authorized_keys,config,id_ed25519 三份文件。

  • authorized_keys:存放公钥们,用于从外面免密登录自身,权限 644
  • id_ed25519:私钥,用于免密连接其他机器,权限 600
  • config:存放了 SSH 主机的一些信息,权限644

config 示例文件:

❯ cat config
Host Debian
   HostName 10.0.0.111
   User sukipai
   IdentityFile ~/.ssh/id_ed25519

Host containers
   HostName 10.0.0.110
   User root
   IdentityFile ~/.ssh/id_ed25519

可以通过 ssh Debian 来快速连接目标主机。