
Eu uso zsh
várias personalizações em minha máquina local. Recentemente comecei a usarhomemaker
para gerenciar todos os meus dotfiles em um git
repositório em um servidor privado. No entanto, sempre me parece estranho que, quando ssh
entro em um servidor remoto, preciso aturar a configuração local ou perder tempo clonando um git
repositório privado e executando scripts. Também me parece pouco profissional baixar um monte de arquivos pessoais para um servidor que estou mantendo, especialmente se não sou o administrador principal.
Parece que deve haver uma maneira melhor.Existe algum tipo de sistema que me permite executar meu shell local cuidadosamente configurado, mas todas as ações reais (E/S de arquivo, execução de comandos/commadn stdio, etc.) são executadas em algum tipo de ssh
interface baseada em -?Estou imaginando algum tipo de shell supermínimo e não amigável ao ser humano (por causa desta questão, vamos chamá-lo syssh
) no servidor que apenas expõe todas as chamadas do sistema que um shell moderno poderia usar, e no cliente um modificado shell que lê configurações locais, mas envia syssh
comandos para o sistema remoto.
Dessa forma, o servidor não precisa se preocupar com meu shell preferido, tema da linha de prompt, preferências de cores, recursos de terminal, fontes (para powerline, etc.), preferências de preenchimento de guias, readline()
etc. acontecendo localmente; a única coisa que atrasaria seriam os resultados dos comandos (e o preenchimento de guias, etc.). Eu sei mosh
que resolve esse problema por meio de um monte de heurísticas e suposições sobre como um shell se comportaria, mas parece um pouco hackeado.
Do jeito que me parece, executar um shell ssh
é como usar um aplicativo da web onde cada botão é um link ou botão de envio de formulário, mosh
é o mesmo aplicativo com algum cache e um esquema de compactação diferencial, e o que estou propondo seria ser como um webapp moderno com Javascript manipulando a exibição e chamadas AJAX para obter/postar dados quando necessário.
Existe tal coisa e, se não, por quê? Existem esforços de desenvolvimento conhecidos nesse sentido?
Responder1
Parece que o que você deseja é da Microsoft, Web Services for Management
que é a base para powershell
a comunicação remota. O Powershell para Linux existe e é licenciado pelo MIT, portanto, em teoria, deveria ser possível extrair o código necessário e transformá-lo em um patch para zsh
. É claro que nem todo mundo terá o PowerShell instalado, mas nem todo mundo terá o zsh instalado.
Resumindo, o que você deseja existe, mas (ainda) não existe zsh
.