termux_study

安装termux

termux的下载安装及使用教程

初始化操作

termux-setup-storage #给访问权限

apt update && apt upgrade -y && pkg update && pkg upgrade -y #检查更新并升

pkg install vim #文本编辑工具

其它工具的安装

pkg install git #根据个人需要选择性安装

pkg install nodejs-lts -g #用来安装各种插件,根据个人需要选择性安装

npm install hexo-cli -g #必须先安装nodejs再执行,用来搭建博客,根据个人需要选择性安装

pkg install proot-distro #可用来安装linux系统,根据个人需要选择性安装

termux-openssh

安装好termux之后,想尝试一下termux的ssh,以我为例,做一个总结。

注意:以下操作需要保证电脑跟手机保持在同一个局域网,且是电脑连接手机。

pkg install openssh #安装openssh

passwd #电脑在连接termux时会提示输入密码,所以需要在termux中提前设置,执行passwd后会提示设置密码并确认密码。

whoami #查看termux的用户名。

ifconfig #查看termux的ip,我的是wlan1部分,看inet的后的ip地址。

ssh -p user@ip #user为termux执行whoami后看到的用户名,ip为执行ifconfig后看到的wlan1部分inet对应的ip。

接下来会询问"yes or no",输入yes,输入密码,然后连接成功。

通过Termux和VNC实现以手机为服务器的桌面办公

参考链接

通过Termux和VNC实现以手机为服务器的桌面办公

termux利用工作proot-distro安装linux

解决了termux安装ubuntu系统和安装系统的中文支持问题

安装ubuntu和图形界面

现在安装ubuntu,我是通过proot-distro来安装的

1
  apt install proot-distro

然后键入proot-distro list来显示可安装包,这个方法不但可以方便的安装ubuntu可以看到你还可以用它来安装其它linux的发行版。 这里我们安装ubuntu

1
  proot-distro install ubuntu

这时候会从外网下载几十M的大文件(没听错几十兆而已,但很慢),有时候网络不好,多试几次。 显示安装成功后就可以登入了

1
  proot-distro login ubuntu

当然你也可以把这条命令加入到自启动项里面,每次就可以自动登陆了。

连接VNC图形化操作

进入ubuntu后先更新软件源

1
  apt update

然后安装需要用到的图形化服务软件

1
apt install xfce4 xfce4-goodies

会安装xfc4轻量级图形界面服务,这一步大概会消耗1G的空间,当然也可以试着去安装其他的图形界面服务如gnome

安装xfc4参考:https://blog.csdn.net/cunchi4221/article/details/107471665

然后安装tigervnc。tigervnc感觉比tightvnc要配置简单一些

1
  apt install tigervnc-standalone-server tigervnc-common

然后做一下简单的配置

运行

1
  vncserver

来设置密码

然后创建启动脚本:

1
  nano .vnc/xstartup

如上命令就是用文本编辑器nano(当然你可以用其他文本编辑器)编辑用户文件夹下的.vnc文件夹下的xstartup文件(如果没有就创建一个)内容如下:

1
2
  #!/usr/bin/bash
  xfce4-session

注意xfce4-session后面不要跟&号,不然会在运行vncserver时提示过早退出,然后记得给它加执行的权限。

1
  chmod +x .vnc/xstartup

首次设置VNC时,它将在端口5901上启动默认服务器实例。

如下是一个启动vnc服务器的例子:

1
  vncserver :1 -localhost no -geometry 1920x1080

然后就可以通过vnc的客户端登陆了,为了能够远端登陆不仅仅是本机登陆,设置-localhost no 是必要的。由于VNC是不加密的,会在登陆时提示如下,当然也可以自行百度实现在此基础上的外加SSH通道的加密。

输入刚才设置的密码就可以登陆了

之后就是熟悉的ubuntu界面了,可以自由安装自己喜欢的程序了

中文语言设置

1
2
3
4
5
  apt install language-pack-zh-hans* 安装中文包
  apt install language-pack-gnome-zh-hans* 安装中文包
  apt install fonts-wqy-*
  # $ apt install fonts-wqy-microhei 安装中文字体
  # $ apt install fronts-wqy-zenhei 另一个中文字体
1
  vim /etc/default/locale

更改内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  LANG="zh_CN.UTF-8"
  LANGUAGE="zh_CN:en_US:en"
  LC_NUMERIC="zh_CN.UTF-8"
  LC_TIME="zh_CN.UTF-8"
  LC_MONETARY="zh_CN.UTF-8"
  LC_PAPER="zh_CN.UTF-8"
  LC_IDENTIFICATION="zh_CN.UTF-8"
  LC_NAME="zh_CN.UTF-8"
  LC_ADDRESS="zh_CN.UTF-8"
  LC_TELEPHONE="zh_CN.UTF-8"
  LC_MEASUREMENT="zh_CN.UTF-8"

保存后执行

1
  fc-cache -fv  #最好进行这一步后再安装fcitx,否则有可能输入法不起做用。

则控制台终端己经会出现中文了

如果安装过程中发现一些缺失的东东

1
2
  apt install dialog
  apt install apt-utils

关于中文输入法

1
2
3
  apt install fcitx
  apt install fcitx-config-*
  apt install fcitx-table-wbpy # 五笔拼音

如果通过VNC或别的XDSL进入XFCE,有fcitx图标,也能看到拼音,五笔输入法,但是却输入不了中文

1
  vim ~/.profile

在结尾加入

1
2
3
4
  #fcitx
  export GTK_IM_MODULE=fcitx
  export QT_IM_MODULE=fcitx
  export XMODIFIERS=”@im=fcitx”

然后退出图形界面后,重启动。中文输入法可用了。

如果要一进入桌面就有fcitx,则可

1
  cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/

termux使用技巧

在termux查看手机内置存储

1
  ls $EXTERNAL_STORAGE

热键

创建新的标签页:Ctrl+Alt+c

切换到下一个标签页:Ctrl+Alt+n

Termux设置——服务自启动

首先奉上官方Wilki: https://wiki.termux.com/wiki/Termux-services

用过Linux的朋友应该对runit并不陌生,runit是一个用于服务监控的UNIX软件,它提供以下两种服务:

当服务器启动的时候启动定义好的服务。 监控运行的服务,当服务发生意外中断的时候,自动重启服务。 而termux-services就是基于runit封装的,至此大部分runit功能及命令,并专门针对Termux特殊结构做了优化。

termux-services会主动监视$PREFIX/var/service/目录,会自动未目录下服务生成守护程序,当服务意外崩溃时,会第一时间将服务重新启动。

同时termux-services默认会后台启动服务,并将服务的输出流做重定向。

安装:

1
  pkg install termux-services -y

安装完成后会随软件开启自动运行。

原生支持的服务

包名 进程服务名 默认使用端口 服务描述
apache2 httpd 8080 Apache Web Server HTTP Web Server
at atd AT and batch delayed command scheduling utility and daemon at
bitcoin bitcoind Bitcoin Core
busybox telnetd 8023 Remote terminal service Telnet
busybox ftpd 8021 FTP (File Transfer Protocol) FTP
cronie crond Daemon that runs specified programs at scheduled times cron
emacs emacsd Extensible, customizable text editor-and more EMACS
ipfs ipfs A peer-to-peer hypermedia distribution protocol IPFS
libmosquitto mosquitto 1883 MQTT is a lightweight, publish-subscribe network protocol MQTT
lighttpd lighttpd 8080 Lighttpd Small webserver HTTP Web Server
lnd lnd Lightning Network Daemon
mariadb mysqld 3306 MariaDB Community-developed fork of the MySQL from its original authors
mpd mpd Music Player Daemon (MPD)
mpdscribble mpdscribble MPD client which submits tracks being played
nginx nginx 8080 NGINX Web server HTTP Web Server
openssh sshd 8022 OpenSSH SSH
postgresql postgres 5432 PostgreSQL database PostgreSQL
privoxy privoxy Privoxy is non-caching web proxy with advanced filtering capabilities HTTP Proxy
tor tor The Onion Router anonymizing overlay network Tor
transmission transmission BitTorrent client BitTorrent

上表中的服务安装时就会自动在$PREFIX/var/service/下生成自己的服务文件夹:

相关命令

1
2
3
4
5
  sv-enable sshd		#sshd服务设为自启动
  sv-disable sshd		#取消sshd自启动
  sv down sshd		#停止sshd服务,并使本次Termux运行期间sshd自启动服务失效
  sv up sshd			#启动sshd服务
  sv status sshd		#查看sshd服务运行状态

自己编写一个自启动服务

自启动脚本创建

在$PREFIX/var/service/下创建子目录,子目录名即为自启动服务名,这里使用test_ato作为自启动服务名:

1
  mkdir -p $PREFIX/var/service/test_ato

接下来创建执行脚本run:

1
  vim $PREFIX/var/service/test_ato/run

脚本内容:

1
2
3
  #!/data/data/com.termux/files/usr/bin/sh
  exec 2>&1
  exec ~/test/test.sh 2>&1

保存,赋予其执行权限:

1
  chmod +x $PREFIX/var/service/test_ato/log/run

配置服务的输出日志

log/run中内容:

1
2
3
  #!/data/data/com.termux/files/usr/bin/sh
  svlogger="/data/data/com.termux/files/usr/share/termux-services/svlogger"
  exec "${svlogger}" "$@"

保存,赋予其执行权限:

1
  chmod +x $PREFIX/var/service/test_ato/log/run

此时,日志文件被重定向到了目录$PREFIX/var/log/sv/<服务名>中

自启动服务测试

将test.sh设为自启动:

1
  sv-enable test_ato

重启Termux应用,此时test.sh已经开始运行,查看日志文件$PREFIX/var/log/sv/test_ato/current已经开始稳定输出日志信息了。

一个简单的模板服务就写好了,可以根据这个模板来编写自己需要的服务。

Licensed under CC BY-NC-SA 4.0