Termux基础教程(无编程基础版)
Termux作为一个无需root就能实现很多功能的手机终端软件,它可以实现多种编程功能,其命令与Linux相似,可以为电脑暂时无法满足要求的同学提供一个编程和Linux学习的机会.
注意:因为文章很基础,如果你对Linux等有一定的基础,就不建议你学习这一篇文章
部分内容参考:
安装提要
Termux建议在F-droid那里下载点击此处跳转
还有Termux的一些附加包同样可以在F-droid下载(非广告,这是Termux的官网的推荐)
1.基础专区(推荐无编程经验者观看)
注意:本节以默认bash为基础
终端
可以将Termux看作一个系统,这个系统内可以安装,启动和删除各种各样的软件和操作,这些软件或操作的安装,启动和删除都需要在终端中执行,而让终端执行这些功能的方式就是使用指令.终端及是最初进入Termux时的界面,如何辨认你是否处在终端界面也很简单,在你未输入内容的情况下,当你的光标所处位置前为$(Termux未获取root情况下)或#(Termux获取root情况下)且显示你所在的文件夹位置或~时,你就处在终端下.
图示:
除此之外,你可以通过双指放大和缩小终端内显示文字的大小.
图示:
快捷键
前面说到Termux与Linux相似,所以对Termux的操作同样需要一些快捷键,比如Ctrl,ESC等,通常情况下我们手机上的键盘是没有这些特殊按键的,但是Termux贴心的为我们准备了这些快捷键.就在图示位置.
同时,我们可以将快捷键栏向左滑动,可以进入一个输入栏,可以在里面输入信息,回车后信息再传入终端,这样可以解决有时终端内字体太小,我们不方便修改的情况(虽然确实很少用到,但是还是介绍一下).向右滑动可以返回快捷键栏.
图示:
附加信息:快捷键功能大全
- Ctrl + A -> 将光标移动到行首
- Ctrl + C -> 中止当前进程
- Ctrl + D -> 注销终端会话
- Ctrl + E -> 将光标移动到行尾
- Ctrl + K -> 从光标删除到行尾
- Ctrl + U -> 从光标删除到行首
- Ctrl + L -> 清除终端
- Ctrl + Z -> 挂起(发送SIGTSTP到)当前进程
- Ctrl + alt + C -> 打开新会话(仅适用于 黑客键盘)
音量加有时也可以作为快捷键使用
- 音量加 + 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 -> 切换显示的功能键视
- 音量加 + K -> 切换显示的功能键视图
具体使用就不再做更多介绍
打开多个终端
有时我们可能需要使用实现多种功能,比如一边写代码,一边调试,如果我们不停的退出和调试这样肯定难受,再比如说我们运行php命令时导致我们无法继续使用这个终端,就需要我们打开更多的终端,Termux已经为我们想到了这一点,打开方式也很简单,在屏幕左端就能拉出一个界面,然后点击NEW SESSION就能创建一个新的终端,而点击那些终端就能跳转到相应终端.
演示:
在此处后可参考Linux命令大全
清理屏幕
有的时候在我们运行了许多命令之后,将出现大量的系统输出,这不方面我们对termux输出内容进行检查,所以我们需要时常清理屏幕,清理屏幕的指令为clear,输入该命令后你将清理屏幕上的所有内容.
注意:clear命令只能在终端下使用.
演示:
打开/创建文件夹命令
该部分分为两个命令,一个为打开文件夹命令cd,另一个为创建文件夹命令mkdir,它们的基本使用方式也很简单(在此之后井号(#)为注释内容).
注意:cd 文件夹名称中间有空格(mkdir相同有空格)
cd 文件夹名称 # 打开指定文件夹,没有该文件夹时报错
mkdir 文件夹名称 # 创建一个文件夹,有该文件夹时报错
图示:
报错介绍:
第一次报错为无文件夹new的情况下,cd命令无法打开文件夹而报错
第二次报错为已经拥有文件夹new而还要创建文件夹new而报错
命令提示:"cd ./"为打开当前文件夹,"cd ../"为返回上一层文件夹,cd ~为返回home,"cd /"为打开根目录.
显示文件夹中文件
此处使用到命令ls,命令ls的具体参数如下(此处及其之后显示命令详细内容中包含在中括号内的内容可以不写):
ls [选项] [位置]
# 选项
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
# 实例
ls # 显示此文件夹下所有非隐藏文件
ls -al # 显示此文件夹下所有文件及其详细参数
ls ~/new/ # 显示~/new文件夹下的所有文件
由于代码简单,就不再作演示.
删除,移动,复制文件/文件夹命令
删除文件命令为rm,移动文件命令为mv,复制文件夹命令为cp,以下为这些命令的基础介绍.(在之后的介绍当中我会逐渐加快速度,希望你能逐渐适应)
rm [选项] 文件名 #删除文件/文件夹命令
# 选项:
-i 删除前逐一询问
-f 即使原文档设置为只读,同样直接删除
-r 将目录及以下档案全部删除
# 实例:
rm 1.gif #删除该文件夹下名为1.gif的文件
rm -r new/ #删除文件夹new及其其中的所有内容(若有只读文件将会询问是否删除)
rm -rf new/ #删除文件夹new及其其中的所有内容(直接删除,无询问)
注意:若使用rm删除文件夹时必须添加-r,否则将无法删除这个文件夹
mv [选项] 源文件 目标文件
# 选项
-b 当目标文件存在时,在移动覆盖前,对文件进行备份
-i 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n 不要覆盖任何已存在的文件或目录。
-u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
# 实例:
mv aaa bbb # 将文件aaa更名为bbb
mv new/ new2/ # 将文件夹new移动到new2中,若new2不存在,则将new更名为new2
mv ./* ../ # 将此文件夹中所有文件移动到上一级文件夹
mv *.py ~/new # 将此文件夹下所有后缀为.py的文件移动到~/new
注意:星号( * )可以用于代替字符串,例如:1*.py就是所有后缀为.py,第一位字符为1的文件,?可以用来代替一个字符,比如1?.py,就是代表第一位为1,之后为一个任意字符的py文件
cp [选项] 源文件 复制位置
# 选项
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
# 实例:
cp aaa aaa_data # 将aaa复制一份,并将其命名为aaa_data
cp -r new/ new2/ # 将文件夹new/复制一份,并将其命名为new2
cp aaa new/ # 将文件aaa复制到new中
注意:cp与rm相似,复制文件夹时需要加-r,否则会报错.
此处操作需要自行测试感受,不再演示.
软件的安装
就如原来所说,Termux是一个系统,当然能安装软件,Termux安装有两种方式,一种是直接使用apt安装,一种是使用pkg进行安装,相较而言,使用pkg命令相当于每次都执行一次apt update && apt upgrade
,其他功能基本相似,所以这里只介绍apt命令.
Termux提供了大量的软件可以供我们直接安装,可输入命令apt list
进行查看,若你是第一次执行apt命令,可以先执行apt update && apt upgrade -y
来对软件进行更新.
执行效果如下(因为本人已提前更新,所以显示内容可能不同):
在我们更新完成后就可以开始安装我们需要的软件了,使用以下命令进行安装常用的软件.
apt install -y 软件名
# 可以使用apt list命令查看安装的软件
# 复制以下指令安装基本软件
apt install -y vim wget git tree curl
# 软件介绍:
# vim:文件编辑软件,用于编辑文件,支持语法高亮.
# wget:终端版文件下载器,可以用于下载网络中的文件,并支持断点下载.
# git:用于快捷下载github中的内容.
# tree:与ls命令相似.
# curl:常用的命令行工具,用来请求 Web 服务器.
图示(可能略有差异):
2.正式的开始
基本准备
使用apt命令安装基本的软件,具体请查看前文.
使用vim编辑文件
vim是Linux上的一个编辑神器,但是对很多完全没有基础的同学来说却很难,这部分的内容我会尽量加上图片操作过程.
使用vim:
vim 文件名 # 没有文件的情况下创建并打开文件,有文件的情况下打开文件
在打开文件后,我们不会立即进入输入模式,而是会进入命令模式,在命令模式下,我们不能直接编辑文件,而需要输入i,才能进入编辑模式.在输入ESC后又会进入命令模式,
在最后一排文字为-- INSERT --时,即为编辑模式,无此拍文字时为命令模式.
进入/退出编辑模式图示(仔细观察最后一排文字的变化):
除此之外,vim可以使用保存退出与不保存退出.这些功能都是在命令模式下执行,在命令模式下,输入:wq
为保存退出,输入:q!
为不保存退出,以下为保存退出与不保存退出的对比.
图示(请仔细观看文件的变化以及光标的位置变化)
- 图1,保存退出,可以看出保存退出下更改内容将会保存,在二次打开后内容会保存,请与图3作对比.
- 图2,保存退出,但保存的为新文件,请与图4进行对比.
- 图3,不保存退出,可以看出不保存退出更改的内容在二次打开后将会被清除.
- 图4,不保存退出,但不保存退出的为新文件,使用ls命令查看会发现并无这个文件.
图1:
图2:
图3:
图4:
更多的Vim教学可以参考:Linux vi/vim
Termux编译C/C++
Termux支持多种编程语言,C语言作为广受大家熟知的语言,肯定也是支持的,
Termux编译C语言与Linux相似,首先需要安装clang.
apt install -y clang # 安装clang
安装完成后就可以直接编译C文件了.
clang 文件名 [选项]
# 选项
-o 无该选项时直接输文件a.out有该选项时输出选项-o后输入的名称.
-E 将.c文件编译为.i文件.
-S 将.i文件编译为.s文件.
-c 将.s文件编译为.o文件.
-O 后跟1~3个等级,等级越大,clang优化越大,编译速度越慢.
# 实例:
clang new.c # 输出a.out文件
clang new.c -o new # 输出new文件
clang new.o # 输出a.out文件
在文件编译后,就可以运行了.
./a.out # 运行编译后输出的a.out文件
./new # 运行编译后输出的new文件
图示(请认真观察编译后新增的文件):
注:本次测试使用源代码(保存于new.c)
#include<stdio.h>
int main(){
int i,j;
i = j = 0;
printf("%d,%d\nHello World\n",i,j);
return 0;
}
Termux编译Python
同C一样,要编译Python需要安装相应的软件,而这个软件就叫python.
apt install -y python vim-python
# vim-python用于更好的使用vim编辑python
安装完python之后,我们还需要对pip进行更新,使用如下命令
pip install --upgrade pip
# 如果太慢的话可以用下面这个
pip install -i https://pypi.douban.com/simple --upgrade pip
pip更新完成后就开始我们的python来执行我们的python文件(.py文件),使用以下命令:
python 文件名
# 实例
python new.py # 编译运行new.py
在执行完成后我们会发现并没有文件增多,这也是Python与C的一个区别
图示:
注:本次测试所用代码(保存于new.py)
print("Hello World");
Termux编译JAVA
相较于编译C和Python,编译JAVA可以使用两种方法.这两种方法安装的软件也并不相同.
方法1:使用ecj和dx
安装必要软件
apt install -y ecj dx
编译JAVA文件
ecj Java文件 # 编译生成class文件
dx --dex --output=dex文件 class文件 # 编译生成dex文件
dalvikvm -cp dex文件名 类名
# 实例:
ecj New.java # 编译生成new.class
dx --dex --output=New.dex New.class # 将new.class编译生成new.dex
dalvikvm -cp New.dex New # 将new.dex编译生成文件new
图示:
方法2:使用openjdk-17(可能不稳定)
安装openjdk-17
apt install -y openjdk-17
本次安装的软件很大,需要耐心等待.
java java文件 # 编译并运行Java文件
# 实例:
Java New.java
图示:
通过这两种办法不难看出方法1命令更加的复杂,但同样的,它安装的软件内存更小,方法2所需内存更大,自动安装时间久,如何抉择可以自己决定.
注:本次测试使用的源代码(保存于New.java):
public class New{
public static void main(String agrs){
System.out.println("Hello World");
}
}
Termux使用PHP
Termux使用PHP同样简单,首先安装软件
apt install -y php w3m # w3m为终端版浏览器,便于浏览使用php制作的网站
安装完软件后就可以执行php命令了.
php -S 0.0.0.0:4000 # 将本地文件映射到端口4000
如果我们当前的文件夹下有index.php的话,我们在浏览器打开网址http://127.0.0.1:4000就能进入我们自己做的网页了,如果没有,可以使用http://127.0.0.1:4000/文件名进入我们做的网页.
注:在执行php的终端中输入Ctrl+C就能退出终端了
图示:
图1:输入http://127.0.0.1:4000直接进入index.php
图2:输入http://127.0.0.1:4000/new.php进入new.php
图3:退出php后进入http://127.0.0.1:4000,显示报错无响应.
图1:
图2:
图3:
注:本次测试文件源代码(保存于index.php,new.php)
# index.php
<?php
phpinfo();
?>
# new.php
<?php
echo "这是new.php<br>";
echo '<a href="127.0.0.1:4000">点击这里进入index.php</a>';
?>
3.结束语
这篇文章主要就Termux的基础进行了基本的讲解,更多配置优化教程你可以访问国光大大的Termux 高级终端安装使用配置教程,同样的,如果有任何问题可以直接发表你的评论,因为这是一篇很基础的文章,所以有很多的内容并没有加入进来,可以自己去探索,比如说优化vim,安装Linux模拟器等等.