Substitua $ no prompt do terminal por usuário @ host ao usar o SSH [duplicado]

1

Estou usando o Ubuntu Server por SSH e vejo $ em vez do nome do usuário (digamos test@desktop , por exemplo).

Como posso fazer a exibição do terminal test@desktop em vez de $ ?

    
por antonio8909 19.08.2016 / 18:12

3 respostas

2

Você precisa definir a variável PS1 no sistema do cliente e certificar-se de que a definição tenha origem quando você ssh .

É possível que ele já esteja definido em .bashrc no sistema remoto e, portanto, você só precisa originar .bashrc iniciando um shell interativo (substitua remote-sys pelo nome do sistema remoto, obviamente)

ssh remote-sys -t bash -i

Se isso não funcionar, porque .bashrc não existe no sistema remoto, ou não tem PS1 definido, e você quer usar as mesmas configurações no sistema remoto que o sistema local, então copiar sobre seu próprio .bashrc :

scp ~/.bashrc remote-sys:.bashrc

Ou você pode criar um arquivo apenas para definir o prompt da maneira que deseja no sistema remoto ... por exemplo

nano .set-prompt

digite o texto (isso define user @ host como o prompt)

export PS1="\u@\h "

ou se você quiser que pareça com o prompt do Ubuntu user@host:working-directory$

export PS1="\u@h:\w$ "

ou personalize como quiser. Salve o arquivo e saia, então scp para o sistema remoto

scp .set-prompt remote-sys:.set-prompt

Quando você ssh para a máquina, você terá que originar o arquivo explicitamente e informar ao bash para tornar o shell interativo:

ssh remote-sys -t "bash --rcfile ~/.set-prompt -i"

Se você usar sudo -i para alterar para root no sistema remoto, o prompt será alterado novamente, pois o .bashrc do root será originado.

    
por Zanna 19.08.2016 / 18:35
2

Se você estiver usando o SSH em uma sessão sh , o que eu acho que é o caso a julgar pelo que você tem atualmente, você pode adicionar variáveis e comandos ao seu PS1:

PS1='$USER@$(hostname)$ '

Se você estiver usando o SSH em uma sessão bash , terá sem fim opções , mas eu recomendo usar o padrão, se você está apenas começando por isso. Para definir o PS1 somente na sessão atual, execute isto:

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$ '

Para tornar a mudança permanente, abra o ~/.bashrc na máquina remota e adicione a linha acima a ela.

Veja Onde posso encontrar uma referência completa para a variável $ PS1? para entender o que a linha acima faz.

P.S. Eu não uso muito o SSH, então você pode ter que alterar algumas outras configurações para fazer essas coisas funcionarem.

    
por wjandrea 19.08.2016 / 18:46
2

PS1="/u@/h" lhe dará o que você está pedindo, embora eu não recomende que você faça isso, pois será difícil verificar se você está no modo padrão ou superusuário.

Para voltar ao padrão para 16.04 (e anterior?) use PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$"

Você pode tornar as alterações permanentes editando o /etc/bash.bashrc e anexando as alterações ao seu editor favorito

Fontes: esta página e testes.

    
por Elder Geek 19.08.2016 / 18:35