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 ter ...
for
Android 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 i ...
environment on an
Android 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 w ...
.
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 and as a command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.
Hist ...
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, comman ...
.
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 ...
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 ano ...
,
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 subparticle ...
,
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++,
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 sapp ...
,
Python,
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, ...
and
Vim
Vim means enthusiasm and vigor. It may also refer to:
* Vim (cleaning product)
* Vim Comedy Company, a movie studio
* Vim Records
* Vimentin, a protein
* "Vim", a song by Machine Head on the album ''Through the Ashes of Empires''
* Vim (text ed ...
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 ...
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 graphi ...
(
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 use ...
,
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 conjunct ...
.
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-li ...
-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
Tasker is a surname and occasionally a given name. Notable people with the name include:
Surname
* Alfred Tasker (born 1934), English cricketer
* Benjamin Tasker, Sr. (1690–1768), Provincial Governor of Maryland
* Benjamin Tasker, Jr. (1720–1 ...
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, co ...
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 De ...
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 De ...
*
Command-line interface
*
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 w ...
References
External links
*
*
*
*
*
Termux wiki
{{Terminal emulator
Free and open-source Android software
Free terminal emulators