安装Termux的手机上运行Python

2022-02-09 17:46:15 浏览数 (1)

1. Termux 终端

Android是一个单用户图形化系统,功能主要以应用的形式呈现给用户,因此在系统上我们无法直接获取终端,更是无法直接调用系统自带的丰富指令。使用ADB是一个曲线救国的方法,打开USB调试后开发者可以在桌面系统的终端中触发Android系统自带指令,使用方法大概如下:

代码语言:javascript复制
adb shell env   # 查看Android的环境变量

这种方法需要一台电脑的配合,为了实现全天候、无差别的终端体验,你首先需要一个终端模拟器来保证随时随地地使用终端。

Android平台我们推荐Termux终端模拟器。

Termux

Termux终端有很多优秀的特性,这里要说两点:

  1. Termux有针对手机输入优化的键盘显示,长按KEYBOARD选项可打开该功能
  2. Termux维护着适合Android的库,并自带包管理器apt

因此,在Android上使用Termux终端和在Linux上使用终端一样方便。 安装完Termux后你有以下几个步骤需要完成:

  1. 到手机设置中开启 Termux 的存储权限,否则在Termux终端无法访问内部存储
  2. 修改Termux的源地址 (特别是国内用户

和Linux类似,Termux有自己的软件源,安装Termux后默认的软件源是Termux官网,即 http://termux.net,可打开源列表查看。

代码语言:javascript复制
### 如何查看
export EDITOR=vi
apt edit-sources 

源列表的一般格式为:

代码语言:javascript复制
# The main termux repository
deb [arch=all,你的平台架构] http://termux.net stable main

上面的指令中我们指定 vi 作为默认文本编辑器,vi指令是Termux自带的,你也可以指定其他文本编辑器,但需要先安装。默认的源服务器在国内是无法访问的,除非使用梯子,也就是说刚开始你可能只能使用vi编辑器,而且不能安装任何软件,毕竟 apt updage && apt upgrade都不能成功执行,换言之没有梯子默认情况下你无法获取资源列表。 国内用户建议使用清华维护的源服务器: http://mirrors.tuna.tsinghua.edu.cn/termux

代码语言:javascript复制
## 国内用户建议使用的源列表内容
# The main termux repository
# deb [arch=all,你的平台架构] http://termux.net stable main
deb [arch=all,你的平台架构] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

默认情况下内容是使用http协议传输的,我们可以为apt添加安全传输支持,这样就可以使用https安全传输协议。

代码语言:javascript复制
apt install apt-transport-https

这时再次修改源服务器的传输协议为https并更新即可。 安装Termux后我们不仅可以在手机上使用/system/bin下的命令,还能下载新的指令使用。

2、Termux的安装Python

1. 更新包
代码语言:javascript复制
apt update
apt upgrade
2. 修改源
代码语言:javascript复制
export EDITOR=vi
apt edit-sources

在vi编辑器里把第二行替换成以下内容(清华镜像源)

代码语言:javascript复制
deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

在vi编辑器里,输入第一个i进入编辑模式(插入),下面会给出提示“INSERT”,此时再打字就是在光标左边插入字符。等修改完毕后,按住音量,同时输入e,即可退出编辑模式。再输入:wq保存并退出vi。

3. Python环境部署

安装python2.7

代码语言:javascript复制
pkg install python2

安装完成后,使用python2命令启动python 2.7.14环境.

安装python3

代码语言:javascript复制
pkg instll python

安装完成后,使用python命令启动python 3.6.5环境.

升级pip版本

代码语言:javascript复制
python2 -m pip install --upgrade pip 
python -m pip install --upgrade pip

这两条命令分别升级了pip2pip3到最新版. pip版本查看

ipython

ipython是一个python的交互式shell,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。先安装clang,否则直接使用pip安装ipython会失败报错.

代码语言:javascript复制
pkg install clang
pip install ipython
pip3.6 install ipython

然后分别使用ipythonipython2进入py2py3控制台:

编辑器

终端下有vim神器,并且官方也已经封装了vim-python,对vim进行了Python相关的优化.

代码语言:javascript复制
pkg install vim-python

3、Termux的使用技巧

安装基本工具

代码语言:javascript复制
pkg update pkg install vim curl wget git unzip unrar 

启用外置存储

Android6.0以上会弹框确认是否授权,执行这条命令确保termux在最前端(当前Activity)

termux-setup-storage

成功拿到存储权限后会在家目录生成storage目录,并且生成若干目录,软连接都指向外置存储卡的相应目录

显示扩展功能按键

方法一

从左向右滑动,显示隐藏式导航栏,长按左下角的KEYBOARD.

方法二

使用Termux快捷键:音量 Q

常用快捷键

Ctrl键是终端用户常用的按键 – 但大多数触摸键盘都没有这个按键。为此,Termux使用音量减小按钮来模拟Ctrl键。 例如,在触摸键盘上按音量减小 L发送与在硬件键盘上按Ctrl L相同的输入。

  • Ctrl A -> 将光标移动到行首
  • Ctrl C -> 中止当前进程
  • Ctrl D -> 注销终端会话
  • Ctrl E -> 将光标移动到行尾
  • Ctrl K -> 从光标删除到行尾
  • Ctrl L -> 清除终端
  • Ctrl Z -> 挂起(发送SIGTSTP到)当前进程

音量加键也可以作为产生特定输入的特殊键.

  • 音量加 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 -> 上一页
  • 音量加 N -> 下一页
  • 音量加 . -> Ctrl (SIGQUIT)
  • 音量加 V -> 显示音量控制
  • 音量加 Q -> 显示额外的按键视图

基本命令

Termux除了支持apt命令外,还在此基础上封装了pkg命令,pkg命令向下兼容apt命令.apt命令大家应该都比较熟悉了,这里直接简单的介绍下pkg命令:

代码语言:javascript复制
pkg search <query> 搜索包
pkg install <package> 安装包
pkg uninstall <package> 卸载包
pkg reinstall <package> 重新安装包
pkg update                      更新源
pkg upgrade                     升级软件包
pkg list-all                    列出可供安装的所有包
pkg list-installed              列出已经安装的包
pkg shoe <package> 显示某个包的详细信息
pkg files <package> 显示某个包的相关文件夹路径 

目录环境结构

代码语言:javascript复制
~ > echo $HOME /data/data/com.termux/files/home
 ~ > echo $PREFIX /data/data/com.termux/files/usr
 ~ > echo $TMPPREFIX /data/data/com.termux/files/usr/tmp/zsh 

Termux-api

Termux:API,用于访问手机硬件,实现更多的可玩性,可以实现如下等功能:

  • 访问电池信息
  • 获取相机设备信息
  • 获取本机设备信息
  • 获取设置剪贴板信息
  • 获取通讯录信息
  • 获取设置手机短信
  • 拨打号码
  • 振动设备

安装Termux-api

Termux-api Google Play下载地址

如何在电脑上下载Google play上的应用?

安装Termux-api软件包安装完Termux-apiAPP后,Termux里面必须安装对应的包后才可以实现操作手机底层.

代码语言:javascript复制
pkg install termux-api

下面只列举一些可能会用到的,想要获取更多关于Termux-api的话,那就去参考官方文档.

获取电池信息

代码语言:javascript复制
termux-battery-status

可以看到电池的-健康状况-电量百分比-温度情况等

代码语言:javascript复制
{
  "health": "GOOD",
  "percentage": 67,
  "plugged": "UNPLUGGED",
  "status": "DISCHARGING",
  "temperature": 24.600000381469727
}

获取相机信息

代码语言:javascript复制
termux-camera-info

获取与设置剪贴板

查看当前剪贴板内容

代码语言:javascript复制
termux-clipboard-get

设置新的剪贴板内容

代码语言:javascript复制
termux-clipboard-set 000

获取通讯录列表

代码语言:javascript复制
termux-contact-list

查看短信内容列表

代码语言:javascript复制
termux-sms-inbox

发送短信termux-sms-send

支持同时发送多个号码,实现群发的效果,官方介绍如下:

代码语言:javascript复制
termux-sms-send -n number(s)  recipient number(s) - separate multiple numbers by commas

发送测试

代码语言:javascript复制
termux-sms-send -n 10001 cxll

拨打电话

代码语言:javascript复制
termux-telephony-call

拨打电话给10001中国电信,查看下话费有没有欠费~?

代码语言:javascript复制
termux-telephony-call 10001

WiFi相关

获取当前WiFi连接信息

代码语言:javascript复制
termux-wifi-connectioninfo

获取最近一次WiFi扫描信息

代码语言:javascript复制
termux-wifi-scaninfo

小结

直接操作调动系统底层的话,可以通过编程来实现自动定时短信发送,语音播报等 DIY空间无线

一些无聊的尝试

一些无聊有趣的版块,如果你是一个正经讲究人,可以跳过这个板块以节约你的阅读时间.

nyancat 彩虹猫

彩虹貓(英语:Nyan Cat)是在2011年4月上传在Youtube 的视频,并且迅速爆红于网络,並在2011年YouTube浏览量最高的视频中排名第五.

代码语言:javascript复制
pkg install nyancat
nyancat

什么鬼~完全Get不到国外人的趣味点~

终端二维码

Linux 命令行下的二维码,主要核心是这个网址:http://qrenco.de/

代码语言:javascript复制
echo "http://www.sqlsec.com" |curl -F-=<- qrenco.de

如果你不嫌无聊的话还可以扫描这个二维码,然后就打开我的博客了.

终端地图

一个基于nodejs编写的命令行下的地图.

代码语言:javascript复制
npm install mapscii -g
mapscii

进入终端地图

操作方法

  • 方向键 移动
  • az键 放大缩小
  • q键 退出

终端下的地图!讲究人~ 如果你足够无聊的话,还可以尝试能不能在这个地图上找到自己所在的位置.

代码语言:javascript复制
from: http://www.52bug.cn/黑客技术/4875.html
http://www.freebuf.com/geek/170510.html

0 人点赞