usando LS_COLORS locais no servidor remoto via ssh sem modificar o servidor remoto

5

Eu tenho acesso a um monte de diferentes contas ssh, várias centenas que eu imagino, que eu uso em diferentes ocasiões. Alguns deles são pessoais, alguns deles obtidos de clientes e compartilhados, e muitos deles são temporários. Criado para um uso, que será excluído automaticamente após algum tempo.

Agora, meu problema é que eu uso dois .dircores, um claro e um escuro. Eu gosto bastante desta configuração, mas isso significa copiar um novo .dircolors toda vez que eu ssh em um servidor, e em contas compartilhadas ocasionalmente incomodando outras pessoas. Eu tentei modificar meu script ssh para permitir que eu usasse minhas LS_COLORS locais, mas estou tendo alguns problemas.

Se eu usar: %código% Funciona, mas não é exatamente utilizável, pois ignora todas as informações padrão do sistema.

Se eu usar: %código% Não funciona, pois o bash passa por .profile e carrega um LS_COLORS diferente.

Alguma sugestão de como eu posso carregar o padrão .bash_profile / .bashrc E ter minhas próprias LS_COLORS?

    
por neuron 09.08.2012 / 21:05

3 respostas

0

ssh -t vps2 ' cp ~/.bashrc ~/.bashrc.n &>/dev/null ; echo "LS_COLORS=\"no=00:fi=00:ETC:ETC:ETC\";" >> ~/.bashrc.n ; echo "export LS_COLORS" >> ~/.bashrc.n ; echo "alias ls=\"ls --color=auto\";" >> ~/.bashrc.n ; exec bash --rcfile ~/.bashrc.n'

Isso funcionará sem a necessidade de um scp extra primeiro, o atraso de conexão extra aqui deve ser inexistente. Você não precisará de nenhum comando extra durante o login, e usará a configuração do shell existente, exceto com minhas substituições. Ele não vai quebrar o redimensionamento terminal como o esperado faz:)

Na verdade, também adicionei PS1 e um alias para grep / egrep com cores, mas para facilitar a leitura, o código de exemplo acima não adiciona isso.

    
por 25.08.2012 / 12:21
3

Crie um arquivo, diga "prefs.rc" com qualquer inicialização desejada.

$ scp prefs.rc vps2:/tmp/ && ssh vps2
# ssh banner
$ . /tmp/prefs.rc && rm /tmp/prefs.rc

Eu provavelmente adicionaria algumas verificações para verificar se o arquivo remoto é realmente meu para escrever, e não contém algum trojan. Melhor errar do lado da paranóia.

Alternativamente, inicie o prefs.rc com a sequência

. /etc/profile
. ~/.bash_profile
exec LSCOLORS=...

Use scp para transferir e, em seguida:

ssh -t vps2 'exec bash --rcfile /tmp/prefs.rc'

Em última análise, pode ser necessário copiar todo o conteúdo de .bash_profile e apenas substituir a linha LS_COLORS=... .

    
por 10.08.2012 / 00:27
0

Isso funciona (do lado do cliente, sem qualquer modificação no servidor): expect -c 'spawn ssh vps2 expect "~#" send "export LS_COLORS=\"no=00:fi=00:ETC_ETC_ETC_ETC:\"\r" interact'

É claro que está longe de ser ideal (já que "tipifica" o comando de exportação após o ssh, causando um atraso), qualquer solução mais limpa é muito bem vinda! :)

    
por 10.08.2012 / 08:59