Termux 使用教程
前言
Termux 是一个 Android 下的终端模拟器,可以在手机上模拟 Linux 环境。它是一个手机 App,可以从应用商店直接下载安装,打开就能使用,它提供一个命令行界面,让用户与系统交互。它支持 apt 软件包管理,可以十分方便安装软件包,而且完美支持 Python 、 PHP 、 Ruby 、 Go 、 Nodejs 、 MySQL 等工具。随着智能设备的普及和性能的不断提升,如今手机、平板等设备的硬件标准已经直逼入门级桌面计算机,使用 Termux 完全可以把手机变成一个强大的小型服务器。你甚至可以使用 Termux 通过 Nmap、Sqlmap、BBScan、subDomainsBrute、Hydra、RouterSploit 等工具实现端口扫描、注入检测、子域名爆破、多协议弱口令爆破、路由器漏洞检测框架多种功能,把手机打造成一个随身携带的渗透神器,成为现实版的艾登・皮尔斯。
下载安装
官方推荐从 F-Droid 和 Google Play 这两个平台下载,安装完打开就是下面这个样子。
基本操作
俗话说” 会跑之前,要先学会走 “,先了解基本操作,以后搞一些骚操作就轻而易举了。
选项和菜单
长按屏幕会出现可选择的复制光标,同时会显示 Copy
(复制)、Paste
(粘贴)、More...
(更多)这几个选项。
点击 More...
进入到下一级菜单。
长按屏幕
├── COPY: 复制
├── PASTE: 粘贴
├── More: 更多
├── Select URL: 选择 URL
└── Share transcipt: 传输当前会话的所有输出(通过Android api)
└── Reset: 重置
└── Kill process: 杀掉当前终端会话进程
└── Style: 风格配色(需安装 Termux:Styling 插件)
└── Keep screen on: 保持屏幕开启
└── Help: 帮助文档(Termux Wiki)
从左侧屏幕边缘向右滑动可以拖出导航栏,在这里可以新建、切换、重命名会话 (session) 和调出输入法。
常用快捷键
在使用终端时,需要使用到 Alt
、Ctrl
、Esc
等键,但手机上并没有这些键。
Termux 中可以使用音量减
按钮来模拟 Ctrl
键。例如,音量减
+L
相当于在键盘上按下 Ctrl
+L
。
以下是一些在终端中常用的快捷键,同样适用于 Termux 中。
Ctrl
+A
-> 光标移动到开始位置Ctrl
+E
-> 光标移动到最末尾Ctrl
+K
-> 剪切此处至末尾的所有内容Ctrl
+U
-> 剪切此处至开始的所有内容Ctrl
+W
-> 剪切此处到左边的单词Ctrl
+Y
-> 粘贴由Ctrl + U
、Ctrl + D
、Ctrl + W
剪切的单词Ctrl
+L
-> 相当于clear
命令,清屏Ctrl
+C
-> 终止进程/命令Ctrl
+D
-> 关闭终端Ctrl
+Z
-> 挂起(发送 SIGTSTP 到)当前进程
音量加
按钮可以作为产生特定输入的特殊键,可以粗略的理解为笔记本电脑上的 Fn
键。
音量加
+E
->Esc
键音量加
+T
->Tab
键音量加
+1
->F1
键(音量增加 + 2
相当于F2
,以此类推)音量加
+0
->F10
键音量加
+B
->Alt
+B
,使用readline时返回一个单词音量加
+F
->Alt
+F
,使用readline时转发一个单词音量加
+X
->Alt
+X
音量加
+W
-> 向上箭头键音量加
+A
-> 向左箭头键音量加
+S
-> 向下箭头键音量加
+D
-> 向右箭头键音量加
+L
->|
(管道字符)音量加
+H
->〜
(波浪号字符)音量加
+U
->_
(下划线字符)音量加
+P
->Page Up
键(上一页)音量加
+N
->Page Down
键(下一页)音量加
+.
->Ctrl
+\
(SIGQUIT)音量加
+V
-> 显示音量控制音量加
+Q
-> 显示额外的按键视图音量加
+K
-> 同上
扩展功能按键
前面提到 Termux 可以使用音量键来实现快捷键操作,个人感觉使用音量键不是很不方便。Termux 还提供屏幕扩展功能按键。可以使用音量加
+Q
或者音量加
+K
可以显示和隐藏。
此外,功能按键向左滑动可以调出文本输入框,可以更方便的粘贴和对待输入的指令进行更精细的修改。
软件包管理
Termux 除了支持 apt
命令外,还在此基础上封装了 pkg
命令,pkg
命令向下兼容 apt
命令。官方建议使用 pkg
命令,因为它会在安装或升级包时会自动更新 apt 列表,也就是说执行 pkg upgrade
相当于执行了 apt update && apt upgrade
,简化了操作流程。
命令 | 作用 |
---|---|
pkg search | 搜索包 |
pkg install | 安装包,简写pkg i |
pkg uninstall | 卸载包 |
pkg reinstall | 重新安装包 |
pkg update / pkg upgrade | 升级软件包,简写pkg up |
pkg list-all | 列出可供安装的所有包 |
pkg list-installed | 列出已经安装的包 |
pkg shoe | 显示某个包的详细信息 |
pkg files | 显示某个包的相关文件夹路径 |
Termux 与标准 Linux 目录结构的区别
与大多数 Linux 发行版不同,Termux 不遵循文件系统层次结构标准,你无法在标准路径找到 /bin
、/etc
、/usr
、/tmp
等目录。为了方便,Termux
提供了一个特殊的环境变量:PREFIX
,它相当于 /usr
目录。
$ tree -d -L 1 $PREFIX
/data/data/com.termux/files/usr
├── bin
├── etc
├── include
├── lib
├── libexec
├── share
├── src
├── tmp
└── var
此外用户主目录也在非常规位置。
$ echo $HOME
/data/data/com.termux/files/home
由于没有 root 权限,想对根目录进行操作是不可能的。
$ ls /
ls: cannot open directory '/': Permission denied
对此可以安装 proot
,并使用 termux-chroot
命令可以模拟 root 环境与标准的 Linux 目录结构。
$ pkg i -y proot
$ termux-chroot
$ ls /
bin data dev etc home lib proc root sbin share storage system tmp usr var vendor
$ ls /usr
bin etc include lib libexec share src tmp var
这对某些必须要用到标准路径的一些程序会非常有用。
root 权限
前面提到的 proot
毕竟是模拟的方式,会有一定的局限性。如果手机已经 root ,在 Termux 中使用 su
虽然可以切换为 root 用户,但是会有一些 Termux 的命令无法正常使用,毕竟这不是一个标准的 Linux 环境。解决方案是安装 tsu
来获取 root 权限,tsu
是 Termux 中的 su
替代方案。
安装 tsu
:
pkg i -y tsu
使用 root 权限执行命令:
tsudo command
切换到 root 用户:
tsu
在 root 用户下,输入 exit
命令或者按 Ctrl
+D
可以回到普通用户。
访问外部存储
Termux 默认只能访问自身内部的数据,如果要访问手机中其它的数据,输入下面的命令后,手机弹出对请求权限的窗口,允许即可。
termux-setup-storage
这个操作将创建 $HOME/storage
目录,此目录中的子目录将通过符号链接到手机存储中的一些常用目录。
$ tree storage
storage
├── dcim -> /storage/emulated/0/DCIM
├── downloads -> /storage/emulated/0/Download
├── movies -> /storage/emulated/0/Movies
├── music -> /storage/emulated/0/Music
├── pictures -> /storage/emulated/0/Pictures
└── shared -> /storage/emulated/0
此外还可以通过 /sdcard
来访问外部存储的根目录。
SSH 连接
作为 Linux 终端或者服务器,SSH 都是必须的。不管你是 SSH 连接到 Termux ,还是使用 Termux 去连其它主机,都需要先安装 openssh
。
pkg i -y openssh
Termux 使用 SSH 连接其它主机
基本操作,ssh 命令:
ssh User@Host -p Port
SSH 连接到 Termux
手机操作起来毕竟束缚太多,在电脑上通过 SSH 连接再进行操作是一件非常优雅的事情。
设置密码:
passwd
查看用户名:
whoami
由于 Termux 是单用户环境,所以这个步骤不是必须的。使用任何用户名都可以进行登录。
查看 IP 地址:
ifconfig
启动 SSH 服务端:
sshd
SSH 服务端程序默认是不启动的,且每次应用关闭再打开也需要再次启动。后面会讲如何自启 SSH 服务端。
集齐 SSH 三要素,现在可以在电脑终端中输入 ssh
命令或者使用其它 SSH 客户端进行连接了。需要注意的是 Termux 的 SSH 端口是 8022
。
ssh User@Host -p 8022
执行 ssh
命令后,输入密码就可以连上了,然后就可以在电脑上方便的进行各种骚操作了。
配置 SSH 密钥登录
如果需要将 Termux 的 SSH 端口暴露在公网,为了安全建议配置密钥登录。
操作和一般的 Linux 发行版没有区别,属于基本操作。如果你不知道如何配置可以去看《使用 ssh-keygen 和 ssh-copy-id 配置 SSH 密钥实现免密登陆》和《使用 Xshell 给 Linux VPS 配置 SSH 密钥实现免密登录》这两篇教程补补课,这里不再赘述。
友情提示:
sshd_config
文件的路径是$PREFIX/etc/ssh/sshd_config
推荐使用 SSH 密钥一键配置脚本,它可以从 GitHub 或者链接中获取公钥并自动配置。只要你在 GitHub 上设置过公钥,配置后就直接可以使用连接 GitHub 仓库的 SSH 密钥进行登录。
SSH 服务端(sshd)自启
如果不想每次 ssh 连接 Termux 前去输入 sshd
命令可以设置自启。sshd 自启分两种情况,一种是打开 Termux 应用时自启,还有一种是手机开机后自启。
打开应用时自启 SSH 服务端
把 sshd
命令添加到 Shell 配置文件中即可,比如我使用的是 zsh ,那么就添加到 ~/.zshrc
中。如果是 bash ,那么就添加到 ~/.bashrc
。
echo "sshd" >> ~/.zshrc
手机开机后自启 SSH 服务端
首先安装 Termux:Boot 插件,安装后给予该插件开机启动的权限,这样 Termux 就可以在开机后自启了。
创建 ~/.termux/boot/
目录(这个目录中放置的脚本会在开机启动 Termux 后执行)。
mkdir -p ~/.termux/boot/
在该目录中新建一个脚本,命名为 start-sshd
,把 sshd
命令添加到这个文件中即可。
echo 'termux-wake-lock; sshd' > ~/.termux/boot/start-sshd
termux-wake-lock
命令可防止手机休眠导致 Termux 应用的进程被冻结。
设置完成后,手机开机会自动启动 Termux ,并开启 SSH 服务端。
ermux优化
终端配色
主要使用了zsh
来替代bash
作为默认shell
.
使用一键安装脚本来安装,一步到位,顺便启动了外置存储,可以直接访问SD卡下的目录.
执行下面这个命令确保已经安装好了curl
Bash
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
Android6.0以上会弹框确认是否授权,允许
授权后Termux
可以方便的访问SD卡文件.
脚本允许后先后有如下两个选项:
Enter a number, leave blank to not to change: 14
Enter a number, leave blank to not to change: 6
分别选择背景色
和字体
想要继续更改挑选配色的话,继续运行脚本来再次筛选:
Bash
$ ~/termux-ohmyzsh/install.sh
exit
重启sessions
会话生效配置
访问外置存储优化
执行过上面的zsh
一键配置脚本后,并且授予文件访问权限的话,会在家目录生成storage
目录,并且生成若干目录,软连接都指向外置存储卡的相应目录
创建QQ文件夹软连接
手机上一般经常使用手机QQ来接收文件,这里为了方便文件传输,直接在storage
目录下创建软链接.
QQ
Bash
ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ
TIM
Bash
ln -s /data/data/com.termux/files/home/storage/shared/tencent/TIMfile_recv TIM
最后效果图如下:
这样可以直接在home
目录下去访问QQ文件夹,非常方便文件的传输,大大提升了工作效率.
oh my zsh主题配色
编辑.zshrc
配置文件
Bash
$ vim .zshrc
第一行可以看到,默认的主题是agnoster
主题:
在.oh-my-zsh/themes
目录下放着oh-my-zsh
所有的主题配置文件.
下面是国光认为还不错的几款主题
agnoster
robbyrussell
jaischeema
re5et
junkfood
cloud
random
当然如果你是个变态的话,可以尝试random
主题,每打开一个会话配色主题都是随机的.
安装常用工具
安装一些基本的常用工具,方便后续的折腾。
pkg i -y git curl wget tree vim nano tmux htop
安装和配置 Oh My Zsh
Oh My Zsh will not make you a 10x developer…but you may feel like one.
上面那句话来自 Oh My Zsh README,意思是 “装逼是第一生产力”。(大雾
我使用 Oh My Zsh 倒不是为把终端搞得花里胡哨去装逼,作为一个实用主义者,我非常喜欢自动建议、补全和代码高亮功能,这极大的提高了终端的输入效率。所以不管什么平台,都会安装 Oh My Zsh 。
安装 zsh
pkg i -y zsh
安装 Oh My Zsh
使用 curl 下载安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
使用 wget 下载安装
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Oh My Zsh 安装完成后会提示你设置 zsh 为默认 sehll 。如果没有提示,输入下面的命令进行设置:
chsh -s zsh
修改 Oh My Zsh 主题
Oh My Zsh 有很多内置主题,只需要修改配置文件即可启用。也可以选择安装外置主题,比如 Powerlevel10k 。
我使用的主题是 ys,简单实用,不花里胡哨。使用 sed
命令一键修改:
sed -i '/^ZSH_THEME=/c\ZSH_THEME="ys"' ~/.zshrc
修改后输入下面的命令刷新配置就可以看到效果:
source ~/.zshrc
安装 Oh My Zsh 插件
安装 zsh-syntax-highlighting(代码高亮)
git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
安装 zsh-autosuggestions(自动建议)
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
安装 zsh-completions(自动补全)
git clone https://github.com/zsh-users/zsh-completions $ZSH_CUSTOM/plugins/zsh-completions
zsh-completions 插件还需把 autoload -U compinit && compinit
添加到.zshrc
。输入命令可一键添加:
[ -z "`grep "autoload -U compinit && compinit" ~/.zshrc`" ] && echo "autoload -U compinit && compinit" >> ~/.zshrc
把需要启用的插件写入到配置文件中,使用 sed
命令一键操作。
sed -i '/^plugins=/c\plugins=(git z zsh-syntax-highlighting zsh-autosuggestions zsh-completions)' ~/.zshrc
如果你有自己想添加的插件,写在括号内即可,插件名称用空格隔开。
最后应用配置
source ~/.zshrc
修改终端配色
修改配色需要安装 Termux:Styling 这个插件,安装好后长按屏幕,进入 More...
菜单,选择 Style
就可以对配色和字体进行设置。这在上篇文章中介绍菜单和选项时有提到过。
选择好你自己喜欢的配色和字体,设置好后会在 ~/.termux
目录中生成配色文件 colors.properties
和字体文件 font.ttf
,可以把这两个文件进行备份,以后只需要导入即可,就不再需要安装这个插件了。
$ tree ~/.termux
/data/data/com.termux/files/home/.termux
├── colors.properties
├── font.ttf
├── shell -> /data/data/com.termux/files/usr/bin/zsh
└── termux.properties
Bash
ZSH_THEME="random"
管理员身份
手机没有root
利用proot
工具来模拟某些需要root的环境
Bash
pkg install proot
然后终端下面输入:
termux-chroot
即可模拟root
环境
在这个proot
环境下面,相当于是进入了home
目录,可以很方便地进行一些配置.
在管理员身份下,输入exit
可回到普通用户身份。
手机已经root
安装tsu
,这是一个su
的termux版本,用来在termux上替代su
:
Bash
pkg install tsu
然后终端下面输入:
tsu
即可切换root
用户,这个时候会弹出root
授权提示,给予其root
权限,效果图如下:
在管理员身份下,输入exit
可回到普通用户身份。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!