Comment modifier la ligne d'invite de la console linux (pendant un certain time)

Par exemple, j'ai tapé de telles commands:

user@my-machine:~$ cd ABC user@my-machine:~/ABC$ cd long-name user@my-machine:~/ABC/long-name$ cd another-long-name user@my-machine:~/ABC/long-name/another-long-name$ ls 

J'ai donc choisi le directory dont j'ai besoin, et j'ai besoin d'y travailler (beaucoup de commands). Mais la moitié de ma ligne de console est la ligne rapide. Ce n'est pas très confortable. Puis-je le raccourcir pendant un certain time? Par exemple, je vais faire de l' user@my-machine:~foo$ et quand j'aurai fini de travailler dans ce directory – je désactiverai cette brièveté.

Y a-t-il un moyen de faire cela?

Le format d'invite est dans la variable d'environnement PS1 ; voir la page de manuel bash , section d' prompting pour les spécificateurs de format.

 10:50:39 user@host:1996 ~$ echo $PS1 \t \u@\h:\! \W$ 

Le \W imprime uniquement le directory supérieur comme vous voulez (?). ( \w imprime le tout comme vous avez maintenant).

 10:50:45 user@host:1997 ~$ PS1='\u@\h:\W$ ' user@host:~$ cd test user@host:test$ cd testdir/ user@host:testdir$ 

Vous voudrez probablement sauvegarder l'ancienne PS1 dans une variable (par exemple, $ export OLDPS1=$PS1 ) pour pouvoir la restaurer lorsque vous avez terminé ( $ PS1=$OLDPS1 ).

Je viens de mettre l'invite sur une deuxième ligne, et l'information de l'user / directory est placée sur le premier.

Exemple de mon invite bash:

 birryree@momohime:/usr/bin $ command-here 

Si vous utilisez bourne-shell ou bash, la variable d'environnement PS1 détermine la mise en forme de l'invite.

J'ai ceci dans mon ~/.bash_profile (vous pouvez utiliser .bashrc , j'ai ma source .bashrc mon .bash_profile ).

 # ~/.bash_profile PS1="\u@\h:\w\n$ " # \u means user name # \h means hostname # \w is working directory # \n is newline # $ is my prompt 

Et mon .bashrc

 # ~/.bashrc source ~/.bash_profile 

Pour le plaisir, mon invite zsh ressemble à ceci:

 birryree@momohime:~/.oh-my-zsh master* λ > 

Le master* signifie que je suis dans la twig maître d'un référentiel git ( ~/.oh-my-zsh est un directory contrôlé par git), et le directory est impur.


Vous pouvez get extrêmement fantaisie avec vos invites bash, je faisais des colors et tout avant de passer à zsh.

Cette section a toutes les évasions: