Quem decidiu os prompts de shell padrão no Linux?

2

Existem alguns padrões no shell Linux padrão, bash, que eu acho que precisam de alguma história trazida. Esta questão é sobre o prompt.

O prompt padrão no bash em muitas distribuições do Linux é [\u@\h \W]\$

Para quem não consegue analisar isso, parece que é para um usuário típico:

[staticsan@walcen files]$ _

O maior problema é que ele informa apenas o nome do diretório atual. "arquivos" poderiam facilmente ser /var/www/files/ como /home/staticsan/files (e esse é um exemplo simples). Um caminho completo faz mais sentido, então eu tenho que mudá-lo toda vez que eu configurar uma nova caixa ou criar um novo usuário.

Então, por que o padrão é definido como é?

    
por staticsan 04.09.2009 / 08:23

5 respostas

5

A resposta é simples - é uma relíquia de tempos em que os terminais tinham 80 caracteres de largura. Veja o seu próprio exemplo - nome de usuário & host ocupa já 16 caracteres. Com colchetes e espaços adicionais, já há 20 caracteres e ainda não contamos o nome do diretório.

E os diretórios podem ter nomes muito longos também. Seu caminho de exemplo conta com 21 caracteres e tem apenas três diretórios. Nesse caso, no terminal 80-char, o prompt ocupará metade da largura da tela.

Naturalmente, hoje os terminais são mais largos e é por isso que muitos usuários & distros mudam para solicitações mais longas. Mas ainda há alguns que usam um prompt mais estreito para deixar o usuário mais espaço para digitar.

    
por 04.09.2009 / 11:21
7

Uma possível resposta seria que

[my_name@my_machine /var/www/html/my_site/my_subdir/another_subdir/yet_another_subdir/and_more_subdirs_yet/see_here/another_subdir/etc $] _

seria muito inconveniente para você trabalhar com

    
por 04.09.2009 / 11:53
0

Não responderei à parte "por que" da pergunta.

Mas darei a você uma dica de como alterar o comportamento padrão de todas as suas futuras contas de usuário:

Você pode alterar os arquivos padrão (e o layout dos arquivos também) usados ao criar usuários alterando arquivos em / etc / skel /

Portanto, altere a variável PS1 no /etc/skel/.bashrc e será o padrão para novos usuários.

    
por 04.09.2009 / 08:31
0

Eu gosto

PS1="\ h \ d \ t \ w \ n \ u >"

que resulta em:

myserver seg 07 de setembro 07:43:11 / u08
root >

Assim, você obtém o nome do host, a data e a hora, o caminho completo e o nome de usuário em uma nova linha, com o prompt. Isso é minimizar o envolvimento da linha em diretórios. Estou dentro e fora das caixas o dia todo, então tudo que posso fazer para manter as coisas corretas é bom. Eu também tenho putty definido para registrar tudo. Eu posso voltar e ver os logs e ver exatamente o que estava fazendo quando. Também é útil para descobrir sequências de eventos em várias janelas de terminal de uma só vez.

    
por 07.09.2009 / 03:43
0

Entrei no meu /etc/skel e editei o prompt padrão para o seguinte:

\[3[33m\][\u@\[3[1;31m\]\h]\]3[0m {\W}\n3[1;34m\]\w\]3[0m >

parece com isso:

[user@hosts] {currentdir}
/path/to/current/dir >

mais cor - porque gosto de cores:)

Mas sim - o "porquê" está relacionado a pequenos terminais, e agora falta de vontade de mudar do status quo.

atualizar sem cor

[\u@\h] {\W}\n\w >
    
por 07.09.2009 / 03:27