Pular para o conteúdo
Início
Docs/Terminal Linux

Terminal Linux

O terminal do PocketCode dá a você um shell de verdade no celular: o ash do BusyBox sobre um pseudoterminal nativo, com seus projetos como pasta pessoal, abas, tela dividida e um painel com 20 ferramentas. O trabalho remoto (hosts SSH, SFTP, encaminhamento de portas) tem sua própria página.

The Terminal start screen on a tablet: a Local Shell card and the Quick Connect and Browse Hosts shortcuts
A tela de boas-vindas do Terminal: um shell local, mais Conexão rápida e Explorar hosts para SSH remoto.

O que é e como abrir

O Terminal não é uma das cinco páginas do pager: ele abre sobre o app como uma sobreposição em tela cheia. Há três formas de entrar.

  1. 1Toque no botão Ferramentas da barra de navegação e escolha Terminal no painel Ferramentas de desenvolvimento.
  2. 2Abra a paleta de comandos e execute Abrir terminal (“Abre uma sessão de terminal”).
  3. 3Em Início, toque na ação rápida Terminal. É uma das três ações rápidas exibidas por padrão.
As sessões continuam rodando quando você sai do Terminal. Volte e retome-as pelos chips acima da tela de boas-vindas. Voltar, dentro de uma sessão, leva à tela de boas-vindas sem fechá-la.
O botão Executar do editor não abre o Terminal, o explorador de arquivos não tem “abrir terminal aqui” e o Terminal não define atalhos de teclado próprios.

Mapa de telas

O Terminal tem três telas (boas-vindas, Terminal e SSH) que compartilham uma barra de abas, um painel de ferramentas e o mesmo conjunto de janelas de ferramentas. Esta página cobre a tela de boas-vindas, a tela do Terminal local e todas as ferramentas do shell local; a tela SSH tem sua própria página.

TelaComo chegarO que você pode fazer
Tela de boas-vindasAbre primeiro. Voltar, dentro de uma sessão, volta para cá.Escolha Shell local, Conexão rápida ou Explorar hosts. Retome uma sessão em andamento pelos chips acima.
Terminal (shell local)Shell local na tela de boas-vindas, ou um chip de sessão local.Abas, tela dividida, busca na saída, a barra de entrada, gestos e todas as ferramentas abaixo.
Tela SSHConexão rápida ou Explorar hosts na tela de boas-vindas.Abas remotas com seu próprio conjunto de 32 ferramentas. Explicada na página de SSH.
Painel de ferramentas acopladoAutomático em tela larga (660 dp ou mais, sem tela dividida).Uma faixa de ícones de ferramentas com a ferramenta aberta logo abaixo. 20 ferramentas no shell local.
Menu de ferramentasO botão de chave inglesa (Mais opções) na barra de abas, quando não há painel acoplado.Seis categorias no shell local, Buscar ação… e uma linha de FREQUENTES. Abre qualquer ferramenta como uma janela em tela cheia.
SnippetsFerramenta do painel; menu → Snippets.98 comandos prontos, os seus, pastas e Gerar com IA.
Histórico de comandosFerramenta do painel; menu → Sessão.Busque, marque com estrela, repita e apague os comandos que você enviou desta aba.
Gerenciador de arquivosFerramenta do painel; menu → Ferramentas Linux.Navegue por pastas, crie uma pasta ou um arquivo, imprima um arquivo, apague (com confirmação antes).
Painel GitFerramenta do painel; menu → Ferramentas Linux.Veja status, branches, histórico e ações de um repositório, via JGit.
ProcessosFerramenta do painel; menu → Ferramentas Linux.Liste, filtre, ordene e encerre processos.
Informações do sistemaFerramenta do painel; menu → Ferramentas Linux.SO, kernel, tempo ligado, usuário e o modelo do celular e a versão do Android.
Uso de discoFerramenta do painel; menu → Ferramentas Linux.Um cartão por partição, com uma barra de uso.
RedeFerramenta do painel; menu → Ferramentas Linux.Execute ping, nslookup, traceroute, curl, wget ou dig contra um alvo.
Variáveis de ambienteFerramenta do painel; menu → Ferramentas Linux.Liste, busque, adicione, edite e remova variáveis.
Gerenciador de aliasesFerramenta do painel; menu → Sessão.Liste, crie, execute e remova aliases.
Tarefas em segundo planoFerramenta do painel; menu → Sessão.Liste tarefas, encerre uma, traga uma para o primeiro plano.
Scripts rápidos (Pro)Ferramenta do painel; menu → Automação.Salve scripts de várias linhas e execute-os linha a linha.
Macros de teclado (Pro)Ferramenta do painel; menu → Automação.Salve sequências de teclas e envie-as à sessão.
Regras Expect (Pro)Ferramenta do painel; menu → Automação.Responda a um prompt automaticamente quando um padrão aparece na saída.
GravaçãoFerramenta do painel; menu → Sessão → Iniciar gravação.Grave a aba como um arquivo .cast do asciinema.
Registros de sessãoFerramenta do painel; menu → Configurações.Registre uma sessão em um arquivo criptografado, marque, comente e compartilhe.
Partilha o teu servidorFerramenta do painel; menu → Sessão.Dê ao servidor de desenvolvimento que roda no seu celular um link público temporário.
PerfisFerramenta do painel; menu → Segurança.Crie e inicie perfis de terminal (veja as limitações).
Sincronização e equipes e Importar / ExportarFerramentas do painel; menu → Configurações.Também estão no painel local. Descritas na página de SSH.
Explicar com IABotão de brilho na barra de entrada, só depois de uma saída que parece uma falha.Receba uma explicação em linguagem simples das últimas 40 linhas.
Copiar para a área de transferência?Aparece sozinho quando um programa pede a sua área de transferência (OSC 52).Copiar, Ignorar ou permitir pelo resto da sessão.
O comando lê credenciais e envia dados para foraAparece antes de um comando assim, digitado na barra de entrada, ser executado.Leia o que ele toca e depois Executar mesmo assim ou cancele.

A tela de boas-vindas

A tela de boas-vindas é a página inicial do módulo. Ela mostra o título Terminal e a frase “Shell local, SSH remoto e ferramentas Linux em um só lugar”.

Shell local

Abre um shell neste celular, na tela do Terminal. Uma linha de status sob o nome diz Ferramentas Busybox prontas quando o BusyBox está vinculado, ou Shell básico quando só o shell do próprio Android está disponível.

Conexão rápida e Explorar hosts

Abrem a tela SSH com a Conexão rápida ou com a lista de hosts. Explicado na página de SSH.

Sessões abertas

Chips acima dos cartões listam as sessões que ainda estão rodando, para você voltar a uma delas.

Em tela estreita os cartões ficam empilhados em uma coluna; em tela larga o título fica à esquerda e os cartões à direita. Voltar, aqui, sai do Terminal.

Você pode

  • Inicie um shell local com um toque em Shell local.
  • Retome qualquer sessão em andamento, local ou remota, pelos chips.
  • Vá para a tela SSH com Conexão rápida ou Explorar hosts.

Você não pode, e por quê

  • Confiar no status do BusyBox em uma instalação nova: ele é lido uma vez, quando a tela é desenhada, e o BusyBox é vinculado na primeira vez que você abre um shell, então o cartão pode dizer Shell básico até você reabrir o Terminal.Ainda não

O shell local

O shell local é um processo de verdade no seu celular, não uma emulação.

  • Shell. ash do BusyBox v1.34.1, incluído no app e iniciado em um pseudoterminal nativo (TERM=xterm-256color, redimensionado junto com a tela). Se o BusyBox não estiver disponível, recorre ao sh do próprio Android.
  • Applets. O binário do BusyBox exporta 373 applets. Na primeira vez que você abre um shell, o PocketCode vincula todos eles, entre os quais awk, vi, sed, find, tar, gzip, unzip, wget, nc, ping, nslookup, traceroute, ifconfig, ip, netstat, top e less. Se essa etapa falhar, vincula uma lista básica de 70. Os vínculos são reparados na próxima vez que você abre um shell depois de uma atualização do app.
  • Node. O node é vinculado ao shell quando o build o inclui para a arquitetura do seu dispositivo (arm64-v8a e x86_64), com NODE_OPTIONS=--no-addons. O npm não está incluído.
  • Pasta pessoal. ~ é a sua pasta de projetos. ls, grep e diff são aliases coloridos e ll é ls -la (o PocketCode verifica o .ashrc do shell a cada início e o restaura se for diferente).
  • Banco de dados. Enquanto o motor PostgreSQL local está rodando, DATABASE_URL e as variáveis PG* são definidas apenas no shell local, nunca nas sessões SSH.
  • Saída. A saída é uma lista de linhas (as últimas 10.000 por aba). Cores e estilos são desenhados (cores de 16, 256 e RGB, negrito, esmaecido, itálico, sublinhado), os retornos de carro fazem as barras de progresso colapsarem, e o backspace e as tabulações funcionam. Movimento do cursor, limpeza de tela, rastreamento do mouse e outras sequências de controle são descartados.
Este shell roda com as permissões do próprio PocketCode, então enxerga os arquivos do app, como qualquer código que você executar aqui. Não é uma sandbox. Na primeira vez que você o usa, um aviso diz isso. As janelas das ferramentas (Gerenciador de arquivos e as demais) ficam dentro da sua pasta de projetos e nunca abrem as pastas que guardam credenciais, mas essa regra vale para as telas do app, não para o shell.
The local shell on a phone after uname -a, free -h and ls -la, with the Local Shell tab and the input bar
O shell local em um celular
A Local Shell tab on a phone with split, search and wrench buttons, command output and the input bar with attach, previous command and send
Uma aba de shell local: barra de abas, saída e barra de entrada com Anexar arquivo, Comando anterior e Enviar

O que não existe aqui, e por quê

  • Um gerenciador de pacotes: não há apt, dpkg nem pkg. O app não instala pacotes.Google Play
  • git. Use o Painel Git (ele conversa com o JGit) ou o Controle de código do editor.De propósito
  • python, docker, curl, ssh, scp, zip e nano. Eles não estão no build do BusyBox e o app não baixa executáveis. Para outra máquina, use a tela SSH.Google Play
  • Root, chroot/proot ou uma distribuição Linux: o shell tem o usuário do próprio app e nada mais.Dispositivo
  • Programas que redesenham a tela inteira, como vi, top ou less: eles não aparecem como tela cheia porque o movimento do cursor é descartado. top -n 1 é oferecido como chip em Processos.De propósito

Sessões, abas e gestos

Cada aba é uma sessão. A barra de abas é compartilhada pelas telas local e SSH, mas cada tela mostra só as abas do seu tipo.

Abas, tela dividida e busca

  • + abre outro shell local nesta tela (na tela SSH, abre a lista de hosts).
  • Mantenha uma aba pressionada para Renomear e Fechar outros separadores (uma aba remota também oferece Duplicar sessão). Fechar uma aba local é imediato; fechar as outras pergunta antes.
  • Cada aba tem um ponto de status (a aba local é sempre verde), e um ponto extra aparece na aba que recebeu saída nova enquanto você estava em outra. Os chips LOG e REC aparecem na barra enquanto o registro ou a gravação está ligado.
  • O botão de divisão alterna entre Dividir horizontal, Dividir vertical e Sem divisão. O segundo painel mostra a aba seguinte, o painel ativo tem uma borda de destaque e um toque em um painel o foca. A tela dividida é Pro.
  • A lupa (Buscar saída) abre Buscar na saída… com uma contagem (“N de M”) e botões de anterior e próximo. Ela encontra o texto em qualquer ponto da linha, ignorando maiúsculas e minúsculas, e cada painel dividido é pesquisado separadamente.
  • Broadcast (enviar o que você digita a todas as abas conectadas) e Shell multiplexado pertencem às abas remotas. Estão na página de SSH.
O plano Grátis permite uma sessão ativa por tela: uma na tela Terminal (um shell local ou uma porta serial) e outra na tela SSH, então um shell local e uma sessão SSH podem rodar lado a lado. Abas vazias ou desconectadas não contam. Pedir uma segunda na mesma tela (o botão +, Shell local com uma já aberta, ou uma duplicata) mostra Terminal Pro com os botões Desbloquear Terminal Pro e Continuar com plano básico.

Gestos e teclas

Toque duplo na saídaEnvia Ctrl+C para interromper o comando em execução.
Deslizar na saídaEnvia as setas: esquerda e direita movem o cursor, para cima e para baixo percorrem o histórico do shell.
Pinça na saídaMuda o tamanho do texto, de 8 a 24. O tamanho é lembrado.
Toque longo na saídaUm menu com Copiar linha, Copiar saída e Limpar terminal.
Tocar em um linkUm endereço da web abre no navegador.
Botões de volumeFuncionam como as setas para cima e para baixo enquanto Botões de volume: ATIVADO estiver ligado. Vem desligado por padrão e o interruptor fica no menu de ferramentas, em Configurações.

A barra de entrada

  • Um campo de uma linha com Enviar. Tudo o que você envia daqui é adicionado ao histórico de comandos desta aba.
  • Até cinco sugestões aparecem enquanto você digita: comandos conhecidos, comandos do histórico desta aba e caminhos que começam com / ou ~ (só no shell local, um nível de profundidade).
  • Comando anterior volta pelo histórico desta aba.
  • Anexar arquivo escolhe um arquivo. No shell local ele é copiado para a sua pasta de projetos, com (1), (2) acrescentado quando o nome já existe, e o caminho dele é inserido no campo. Em uma aba remota, ele é enviado para /tmp.
  • Explicar com IA aparece quando a saída mais recente parece uma falha (veja abaixo).

Limites da tela de sessão

  • Uma fileira de teclas extras (ESC, TAB, Ctrl, F1 a F12). As únicas teclas que você pode enviar são Ctrl+C (toque duplo), as setas (deslizar) e o que uma macro enviar.Ainda não
  • Abrir um arquivo a partir da saída: caminhos de arquivo e referências file:line:column são destacados, mas não reagem ao toque. Só os endereços da web abrem.Ainda não
  • Uma segunda sessão na mesma tela no plano Grátis, e a tela dividida.Pro

Avisos que uma sessão pode levantar

Copiar para a área de transferência? (OSC 52)

Aparece sozinho quando um programa da sessão pede para colocar texto na sua área de transferência.

Um comando, um script ou um servidor remoto podem pedir ao terminal que copie texto. O PocketCode pergunta antes, porque um texto colado em um terminal pode executar comandos.

Você pode

  • Leia “A sessão quer copiar N caracteres para a área de transferência”, com uma prévia do texto.
  • Toque em Copiar ou Ignorar.
  • Marque Permitir no resto desta sessão. Essa escolha fica na memória e é esquecida quando a sessão termina.

Você não pode, e por quê

  • Deixar uma sessão escrever na sua área de transferência sem perguntar.De propósito

O comando lê credenciais e envia dados para fora

Aparece quando um comando enviado pela barra de entrada toca um repositório de credenciais e também envia dados para algum lugar.

A caixa de diálogo diz o que o comando toca e para onde ele vai. É um aviso, não um bloqueio: existe para comandos copiados de um tutorial ou sugeridos por uma IA, cujo segundo efeito é fácil de não notar.

Você pode

  • Leia as duas coisas que o comando faz.
  • Toque em Executar mesmo assim para enviá-lo, ou cancele.

Você não pode, e por quê

  • Fazer com que ele bloqueie o comando, ou pegar qualquer coisa que não passe pela barra de entrada.De propósito

O painel de ferramentas

Quase tudo o que você faz além de digitar comandos acontece nas ferramentas. Elas aparecem de duas maneiras, conforme a tela.

As 20 ferramentas do shell local, na ordem do painel

Snippets, Histórico de comandos, Gerenciador de arquivos, Painel Git, Processos, Informações do sistema, Uso de disco, Rede, Variáveis de ambiente, Gerenciador de aliases, Tarefas em segundo plano, Scripts rápidos, Macros de teclado, Regras Expect, Gravação, Registros de sessão, Partilha o teu servidor, Perfis, Sincronização e equipes e Importar / Exportar. Uma aba remota acrescenta mais 12, 32 no total (veja a página de SSH).

Painel acoplado

Em tela larga (660 dp ou mais) e sem tela dividida, um painel de 380 dp se acopla à direita: uma faixa de ícones com a ferramenta selecionada logo abaixo. Há sempre uma ferramenta selecionada (Snippets na primeira vez) e o painel lembra a última. A seta da barra de abas (Recolher painel) o recolhe.

Menu de ferramentas

No celular, ou com a tela dividida ligada, o botão de chave inglesa (Mais opções) abre um menu com um campo de busca (Buscar ação…), uma linha de FREQUENTES (uma ação aparece ali depois de dois usos, no máximo seis) e estas categorias:

CategoriaAções no shell local
SessãoPartilha o teu servidor, layout dividido, Histórico de comandos, Gerenciador de aliases, Tarefas em segundo plano, Copiar saída, Limpar terminal, Iniciar gravação
Ferramentas LinuxGerenciador de arquivos, Processos, Rede, Uso de disco, Informações do sistema, Variáveis de ambiente, Painel Git
SnippetsTodos os Snippets e oito atalhos de categoria (Sistema, Docker, Git, Banco de dados, Segurança, Monitoramento, Rede, Arquivos e texto)
AutomaçãoMacros de teclado, Scripts rápidos, Regras Expect
SegurançaPerfis
ConfiguraçõesRegistros de sessão, Sincronização e equipes, Importar / Exportar, Botões de volume: ATIVADO / Botões de volume: DESATIVADO

Em uma aba SSH há uma sétima categoria, Conexão, e mais ações nas outras. Copiar saída e Limpar terminal também estão no menu de toque longo da saída.

The tools menu on an SSH tab: a search field and the categories Connection, Session, Linux Tools, Snippets, Automation and Security, each with an action count
O menu de ferramentas, aqui em uma aba SSH: categorias com a quantidade de ações de cada uma (o shell local não tem a categoria Conexão)
  • Alcançar Botões de volume: ATIVADO/DESATIVADO em um tablet largo com o painel acoplado: o menu de ferramentas não é desenhado ali. (Iniciar uma tela dividida traz a chave inglesa de volta.)Dispositivo

Ferramentas Linux

Estas ferramentas são atalhos para coisas que você digitaria de qualquer jeito. As listas que elas mostram são lidas por um shell separado e não interativo (cada leitura é limitada a 15 segundos e 512 KB). O que você muda por elas (criar, apagar, encerrar, exportar) é digitado na sua sessão como um comando comum, então você também vê isso na saída.

Gerenciador de arquivos

Ferramenta do painel Gerenciador de arquivos; menu → Ferramentas Linux.

Um navegador de pastas construído sobre ls -la.

Você pode

  • Abra pastas e suba um nível com Pasta acima.
  • Crie uma pasta (Nova pasta, mkdir -p) ou um arquivo vazio (Novo arquivo, touch).
  • Toque em um arquivo para imprimi-lo na sessão com cat.
  • Apague uma entrada com o ícone da lixeira. Um diálogo Excluir com o título Excluir <nome>? pergunta antes: o arquivo, ou a pasta e tudo o que há nela, é removido de vez, sem lixeira nem como desfazer. Excluir confirma; Cancelar mantém.
  • O rm -rf digitado na sessão leva o caminho entre aspas e os caracteres especiais escapados, então um arquivo chamado $(…) é apagado pelo nome e nunca executado.
  • Use os chips de Comandos rápidos: du -sh *, find . -name '*.log' e chmod +x.

Você não pode, e por quê

  • Navegar fora da sua pasta de projetos: o navegador para ali, e as pastas que guardam credenciais do app nunca abrem.De propósito
  • Desfazer uma exclusão, ou mandá-la para uma lixeira.De propósito
  • Ver proprietário, tamanho ou datas além do que ls -la imprime.Ainda não

Painel Git

Ferramenta do painel Painel Git; menu → Ferramentas Linux.

Um pequeno painel Git com quatro abas: Estado, Branches, Histórico e Ações. No shell local ele usa o JGit (não existe programa git); em uma aba SSH, digita comandos git no shell remoto. Ele procura o repositório subindo a partir da pasta do Gerenciador de arquivos, ou da sua pasta de projetos.

Você pode

  • Inicializar repositório onde você está, Adicionar tudo e tirar tudo da área de preparação.
  • Escreva uma mensagem de commit e Confirmar alterações.
  • Push, Pull, Fetch, Stash, Stash Pop.
  • Troque de branch ou crie uma com Nova ramificação, e descarte as alterações de um arquivo.

Você não pode, e por quê

  • Um git diff ou reset completo: o painel local não desenha ações que o JGit não consegue fazer. A nota de rodapé do próprio painel aponta para o Controle de código do editor.De propósito
  • Entrar em um host Git por aqui: push e pull usam as credenciais já configuradas em outro ponto do app, e uma falha mostra a mensagem na janela.De propósito
  • Trabalhar em um repositório fora da sua pasta de projetos.De propósito

Processos

Ferramenta do painel Processos; menu → Ferramentas Linux.

Os processos em execução, lidos com ps.

Você pode

  • Veja PID, nome, usuário, CPU %, MEM % e estado.
  • Filtre por nome ou PID (Filtrar processos…).
  • Ordene por CPU %, MEM % ou PID.
  • Pare um processo com o ícone de encerrar, que digita kill -9 <pid> na sessão.
  • Use os chips top -n 1, ps aux --sort=-%mem | head -20 e uptime, e atualize a lista.

Você não pode, e por quê

  • Escolher outro sinal (é sempre -9) ou filtrar por usuário.Ainda não
  • Mostrar uma árvore de processos.Ainda não

Informações do sistema

Ferramenta do painel Informações do sistema; menu → Ferramentas Linux.

Três abas de cartões: Visão geral (SO, kernel, tempo ligado), Hardware (arquitetura, mais o modelo do seu celular, a versão do Android e o nível do SDK) e Ambiente (usuário e id).

Você pode

  • Atualize os cartões.
  • Use os chips: uname -a, uptime, whoami, free -h e env | sort enviam o que dizem. cpuinfo envia cat /proc/cpuinfo, model envia getprop ro.product.model (com o nome do produto do DMI como alternativa), $PATH envia echo $PATH e $SHELL envia echo $SHELL.

Você não pode, e por quê

  • Mostrar memória, CPU ou nome do host como cartões próprios.Ainda não

Uso de disco

Ferramenta do painel Uso de disco; menu → Ferramentas Linux.

Um cartão por partição, a partir de df -hP, com uma barra de uso e os tamanhos Usado, Livre e Total.

Você pode

  • Atualize os cartões.
  • Use os chips df -h, du -sh * | sort -rh | head -20 e find / -size +100M 2>/dev/null.

Você não pode, e por quê

  • Ver inodes ou mais do que as colunas de df -hP.Ainda não

Rede

Ferramenta do painel Rede; menu → Ferramentas Linux.

Ao abri-la, ela executa ifconfig (ou ip addr) e mostra o resultado. A saída aparece na janela como texto monoespaçado simples, não na sessão.

Você pode

  • Escolha uma ferramenta (ping com 5 pacotes, nslookup, traceroute, curl para cabeçalhos, wget como teste de alcance, dig), digite um host, endereço ou URL e toque em Executar.
  • Use os chips ifconfig, netstat -tlnp e ss -tuln.

Você não pode, e por quê

  • Executar curl ou dig no shell local: o build do BusyBox não os inclui, então terminam com uma mensagem de “não encontrado”.Google Play
  • Executar algo por mais de 15 segundos ou imprimir mais de 512 KB.De propósito

Variáveis de ambiente

Ferramenta do painel Variáveis de ambiente; menu → Ferramentas Linux.

As variáveis, listadas com env e pesquisáveis.

Você pode

  • Adicione uma com Nova variável (o nome deve começar com uma letra ou sublinhado e usar só letras, dígitos e sublinhados). Ela é enviada como export NAME='value'.
  • Edite uma com Editar variável, ou apague-a, o que envia unset.

Você não pode, e por quê

  • Ter certeza de que a lista corresponde à sua sessão aberta: ela é lida por um shell separado, então uma variável que você definir à mão com export pode não aparecer.De propósito

Gerenciador de aliases

Ferramenta do painel Gerenciador de aliases; menu → Sessão.

Aliases da sessão, listados com alias.

Você pode

  • Crie um com Novo alias (letras, dígitos, sublinhado e hífen no nome). Ele é enviado como alias name='command'.
  • Toque em um alias para executá-lo, ou apague-o (unalias).
  • Toque em um dos quatro aliases Sugeridos (ll, cls, gs, ..). gs é git status, que o shell local não consegue executar.

Você não pode, e por quê

  • Manter aliases depois que o shell fecha: o PocketCode verifica o .ashrc a cada início de shell e o reescreve se for diferente de um modelo fixo, então as edições nele não sobrevivem.De propósito
  • Ter certeza de que a lista corresponde à sua sessão aberta: ela é lida por um shell separado.De propósito

Tarefas em segundo plano

Ferramenta do painel Tarefas em segundo plano; menu → Sessão.

Tarefas listadas com jobs -l. Quando não há nenhuma, a janela diz “Sem tarefas em segundo plano” e “Use comando & para executar em segundo plano”.

Você pode

  • Encerre uma tarefa (kill <pid>; um pid igual ou menor que 1, ou o do próprio app, é recusado).
  • Traga uma tarefa para o primeiro plano (fg %N).

Você não pode, e por quê

  • Ver as tarefas do shell em que você está digitando: a lista vem de um shell separado, então as tarefas que você iniciou com & na sua aba normalmente não aparecem.De propósito

Snippets e histórico

Comandos reutilizáveis e os comandos que você já executou.

Snippets

Ferramenta do painel Snippets (aquela com que o painel abre); menu → Snippets.

98 comandos prontos em 14 categorias, criados na primeira vez que o terminal roda, mais os seus. No shell local os seis snippets de Pacotes ficam ocultos, então aparecem 92.

Você pode

  • Filtre por chip de categoria (Sistema, Docker, Git, Nginx, Node/PM2, Banco de dados, Segurança, Deploy/CI-CD, Monitoramento, Rede, Pacotes (somente em abas SSH), Arquivos, Texto, Usuários, Personalizado) e por pasta.
  • Toque em um snippet para colocar o comando dele na barra de entrada. Ele só roda quando você o envia.
  • Crie um com Novo snippet: nome, comando, categoria, descrição e pasta. Gerar com IA transforma uma frase como “encontrar arquivos maiores que 100MB” em um snippet. Precisa de um provedor de IA conectado e pede consentimento na primeira vez.
  • Mova um snippet para uma pasta, crie ou apague pastas e apague snippets.
  • Use marcadores: ${DATE} (yyyy-MM-dd), ${DATETIME} (yyyy-MM-dd_HH:mm:ss) e ${TIMESTAMP} (milissegundos) são preenchidos quando você toca no snippet. ${HOST}, ${USER} e ${PORT} são preenchidos em uma aba aberta a partir de um host salvo. Qualquer outra coisa fica como foi escrita, exceto as variáveis de ambiente do grupo ou do perfil de um host salvo.
  • Salvar até 10 snippets seus no plano Grátis: os 98 embutidos não contam para o limite.

Você não pode, e por quê

  • Ter mais de 10 snippets seus no plano Grátis. Os 98 embutidos não contam, então o botão + (que tem a marca PRO) só abre Terminal Pro quando você já tem 10 seus. Uma importação que traz snippets para no mesmo limite.Pro
  • Ver os snippets de Pacotes no shell local: não há gerenciador de pacotes para executá-los.Google Play
  • Preencher ${HOST}, ${USER} ou ${PORT} em uma aba local: sem host, eles ficam como foram digitados.De propósito

Histórico de comandos

Ferramenta do painel Histórico de comandos; menu → Sessão.

Os comandos que você enviou pela barra de entrada desta aba.

Você pode

  • Busque com Buscar comandos….
  • Marque um comando com estrela para mantê-lo em Favoritos.
  • Execute um comando de novo, ou apague-o.
  • Toque em Limpar. A caixa de diálogo diz “Isso removerá todos os comandos do histórico desta aba. Os favoritos serão mantidos.”

Você não pode, e por quê

  • Manter o histórico depois que a aba fecha ou compartilhá-lo entre abas: ele guarda os últimos 100 comandos por aba e fica na memória.De propósito
  • Ver o que você digitou direto no shell: só os comandos enviados pela barra de entrada são registrados.De propósito

Automação (Pro)

Scripts rápidos, Macros de teclado e Regras Expect são Pro: a trava está em salvá-los, e em executar um Script rápido. No Grátis as janelas abrem, mostram uma marca PRO, e Terminal Pro aparece quando você tenta salvar. O paywall os lista como Automação avançada (regras Expect, Watchdog, macros).

Scripts rápidos

Ferramenta do painel Scripts rápidos; menu → Automação.

Scripts de várias linhas que você envia à sessão com um toque.

Você pode

  • Crie um script com Novo script (nome, descrição e o texto do script), busque, edite e apague.
  • Toque em Executar: cada linha é enviada à sessão com 150 ms entre elas. Linhas em branco e linhas que começam com # são ignoradas.

Você não pode, e por quê

  • Salvar ou executar um script sem Pro.Pro
  • Parar um script no meio, ou organizar scripts por categoria: não há botão de parar e o formulário não pede categoria.Ainda não

Macros de teclado

Ferramenta do painel Macros de teclado; menu → Automação.

Uma sequência de teclas com nome, enviada à sessão como bytes brutos.

Você pode

  • Adicionar macro: um nome, a Sequência de teclas e uma descrição opcional.
  • Toque em uma macro para enviá-la, ou apague-a.
  • Use estes escapes na sequência, e só estes: \n (Enter), \t (Tab), \x1b (ESC), \x03 (Ctrl+C), \x04 (Ctrl+D) e \x1a (Ctrl+Z).

Você não pode, e por quê

  • Criar uma macro sem Pro.Pro
  • Pôr botões de macro na barra de entrada: as macros só rodam a partir desta janela.Ainda não

Regras Expect

Ferramenta do painel Regras Expect; menu → Automação.

Quando um padrão aparece na saída, o PocketCode digita uma resposta por você. As regras são verificadas linha a linha na saída de toda sessão aberta, e só a primeira regra que combina com uma linha responde.

Você pode

  • Adicionar regra: um Padrão a detectar, Usar regex (desligado significa que a linha contém o texto, ignorando maiúsculas e minúsculas; ligado significa que a expressão regular é encontrada em qualquer ponto da linha), uma Resposta automática e uma descrição.
  • Ligue ou desligue uma regra, ou apague-a.

Você não pode, e por quê

  • Criar uma regra sem Pro.Pro
  • Acrescentar uma quebra de linha à resposta: o PocketCode já pressiona Enter depois dela (a janela diz “A resposta será enviada automaticamente + Enter”), então um \n a enviaria duas vezes.De propósito

Perfis

Os perfis são a parte menos acabada do terminal. Estão listados aqui porque a janela está no painel e no menu.

Ferramenta do painel Perfis; menu → Segurança.

Uma lista de Perfis de terminal. Cinco vêm com o app: Default, Bash, Dev (Node), Docker e Python Env.

Você pode

  • Crie, edite, duplique e apague perfis, e marque um como padrão.
  • Preencha nome, tipo de shell, caminho do shell, diretório de trabalho, tema, tamanho da fonte, comandos de inicialização, variáveis de ambiente, scrollback, sinal sonoro, ícone e cor.
  • Toque em Iniciar para abrir uma aba e enviar os comandos de inicialização do perfil.

Você não pode, e por quê

  • Manter um perfil: os perfis não são gravados no armazenamento, então não conte com eles depois que o app reiniciar.Ainda não
  • Ter o tipo de shell, o tema, a fonte, o ambiente ou o diretório de trabalho aplicados: Iniciar faz pouco mais do que abrir uma aba e enviar os comandos de inicialização.Ainda não
  • Criar um perfil para um host SSH: o formulário não tem seletor de host.Ainda não
  • Executar os comandos dos perfis de fábrica: Docker e Python não estão no shell local.Google Play

Gravação e registros

Duas formas de guardar o que uma sessão imprimiu. Ambas são Grátis.

Gravação

Ferramenta do painel Gravação; menu → Sessão → Iniciar gravação.

“Guarda a sessão como um ficheiro .cast do asciinema que podes reproduzir depois.” O arquivo é asciicast v2, chamado session_<name>_<date>.cast, e não é criptografado.

Você pode

  • Iniciar gravação e Parar gravação na aba em foco. O chip REC aparece enquanto ela roda.
  • Veja seus arquivos em Gravações guardadas.
  • Encontre a gravação também em Registros de sessão: ela é salva no mesmo armazenamento, então dá para marcá-la e compartilhá-la ali, e ela conta para o limite de 100.

Você não pode, e por quê

  • Reproduzir uma gravação dentro do app: ela só é listada. Reproduza-a com o asciinema em outro lugar.Ainda não

Registros de sessão

Ferramenta do painel Registros de sessão; menu → Configurações.

Um registro em texto simples de tudo o que uma sessão imprimiu, guardado criptografado no dispositivo (AES-256-GCM, com uma chave mantida no Android Keystore). O texto simples só existe enquanto o registro está ativo; ao parar, o arquivo é selado.

Você pode

  • Iniciar registro e Parar registro. O chip LOG aparece enquanto ele roda.
  • Use Marcar em um registro (uma estrela), adicione um Comentário (“O que aconteceu, por que importa”) e mostre Somente marcados.
  • Compartilhar um registro: ele é descriptografado em uma cópia temporária e entregue à janela de compartilhamento do sistema.

Você não pode, e por quê

  • Guardar mais de 100 registros: os mais antigos são descartados, exceto os que você marcou.De propósito
  • Buscar registros por texto ou data: você só vê a data de cada registro e o filtro de marcados.Ainda não

Compartilhe seu servidor de desenvolvimento

Um link público para o servidor de desenvolvimento que roda no seu celular.

Ferramenta do painel Partilha o teu servidor; menu → Sessão.

Com um servidor de desenvolvimento rodando no celular (iniciado a partir de um projeto), a janela diz “Dá um endereço público ao servidor que corre neste telemóvel, na porta N”. O link sai por um encaminhamento remoto SSH para o localhost.run: sem conta e sem software extra.

Você pode

  • Toque em Criar ligação e depois em Copiar ligação. Se falhar, Tentar de novo.
  • Toque em Parar de partilhar quando quiser. O link também fecha sozinho quando o servidor de desenvolvimento para.

Você não pode, e por quê

  • Compartilhar sem um servidor: a janela diz “Não há nenhum servidor a correr. Abre um projeto primeiro.”De propósito
  • Manter o mesmo endereço ou usar seu próprio domínio: o link é temporário (“muda de cada vez e termina ao parar de partilhar”) e qualquer pessoa com ele alcança o servidor enquanto o compartilhamento estiver ligado.Terceiros
  • Compartilhar offline.Precisa de rede

Explicar com IA

Ajuda em linguagem simples quando um comando falha.

O botão de brilho (Explicar com IA) na barra de entrada. Ele só aparece quando a saída mais recente parece uma falha.

O PocketCode envia as últimas 40 linhas da aba (8 KB no máximo) ao seu provedor de IA conectado, com os segredos mascarados antes, e mostra a resposta em Explicação da IA: o que falhou, por quê e o que executar em seguida. Ele espera até 60 segundos. Você usa o seu próprio provedor, então isso não custa nada ao PocketCode.

Você pode

  • Leia a explicação e toque em Copiar a explicação.
  • Leia a linha sob o título: “As últimas 40 linhas são enviadas ao seu provedor de IA, com os segredos ocultados.”

Você não pode, e por quê

  • Usá-lo sem um provedor de IA conectado em Configurações: a janela diz “Nenhuma explicação chegou. Verifique se há um provedor de IA conectado em Configurações e tente de novo.”Precisa de rede
  • Executar por um botão o comando que a IA sugere: a janela só o mostra e o copia. O texto não é salvo.De propósito

Aparência

Cores e fontes não são definidas no próprio Terminal.

  • Em Configurações, em Aparência, abra Aparência do terminal: tema, fonte, tamanho do texto, papel de parede e opacidade do fundo.
  • Há 11 temas de terminal mais Igual ao app, que acompanha o app (12 cartões no seletor). Cinco são grátis (Igual ao app, PocketCode Dark, PocketCode Light, Dark e Light) e sete são Pro (Dracula, Solarized Dark, Monokai, One Dark, Catppuccin Mocha, Gruvbox Dark e Nord). Os temas de terminal instalados pelo Marketplace também são Pro.
  • Fazer pinça na saída também muda o tamanho do texto (8 a 24).

SSH, SFTP e ferramentas remotas

A tela SSH, o SFTP e tudo o que é remoto têm sua própria página. Eles compartilham a barra de abas, o painel e o menu que você acabou de ler, com mais 12 ferramentas (32 no total).

  • Onde fica: hosts e grupos, Conexão rápida, chaves de host e login interativo por teclado, chaves SSH (inclusive chaves vinculadas ao dispositivo), SFTP, encaminhamento de portas, Watchdog, Webhooks, o gerenciador de pacotes, provedores de nuvem, serial e área de trabalho remota.
  • Também neste painel: Sincronização e equipes e Importar / Exportar aparecem na lista de ferramentas locais também. Estão descritos na página de SSH. Em Sincronização e equipes, hospedar, procurar ou entrar em uma sala de equipe faz o Android pedir a permissão de rede local (dispositivos próximos) a partir do Android 13, e a explicação dessa permissão e os erros de conexão aparecem no idioma do app.
  • Pro nas abas remotas: um segundo host salvo, um segundo encaminhamento de portas, Broadcast, Watchdog e Webhooks. Os limites deles estão na página de SSH.

Grátis e Pro

O que o terminal local restringe. Todo o resto é Grátis.

RecursoGrátisPro
Sessões ativas ao mesmo tempo, por tela (Terminal e SSH têm cada uma a sua vaga)1Sem limite
Tela divididaNão incluídaIncluída
Criar Macros de teclado, Scripts rápidos e Regras Expect (e executar Scripts rápidos)Não incluídoIncluído
Seus próprios snippetsAté 10; os 98 embutidos não contam. Passando de 10, adicionar ou importar um abre Terminal ProSem limite
Temas de terminal4 embutidos mais Igual ao appTodos os 11 mais Igual ao app, mais temas do Marketplace
Fontes do terminalSomente DefaultDefault e mais 7
Shell local, ferramentas Linux, Painel Git, histórico, aliases, ambiente, gravação, registros de sessão, Partilha o teu servidor, Explicar com IA, PerfisIncluídoIncluído
Toda ação Pro no Terminal mostra o mesmo aviso, Terminal Pro, com Desbloquear Terminal Pro e Continuar com plano básico. Nas abas SSH, um segundo host salvo ou encaminhamento de portas, Broadcast, Watchdog e Webhooks também são Pro e estão na página de SSH. Os recursos de IA no terminal usam o seu próprio provedor e não têm trava. Veja Planos e preços

Privacidade e segurança

  • O shell local roda com as permissões do próprio PocketCode e não é uma sandbox. Um aviso (Sobre este terminal) diz isso na primeira vez que você o usa.
  • Seus projetos estão em ~. As janelas das ferramentas ficam dentro dessa pasta e nunca abrem as pastas que guardam credenciais do app.
  • Os registros de sessão são criptografados no dispositivo com AES-256-GCM e uma chave do Keystore. As gravações são arquivos .cast em texto simples. Compartilhar um registro o descriptografa em uma cópia temporária.
  • O histórico de comandos fica na memória, os últimos 100 comandos por aba, e não é gravado em disco.
  • Um comando enviado pela barra de entrada que lê um repositório de credenciais e também envia dados para fora gera um aviso antes de ser executado.
  • Um programa não consegue escrever na sua área de transferência sem uma confirmação (OSC 52).
  • DATABASE_URL e as variáveis PG* do motor PostgreSQL local são definidas apenas no shell local, e somente enquanto o motor roda. Nunca são enviadas às sessões SSH.
  • O que sai do dispositivo de propósito: Explicar com IA envia as últimas 40 linhas, com os segredos mascarados e depois de um consentimento único, ao provedor de IA que você conectou. Gerar com IA nos snippets envia a sua frase ao mesmo provedor. Partilha o teu servidor passa pelo localhost.run enquanto o compartilhamento está ligado.

Limitações

Os principais limites do terminal local, cada um com seu motivo. O detalhe está nas seções acima.

  • Programas que redesenham a tela (vi, top, less) não aparecem como tela cheia.De propósito
  • Sem gerenciador de pacotes, git, python, docker, curl, ssh ou zip no shell.Google Play
  • Sem root e sem distribuição Linux: o shell tem o usuário do próprio app.Dispositivo
  • O PocketCode roda em dispositivos de 64 bits (arm64-v8a e x86_64) com Android 9 ou superior. Não há build de 32 bits.Dispositivo
  • Uma sessão por vez no Grátis, e sem tela dividida, macros, scripts nem regras expect.Pro
  • Não há fileira de teclas extras (ESC, TAB, Ctrl, F1 a F12), e os caminhos de arquivo na saída não abrem.Ainda não
  • Os perfis não são salvos e a maioria dos campos deles não é aplicada; as gravações não podem ser reproduzidas no app.Ainda não
  • As listas de ambiente, aliases e tarefas são lidas por um shell separado, não pela sua sessão aberta.De propósito
  • Em um tablet largo com o painel acoplado, o menu de ferramentas (e o seu interruptor de Botões de volume) não aparece.Dispositivo
  • Um link de Partilha o teu servidor é temporário e precisa de conexão.Terceiros

Solução de problemas

Shell básico

O cartão Shell local diz Shell básico quando ainda não encontra o ash do BusyBox. O BusyBox é vinculado na primeira vez que você abre um shell, e de novo depois de uma atualização do app, então abra o shell local uma vez e volte: ele deve passar a dizer Ferramentas Busybox prontas. Até lá você tem o sh do próprio Android, que não tem applets como awk e tar.

Terminal Pro

Você pediu algo que o Grátis não inclui: uma segunda sessão na mesma tela, tela dividida, salvar uma Macro de teclado, um Script rápido ou uma Regra Expect, adicionar um 11º snippet seu ou, no SSH, um segundo host salvo ou encaminhamento de portas. Continuar com plano básico fecha o aviso; Desbloquear Terminal Pro abre o paywall.

O + em Snippets abre o Terminal Pro

Você já tem 10 snippets seus, o limite do Grátis; os 98 embutidos não contam. Exclua um para abrir espaço, ou desbloqueie o Terminal Pro. Você ainda pode tocar em qualquer snippet embutido para usá-lo.

Não há repositório Git aqui

O Painel Git procura uma pasta .git a partir da pasta atual do Gerenciador de arquivos, subindo, ou a partir da sua pasta de projetos. Abra o Gerenciador de arquivos na pasta do seu projeto, ou toque em Inicializar repositório.

Nenhuma explicação chegou. Verifique se há um provedor de IA conectado em Configurações e tente de novo.

Explicar com IA precisa de um provedor com chave ou login. Conecte um nas configurações de IA e tente de novo. Ele também desiste depois de 60 segundos.

Não foi possível gerar um snippet — tente reformular

Gerar com IA espera um pedido em uma frase e responde com um nome, um comando de uma linha e uma descrição. Diga o que você quer fazer, não o comando que você imagina.

Não há nenhum servidor a correr. Abre um projeto primeiro.

Partilha o teu servidor compartilha o servidor de desenvolvimento que o seu projeto iniciou. Inicie o servidor a partir do projeto primeiro; a janela então mostra a porta dele.

O comando lê credenciais e envia dados para fora

O comando que você está prestes a executar toca um repositório de credenciais e também envia dados para a rede. Se você o copiou de algum lugar, leia-o antes de tocar em Executar mesmo assim.

Copiar para a área de transferência?

Um programa da sessão pediu para colocar texto na sua área de transferência. Toque em Copiar só se foi você que pediu.

Abre uma shell ou liga-te a um host para gravar

Gravação grava a aba em foco. Abra primeiro um shell local e depois inicie a gravação.

Não foi possível anexar o arquivo / Não foi possível preparar o registro para compartilhamento

O arquivo não pôde ser copiado para a sessão, ou um registro não pôde ser descriptografado para compartilhar. Tente de novo; se continuar falhando, escolha outro arquivo ou pare e reinicie o registro.

Não há botão Explicar com IA

O botão só aparece quando a saída mais recente parece uma falha. Execute de novo o comando que falhou, ou leia a explicação a partir da última saída com falha.

Meu alias ou variável sumiu em um shell novo

Aliases e variáveis que você cria pelas janelas existem só naquela sessão; o PocketCode restaura o .ashrc a cada início. Ponha um comando repetido em um Script rápido (Pro) ou em um snippet.