Caros, uma dica rápida para quem gosta de linha de comando.

Há algum tempo descobri o Termux, que é uma pequena distribuição de pacotes Linux e um terminal. Funções mais avançadas que eu não falarei muito aqui incluem utilização de aplicativos gráficos. Também é possível instalar uma distribuição completa, como o Ubuntu ou o Arch, dentro do Termux e rodar aplicativos gráficos dessas distribuições dentro do Termux.

Instalação do F-Droid e Termux

Primeiramente, vocês deve-se instalar o aplicativo F-Droid v0.118.0 no Android (basta ir no site do F-Droid depois de baixar o arquivo .apk pelo navegador de internet. O F-Droid é uma loja de distribuição de softwares, um repositório. Os aplicativos de lá são muito legais e eu uso vários. São grátis e muitos sem anúncios.

Após instalar o F-Droid, abra o aplicativo e instale o pacote Termux.

Não baixar o Termux pela Play Store pois a versão da PlayStore é defasada e não é mais atualizada, e tem vários bugs. Se instalado da PlayStore e encontrar erros, remova o aplicativo e instale-o via F-Droid. Essa operação irá remover todos os arquivos personalizados do Termux antigo instalado pela PlayStore!

Outro pacote que pode ser instalado via F-Droid interessante inclui Termux:API, que tem várias ferramentas para se comunicar com o sistema Android, abrir arquivos nos aplicativos do Android, puxar as informações dos sensores do celular via linha de comando (em JSON), setar papel de parede, etc.

Há o pacote Termux:Widget que traz um widget pro Android com atalhos para acessar e rodar scripts que estiverem em ~/.shortcuts, mas não recomendo pois esse widget fez meu sistema Android ficar lento e os scripts em ~/.shortcuts devem ser personalizados pois, por exemplo, executam diretamente sem a possibilidade de adicionar argumentos adicionais, a não ser que sejam personalizados..

Terminal do Termux

O aplicativo principal do Termux é o seu terminal. Ele é um terminal básico com algumas teclas especiais e usa o teclado padrão do sistema Android, também. Para copiar e colar, basta pressionar e segurar para selecionar as linhas e clicar em copiar. Para colar, basta pressionar em qualquer lugar o terminal do Termux e clicar em colar (colará onde estiver o cursor de texto).

Para acessar e criar novas sessões do Termux, varrer com o dedo da margem da esquerda para direita, onde abrirá uma aba com as sessões de shell do Termux.

Acesso de armazenamento

Uma vez instalado o Termux, rode o comando termux-setup-storage para configuração de compartilhamento de espaço de disco do aplicativo com o do usuário do sistema do Android e vice-versa. Esse comando criará uma pasta ~/storage e simlinks para /storage/emulated/0 que terão acesso aos seus documentos do Android pelos gerenciadores de arquivos.

A maneira que o Android foi desenvolvido proíbe o usuário de se tornar raiz a não ser que o dispositivo (o celular ou tablet) tenha o bootloader desbloqueado e uma imagem personalizada do Android e compatível com seu celular instalada, procedimento chamado de device rooting. Geralmente imagens de sistema do Android e dicas estão no site do XDA.

Para utilização simples do Termux, não é necessário ser raiz do sistema e não é minha intenção explicar como se tornar raiz do sistema, procedimento arriscadíssimo!! Outra coisa, não se pode rootar o celular com as ferramentas do Termux, porém caso o usuário tenha o aparelho rootado, há um repositório especial no Termux com ferramentas extras, somente úteis nesses aparelhos de casos especiais.

De qualquer forma, é necessário entender que o sistema do Android tem um esquema de permissões que impossibilita que o usuário acesse diretamente os arquivos do Termux pela interface GUI do Android sem antes rodar o comando termux-setup-storage. Se esse comando não estiver disponível, instale o pacote termux-tools (ver adiante para mais informações).

O usuário poderá acessar os arquivos do celular com um simples cd ~/storage no Termux. Para acessar os arquivos do Termux pelo Gerenciador de Arquivos, eu utilizo o gerenciador de arquivos padrão do meu celular do sistema Adroid que, se configurado corretamente, mostra um atalho para o armazenamento do Termux. Se você tiver um outro gerenciador de arquivos poderoso, o acesso deve estar desbloqueado e acessível depois de rodar termux-setup-storage.

As peculiaridades da organização do sistema de arquivos do Termux e do Android vou deixar para o usuário explorar e pesquisar mais a respeito, se desejar.

Ferramentas de sistema

O Termux é uma distribuição completa. Ele não utiliza pacotes do sistema Android e tem uma cópia de todas as ferramentas básicas do GNU em seu diretório. O bash vem instalado por padrão, assim, a maioria dos script *poderão rodar no Termux sem problemas.

Instalação de pacotes

O Termux tem um repositório grande de pacotes derivados do Debian, mas cuidado: não é possível, manualmente, pegar um pacote .deb e instalar no Termux. Este não funcionará por que a estrutura de arquivos com as bibliotecas do Termux são diferentes do Debian, não segue padrão FHS.

Outras diferenças incluem o Termux ser para usuário único e a raíz dos sistema de arquivos do Termux é armazenada como um aplicativo comum, e portanto o usuário tem acesso por padrão.

Como eu uso bastante a linha de comando, só trouxe meus dotfiles de configuração de shell (.zshrc, .bashrc, .inputrc e tal), gerenciador de arquivos (vifm), editor, texto (vim), cliente de e-mail (mutt), multiplexer (tmux), navegador cli (w3m), conversor de unidades (units) e tudo funcionou super bem!

Instale o pacote termux-tools se ele ainda não estiver instalado pois é muito importante.

O comando para instalação de pacotes é o pkg. Na verdade, pkg usa o apt mas faz balanço de carga dos servidores do Termux e por isso é recomendado pelos desenvolvedores..

Pode-se buscar com pkg search [pacote], instalar com pkg install [pacote..] e desinstalar com pkg uninstall [pacote..].

Para realizar um update nas ferramentas e pacotes do sistema, utilize pkg upgrade.

Alguns pacotes importantes não vem instalado, portanto recomendo instalar pkg install curl wget man bc git python tree ffmpeg busybox termux-tools android-tools zstd xz-utils.

Para ver todos os pacotes disponíveis, rode pkg list-all | less -S.

Servidores e acesso remoto

O Termux oferece acesso pelo ssh ou dropbear. Eu prefiro usar o servidor do Dropbear que é bem simples de configurar, assim posso acessar todos os meus arquivos do meu laptop na rede interna de casa (para ver o endereço de IP local, uso ifconfig).

Até o tmate está disponível no repositório oficial do Termux, assim poderá acessar seu celular fora da rede doméstica, até por um web browser!

Mudança de shell padrão e dicas para scripts

Algumas shells estão disponíveis nos repositórios do Termux.

Para mudar a shell padrão, simplesmente rode chsh -s [shell] depois de instalados os pacotes necessários.

Consegui rodar todos os meus scripts com quase todas as funções depois de instalar os pacotes necessários.

Além disso, para conseguir rodar seus scripts, atente-se à variável do $PATH, que já deve estar automaticamente configurada para as shells do Termux.

A variável $TMPD é configurada automaticamente pelo Termux e é utilizada pelo bash e outros aplicativos, como o mktemp para criar arquivos temporários no diretório correto. Lembre-se que o sistema do Termux não segue uma hierarquia tradicional e portanto o diretório /tmp não é acessível! Quando for ajustar seus scripts, sempre utilize algo como ${TMPD:-/tmp}..

Atente-se também que o caminho de raiz do sistema está na variável $PREFIX.

Acessar clipboard do Android e abrir arquivos nos aplicativos do Android

Para definir o que está na área de transferência do Android, use o comando termux-clipboard-set, como por exemplo echo "Exemplo de text" | termux-clipboard-set.

Já para abrir arquivos nos aplicativos do Android, é necessário configurar antes o arquivo do Termux. Na versão v0.118.0 o desenvolvedor do Termux desabilitou uma propriedade por motivos de segurança. Assim, para conseguirmos abrir documentos de texto, fotos ou vídeos pelo terminal do termux, precisamos antes reabilitar essa propriedade no arquivo de configuração ~/.termux/termux.properties. Basta adicionar a opção allow-external-apps=true nesse arquivo e recarregar a sessão do Termux com termux-reload-settings.

Assim, poderá abrir uma imagem com o comando termux-open ~/Download/imagem.jpeg no aplicativo padrão do Android!

Para escolher qual aplicativo deve abrir o arquivo, termux-open --choose ~/Download/texto.txt.

Por fim, tenho alguns atalhos no meu .bashrc para lidar melhor com algumas funções do Termux:

# ~/.bashrc

#Android Termux
alias open=termux-open
alias o=open
function O() { termux-open --content-type="$(file --mime-type -b "$1")" "$1" ;} #abre arquivos sem extensão
alias oc='open --choose'
alias send='open --send'
alias s=send
alias S='termux-share' #file or stdin
alias gps='termux-location -p gps'
alias D='termux-download' #url

Recursos e Ajuda

Redit

Wiki

GitHub

Canais do YouTube com vídeos de Termux:

Dicas e truques do Termux Termux: o guia definitivo