Como criar e executar scripts .sh no Termux para Android

  • O Termux permite que você tenha um ambiente Linux completo no Android para executar scripts .sh sem privilégios de root.
  • É crucial configurar corretamente as permissões de armazenamento, shebang e execução para evitar erros de "permissão negada".
  • Os plugins do Termux permitem executar scripts na inicialização, a partir de widgets ou ao compartilhar arquivos e links.
  • O Termux integra APIs do Android (notificações, áudio, câmera, TTS) para automatizar praticamente qualquer tarefa a partir do terminal.

script sh no Termux para Android

Se você já tentou Instale um APK, mova arquivos e execute um script .sh no Android. E tudo o que você recebeu foi uma mensagem irritante de "permissão negada"? Não se preocupe, você não está sozinho. O Android não é um Linux de desktop típico e, embora compartilhem muitos princípios fundamentais, o sistema de permissões e caminhos complica um pouco as coisas.

Neste artigo, veremos, passo a passo, como Crie e execute scripts .sh no Termux para Android.Aprenda a resolver problemas comuns de permissão e a tirar o máximo proveito deste aplicativo para automatizar tarefas ao iniciar o dispositivo, compartilhar links ou até mesmo usar widgets. Tudo isso é explicado em linguagem clara, com exemplos práticos e dicas que economizarão seu tempo e evitarão dores de cabeça.

O que é o Termux e por que ele é ideal para scripts .sh no Android?

Terminal Linux Termux no Android

O Termux é um aplicativo que permite que você tenha um ambiente Linux completo dentro do Android, sem necessidade de acesso root. Não é apenas um emulador de terminal: inclui um gerenciador de pacotes no estilo Debian/Ubuntu, com o qual você pode instalar Python, Ruby, Node.js, gcc, ssh, servidores web, bancos de dados e muito mais.

O que é interessante para o nosso caso é que O Termux oferece um shell real (bash, zsh…)Ele oferece suporte a scripts, atalhos de teclado, entrada de mouse e um sistema de pacotes muito semelhante ao de uma distribuição clássica. Basicamente, você pode usá-lo para programação, administração de servidores ou simplesmente automatizar seu sistema Android com scripts .sh.

Desde o primeiro uso, você verá que pode usar Comandos úteis do Termux como ls, grep, nano, vitalidade, htop, git, pythonetc. No entanto, a hierarquia de diretórios não é exatamente a mesma que em um sistema Linux para desktop, e esse detalhe é crucial quando falamos de scripts.

Além disso, o Termux oferece suporte a teclados físicos e atalhos especiaisPor exemplo, a tecla de diminuir o volume funciona como a tecla Ctrl, permitindo usar combinações como Ctrl+C, Ctrl+D ou Ctrl+L, tornando a experiência muito mais conveniente em um celular ou tablet.

termux
termux
Desenvolvedor: Fredrick Fornwall
Preço: Free

Instale o Termux corretamente e evite conflitos de versão.

Instalando o Termux no Android

Um dos problemas frequentemente mencionados é que, após a instalação do Termux, O ícone do aplicativo não aparece ou apresenta erros estranhos.Isso geralmente acontece devido à instalação de versões antigas ou misturadas do Google Play e do F-Droid.

A recomendação atual é que Instale o Termux a partir de uma única fonte confiável.Geralmente, recomenda-se usar o F-Droid, onde a versão mantida está disponível, ou, na falta desta, a versão oficial do GitHub. Se optar pelo F-Droid, baixe o APK do Termux diretamente e evite misturá-lo com a versão da Play Store.

Isso é especialmente importante se você for usar plug-ins como Termux:Boot, Termux:API ou Termux:WidgetSe você precisar de um guia, Aprenda a usar o TermuxTodos os aplicativos relacionados devem vir da mesma loja (Play Store ou F-Droid) para que a assinatura digital corresponda. Se você misturar fontes, as extensões geralmente não detectarão o Termux ou simplesmente não funcionarão.

Se você já possui o Termux da Play Store e deseja migrar para o F-Droid, a opção recomendada é Primeiro, desinstale a versão anterior. Em seguida, instale o Termux e seus plugins a partir do F-Droid, tudo no mesmo site.

Configure o ambiente básico: permissões de atualização e armazenamento.

Após a instalação do Termux, o primeiro passo é prepará-lo minimamente para funcionar com scripts e arquivos de dispositivo. Existem duas etapas principais para isso: Atualizar pacotes e integrar o armazenamento do Android..

Atualizar sua distribuição do Termux é tão simples quanto usar o gerenciador de pacotes. Em vez de usar diretamente aptoO Termux oferece o comando pkgo que simplifica o processo e cuida de tudo. update apt quando toca.

O segundo passo é conceder acesso ao armazenamento do dispositivo móvel. Por padrão, o Termux só vê o seu próprio diretório. $ HOMEque está isolado do restante do Android. Se você quiser ler e gravar na memória interna ou no cartão SD, você deve executar:

termux-setup-storage

Este comando solicitará permissões e criará um diretório. $HOME/armazenamento com links para de downloads, INSTITUCIONAIS, As fotosetc. Dessa forma, seus scripts poderão Leia e copie arquivos de e para a área do usuário do Android. sem precisar fazer malabarismos.

Se o que você deseja é, por exemplo, Instale um APK e copie alguns arquivos. Ao acessar o armazenamento interno a partir de um script, é essencial conceder essas permissões previamente. Caso contrário, você quase certamente encontrará o temido erro "Permissão negada".

Entendendo a estrutura de roteamento no Termux e o conceito de shebang.

O Termux não usa exatamente a mesma hierarquia que uma distribuição Linux padrão. Caminhos como /bin, /usr ou /etc não estão onde você espera que estejam.e isso afeta os elementos principais dos scripts (a linha que começa com #! indicando o intérprete).

Em muitos guias ou projetos (como bots do Instagram como o InstaPy), você verá scripts com cabeçalhos como este. #!/bin/sh o #!/usr/bin/env pythonEm versões mais antigas do Termux, era necessário "corrigir" esses caminhos com um utilitário chamado termux-fix-shebangporque os arquivos binários não estavam nas rotas típicas.

As versões recentes incluem o pacote. termux-exec, que é responsável por interpretar corretamente shebangs padrãoGraças a isso, a maioria dos scripts que esperariam um ambiente Unix clássico funcionam sem qualquer modificação. Mesmo assim, se um script não for executado, vale a pena verificar o seguinte:

  • Que o shebang aponte para um intérprete que realmente exista. no Termux.
  • Certifique-se de que o script tenha permissões de execução com chmod +x.
  • Que você está usando o caminho correto ao executá-lo (por exemplo, ./install.sh o ~/script.sh).

Se você é alguém que gosta de ter tudo "organizado", você pode criar uma estrutura de diretório clássica no Termux (como / usr / bin) usando comandos específicos que geram links simbólicos e caminhos padrão. Não é obrigatório, mas às vezes facilita a reutilização de scripts antigos.

Criar, conceder permissões e executar um script .sh no Termux

Vamos ao que interessa: como criar e executar um script .sh simples no Termux? O fluxo básico é sempre o mesmo: Escreva o script, salve-o, conceda as permissões necessárias e execute-o.Você pode aplicar isso tanto ao seu próprio roteiro quanto, por exemplo, ao roteiro clássico. install.sh de projetos como o InstaPy Quickstart.

Para criar um script, você pode usar nano, vitalidade, emacs ou editor que você mais gostaSe você não tiver nenhum instalado, um primeiro passo útil é:

pkg install nano

Suponha que você queira criar ~/script.shVocê poderia fazer:

nano ~/script.sh

Dentro do arquivo, você escreve seu script, por exemplo, um script bem simples que registra a data de execução:

#!/bin/sh
echo "Encendido del dispositivo: $(date)" >> ~/registros.log

Quando terminar, salve-o no nano com Ctrl + O, Enter e depois Ctrl + XVocê criou o script, mas ele ainda não é executável. Para corrigir isso, adicione as permissões com:

chmod +x ~/script.sh

A partir daí, você pode testar se tudo está funcionando executando o seguinte comando:

~/script.sh

./script.sh (se você estiver no mesmo diretório que o arquivo)

Se isso atualizar ~/registros.log Com a data e a hora, você tem a confirmação de que O script .sh funciona corretamente.Essa mesma receita se aplica ao tentar executar um install.sh que você baixar do GitHub: certifique-se de que ele tenha permissões de execução e que você o chame com o caminho correto.

Corrigindo o erro "permissão negada" ao executar scripts .sh

Um dos problemas mais comuns quando alguém tenta instalar um APK ou mover arquivos usando um arquivo .sh no Android é que Tudo parece correto, mas o terminal responde com "Permissão negada".No Termux, esse problema geralmente tem várias causas típicas.

A primeira e mais óbvia é que O script não possui permissões de execução.Mesmo que você esteja usando o look perfeito, sem um chmod +x archivo.sh Não há nada a fazer. É uma falha clássica que deve sempre ser verificada.

Outra causa comum é que O script tenta escrever em caminhos do sistema onde o Android não permite.Principalmente sem acesso root. Esqueça a manipulação livre de diretórios do sistema; concentre-se nos caminhos do usuário (como os que estão expostos). $HOME/armazenamento) ou no que o próprio aplicativo consegue gerenciar.

Também pode acontecer que Você está executando os comandos a partir de um emulador de terminal diferente do Termux.Sem as permissões e o ambiente adequados, muitos outros emuladores de terminal Android sofrem com problemas de permissão e não integram armazenamento ou APIs corretamente, fazendo com que os mesmos comandos que funcionam em um sistema Linux real falhem neles.

No caso específico de alguém tentando instalar o InstaPy Quickstart no Android, o ponto crucial é que O Termux deve ter todas as dependências disponíveis. (Python, pip, bibliotecas necessárias) e o script install.sh Ele deve ser executado dentro do Termux, não em algum aplicativo aleatório. Se você executá-lo corretamente e ainda assim falhar, verifique os caminhos de instalação, o shebang e as permissões dos diretórios de destino.

Execute scripts .sh automaticamente quando o Android iniciar com o Termux:Boot.

Depois de dominar o básico, muitas pessoas querem ir um passo além e criar Alguns scripts são executados automaticamente quando o dispositivo é ligado.É para isso que serve o complemento. Termux: Inicialização.

Termux:Boot é um aplicativo que se integra ao Termux e Ele executa todos os scripts .sh que encontra em um diretório específico. quando o telefone termina de inicializar. É ideal, por exemplo, para iniciar serviços como MySQL, pequenos daemons, tarefas de registro ou qualquer automação que você precise na inicialização.

Você pode obter o Termux:Boot na Google Play (pago em alguns países) ou no F-Droid, onde está disponível gratuitamente. Mas lembre-se da regra de ouro: Termux e Termux:Boot devem vir da mesma fonte. para que suas assinaturas coincidam. Se você usa o F-Droid para Termux, use também o F-Droid para Termux:Boot.

Após instalar o Termux:Boot, geralmente é suficiente. abrindo o aplicativo uma vez para que se registre como um receptor do evento de inicialização. Não requer configuração extensa; sua mágica acontece em segundo plano, lendo os scripts que você coloca no diretório apropriado.

Caminho do script na inicialização: ~/.termux/boot e exemplo prático

O mecanismo Termux:Boot é simples: Qualquer script .sh que você colocar em ~/.termux/boot/ será executado na inicialização do dispositivo.A pasta não existe por padrão, então você terá que criá-la.

Para fazer isso no Termux, execute:

mkdir -p ~/.termux/boot/

A partir daí, você pode criar seus scripts diretamente nesse caminho ou copiar os que você já tem. Seguindo o exemplo anterior, se tivéssemos criado ~/script.shPoderíamos copiar assim:

cp ~/script.sh ~/.termux/boot/script.sh

Contanto que o arquivo tenha permissões de execução (chmod +x ~/.termux/boot/script.sh), o Termux:Boot irá executá-lo a cada inicialização. Esse script pode conter Qualquer comando válido para bash/sh, desde escrever em um log até iniciar um serviço de banco de dados com algo como:

mysqld_safe -u root &

Se você quiser garantir que tudo esteja configurado corretamente, é uma boa ideia. Reabra o aplicativo Termux:Boot Aguarde alguns segundos, feche e reinicie o dispositivo. Quando ele ligar, verifique o conteúdo do seu arquivo de log ou o status dos serviços que você tentou iniciar pelo script.

Utilizando o cron e outras automações com o Termux

Além de iniciar o sistema, você também pode Agende tarefas recorrentes com o cron no Termux.Para isso, você precisa instalar o pacote correspondente e configurar o seu crontabs exatamente como você faria em qualquer sistema Linux.

Após a instalação, você usa crontab -e Para editar a tabela cron e adicionar entradas. Por exemplo, você pode configurar uma tarefa para ser executada a cada minuto e criar ou atualizar um diretório específico, ou para executar um script .sh em um determinado intervalo.

O funcionamento do cron no Termux é muito semelhante ao de um sistema Linux padrão, mas possui uma limitação importante: Se o Android encerrar o aplicativo Termux em segundo planoAs tarefas podem parar de ser executadas. Contanto que o sistema respeite o processo, o cron funciona muito bem, mas isso é algo a se ter em mente em telefones com políticas agressivas de economia de bateria.

Se você não tiver certeza sobre a sintaxe do cron (as expressões de minuto, hora, dia, etc.), você pode usar recursos como... crontab.guru, que ajudam você a escrever a programação correta visualmente.

Integrando o Termux com o Android: Termux: API e scripts para compartilhamento

Uma das grandes vantagens do Termux é que ele não se limita a um terminal isolado: com o complemento... Termux:API Você pode acessar diversos recursos de hardware do Android e combiná-los com seus scripts .sh, bem como com ferramentas como SL4A no Android.

Para usá-lo, primeiro instale o aplicativo Termux:API da F-Droid ou da Play Store (seguindo a mesma política de origem dos demais plugins) e depois instale o pacote no terminal. API do TermuxA partir daí, seus scripts podem chamar comandos como:

  • notificação termux Exibir notificações no Android.
  • termux-dialog Abrir caixas de diálogo e solicitar dados do usuário.
  • torrada termux Exibir mensagens curtas na tela.
  • termux-tts-speak Para usar o TTS (conversão de texto em fala) do Google.
  • termux-media-player Reproduzir áudio/vídeo.
  • termux-microfone-gravação Para gravar áudio do microfone.
  • Comandos para área de transferência, localização, câmera, etc.

Além disso, o Termux pode capturando determinadas "intenções" do AndroidIsso permite que scripts sejam executados automaticamente ao compartilhar arquivos ou URLs de outros aplicativos.

Por exemplo, se você compartilhar um link do YouTube no Termux, o script será executado. ~/bin/termux-url-opener recebendo a URL na variável $1. Você só precisa:

  • Crie o diretório ~ / bin se não existir.
  • Crie o arquivo termux-url-opener dentro de el.
  • Conceder permissões de execução com chmod +x ~/bin/termux-url-opener.

Nesse script você pode, por exemplo, fazer o download do vídeo com youtube-dl ou similar usando a URL que chega em $1Ou salve o link em uma lista para ler mais tarde.

Algo semelhante acontece com editor-de-arquivos-termuxQuando você compartilha um arquivo com o Termux, esse manipulador é iniciado. Você pode configurá-lo para abrir seu editor favorito criando um link simbólico como este:

ln -s $PREFIX/bin/nvim ~/bin/termux-file-editor

Ou escreva seu próprio roteiro. editor-de-arquivos-termux (Com nano(marque-o como executável, etc.) para processar o arquivo da maneira que desejar. É uma maneira muito poderosa de encadeando ações entre o Android e seus scripts .sh.

Execute scripts a partir de widgets e atalhos: Termux:Widget

Se você preza pelo conforto, existe outro acessório particularmente útil: Widget do TermuxEste plugin permite criar atalhos na tela inicial para executar scripts diretamente de um widgetsem precisar abrir o terminal manualmente todas as vezes.

Para que funcione, você deve colocar seus scripts em caminhos específicos:

  • ~/.atalhos/ para scripts que aparecerão no widget.
  • ~/.atalhos/tarefas/ para tarefas específicas gerenciadas pelo plugin.
  • ~/.atalhos/ícones/ para os ícones PNG que serão exibidos com cada script.

O nome do arquivo de ícone deve corresponder ao nome do script, adicionando . Png, por exemplo script.sh.pngEm uma tela Full HD típica, um tamanho de 96 × 96 px Geralmente funciona bem, embora para telas maiores possa ser aconselhável aumentar para 144px ou 196px.

Basta inserir o script em ~/.atalhos/Conceda permissões de execução e adicione o widget do Termux ao seu iniciador. Você poderá executar esse arquivo .sh com um simples toque.Ideal para tarefas que você repete com frequência: backups, sincronizações, notas de voz, etc.

Outras ferramentas avançadas e casos de uso com o Termux

Além de executar scripts individuais, o Termux permite que você tenha um ambiente de trabalho surpreendentemente completo No Android, você pode instalar interpretadores para linguagens como Python, Ruby, Perl, Node.js ou Rust e usá-los com seus scripts .sh para automatizar tarefas mais complexas.

Você também pode andar ambientes de desenvolvimento completos Com git, gcc, make, Neovim, Emacs, etc., e até mesmo servidores web, servidores de banco de dados ou serviços SSH. Muitos usuários mantêm seus arquivos de configuração em um repositório git para clonar sua configuração diretamente no Termux e se sentirem "em casa" em qualquer dispositivo Android.

Se você usa gerenciadores de senhas como passarVocê pode instalá-los junto com gnupg e sincronize suas senhas via Git, permitindo que você as tenha disponíveis também em seu dispositivo móvel. Até mesmo ferramentas como peixe (uma interface muito amigável) e utilitários modernos como zoxide, starship, ripgrep, lsd, bat ou atuin Eles se integram perfeitamente.

Para quem vem de um ambiente de trabalho com computadores desktop, a ideia de ter um servidor SSH ou um servidor web rodando no telefone Com o Termux, não tem nada de complicado. Você pode iniciá-lo com um simples script .sh, vinculá-lo ao Termux:Boot ou a um widget e gerenciá-lo como um pequeno servidor portátil.

Suporte para interfaces gráficas via X11 e VNC Também está disponível, embora exija uma configuração mais avançada; se tiver interesse, dê uma olhada. Como emular e executar Linux no AndroidAinda assim, demonstra até que ponto o Termux vai além da simples ideia de um "emulador de terminal" e se torna uma pequena distribuição Linux dentro do Android.

Com tudo isso, o Termux se torna uma espécie de canivete suíço: Desde a instalação de um APK simples com um script .sh até a automatização de tarefas complexas combinando APIs do Android, cron, inicialização do sistema e widgets.Você pode colocar praticamente qualquer coisa que imaginar fazer em um terminal Linux no seu bolso.

Como dominar o Android Termux
Artigo relacionado:
Termux em profundidade: como dominar este dispositivo Android