Nel terminale, modifica il testo che precede $

8

Nel terminale posso sempre vedere in quale percorso mi trovo:

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

che trovo abbastanza utile. Eppure anche qui ci sono molte cose inutili: macbook-romeo non è utile dato che sono sempre sul mio macbook (duh). Quindi ancora romeovs è abbastanza utile (questo è il mio nome utente).

Esiste un wan per modificare ciò che viene mostrato qui? per es.

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

dove 22:50 è l'ora corrente? (Questo è solo un esempio, ovviamente, non avrò bisogno del tempo, mi piacerebbe che il testo fosse un po 'più minimalista).

    
posta romeovs 21.10.2011 - 22:52
fonte

3 risposte

8

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

Di seguito è riportato un elenco di possibili variabili che possono essere visualizzate:

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

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

Apri il terminale e fai quanto segue:

  • 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 l'editor
  • Torna al terminale e inserisci il seguente comando:

    source .bashrc

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

    
risposta data 21.10.2011 - 23:19
fonte
3

Questo è controllato dalla variabile di shell $ PS1

Puoi impostare questa variabile su qualunque cosa vuoi, temporaneamente o in modo permanente con uno script .login o .profile, a seconda della shell che usi.

Dai un'occhiata al seguente output per gli 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'è anche qualcosa che puoi fare 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 fondamentali sono gli stessi.

Informazioni aggiuntive: come suggerito in altre risposte, ci sono dei flag integrati come \ h e \ W, ecc., ma puoi anche usare l'output di quasi tutti i comandi, usando i "tick indietro" ( citazioni singole divertenti usate 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 c'è una bandiera incorporata, anche per cose apparentemente stupide, qualunque cosa si possa pensare. Vuoi includere l'ora dell'ultima voce in un file di log 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.

    
risposta data 21.10.2011 - 23:08
fonte

Leggi altre domande sui tag