我们现在使用的主流桌面系统都会自带命令行程序,Windows也不例外(Windows10推出了Bash Shell和powershell),可见单独使用图形界面已经不能满足我们的需求了,特别是对我这种从事软件开发工作的人来说,一个系统中没有命令行会引起极度不适.但是我们常用的智能手机上就缺少这么一种方便的工具,目前的手机在硬件方面已经达到初级的桌面计算机的标准,比如我手里这款两年前买的小米5sp,4核6G内存128G存储空间,在上面运行一些常规软件完全不是问题.
大家都知道,Android是基于Linux内核,所以它本身就是就可以当做一台Linux主机来用(苹果手机的话好像必须要越狱,这里就不管他了),可以在上面安装Python,git,openssh,数据库等.Android是一个单用户图形化系统,功能主要是以应用的形式来呈献给用户,因此在系统上我们无法直接获取终端,也就无法使用丰富的Linux命令了.但是借助终端模拟器,可以实现这一需求.之前我也用过一些工具,但是都不太好用,就给卸载了,直到我发现了Tremux这款神器.
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 combines powerful terminal emulation with an extensive Linux package collection.
• Enjoy the bash and zsh shells.
• Edit files with nano and vim.
• Access servers over ssh.
• Develop in C with clang, make and gdb.
• Use the python console as a pocket calculator.
• Check out projects with git and subversion.
• Run text-based games with frotz.
At first start a small base system is downloaded - desired packages can then be installed using the apt package manager. Access the built-in help by long-pressing anywhere on the terminal and selecting the Help menu option to learn more.
官网
Google Paly下载地址
下面?是启动Termux之后的界面,底部的虚拟键盘有一些在Linux上经常用到但是手机键盘上没有的按键(音量键+q 显示/隐藏),截图中提示可以使用pkg命令来管理包,但是Termux也自带apt包管理器,并且维护着适合Android的库,有自己的软件源.
首先,打开Termux进入的home目录在Android系统中的位置是:/data/data/com.termux/files/home,
另外环境变量$PREFIX=/data/data/com.termux/files/usr指向Termux的/usr目录,使用apt install vim 安装vim编辑器.
在手机上使用命令行还是很不方便的,主要是键盘的问题,我们最好是能通过SSH在电脑上链接Termux,再进行操作,当然也可以用手机链接电脑,在外出的时候,电脑不在身边,也可以进行一些操作.
Termux终端中使用ssh访问远程服务器与Linux终端中使用ssh别无二致。但要使用ssh访问Android设备就不同了,Termux终端中sshd服务不支持密码验证,也就是说用户不能期望通过ssh user@server然后输入用户密码的方式从别的终端访问Android设备。Termux终端中sshd只支持密钥验证。
例如,我的电脑IP为172.16.128.96,用户名为admin;
手机的IP为172.16.128.245,用户名u0_a494;
(IP和用户名分别用ifconfig和whoami查看)
# 安装
apt update
apt install openssh
# 启动
sshd
ssh-keygen -t rsa
会生成两个文件id_rsa和id_rsa.pub,并保存在~/.ssh/下,前者是私钥,后者是公钥.
如果电脑上已经生成过秘钥了则可以跳过这一步.
3. 传送id_rsa.pub到安卓手机上
在手机上Termux终端输入以下命令
cd
scp [email protected]:.ssh/id_rsa.pub .
接下来会提示输入电脑上的用户密码.
传送完之后将电脑的公钥添加到手机的授权文件里:
cat id_rsa.pub >> .ssh/authorized_keys
当然也可以通过其他方式来传输公钥,反正最终的目的就是把电脑的公钥内容写入授权文件里就好了.
ssh连接
在手机上启动sshd服务
sshd
ssh [email protected] -p 8022
如下分别是电脑连手机和手机连电脑的界面
后面可以做什么事就请发挥你自己的想象力吧.
神器Termux的使用日常
你浪费了一台电脑
ubuntu使用SSH通过Termux登录Android设备