No terminal, modifique o texto que vem antes de $

13

No terminal, posso sempre ver em qual caminho estou:

macbook-romeo:School romeovs$ echo "example command"

o que acho bastante útil. No entanto, há muitas coisas desnecessárias aqui também: macbook-romeonão é útil, pois estou sempre no meu macbook (duh). Então, novamente, romeovsé bastante útil (este é o meu nome de usuário).

Existe uma intenção de editar o que é mostrado aqui? por exemplo

22:50 - School - Romeo$ echo "example"

onde 22:50é a hora atual? (Este é apenas um exemplo, é claro, não precisarei de tempo, gostaria que o texto fosse um pouco mais minimalista).

romaovs
fonte

Respostas:

11

Este artigo do OSX Daily tem algumas instruções detalhadas de como fazer. Em resumo, você precisa modificar seu ~/.bash_profilearquivo e modificar a variável PS1.

Abaixo está uma lista de possíveis variáveis ​​que você pode exibir:

  • \ d - data atual
  • \ t - hora atual
  • \ h - nome do host
  • # - Número do comando
  • \ u - nome de usuário
  • \ W - Diretório de trabalho atual (ou seja: Desktop /)
  • \ w - Diretório de trabalho atual, caminho completo (por exemplo: / Usuários / Admin / Área de trabalho)
BinaryMisfit
fonte
11

Você precisa modificar o arquivo .bashrc encontrado no diretório inicial .

Abra o terminal e faça o seguinte:

  • cd ~
  • touch .bashrc
  • open .bashrc

Adicione a seguinte linha no final do seu arquivo .bashrc

exportar PS1 = '\ t - \ W - \ u \ $'

  • Salve o arquivo e feche seu editor
  • Volte ao terminal e digite o seguinte comando:

    source .bashrc

Estrondo! Agora você deve ter o prompt desejado! (Se o prompt desejado foi o seu exemplo)

macaco
fonte
Quando eu fiz isso eu tenho o seguinte MBP-15:~ Daniel$ source .bashrc -bash: export: = ': não é um -bash identificador válido: exportação:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton
@ DanielCompton Obrigado por apontar isso, atualizei minha resposta para que isso funcione. :)
macaco 14/02
4

Isso é controlado pela variável de shell $ PS1

Você pode definir essa variável para o que quiser, temporariamente ou permanentemente com um script .login ou .profile, dependendo do shell usado.

Dê uma olhada na saída a seguir para exemplos:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

As possibilidades são infinitas. Há algo que você pode fazer com o PS2 também, mas acho que só entra em vigor se você for root - os detalhes são nebulosos, meu Unix é há muito tempo e baseado no Solaris, não no Mac OS X, mas os fundamentos são os mesmos.

Informações adicionais: Como sugerido em outras respostas, há sinalizadores internos como \ he \ W etc, que você pode usar, mas também pode usar a saída de quase qualquer comando, usando os "back ticks" (aspas simples e engraçadas) usado no meu exemplo de data acima). Comandos dentro de back ticks são executados e a saída substituída, permitindo que você inclua qualquer coisa, mesmo se não houver sinalizador embutido, mesmo para coisas aparentemente estúpidas, o que você puder pensar. Deseja incluir a hora da última entrada em um arquivo de log de erros? Use algo como:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(leia a última linha do arquivo referenciado por $ LOGFILE e imprima a 1ª coluna assumindo um delimitador de campo padrão) etc. etc. Se você pode executá-lo, pode incluí-lo.

abafar
fonte