Linux on Android phones
ANDROID 7, 8, 9 : Extremely fast installation guide (5 steps).
▶ Open this web page on your phone so that you can copy-paste things (instead of typing them).
▶ Go to https://play.google.com/store/apps/details?id=com.termux and install and open (run) termux. See screenshots below to get an idea of what termux looks like.
▶ Copy-paste the following line into termux (and then press ENTER
) :
curl -O https://utopia.duth.gr/glykos/linux/android.sh
▶ Copy-paste the following line into termux (and then press ENTER
) :
source android.sh
▶ Close termux by typing exit
(and then ENTER
). Done.
ANDROID 10, 11, ... : Extremely fast installation guide (6 steps).
▶ Open this web page on your phone so that you can copy-paste things (instead of typing them).
▶ Go to https://f-droid.org/en/packages/com.termux/
and install termux. You do not need to install the F-DROID
app. Go straight to the first (latest) version of termux, and at the bottom of the section click
where it says Download APK
. You will have to give all permissions required so that your phone
agrees to install the termux app.
▶ Once you install termux, run it (open it).
▶ Copy-paste the following line into termux (and then press ENTER
) :
curl -O https://utopia.duth.gr/glykos/linux/android.sh
▶ Copy-paste the following line into termux (and then press ENTER
) :
source android.sh
▶ Close termux by typing exit
(and then ENTER
). Done.
Screenshots from the installation.
▶ First view of termux. Stay calm and continue ...
▶ After giving the first command (and before hitting ENTER
) ...
▶ After the first command finishes ...
▶ After giving the second command (and before hitting ENTER
) ...
▶ While the second command is still executing (don't stop it!) ....
▶ After the second command finishes ...
▶ Just before hitting ENTER
to close the app ...
Testing that everything works ...
You can test that everything has been installed correctly by typing the commands shown
in the screenshots that follow. I'm sure you can figure-out what you have to type by comparing
what you see on your phone with what you see in the screenshots. Having said that, and
to give just one example, for the first screenshot you'd have to type ls -lF
, then
cd progs
, then ls -lF
, and finally nano test.c
(hit ENTER
after each command).
nano
is a text editor (like notepad or wordpad). What you see in front of you is a program
written in the C programming language (and contained in the file named test.c
that you've typed).
Don't change the program (at least for now). You can move around the file with the arrow keys.
To exit nano
: first hit the extra key that says CTRL
on it, then hit the key X
.
Once you are out of nano
and back in the unix shell,
type CTRL-D
twice to close the unix shell (CTRL-D
means that you
first hit the extra key that says CTRL
, and then the key D
).
Limitations and criticism
▶ The take-home message is this : you can do your unix and programming exercises on your android phone/tablet. By following the instructions given above (a) you will install a minimal linux-like environment on your phone in the form of a normal android application, (b) nothing bad will happen to your phone/tablet (it is just another app you've installed), and, (c) everything is completely free, you will not have to pay a dime.
▶ The limitations are :
(a) The procedure above will only work with recent versions of android (version 7 and later). This is probably true for all phones made after 2016.
(b) The phones usually have small screens and if the virtual keyboard takes half the screen, you'll be left with very little space to work. If by any chance you are uncomfortable with the virtual keyboard, you may want to consider the possibility of buying an external keyboard. Prices for USB or Bluetooth external keyboards start at about 9 euros. Not all keyboards on the market are compatible with each and every phone out there, so if you decide to buy one, do try to choose a keyboard that works with your phone (ask your local android guru for advice).
(c) There are some differences between a proper linux installation and what you'll get on your phone, but they are minor differences that will not stop you from learning what you need to know about the unix shell and to do some simple programming with C and perl (and python and nodejs if you want).
Advanced shell usage
If you feel comfortable with the unix shell and you want to add some bells and whistles to it (like automatic completion suggestions, fuzzy searches of files and history, a beautiful status line for the vim editor, etc), do the following :
▶ Close and open again termux.
▶ Copy-paste (and then ENTER
) :
curl -O https://utopia.duth.gr/glykos/linux/advanced_android.sh
▶ Copy-paste (and then ENTER
) :
bash advanced_android.sh
▶ Type CTRL-D
twice to close everything.
▶ Re-open the shell and enjoy.
Quick start guide :
- To accept the suggestion offered by the shell, click 'RightArrow' (or type
CTRL-F
) :
- To see the possibilities and select between them, hit
TAB
(again and again) and thenENTER
:
- You are trying to remember a flag for the command
find
, but to no avail. Typefind -
and hitTAB
:
- You want to edit one of your files, but the only thing you remember is that its name
contains the characters 'pl' and that it is a C program. Type what you know, hit
CTRL-T
and select the correct :
- You have a sub-directory called
misc
somewhere. But where ? You type 'misc', thenALT-C
, select the correct, hitENTER
. You will automatically be taken to that directory :
- Once upon a time you had typed a long command with an https address. But which one ?
Type
https
, hitCTRL-R
, select the correct one, and hitENTER
:
- ... and for completeness, a screenshot of the
vim
editor with the airline status line (and two files open) :