8 votes

Quels sont quelques invites de shell informatives et utiles? (Bash, csh, ksh, etc.)

Un de mes astuces préférées sur Mac OS X Terminal consiste à ajouter le dernier processus en cours d'exécution dans le titre du terminal en utilisant le code suivant dans votre .bashrc.

trap 'printf "\033]0;  `history 1 | cut -b8-`  \007"' DEBUG

Maintenant, je cherche à personnaliser mon invite de commandes Bash par défaut en quelque chose de plus fonctionnel. Quels sont quelques exemples utiles d'invite de commandes shell?

1voto

BrewinBombers Points 1122
  export PS1="\[`if [[ $? = 0 ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi`:\w\n$ "

Cela affiche:

hostname:~
$ 

Avec 'hostname' en vert si le code de retour de la dernière commande exécutée était '0' et en rouge s'il était > '0'.

0voto

automatonic Points 2830

Pour bash j'aime

PS1="\h \d \t \w\n\u > "

ce qui donne :

myserver Lun Sep 07 07:43:11 /u08
root >

Donc vous obtenez le nom d'hôte, la date et l'heure, le chemin complet, puis le nom d'utilisateur sur une nouvelle ligne, avec l'invite. Cela permet de réduire au minimum les sauts de ligne dans les répertoires profonds. Je passe mes journées à entrer et sortir des boîtes, donc tout ce que je peux faire pour rester clair est bon. J'ai aussi configuré Putty pour enregistrer tout. Je peux revenir en arrière et consulter les journaux, et voir exactement ce que je faisais à ce moment-là. Aussi pratique pour comprendre les séquences d'événements dans plusieurs fenêtres de terminal en même temps.

0voto

ashwnacharya Points 3144

Ma invite normale est

\u@\h $PWD $WINDOW [$?] \$

Cela me donne l'utilisateur actuel, l'hôte actuel, le répertoire actuel (sans remplacer $HOME par ~), la fenêtre screen actuelle et le dernier code de retour d'erreur. Comme j'ai généralement 16 fenêtres screen ouvertes ou plus, il est utile de savoir laquelle est actuelle.

0voto

theotherreceive Points 8185

Mon invite de commande zsh:

[andrew@hostname ~]%

Normalement, il est rouge et blanc avec le répertoire actuel en rose. Si root alors c'est plus sombre avec le nom d'hôte en rouge. Si $? n'est pas 0 alors le % final est affiché en rouge.

function precmd {

   ERR=$?

   if [ $UID -eq 0 ]; then
       MYPROMPT="$(print '%{\e[1;30m%}[%{\e[0m%}')$(print '%{\e[1;31m%}%n%{\e[0m%}')@$(print '%{\e[1;31m%}%m%{\e[0m%}') $(print '%{\e[1;35m%}%3c%{\e[0m%}')$(print '%{\e[1;30m%}]%{\e[0m%}')"
   else
       MYPROMPT="[$(print '%{\e[1;31m%}%n%{\e[0m%}')@%m $(print '%{\e[1;35m%}%3c%{\e[0m%}')]"
   fi

   if [ $ERR -ne 0 ]; then
       ERROR="$(print '%{\e[1;31m%}%#%{\e[0m%}') "
       export PS1=$MYPROMPT$ERROR
   else
       export PS1="$MYPROMPT%# "
   fi

   export RPS1=""
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X