Nel terminale, modifica il testo che precede $


13

Nel terminale posso sempre vedere in quale percorso mi trovo:

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

che trovo abbastanza utile. Eppure ci sono anche molte cose inutili qui: macbook-romeonon è utile poiché sono sempre sul mio macbook (duh). Quindi di nuovo romeovsè abbastanza utile (questo è il mio nome utente).

C'è un debole per modificare ciò che viene mostrato qui? per esempio

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

dov'è 22:50l'ora corrente? (Questo è solo un esempio, ovviamente, non mi servirà il tempo, userei come se il testo fosse un po 'più minimalista).

Risposte:


11

Questo articolo OSX Daily contiene alcune istruzioni dettagliate su come fare. In breve, è necessario modificare il ~/.bash_profilefile e la variabile PS1.

Di seguito è riportato un elenco di possibili variabili che è possibile visualizzare:

  • \ d - Data corrente
  • \ t - Ora corrente
  • \ h - Nome host
  • # - Numero di comando
  • \ u - Nome utente
  • \ W - Directory di lavoro corrente (es .: Desktop /)
  • \ w - Directory di lavoro corrente, percorso completo (es .: / Users / Admin / Desktop)

11

Devi modificare il file .bashrc trovato nella tua home directory .

Aprire il terminale ed effettuare le seguenti operazioni:

  • cd ~
  • touch .bashrc
  • open .bashrc

Aggiungi la seguente riga alla fine del tuo file .bashrc

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

  • Salva il file e chiudi il tuo editor
  • Torna al terminale e inserisci il seguente comando:

    sorgente .bashrc

Boom! Ora dovresti avere il prompt desiderato! (Se il prompt desiderato era il tuo esempio dato)


Quando l'ho fatto ho ottenuto il seguente MBP-15:~ Daniel$ source .bashrc -bash: export: = ': non un identificatore valido -bash: export:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton,

@DanielCompton Grazie per averlo sottolineato, ho aggiornato la mia risposta in modo che funzioni. :)
macaco,

4

Questo è controllato dalla variabile di shell $ PS1

Puoi impostare questa variabile su quello che vuoi, temporaneamente o più permanentemente con uno script .login o .profile a seconda della shell che usi.

Dai un'occhiata al seguente output per esempi:

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$

Le possibilità sono infinite. C'è qualcosa che puoi fare anche con PS2, ma penso che abbia effetto solo se sei root: i dettagli sono confusi, il mio Unix è molto tempo fa e basato su Solaris, non su Mac OS X, ma i fondamenti sono gli stessi.

Informazioni aggiuntive: come suggerito in altre risposte, ci sono flag incorporati come \ he \ W etc che puoi usare, ma puoi anche usare l'output di quasi tutti i comandi, usando i "back tick" (virgolette singole divertenti) usato nel mio esempio di data sopra). I comandi all'interno dei tick posteriori vengono eseguiti e l'output sostituito, consentendo di includere qualsiasi cosa, anche se non è presente un flag incorporato, anche per cose apparentemente stupide, qualunque cosa tu possa pensare. Vuoi includere l'ora dell'ultima voce in un file di registro degli errori? Usa qualcosa come:

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

(leggi l'ultima riga del file a cui fa riferimento $ LOGFILE e stampa la prima colonna assumendo un delimitatore di campo predefinito) ecc. ecc. Se puoi eseguirlo, puoi includerlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.