Meu terminal
- Use o iTerm2 como meu terminal
- zsh como o escudo
- oh-my-zsh para gerenciar configurações zsh
- Mais informações – meu terminal personalizado
fundo
- No dia de hoje, desenvolvimentos e implantações, temos que fazer ssh em diferentes máquinas / servidores
Por exemplo, podemos ter que ssh em
- Servidores de produção
- Servidores de teste
- Caixas amazônicas
- Servidores de teste locais etc.
O comportamento usual é abrir uma nova aba do terminal e iniciar a sessão ssh
Às vezes podemos ter várias sessões ssh em diferentes guias de terminal simultaneamente
Nessas situações, é um pouco confuso identificar onde estou (em qual host estou atualmente)
Para resolver este problema confuso, podemos usar diferentes temas de terminal (cores de terminal) para diferentes sessões de ssh
Perfis do iTerm com oh-my-zsh
- No meu cenário, estou usando diferentes perfis do iTerm com diferentes temas (cores)
- Estou carregando esses perfis de terminal quando ssh em ambientes diferentes
- É (seleção de perfil de terminal) feito usando o comando personalizado oh-my-zsh (script de shell)
No meu cenário, estou usando três perfis diferentes de iTerm (com cores diferentes) para a sessão de ssh
- Sessão SSH de produção – cor vermelho escuro
- Sessão de teste SSH – cor roxa escura
- Outra sessão ssh – cor azul escuro
Você pode usar diferentes temas do iTerm para obter diferentes cores de terminal – temas do iTerm
A seguir estão as etapas que precisam ser seguidas a fim de alterar a cor do terminal ao fazer SSH
1. Crie perfis de terminal do iTerm
- Vá para as preferências do iTerm e crie perfis de acordo com seus ambientes SSH
- No meu cenário, tenho 4 perfis de iTerm
Default
perfil usa no terminal local e outros três perfis (Production
,Staging
eOther
) usam em diferentes sessões ssh
2. Crie um script de shell personalizado
- Vá para e crie um arquivo
~/.oh-my-zsh/custom
iTrem2-ssh.zsh
- Coloque o seguinte conteúdo em um arquivo
iTrem2-ssh.zsh
function tabc() {
NAME=$1; if [ -z "$NAME" ]; then NAME="Default"; fi
# if you have trouble with this, change
# "Default" to the name of your default theme
echo -e "\033]50;SetProfile=$NAME\a"
}
function tab-reset() {
NAME="Default"
echo -e "\033]50;SetProfile=$NAME\a"
}
function colorssh() {
if [[ -n "$ITERM_SESSION_ID" ]]; then
trap "tab-reset" INT EXIT
if [[ "$*" =~ "production*" ]]; then
tabc Production
elif [[ "$*" =~ "staging*" ]]; then
tabc Staging
else
tabc Other
fi
fi
ssh $*
}
compdef _ssh tabc=ssh
alias ssh="colorssh"
colorssh()
função de seleção de perfil de terminal diferente de acordo com o host ssh’ingSeleciona
Production
perfil quando ssh para o servidor de produção (ssh eranga@production_box
)Staging
perfil quando ssh para o servidor de teste (ssh eranga@staging_box
)Other
perfil quando ssh para qualquer outro servidor (servidor local, Amazon Box etc)
Altere de acordo com seus nomes de perfil
tabc <profile-name>
tab-reset()
função redefinir o perfil do terminal para oDefault
perfil ao sair da sessão sshalias ssh="colorssh"
cria um alias para ssh (ao executar assh
partir do terminal, ele chama acolorssh
função)Você pode obter este código no meu github
Exemplo de sessão de terminal
- Terminal padrão
- SSH em produção (
ssh eranga@production_box1
)
- SSH em estadiamento (
ssh eranga@staging_box1
)
- SSH em outro servidor ( )
ssh eranga@10.2.4.201