termux-app - Termux 是一个安卓手机的 Linux 模拟器,可以在手机上模拟 Linux 环境。它提供一个命令行界面,让用户与系统互动。

Created at: 2015-10-23 17:42:46
开发语言: Java
授权协议: NOASSERTION

特美应用

构建状态 测试状态 加入 https://gitter.im/termux/termux 聊天 加入特米克斯不和谐服务器 特米克斯库在吉特派克发布

终端是一个安卓终端应用程序和Linux环境。

请注意,此存储库适用于应用程序本身(用户界面和终端仿真)。有关可在应用程序内安装的程序包,请参阅术语/术语包

有关 Termux 软件包管理的快速操作方法,请参阅软件包管理。它还包含有关如何修复存储库在运行或命令时处于维护状态或关闭错误的信息。

apt
pkg


注意:特默斯在安卓12上已损坏。Android操作系统将杀死任何大于32的(幻像)进程(限制适用于所有应用程序的组合),并且还会杀死任何使用过多CPU的进程。你可能会在终端中收到消息,而无需自己实际退出shell进程。检查相关问题 #2366问题跟踪器包含详细信息的要点以及有关如何禁用幻像进程的修剪的 TLDR 注释。稍后将添加适当的文档页面。Android 12L或13中应该提供禁用杀戮的选项,因此,如果你使用的是Android 11,请自行承担升级风险,特别是如果你没有root权限。

[Process completed (signal 9) - press Enter]


@termux正在寻找Termostux应用程序维护者来实现新功能,修复错误和审查拉取请求,因为当前(@fornwall)处于非活动状态。

问题 https://github.com/termux/termux-app/issues/1072 需要特别注意。


内容

终端应用程序和插件

核心 Termux 应用程序附带以下可选插件应用程序。

安装

最新版本是 。

v0.118.0

注意:强烈建议你尽快更新到 v0.118.0 或更高版本,以修复各种错误,包括在 https://termux.github.io/general/2022/02/15/termux-apps-vulnerability-disclosures.html 报告的关键全球可读漏洞。还再次提醒已从谷歌Play商店安装termux应用程序的用户,播放商店版本已被弃用并且不再受支持。建议你切换到 F-机器人或 Github 版本。

终端可以通过下面列出的各种来源获得,仅适用于安卓 。对Android的支持已被删除,并于2020-01-01在,旧版本可在 archive.org 上使用。

>= 7
5
6
v0.83

不同来源的APK文件使用不同的签名密钥进行签名。该应用程序及其所有插件都使用相同的 sharedUserId,因此设备上安装的所有APK必须使用相同的签名密钥进行签名才能协同工作,因此它们必须全部从同一来源安装。不要尝试将它们混合在一起,即不要尝试安装来自的应用程序或插件,以及来自其他来源(如)的另一个应用程序或插件。Android程序包管理器通常也不允许安装具有不同签名的APK,并且你会在安装时收到错误,例如,,,,等。可以使用根或自定义ROM绕过此限制。

Termux
com.termux
F-Droid
Github
App not installed
Failed to install due to an unknown error
INSTALL_FAILED_UPDATE_INCOMPATIBLE
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
signatures do not match previously installed version

如果你希望从其他来源安装,则必须首先从设备中卸载任何和所有现有的Termux或其插件应用程序APK,然后从同一新来源安装所有新的APK。有关详细信息,请查看“卸载”部分。你可能还需要考虑在卸载之前备份 Termux,以便在从 Termux 的不同源重新安装后可以将其还原。

在以下段落中,“引导”是指随自身一起提供的用于启动工作 shell 环境的最小包。它的拉链在这里建造和发布。

termux-app

F-机器人

泰尔默斯申请可以从这里获得。

F-Droid

你无需下载应用程序(通过链接)即可安装Termux。你可以通过单击每个版本部分底部的链接直接从站点下载 Termux APK。

F-Droid
Download F-Droid
Download APK

在 上发布更新后,通常需要几天(甚至一周或更长时间)才能提供更新。一旦发现新版本,就会构建和发布版本。Termux 维护人员无法控制 在 上构建和发布 Termux 应用程序。此外,Termux维护者也无法访问发布的APK签名密钥,因此我们无法自己发布与版本兼容的APK。

F-Droid
Github
F-Droid
F-Droid
Github
F-Droid
F-Droid
Github
F-Droid

该应用程序通常可能不会通知你更新,你将必须在应用程序的选项卡中手动执行下拉滑动操作,以便检查更新。确保已为应用禁用电池优化,请查看 https://dontkillmyapp.com/ 了解有关如何执行此操作的详细信息。

F-Droid
Updates

仅发布通用 APK,该 APK 适用于所有受支持的架构。APK 和引导程序安装大小将为 。 不支持特定于架构的 APK。

~180MB
F-Droid

吉特哈布

Termux 应用程序可以从 Github 版本版本或从 Github 构建操作工作流中获取。

Github
>= 0.118.0

的 APK 将列在某个版本的下拉列表中。当新版本发布时,它们会自动附加。

Github Releases
Assets

操作工作流的 APK 将列在工作流运行的部分下。这些是为对存储库完成的每次提交/推送创建的,可供不想等待发布并希望立即试用最新功能或想要测试其拉取请求的用户使用。请注意,对于操作工作流,你需要登录到 Github 帐户才能启用/单击链接。如果你使用的是 Github 应用程序,请确保在浏览器(如 Chrome 或 Firefox)中打开工作流链接,该浏览器已登录你的 Github 帐户,因为应用程序内浏览器可能未登录。

Github Build
Artifacts
Artifacts

这两个APK都是可调试的,并且彼此兼容,但它们与其他来源不兼容。

通用和架构特定的 APK 均已发布。APK 和引导程序安装大小将为使用通用和特定体系结构的安装大小。详情请按此

~180MB
~120MB

安全警告:GitHub 上的 APK 文件使用已与社区共享的测试密钥进行签名。这不是官方的开发人员密钥,每个人都可以使用它来生成用于自己测试的版本。使用除 https://github.com/termux/termux-app 外,在其他地方获得的 Termux GitHub 构建时要非常小心。每个人都可以使用它来伪造可通过GitHub构建安装的恶意Termost更新。在安装通过电报或其他社交媒体分发的 Termux 构建时,请三思而后行。如果你的设备被恶意软件捕获,我们将无法为你提供帮助。

测试密钥不得用于模拟@termux,也不能用于此目的。我们不信任此密钥,并且很容易检测到它在用户生成的内容中的使用情况。

密钥库信息:

Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
         SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
         SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

谷歌Play商店 (已弃用)

由于Android 10问题,Termux及其插件不再在谷歌Play商店中更新,并且已被弃用。为安卓发布的最后一个版本是。强烈建议不要再从Play商店安装Termost应用程序。

>= 7
v0.101

有计划尽快在Play商店中取消发布Termux应用程序及其所有插件,以便新用户无法安装它,并通过更新禁用Termmx应用程序,以便现有用户无法继续使用过时的版本。我们鼓励你尽快迁移到或构建。

F-Droid
Github

如果你在Play商店购买插件,则无需再次购买插件。所有插件在 和 上都是免费的。

F-Droid
Github

你可以在更改安装源下 和 之前备份所有数据,然后按照卸载前备份 Termux 中的说明进行还原。

$HOME/
$PREFIX/

目前还没有解决Android问题的工作,并且不会很快在谷歌Play商店中恢复工作更新。目前,我们将继续定位 sdk。因此,留在Play商店构建并等待更新恢复没有多大意义。如果由于某种原因你现在不想移动到或源,那么至少检查包管理更改镜像,否则,你将在运行或命令时获得存储库处于维护状态或关闭错误。之后,强烈建议运行命令将所有软件包更新到最新的可用版本,或者至少使用命令更新软件包。

10
28
F-Droid
Github
apt
pkg
pkg upgrade
termux-tools
pkg install termux-tools

请注意,通过将旧软件包升级到最新版本,可能会破坏你的设置/脚本,因为它们可能不再兼容。此外,你将无法降级软件包版本,因为termux存储库仅保留最新版本,并且你必须根据需要手动重建软件包的旧版本,https://github.com/termux/termux-packages/wiki/Building-packages

python

如果你计划将来也保留在Play商店源上,那么你可能希望禁用Termux应用程序的Play商店中的自动更新,因为如果以及当发布禁用Termostus应用程序的更新时,你将无法降级并且将被迫移动,因为应用程序将不再工作。只能提供备份数据的方法。版本> = 0.135还将在终端顶部显示一个横幅,上面写着 ,你可以通过运行并重新启动应用程序将其删除。

termux-app
termux-tools
You are likely using a very old version of Termux, probably installed from the Google Play Store.
rm -f /data/data/com.termux/files/usr/etc/motd-playstore

为什么要禁用?

  • Play商店应用程序具有 https://termux.github.io/general/2022/02/15/termux-apps-vulnerability-disclosures.html 报告的几个关键漏洞,并且由于它们无法通过修复程序进行更新,因此任何使用旧版本的用户都将容易受到攻击。

  • 它们应该被禁用,因为弃用的东西会被删除,并且在一段时间后不受支持,这是标准做法。自宣布弃用以来已经过去了好几个月,并且此后一直没有在Play商店中发布更新。

    29 September 2020

  • 新版本具有许多新功能和修复程序,你大多可以在Github版本的更改日志中查看你可能会错过这些功能和修复程序。提交消息中通常会提供额外的详细信息。

  • 旧版本的用户经常在几个月前修复的多个存储库和支持论坛中报告问题,然后我们必须处理这些问题。@termux的维护者在空闲时间工作,主要是免费,从事开发工作并提供支持,并且必须重新处理旧问题,这占用了当前工作中已经有限的时间,并且不可能继续工作。Play商店页面已经充满了对“损坏的应用程序”的差评,即使它在页面上明确提到该应用程序尚未更新,但用户不阅读并且仍然安装和报告问题。

    termux-app

  • 当安装时由于存储库问题而损坏并且有错误时,要求人们为插件付费是不道德的。

    termux-app

  • 旧版本没有正确的日志记录/调试和崩溃报告支持。在没有日志或详细信息的情况下报告错误无助于解决这些问题。

  • 我们还更容易解决与包相关的问题,并通过应用更新提供自定义功能,如果用户继续使用旧版本,则无法做到这一点。例如,垃圾箱关闭导致新Play商店用户的软件包安装/更新失败对于F-Droid用户来说不是问题,因为它随更新的引导和存储库信息一起提供,因此没有报告来自新的F-Droid用户的问题。

卸载

如果用户不希望在其设备中再安装 Termux 或正在切换到其他安装源,则可能需要卸载。你可能还需要考虑在卸载之前备份 Termux

要完全卸载 Termux,你必须卸载 Termux 应用程序和插件中列出的任何和所有现有 Termux 或其插件应用程序 APK

转到 ->,然后查找这些应用。你还可以使用搜索功能(如果该功能在你的设备上可用)并在应用程序列表中进行搜索。

Android Settings
Applications
termux

即使你认为自己尚未安装任何插件,也强烈建议你在Android设置中浏览应用程序列表并仔细检查。

重要链接

社区

所有社区链接均可在此处找到。

主要有以下几种。

维基

杂项

终端

终端资源

终端仿真器

调试

你可以通过在应用程序设置->->->(需要应用程序版本)中设置适当的内容来帮助调试应用程序及其插件的问题。默认的 和 日志级别当前记录其他信息。最好在完成调试后将日志级别还原为,否则私有数据可能会在正常操作期间传递到,此外,其他日志记录会增加执行时间。

Termux
logcat
Log Level
Termux
<APP_NAME>
Debugging
Log Level
Termux
>= 0.118.0
Log Level
Normal
Verbose
Normal
logcat

插件应用程序不会自己执行命令,而是将执行意图发送到应用程序,该应用程序具有自己的日志级别,可以在应用程序设置->->->中设置。因此,你必须为两者以及相应的插件应用程序设置设置日志级别以获取所有信息。

Termux
Termux
Termux
Debugging
Log Level
Termux

设置日志级别后,你可以在应用程序终端中运行命令以实时查看日志(停止)或使用转储日志。你还可以通过 查看来自 PC 的日志。有关更多信息,请在此处查看官方安卓指南。

logcat
Termux
Ctrl+c
logcat -d > logcat.txt
ADB
logcat

此外,用户还可以使用终端的长保持选项菜单生成ternex文件信息并自动转储 ->选项,并在显示的提示中选择以添加调试信息。这有助于报告和调试其他问题。如果生成的报告太大,则可以使用 的上下文菜单(右上角的3个点)中的选项,并改为查看/共享文件。

stat
logcat
More
Report Issue
YES
Save To File
ReportActivity

用户在报告问题时必须发布完整的报告(可选,不带敏感信息)。使用错误报告的(部分)屏幕截图而不是文本打开的问题可能会被自动关闭/删除。

日志级别
  • Off
    - 不记录任何内容。
  • Normal
    - 开始记录错误,警告和信息消息和堆栈跟踪。
  • Debug
    - 开始记录调试消息。
  • Verbose
    - 开始记录详细消息。

对于维护者和贡献者

术语共享库已添加到 v0.109 中。它定义了 Termux 应用程序及其插件的共享常量和利用率。创建它是为了允许删除 Termux 应用程序中的所有硬编码路径。一些termux插件也在使用它,其余的将在未来使用。如果你正在贡献使用常量或实用程序的代码,并且该代码可能已共享,则在库中定义它(如果它当前不存在)并从那里引用它。同时更新相关的更新日志。使用硬编码值的拉取请求将/不应该被接受。Termux应用程序和插件特定的类必须添加到包下,并在其外部添加常规类。在贡献代码时,如有必要,还必须检查和更新 termux 共享许可证。必须遵守任何外部库或代码的许可证。

termux-shared
com.termux.shared.termux

主泰尔默常量由泰尔莫克斯常量类定义。它还包含有关如何分叉 Termux 或使用你自己的软件包名称构建 Termux 的信息。更改包名称将需要使用新的 生成引导 zip 包和其他包,检查生成包以获取更多信息。

$PREFIX

查看 Termux 库,了解如何在插件应用程序中导入 termux 库,并检查分叉和本地开发,了解如何更新插件的 termux 库。

提交消息必须使用常规提交规范,以便创建常规更改日志脚本可以自动生成 chagelog,请查看其存储库以获取有关规范的更多详细信息。将以下内容用作 、 、 等。你也可以选择添加作用域,例如 。后面的空格是必要的。

types
Added: Add foo
Added|Fixed: Add foo and fix bar
Changed!: Change baz as a breaking change
Fixed(terminal): Some bug
:

  • 新功能而添加。
  • 针对现有功能的更改进行了更改
  • 已针对即将删除的功能弃用
  • 已删除,现已移除功能。
  • 修复了任何错误修复。
  • 出现漏洞时的安全性。
  • 用于更新文档的文档

版本的更新日志是根据“保留更改日志”规范生成的。

Termux及其插件应用程序的in文件必须遵循语义版本2.0.0规范的格式。在 github 上碰到文件和为新版本创建标记时,请确保也包含补丁号,例如,而不仅仅是 .文件和工作流也会验证版本,如果不符合规范,则构建/附件将失败。

versionName
build.gradle
major.minor.patch(-prerelease)(+buildmetadata)
versionName
build.gradle
v0.1.0
v0.1
build.gradle
attach_debug_apks_to_release
versionName

分 叉

  • 检查术语常量 javadocs,以获取有关在应用程序中进行哪些更改以更改包名称的说明。
  • 你还需要为新软件包名称重新编译引导程序 zip。检查构建引导这里这里
  • 目前,并非所有插件都使用库中的插件并且具有硬编码的值,并且需要手动修补。
    TermuxConstants
    termux-shared
    com.termux
  • 如果分叉 termux 插件,请查看分叉和本地开发,以获取有关如何将 termux 库用于插件的信息。