Temos ambientes separados em meu local de trabalho para desenvolvimento, teste, integração e preparação.
Nesses envs, sobrecarregamos os nomes de host no DNS - por exemplo, no ambiente de desenvolvimento, a máquina da web principal é chamada web1.dev.example.com
e, no ambiente de teste, a máquina da web principal web1.test.example.com
.
Para distinguir entre máquinas nos diferentes ambientes, desejo personalizar os prompts do bash para exibir o FQDN em vez de apenas o nome do host. Bem e bom; Eu deveria ser capaz de substituir \h
com \H
em $PS1
, certo? Hmm. Eles mostram exatamente a mesma coisa.
me@web1:~$ hostname
web1
me@web1:~$ hostname -f
web1.dev.example.com
me@web1:~$ export PS1="\[\u@\h: \w\]\$ "
me@web1: ~$ export PS1="\[\u@\H: \w\]\$ "
me@web1: ~$
Em /etc/hostname
, eu tenho apenas o hostname ( web1
). hostname
e hostname -f
ambos retornam os resultados corretos ("web1" e "web1.test.example.com", respectivamente), e eu tenho as entradas corretas em /etc/hosts
.
O que da?
Estes são os hosts do Ubuntu 10.04, se isso faz diferença.
Existe uma quantidade insana de loucura sobre nomes de host, curtos e longos, e fazer o certo o tempo todo é difícil - então eu desisto e faço tudo usar o FQDN como o nome do host ...
Faço o mesmo que você em meus ambientes, mas corro os FQDNs no prompt porque sei em que site estou e economiza espaço. Também codifico meu prompt de cores com base no ambiente, para que eu receba um aviso melhor de quando estou fazendo algo em algum lugar "importante". Também separo o caminho do espaço de todo o resto, para facilitar a cópia de pastas de pasta. Um trecho do meu estoque
/etc/profile
:E, no que diz respeito à "feiúra", quem se importa com a aparência do código para exibir o prompt? De qualquer maneira, é um código somente de gravação.
fonte
Esse é um erro de como o Ubuntu gerencia o / etc / hostname.
Erro arquivado: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1276796
fonte