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

147

Actuellement, c'est:

[email protected]:~/Dropnot/webs/rails_v3/linker/spec/controllers$

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

Comment pourrais-je en faire quelque chose qui ressemble plus à:

michael:controllers$
    
posée Michael Durrant 02.06.2012 - 20:48
la source

5 réponses

212

Pour le changer uniquement pour l'instance de terminal actuelle

Entrez simplement PS1='\u:\W$ ' et appuyez sur Entrée.

Pour le changer "en permanence"

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

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\[email protected]\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w$ '
fi

Supprimez le @\h et remplacez \w par un \W majuscule pour qu'il devienne:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;34m\]\W\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W$ '
fi

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

Plus d’options!

  • Voyez ici pour un tutorat plus complet, avec beaucoup plus options
  • Consultez cette réponse pour avoir utilisé un petit script Python afin de définir l’invite de sorte que le raccourcissement ne se produise que lorsque vous êtes profondément dans une structure de répertoire.
réponse donnée ish 02.06.2012 - 21:04
la source
83

Exécuter ce code dans le terminal actuel

PROMPT_DIRTRIM=3

L'invite bash affiche maintenant uniquement les 3 derniers noms de répertoire. Vous pouvez choisir 1 pour afficher uniquement le répertoire en cours. Plus d'informations sont disponibles dans la documentation GNU .

L'effet:

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

Si vous voulez le faire de manière permanente, ajoutez la ligne suivante à ~/.bashrc au début:

PROMPT_DIRTRIM=3

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

    
réponse donnée santosh Mahto 02.05.2014 - 08:49
la source
15

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

ajouté dans ~/.bashrc

PS1='[\[email protected]\h \W]$ '    

ça ressemble à ça:

[[email protected] dirname]$

(avec un espace après le signe $ )

    
réponse donnée unwastable 10.10.2014 - 05:08
la source
6

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

PS1='\W$ '

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

    
réponse donnée Rajeev Jayaswal 20.05.2017 - 13:01
la source
1

Je me rends compte que c'est super vieux, mais personne n'a suggéré de créer un alias, je pensais que je posterais. En utilisant les séquences d'échappement Bash Prompt , j'ai créé un alias shorten

Dans ~/.bash_aliases , vous remarquerez la variable $ Blue pour définir la couleur d'invite que vous pouvez omettre ou modifier en fonction des préférences. Je supprime également le terminal lors de l'appel de raccourci.

alias c='clear'

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

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

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

J'ai des couleurs définies dans ~/.bashrc copy et collées à partir de lien . Sur une note de côté, quelles sont les couleurs de code Ansi? Je suis confus juste en le regardant.

Blue='\e[0;34m'         # Blue
    
réponse donnée Allie Carver 26.10.2015 - 22:03
la source

Lire d'autres questions sur les étiquettes