Termux基础教程(无编程基础版)

Termux作为一个无需root就能实现很多功能的手机终端软件,它可以实现多种编程功能,其命令与Linux相似,可以为电脑暂时无法满足要求的同学提供一个编程和Linux学习的机会.

注意:因为文章很基础,如果你对Linux等有一定的基础,就不建议你学习这一篇文章

部分内容参考:

  • Termux 高级终端安装使用配置教程
  • 菜鸟教程

安装提要

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模拟器等等.

Termux基础教程(无编程基础动图展示版)相关推荐

  1. H5小游戏从修改到发布--无编程基础修改版

    H5小游戏从修改到发布–无编程基础修改版 合成哈工大 流程来源于程序员鱼皮合成大西瓜魔改版 原教程链接 合成大西瓜源码 素材获取:h5小游戏源码 注册登录,直接下载压缩包版本的源代码,网页还有其他游戏 ...

  2. python人工智能编程教程-清华大学出版社-图书详情-《人工智能基础教程:Python篇(青少版)》...

    2017 年国务院印发了<关于印发新一代人工智能发展规划的通知>,提出要围绕教育. 医疗.养老等迫切民生需求,加快人工智能创新应用.要发展智能教育,利用智能技术加 快推动人才培养模式.教学 ...

  3. 人工智能python自学教程-人工智能基础教程:Python篇(青少版)

    人工智能基础教程:Python篇(青少版) 编辑推荐 源代码及PPT下载:https://pan.baidu.com/s/1mWa2fy457fhUXKxT-FgyPw 哈工智诚在线编程云平台:htt ...

  4. Java基础教程:反射基础

    Java基础教程:反射基础 引入反射 反射是什么 能够动态分析类能力的程序称为反射. 反射是一种很强大且复杂的机制. Class类 在程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时 ...

  5. Java基础教程:多线程基础(3)——阻塞队列

    Java基础教程:多线程基础(3)--阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 模 ...

  6. java 反射基础_Java基础教程:反射基础

    Java基础教程:反射基础 引入反射 反射是什么 能够动态分析类能力的程序称为反射.反射是一种很强大且复杂的机制. Class类 在程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时的 ...

  7. 五线谱基础教程视频乐理基础

    五线谱基础教程视频乐理基础 1.五线谱十日通 2.看谱学歌与基础乐理 3.哲言音乐课堂:乐理基础 4.看谱学歌与基础乐理视频教程 5.全国首部基础乐理音像教材–基本乐理 6.宋大叔教音乐基础乐理 链接 ...

  8. 【转载】(Git)用动图展示10大Git命令

    1.说明 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog-- 你知道这些 git 命令执行的究竟是什么任 ...

  9. 可视化展示——实现论文引用关系动图展示

    实现论文引用关系动图展示 效果 代码: 遇到的问题: 将队友获取的year,venues文件导入django: 解决时间选择器不显示问题: 效果 实现将队友处理好的用pyecharts展示出来的论文引 ...

最新文章

  1. FusionCharts下载地址汇总及更新介绍
  2. Android友盟增量更新
  3. linux 命令之 kill
  4. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
  5. 最搞笑的代码注释,你遇到过几个?
  6. 涉密服务器虚拟化软件,虚拟化软件解决方案
  7. Javascript 常用技巧 [2]
  8. 【背包】SMRTFUN
  9. 触发器三(行级DML触发器)(学习笔记)
  10. 长亭php反序列化防护_CTF-攻防世界-Web_php_unserialize(PHP反序列化)
  11. html网页设计插入音乐,背景音乐是如何插入的?-网页设计,HTML/CSS
  12. pandas.tseries.offsets
  13. 软件开发工程师--经验之谈
  14. PHP 01 Apache HTTP
  15. 在线代理(Web ProxyServer)完全详解
  16. java毕业设计民航售票管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  17. 读书:每天做一个情绪稳定的成年人!
  18. 数据结构:若借助栈由输入序列1,2…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),证明在输出序列中不可能出现这样的情形:存在着i<j<k,使pj<pk<pi
  19. Encoding常用方法,不积硅步无以至千里
  20. idea上传代码到gitee出现的问题及解决办法

热门文章

  1. 小甲鱼学python学习笔记
  2. Java学习笔记(二)
  3. macd指标在实战应用中效果如何,如何证明MACD指标详解能起到预警的作用
  4. 【Data truncation: Data too long for column ‘XXX at row 1 报错】
  5. Lazada开店步骤Lazada开店需要条件
  6. 电脑输入法不见了怎么解决
  7. re管理器修改音量_教你巧用RE管理器修改手机各种系统声音锁屏声音
  8. Kubernetes(5)job控制器
  9. 怎么读取照片上的文字?清描:一键提取,批量识别
  10. Photoshop---PS2017软件安装与破解