Uma rápida olhada nos código fonte de tratamento antecipado sugere que %m
é baseado no que seu sistema retorna para a chamada de sistema gethostname
. É como executar hostname
sem a opção -f
.
Eu estou supondo que correr hostname
sem -f
retorne seu hostname no sistema Debian?
Você pode tentar alterar seu nome de host para incluir o nome de domínio. Os documentos HowTo / ChangeHostname do Debian devem ajudar com isso. Mas talvez algumas ferramentas do Debian assumam que seu nome de host não inclui o nome de domínio, então isso pode ser uma má idéia.
Pode fazer mais sentido usar apenas a substituição de comandos.
Primeiro defina a opção PROMPT_SUBST
setopt PROMPT_SUBST
então você pode executar qualquer comando e colocar sua saída no prompt assim:
PS1='$(hostname -f)$ '
para obter apenas as primeiras partes do nome do host, você pode usar cut
, por exemplo
PS1='$(hostname -f | cut -f 1-2 -d .)$ '
Como seu nome de host não deve mudar, você também pode ser um pouco mais eficiente executando o comando apenas uma vez e armazenando-o em uma variável e, em seguida, usando a variável, por exemplo
HOSTANDSUBDOMAIN="$(hostname -f | cut -f 1-2 -d .)"
PS1="$HOSTANDSUBDOMAIN$ "