web-dev-qa-db-fra.com

Comment puis-je raccourcir mon invite de ligne de commande (bash)?

Actuellement c'est:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/Rails_v3/linker/spec/controllers$

En dehors de renommer ma machine et ma structure de répertoires ...

Comment pourrais-je faire quelque chose de plus semblable à:

michael:controllers$
159
Michael Durrant

Pour le changer uniquement pour l'instance de terminal actuelle

Entrez simplement PS1='\u:\W\$ ' et appuyez sur enter.


Pour le changer "en permanence"

Dans votre ~/.bashrc, trouvez la section suivante:

 if ["$ color_Prompt" = yes]; then 
 PS1 = '$ {debian_chroot: + ($ debian_chroot)}\[\ 033 [01; 32m \]\u\\ @\h\[\ 033 [00m \]:\[\ 033 [01; 34m \]\w\[\ 033 [00m \]\$ '
 Sinon 
 PS1 =' $ {debian_chroot: + ($ debian_chroot)}\u @\h:\w\$ '
Fi

Supprimez le @\h et remplacez le \w par un \W en majuscule, de sorte qu'il devienne:

 if ["$ color_Prompt" = yes]; then 
 PS1 = '$ {debian_chroot: + ($ debian_chroot)}\[\ 033 [01; 32m \]\u\[\ 033 [00m \]:\[\ 033 [01; 34m \]\W\[\ 033 [00m \]\$ '
 Sinon 
 PS1 =' $ {debian_chroot: + ($ debian_chroot)}\u:\W\$ '
 Fi

Sauvegardez, quittez, fermez le terminal et démarrez-en un autre pour voir le résultat.


Des tonnes plus d'options!

  • Voir ici pour un howto plus complet, avec beaucoup plus d'options
  • Voir cette réponse pour utiliser un minuscule script Python afin de définir l'invite de sorte que le raccourcissement ne se produise que lorsque vous vous trouvez au cœur d'une structure de répertoires.
233
ish

Exécuter ce code dans le terminal actuel

Prompt_DIRTRIM=3

Maintenant, l'invite bash n'affichera que les 3 derniers noms de répertoire. Vous pouvez choisir 1 pour afficher uniquement le répertoire actuel. Plus d'informations sont disponibles dans la documentation GN .

L'effet:

/var/lib/apt/lists# Prompt_DIRTRIM=3
/.../lib/apt/lists# 

Si vous voulez le rendre permanent, ajoutez la ligne suivante à ~/.bashrc au début:

Prompt_DIRTRIM=3

ou un autre nombre supérieur à zéro.

98
santosh Mahto

C'est mon paramètre d'invite préféré:

ajouté dans ~/.bashrc

PS1='[\u@\h \W]\$ '    

ça ressemble à ça:

[user@hostname dirname]$

(avec un espace après le signe $)

16
unwastable

Personnellement, je préfère ne voir que le dossier en cours dans l'invite bash. Je peux le faire avec la commande suivante:

PS1='\W\$ '

Si vous voulez qu'il prenne effet après chaque démarrage, ajoutez la commande ci-dessus dans votre ~/.bashrc.

6
Rajeev Jayaswal

Je réalise que c'est très vieux, mais puisque personne n'a suggéré de créer un alias, je me suis dit que je posterais. Utilisation de séquences d'échappement d'invite de Bash J'ai créé un alias shortenname__

Dans ~/.bash_aliases, vous remarquerez que la variable $ Blue permet de définir la couleur de l’invite que vous pouvez omettre ou modifier en fonction de vos préférences. J'efface également le terminal lors d’un appel abrégé.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Pour obtenir la chaîne d'invite souhaitée pour l'OP:

alias shorten='PS1="$USER:\W$ "'

J'ai des couleurs définies dans ~/.bashrccopy et collées à partir de https://wiki.archlinux.org/index.php/Color_Bash_Prompt . Sur une note de côté ce qui est avec les couleurs de code Ansi? Je suis confus juste en le regardant.

Blue='\e[0;34m'         # Blue
1
Allie Carver