Come posso cambiare il mio prompt di bash per mostrare la mia directory di lavoro?


33

Posso stampare la mia cartella di lavoro attuale in questo modo

myPrompt$ pwd
/Users/me/myDir

Voglio che il mio guscio assomigli a questo

/Users/me/myDir$ pwd
/Users/me/myDir

È possibile? Come posso farlo?


Su OS X il nome del file è .bash_profile non solo .profile. Quello verrà caricato automaticamente per te.

Non proprio. OSX avvia shell di login di default e ciò significa che gli sguardi bash per ~/.bash_profile, ~/.bash_logine ~/.profile, in questo ordine e legge e comandi Esegue dal primo che esiste ed è leggibile. In ogni caso, questo è davvero un commento e non una risposta, quindi lo sto convertendo in uno.
terdon

Risposte:


39

È possibile utilizzare le sequenze di escape nelle variabili prompt .

Metti questo nel tuo ~/.bashrc:

PS1='\w\$ '

2
Grazie. Ho fatto quel cambiamento. Ora vedo: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Voglio solo mostrare la parte che dice "tmp" per il mio prompt. Come nascondo il resto? Voglio nascondere le parti "abramhandler" e "Abram's-MacBook-Air-3"
bernie2436,

7
@ akh2103 use al \Wposto di \w. Vedi il link che Gilles ti ha dato per una (breve) spiegazione dei codici di escape.
terdon

@terdon Vedo la stessa cosa con \ W e \ w. Sto eseguendo Unix su OSX.
bernie2436,

2
@ akh2103 se si esegue OSX e si utilizza l'app per terminale, è necessario apportare modifiche a ~ / .profile e non .bashrc poiché il terminale esegue una shell di accesso per impostazione predefinita. Dovresti anche fonte ~ / .profile o aprire un nuovo terminale per rendere effettive le modifiche. Inoltre, modifica per aggiungere ulteriori informazioni, non riesco a capire cosa stai chiedendo dal tuo ultimo commento.
Terdon

@terdon quando eseguo source ~ / .profile cambia il percorso correttamente nel terminale corrente. Ma quando apro un nuovo terminale, vedo ancora "abram's mac book air" ecc. Ho provato ad aggiungere il file sorgente ~ / .profile a entrambi i file .profile e .bashrc, ma non ho ancora avuto fortuna. Qualche idea?
bernie2436,

4

Ecco un one-liner per OSX. Aggiunge il prompt desiderato nel file del profilo e quindi ricarica il profilo.

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

Su El Capitan ti consigliamo di utilizzare

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile

1

Per qualche motivo '\w\$'non ha funzionato per me, ma invece l'ho fatto: export PS1="$(pwd) \$"e ha funzionato.


4
Non funzionerà troppo bene quando cambi directory ...
Stephen Kitt,

0

Sembra un vecchio thread ma i passaggi seguenti hanno funzionato per me su OS X 10.9.5

  • mettere PS1='\w\$ 'dentro~/.profile
  • se hai apportato modifiche a ~/.bashrcrimuoverle
  • chiudere il terminale con cmd+q
  • riaprire il terminale

1
Nel mio caso il PERCORSO completo è davvero grande, quindi ho aggiunto un altro flag per la riga successiva come PS1 = '\ w \ n \ $'
vincitore
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.