Termux
   HOME

TheInfoList



OR:

Termux is a
free and open source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
terminal emulator A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term ''terminal'' covers all remote termin ...
for
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
which allows for running a
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
environment on an
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
device. In addition, various software can be installed through the application's
package manager A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
. Termux installs a minimal base system automatically; additional packages are available using its package manager. Most commands available in Linux are accessible, as well as built-in
Bash Bash or BASH may refer to: Arts and entertainment * ''Bash!'' (Rockapella album), 1992 * ''Bash!'' (Dave Bailey album), 1961 * '' Bash: Latter-Day Plays'', a dramatic triptych * ''BASH!'' (role-playing game), a 2005 superhero game * "Bash" ('' ...
commands. There are also several other shells available, such as
Zsh The Z shell (Zsh) is a Unix shell that can be used as an interactive login shell (computing), shell and as a command line interpreter, command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including som ...
and
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command-l ...
.


Overview

Packages are cross-compiled with
Android NDK Code written in C/C++ can be compiled to ARM, or x86 native code (or their 64-bit variants) using the Android Native Development Kit (NDK). The NDK uses the Clang compiler to compile C/C++. GCC was included until NDK r17, but removed in r18 in 2 ...
and have compatibility patches to get them working on Android. Since all files are installed in the application directory, rooting is not required. There are more than one thousand packages available, and users can submit requests for new ones. Alternatively, packages can be compiled from source as Termux supports a variety of build tools including
CMake In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates anothe ...
,
Meson In particle physics, a meson ( or ) is a type of hadronic subatomic particle composed of an equal number of quarks and antiquarks, usually one of each, bound together by the strong interaction. Because mesons are composed of quark subparticles ...
,
GNU Autotools The GNU Autotools, also known as the GNU Build System, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems. It can be difficult to make a software program portable: the C compiler ...
, as well as compilers for
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH ...
, Go,
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIFT, ...
and several others. Termux can also install interpreters for languages like
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
, etc. Terminal-based text editors such as
Emacs Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
and Vim can be installed. It is also possible to execute
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
applications in Termux by using a
VNC Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the g ...
server and installing a
desktop environment In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphica ...
( Xfce,
LXQt LXQt is a free and open source lightweight desktop environment. It was formed from the merger of the LXDE and Razor-qt projects. Like its GTK predecessor LXDE, LXQt does not ship or develop its own window manager, instead LXQt lets the user de ...
,
MATE Mate may refer to: Science * Mate, one of a pair of animals involved in: ** Mate choice, intersexual selection ** Mating * Multi-antimicrobial extrusion protein, or MATE, an efflux transporter family of proteins Person or title * Friendship ...
) or
window manager A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction ...
.


User interface

Termux's user interface is fairly simple, only displaying the extra keys row and the terminal output. Color scheme and font can be changed through Termux:Styling. The extra-keys row can also be customized. Users can add more function keys and controls by editing ~/.termux/termux.properties. Termux has mouse/touch support which can be used to interact with programs such as
htop htop is an interactive system-monitor process-viewer and process-manager. It is designed as an alternative to the Unix program top. System monitor It shows a frequently updated list of the processes running on a computer, normally ordered by ...
and other
ncurses ncurses (new curses) is a programming library providing an application programming interface (API) that allows the programmer to write text-based user interfaces (TUI) in a terminal-independent manner. It is a toolkit for developing "GUI-like" ...
-based applications. Scrolling is done by swiping up or down in the terminal buffer.


Configuration

Users configure Termux by editing ~/.termux/termux.properties.


Add-ons

Termux also includes 7 add-ons: * ''Termux:API:'' exposes Android functionality to CLI applications * ''Termux:Styling:'' allows changing the color scheme and font of the terminal * ''Termux:Boot:'' executes Termux commands at boot * ''Termux:GUI:'' allows for some Termux apps to have a GUI using default Android resources; does not work with X11/Wayland apps * ''Termux:Widget:'' lets users run scripts in a dedicated widget or a shortcut in the Home screen * ''Termux:Float:'' runs terminal session in a floating window * ''Termux:Tasker:'' integrates Tasker with Termux Add-ons must be installed from the same source as the application, so that the same
User ID Unix-like operating systems identify a user by a value called a user identifier, often abbreviated to user ID or UID. The UID, along with the group identifier (GID) and other access control criteria, is used to determine which system resources a us ...
is used.


History

Termux was initially released in 2015. Support for requesting packages and features was added through
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
issues in the app's repository. People can also contribute to the project by adding new features and packages. In January 2020, the Termux development team ended support for devices running Android 5- 6, making Android version 7 the minimum OS requirement. With the policy changes in Google Play, updates to the app through Play Store are no longer possible; it is recommended to install the app from alternative sources. As of 2021, Termux is maintained by the volunteer development team.


Installation

The installation process extracts the bootstrap archive from the APK file, sets correct permissions for the executable, and sets up directories like the home directory.


Package management and distribution

Packages in Termux are installed through the application's package manager (pkg) and use the
.deb deb is the format, as well as extension of the software package format for the Debian Linux distribution and its derivatives. Design Debian packages are standard Unix ar archives that include two tar archives. One archive holds the cont ...
format. However, normal
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
packages cannot be installed as Termux is not FHS compliant. Users can also build and submit packages.


Package availability

Termux has more than 1000 packages available as of 2021.


Package repositories

Termux has 3 repositories available. Repositories included in the default Termux bootstrap installation include: * main is the main repository containing all CLI utilities and other popular Linux tools and language compilers/interpreters. * x11-repo contains
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
-based packages and graphical applications. * root-repo contains packages useful for rooted devices. Some of these packages can be used without root, but functionality may be limited.


Google Play updates

Termux v0.101 was the last version to be updated in the Google Play Store. Since November 2020, Google Play has enforced apps targeting API level 29, which breaks the execution of binaries in private application directories. According to Google:
Untrusted apps that target Android 10 cannot invoke exec() on files within the app's home directory. This execution of files from the writable app home directory is a W^X violation. Apps should load only the binary code that's embedded within an app's APK file.
The Termux development team suggests moving to
F-Droid F-Droid is an app store and software repository for Android, serving a similar function to the Google Play store. The main repository, hosted by the project, contains only free and open source apps. Applications can be browsed, downloaded and ...
in order to continue getting updates, as F-Droid does not impose such restrictions.


Bintray shutdown

In May 2021, Bintray, which had been the primary host for the Termux packages, shut down their services. Termux migrated to another hosting service.


See also

*
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
*
Command-line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
*
Package manager A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...


References


External links

* * * * *
Termux wiki
{{Terminal emulator Free and open-source Android software Free terminal emulators