【转载】Termux命令行神器初体验

原文地址

Termux 折腾的一点记录。

前言

什么是Termux

Termux官方网站 上已经介绍的很详细了。

Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.

Termux是一款强大的安卓终端模拟APP,无需root直接启动,自动安装最小化linux系统,使用APT作为包管理工具并提供各种各样的软件包。

安装

配置要求

对手机的配置没啥特殊要求,5.0及更高版本,还有为了操作方便最好有 root 权限,为什么待会儿再说,手机的存储容量一定要充足,因为随便一个安装包就是几十兆。

下载地址

酷安基佬传送门 重度骨粉传送门

其他工具

由于操作比较反人类,为了使用更方便最好再装一些其他工具。

  • 黑客键盘 提供一些常用的终端符号的输入
  • 输入法切换 便于和常用输入法进行切换
  • RE管理器 便于提取和更改模拟终端系统中的文件(需root)
  • JuiceSSH SSH连接增强,内置了一些软键盘十分强大

上手

目录分析

打开 app 就是黑底白字的命令行,默认以 /data/data/con.termux/files/home 作为家目录,对安卓文件系统有点了解的同学都知道 /data/data/ 存放的是所有APP自身的数据, /data/data/con.termux/

这张图是我用电脑上的 xshell 连接的效果,具体连接方式下文会讲,这里只是简单列出目录结构。

进入 RE管理器 查看到的文件目录,可以看到 /data/data/com.termux/files/usr 路径很像是Termux 创建的根文件系统,每个目录的功能和普通 linux 下类似,详见 鸟窝

知道这一点就可以知道修改配置文件的几种方法:

  • 在命令行操作使用vi编辑器
  • 使用RE管理器直接修改

个人觉得第两种方法要方便一些,尤其是后来的ssh密钥操作,接下来以第二种文件修改方式为主。

改源

不管是不是 linux ,只要涉及到网络服务改源便是家常便饭

编辑 /data/data/com.termux/files/usr/etc/apt/sources.list 文件,修改 apt 源为清华大学开源镜像

# The main termux repository:
#deb [arch=all,arm] http://termux.net stable main
deb [arch=all,arm] http://mirror.tuna.tsinghua.edu.cn/termux stable main

修改的两种方式

更多信息可以看看清华大学 Termux 镜像 使用帮助

apt update

更新软件源信息

SSH增强

原生的 Termux 即使搭配黑客键盘也显得操作很不方便,于是想开启 sshd 服务来远程控制 Termux 。下面以手机上的 juicessh 和电脑上的 xshell 为例

apt install openssl

安装完成后 /data/data/com.termux/files/usr/bin 目录下会多几个有关 ssh 的可执行文件。接下来开启 sshd 服务。

sshd

查看 sshd 使用的端口,我这里是 8022

netstat -ntlp

查看当前登录终端的用户名 找不到命令就按提示信息装,缺什么装什么 我这里是 u0_a8

whoami

由于一直未找到 ssh 密码相关的命令设置,例如 passwd 相关的命令,只能使用 ssh 免密码登录,涉及到 ssh 密钥

ssh-keygen

接下来的问题一律回车默认,你会看到 /data/data/com.termux/files/home/.ssh 多出两个文件 id_rsa.pubid_rsa ,分别是公钥和私钥,将公钥导入到信任主机列表

cd /data/data/com.termux/files/home/.ssh
cat id_rsa.pub >> authorized_keys

进入 JuiceSSH 的认证,用户名填写刚才的用户名,私钥复制粘贴 id_rsa 的内容,建议使用RE管理器 操作。

xshell

xshell设置也是类似,不过xshell可以直接生成密钥对,生成过后只需把公钥添加到 authorized_keys

今天就写到这里吧,连上了 ssh 一切都方便了,接下来折腾搭建web服务,内网穿透,交叉编译…