sabia que pode executar uma linha de comandos Linux no seu dispositivo iOS? Você pode estar perguntando, ” Por que eu iria querer usar aplicativos baseados em texto no meu pequeno iPhone?”Está bem, é justo. É uma pergunta bastante razoável. Mas se estás a ler Opensource.com, você provavelmente sabe a resposta: os usuários Linux querem ser capazes de usar qualquer dispositivo, e eles também querem usar suas próprias personalizações.
e acima de tudo, eles querem um desafio.eu tenho um iPad 2 Mini de sete anos que ainda funciona bem para ler e-books e outras tarefas. Mas eu também quero usá-lo para acessar a linha de comando para aplicações e minha Suíte de programas e scripts que eu não posso fazer sem. Quero o ambiente a que estou acostumado, bem como o meu ambiente de desenvolvimento padrão. Foi assim que fiz.
conecte-se a um teclado
Usando a linha de comandos para programação no teclado de um telefone ou tablet não é muito divertido. Eu recomendo a conexão de um teclado externo, seja através de Bluetooth ou usando um adaptador de conexão de câmera kit para conectar um teclado com fio (minha preferência). Ligar a minha vantagem de Kinesis dividiu o teclado no meu iPhone 6 faz com que algumas ópticas estranhas, como o cyberdeck de uma corp do clássico jogo de RPG Shadowrun.
obter uma linha de comandos no iOS
tem duas opções para executar um sistema Linux completo no iOS:
- Secure shell (SSH) em um computador com Linux
- Executar um sistema virtualizado usando Alpine Linux com a iSH, que é open source, mas tem de ser instalado através de propriedade da Apple TestFlight app
como Alternativa, há dois open source emulador de terminal aplicativos que fornecem ferramentas de código aberto dentro de um ambiente restrito. Esta é a opção mais limitada – ele realmente não permite que você execute Linux, mas você está executando ferramentas Linux. Existem restrições pesadas sobre o que você pode fazer no dispositivo com estes aplicativos, mas eles dão-lhe alguma funcionalidade de linha de comando.vou olhar para a abordagem mais simples antes de explorar soluções mais desafiadoras.
Opção 1: uma linha de comandos Sandbox
uma das formas mais fáceis de começar é com a aplicação iOS LibTerm. Esta é uma linha de comandos de código aberto com caixa de areia com 80+ comandos agrupados numa aplicação de $ 0. Ele navega com Python 2.7, Python 3.7, Lua, C, Clang, e muito mais.
ao longo de linhas similares é um Shell, descrito como uma “interface de usuário baseada em texto para uma plataforma baseada em tela.”a-Shell é open source, em desenvolvimento ativo, concede acesso ao sistema de arquivos, e navios com Lua, Python, Tex, Vim, JavaScript, C E C++, juntamente com Clang e Clang++. Ele mesmo permite que você instale pacotes Python com pip.
Opção 2: SSH em qualquer lugar
um passo acima da transferência de um aplicativo está configurando um cliente SSH. Por um longo tempo, tem sido possível usar um dos muitos aplicativos de cliente SSH no iOS para se conectar a um servidor executando uma distribuição Linux ou BSD. A vantagem de usar o SSH é que seu servidor pode estar executando qualquer distribuição com qualquer software que você gosta. Trabalhas remotamente, e a tua saída é canalizada para o emulador de terminal do teu dispositivo iOS.
Blink shell é uma popular aplicação de código aberto paga. Fora da pequena tela, usar este software é semelhante a conectar-se a um servidor através de qualquer outra linha de comando. O terminal de Blink parece bonito, com uma série de temas incluídos e a capacidade de criar seus próprios temas, incluindo personalizar e adicionar novas fontes.
Opção 3: Executar o Linux
Usando o SSH para se conectar a um servidor executando o Linux é uma ótima maneira de acessar uma linha de comandos, mas ele requer acesso a um servidor externo e uma conexão. Esta não é a pior barreira para a entrada, mas não é completamente insignificante, e você pode querer usar o Linux sem este requisito do servidor.se for esse o seu caso, terá de descobrir algo um pouco mais na vanguarda. TestFlight é um serviço proprietário para a implantação de aplicativos em desenvolvimento antes de serem submetidos à Apple App Store. Você pode baixar o aplicativo TestFlight da loja, e então se inscrever para uma série de aplicações de teste. Apps in TestFlight allow a limited number of external beta testers (generally up to 10,000) for a limited amount of time. Para baixar um aplicativo de teste, você deve acessar um link diretamente do seu dispositivo, que é geralmente encontrado no site do desenvolvedor do aplicativo de teste.
execute Alpine Linux com iSH
iSH é um aplicativo de teste de código aberto que executa uma máquina virtual com a distribuição Alpine Linux fora da caixa (mas você pode executar outras distribuições com um pouco mais de ajustes).
uma importante advertência: isto é experimental. Uma vez que a iSH é atualmente um aplicativo de teste, não espere um serviço permanente ou robusto. As aplicações TestFlight são limitadas no tempo. A minha construção actual dura 60 dias. Isto significa que daqui a 60 dias, estarei trancado e terei de voltar à próxima fase de testes da iSH. Além disso, vou perder meus arquivos a menos que eu exportá-los com arquivos em iOS ou apoiá-los para um host Git ou com SSH. Para ser claro: não conte com isso para continuar trabalhando! Não ponhas aqui nada que seja essencial! Faz o teu trabalho noutro lugar!
instale iSH
comece a instalar o TestFlight através da loja de aplicativos. Em seguida, instalar iSH, obtendo o link de instalação através de seu site. Há outro método de instalação que usa a AltStore, mas eu não tentei. Ou, se você tiver uma conta de desenvolvimento paga, você pode baixar o repo da iSH do GitHub e implantá-lo você mesmo.
Usando a ligação, TestFlight instala uma aplicação iSH no seu dispositivo. Como qualquer outro aplicativo, ele aparece em sua tela com um ícone.
gerencia pacotes
iSH executa um emulador x86 com Alpine Linux. Alpine é uma pequena distribuição de menos de 5MB. Esta foi a minha primeira vez em Alpine, e pensei que ficaria frustrado com uma distribuição tão mínima, mas realmente gostei.
ish-install.png
(Lee Tusman, CC-BY-SA 4.0)
Alpine usa o apk do gerenciador de pacotes, que é mais simples do que o apt ou pacman.
Para instalar um pacote:
apk add package
Para remover um pacote:
apk del package
Encontrar outros comandos e informações com:
apk --help
Atualizar o gerenciador de pacotes:
apk updateapk upgrade
Obter um editor de texto
Alpine editor de texto padrão é o Vi, mas eu prefiro o Vim, então eu instalei-o:
apk add vim
Você pode instalar o Nano ou o Emacs, se você preferir.não sei quanto a ti, mas preciso da concha do peixe. Outras pessoas preferem Bash ou Zsh. Mas a Alpine usa cinzas! Ash é um garfo do Dash shell, ele próprio um garfo do ash original ou Almquist shell. É projetado para a velocidade. Eu decidi trocar a velocidade em favor da auto-completação embutida, cor, controle Vim-chave, e realce de sintaxe que eu conheço e amo na concha de peixe.
Instalar o peixe:
apk add fish
Se você deseja Bash e suas conclusões e páginas de manual em vez disso, você precisará instalá-las e algumas coisas extras:
apk add bash bash-doc bash-completion
Alpine minimalista ideologia geralmente significa que alguns programas, o que seria um único pacote em outras distros são divididos em vários pacotes menores. Isso também significa que você pode personalizar e emagrecer o seu sistema exatamente como você quer.
pode encontrar mais detalhes sobre a instalação da Bash neste tutorial.
mude a linha de comandos por omissão
após a instalação do fish, poderá mudar temporariamente para ela e experimentá-la escrevendo fish
e caindo na linha de comandos. Mas eu quero fazer do fish a minha concha padrão, e o comando chsh
que estou habituado a partir de outras distros não funciona.em primeiro lugar, descubra onde está instalado o peixe:
which fish
my output:
/usr/bin/fish
em seguida, edite a consola de login para usar o fish. Pode usar qualquer editor com quem se sinta confortável. Se você é um iniciante, instale Nano (com apk add nano
) para que possa editar os ficheiros de configuração e gravá-los com CTRL+X, confirmar e sair.
Mas eu usei o Vim:
vim /etc/passwd
Minha primeira linha
root:x:0:0:root:/root:/bin/ash
Para fazer o peixe padrão, altere a linha para:
root:x:0:0:root:/root:/usr/bin/fish
em Seguida, salvar e fechar.
tenho certeza de que há uma boa maneira de re-source a shell para que você possa começar a usá-la imediatamente. Mas eu não tenho certeza, então eu recomendo retornar para o navegador de aplicativos, forçar a saída da shell, e para uma boa medida, desligar e reiniciar o seu iPad ou iPhone. Reabra a iSH, e agora, além do “Bem-vindo à Alpine!”mensagem e informações sobre o início com o apk, você verá a mensagem de boas-vindas padrão do login fish: Bem-vindo ao fish, a shell interativa amigável. Viva!
ish.png
(Lee Tusman, CC BY-SA 4.0)
configure Python e pip
I decidiu adicionar Python (versão 3.x), não só para que eu pudesse escrever código, mas porque eu confio em vários programas Python. Instale-o:
apk add python3
embora Python 2.x é preterido, você ainda pode instalá-lo:
apk add python
Instale o Python, o gerenciador de pacotes, pip, e setuptools:
python3 -m ensurepip --default-pip
É preciso algum tempo para instalar e configurar o gerenciador de pacotes, então é só esperar.
então, você pode obter curl, a ferramenta de transferência de rede:
apk add curl
leia o manual
Fish usa completação automática incorporada com base em páginas de manual. Como outros usuários da linha de comando, eu conto com o man
manual, e Alpine não vem com ele instalado. Então, eu instalei junto com o pager menos:
apk add man man-pages less less-doc
In addition to man, I use the fabulous tldr pages project, which provides simplified, community-driven man pages.instalei-o com pip:
pip install tldr
The tldr
command connects to the web to fetch pages whenever it encounters a request for a new one. Se você precisar aprender a usar um comando, você pode simplesmente digitar algo como tldr curl
para obter uma explicação simples em inglês e bons exemplos de como usar o comando.
Você poderia, é claro, automatizar todo este trabalho de instalação com dotfiles ou um script de instalação, mas isso realmente não cairia na maneira Alpina de personalizar uma instalação mínima exatamente de acordo com suas especificações. Além disso, não demorou muito, pois não?
Saiba mais
o wiki iSH contém uma página” o que funciona” com relatórios sobre quais pacotes funcionam atualmente. De notar, npm não parece funcionar neste momento.
outra página wiki explica como você pode acessar os arquivos iSH a partir da aplicação de arquivos iOS. Esta é uma maneira que você pode mover e transferir arquivos.