Comment puis-je changer mon invite bash pour afficher mon répertoire de travail?

33

Je peux imprimer mon répertoire de travail actuel comme ceci

myPrompt$ pwd
/Users/me/myDir

Je veux que ma coquille ressemble à ça

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

Est-ce possible? Comment puis-je le faire?

bernie2436
la source
Sous OS X, le nom du fichier est .bash_profile et pas seulement .profile. Cela se chargera automatiquement pour vous.
Pas assez. Mac OS X démarre shells de connexion par défaut et cela signifie que les regards bash pour ~/.bash_profile, ~/.bash_loginet ~/.profile, dans cet ordre, et lit et exécute les commandes de la première qui existe et est lisible. En tout cas, c'est vraiment un commentaire et non une réponse donc je le convertis en un.
terdon

Réponses:

39

Vous pouvez utiliser des séquences d'échappement dans des variables d' invite .

Mettez ceci dans votre ~/.bashrc:

PS1='\w\$ '
Gilles, arrête de faire le mal
la source
2
Merci. J'ai fait ce changement. Maintenant, je vois: Abrams-MacBook-Air-3: abramhandler tmp $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Je veux seulement montrer la partie qui dit "tmp" pour mon invite. Comment cacher le reste? Je veux cacher les parties "abramhandler" et "Abram's-MacBook-Air-3"
bernie2436
7
@ akh2103 utiliser \Wau lieu de \w. Voir le lien que Gilles vous a donné pour une (courte) explication des codes d'échappement.
terdon
@terdon Je vois la même chose avec \ W et \ w. J'utilise Unix sur OSX.
bernie2436
2
@ akh2103 si vous exécutez OSX et utilisez l'application de terminal, vous devez apporter des modifications à ~ / .profile et non à .bashrc car le terminal exécute un shell de connexion par défaut. Vous devez également source ~ / .profile ou ouvrir un nouveau terminal pour que les modifications prennent effet. Aussi, veuillez modifier pour ajouter plus d'informations, je ne comprends pas ce que vous demandez de votre dernier commentaire.
terdon
@terdon lorsque j'exécute source ~ / .profile, il modifie correctement le chemin dans le terminal actuel. Mais lorsque j'ouvre un nouveau terminal, je vois toujours "abram's mac book air", etc. J'ai essayé d'ajouter la source ~ / .profile aux fichiers .profile et .bashrc mais toujours pas de chance. Des idées?
bernie2436
4

Voici un one-liner pour OSX. Il ajoute l'invite souhaitée dans le fichier de profil, puis recharge le profil.

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

Sur El Capitan, vous voudrez utiliser

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

Pour une raison quelconque, cela '\w\$'n'a pas fonctionné pour moi, mais je l'ai fait: export PS1="$(pwd) \$"et cela a fonctionné.

David
la source
4
Cela ne fonctionnera pas trop bien lorsque vous changez de répertoire ...
Stephen Kitt
0

Ressemble à un vieux fil mais les étapes ci-dessous ont fonctionné pour moi sur OS X 10.9.5

  • mettre PS1='\w\$ 'en~/.profile
  • si vous avez apporté des modifications pour les ~/.bashrcsupprimer
  • fermez le terminal avec cmd+q
  • rouvrir le terminal
Victor
la source
1
Dans mon cas, le CHEMIN complet est vraiment grand, j'ai donc ajouté un indicateur supplémentaire pour la ligne suivante comme PS1 = '\ w \ n \ $'
vainqueur