Masquer le répertoire de travail actuel dans le terminal

111

Par défaut, l’invite du terminal affiche quelque chose comme:

user@system:/folder1/folder2/folder3/folder4$

plus vous entrez dans le système de fichiers, moins il reste d'espace pour saisir les commandes. Puis-je changer cela pour montrer seulement quelque chose comme:

>

Je veux dire, je peux juste taper pwd pour montrer où je suis. ;)

    
posée Theodor 09.12.2010 - 10:16
la source

5 réponses

128
export PS1='\u@\h: '

Cela se traduit par oli@bert: pour mon invite.

Si vous voulez vraiment quelque chose d'aussi minimaliste que vous le demandez, essayez ceci:

export PS1='> '

Vous pouvez attacher cela à la fin de votre fichier ~/.bashrc pour qu’il persiste entre les connexions.

Vous pouvez également faire preuve de créativité avec certaines couleurs. Voici ce que j'utilise sur mes serveurs:

export PS1='\[3[0;35m\]\h\[3[0;33m\] \w\[3[00m\]: '

Donner (c'est plus facile à voir sur un fond noir complet):

Glossaire des caractères acceptables dans PS1

    
réponse donnée Oli 09.12.2010 - 10:22
la source
86

Juste pour développer la réponse d'Oli (et pour avoir un signet pour ces symboles courts):

L’invite bash ( stefano@linux:~$ ) n’est que la première d’une ou deux invites vous pourriez voir:

  • PS1 : l'invite par défaut que vous voyez lorsque vous ouvrez un shell

    Sa valeur est stockée dans une variable d'environnement appelée PS1 . Pour voir sa valeur, tapez

    echo $PS1

    Cela vous donnera quelque chose comme

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$
    

    Pour le modifier, vous pouvez définir une nouvelle valeur pour la variable:

    export PS1="\u > "
    

    Cela se traduira par une invite comme celle-ci:

    stefano > 
    
  • PS2 : votre invite secondaire. Cela s'affiche quand une commande n'est pas terminée. Tapez echo "asd et appuyez sur Entrée, l'invite secondaire vous permettra d'entrer plus lignes jusqu'à ce que vous fermiez les guillemets.

  • PS3 est l’invite utilisée pour select (2)

  • PS4 est l’invite utilisée pour stack traces (par défaut: + )

Pour rendre les modifications permanentes, ajoutez-les à la fin de .bash_profile (ou .bashrc , voir cette question ) dans votre répertoire de base.

Voici une liste plus ou moins complète de raccourcis que vous pouvez utiliser pour les composer:

  • \a le caractère 'cloche'
  • \A 24h heure
  • \d Date (par exemple, mardi 21 décembre)
  • \e le caractère "escape"
  • \h Nom d'hôte (jusqu'au premier ".")
  • \H Nom d'hôte
  • \j Nombre de tâches en cours d'exécution (ps)
  • \l tty actuel
  • \n saut de ligne
  • \t Heure (hh: mm: ss)
  • \T Heure (hh: mm: ss, format 12h)
  • \r Retour de voiture
  • \s Shell (c'est-à-dire bash, zsh, ksh ..)
  • \u Nom d'utilisateur
  • \v Version Bash
  • \V Chaîne de version complète de Bash
  • \w Répertoire de travail en cours
  • \W Dernière partie du répertoire de travail en cours
  • \! Index actuel dans l'historique
  • \# Index des commandes
  • $ Un "#" si vous êtes root, sinon "$"
  • \ Barre oblique littérale
  • \@ Heure (format 12h avec am / pm)

Vous pouvez bien entendu insérer une chaîne littérale et toute commande:

export PS1="\u $(pwd) > "

$(pwd) se place à la place de "la sortie de" pwd.

  • Si la substitution de commande est échappée, comme dans $(pwd) , elle est évaluée à chaque fois que l'invite est affichée, sinon, comme dans $(pwd) , elle n'est évaluée qu'une fois au démarrage de bash.

Si vous souhaitez que votre invite comporte des couleurs, vous pouvez utiliser les codes de couleur de bash pour le faire. Le code se compose de trois parties:

40;33;01
  • La première partie avant le point-virgule représente le style du texte.

    • 00 = none
    • 01 = gras
    • 04 = souligné
    • 05 = clignote
    • 07 = inverser
    • 08 = caché
  • La deuxième et la troisième partie sont la couleur et la couleur de fond:

    • 30 = noir
    • 31 = rouge
    • 32 = vert
    • 33 = jaune
    • 34 = bleu
    • 35 = magenta
    • 36 = cyan
    • 37 = blanc

Chaque partie peut être omise, en partant de la gauche. c'est-à-dire que "1" signifie gras, "1; 31" signifie gras et rouge. Et vous obtiendrez que votre terminal imprime en couleur en échappant à l'instruction avec [ et en terminant par un m . 33, ou 1B en hexadécimal, est le signe ASCII "ESCAPE" (un caractère spécial dans le jeu de caractères ASCII). Exemple:

"[1;31mHello World[m"

Imprime "Hello World" en rouge vif.

    
réponse donnée Stefano Palazzo 21.12.2010 - 22:57
la source
6

Une autre solution consiste à raccourcir le chemin du répertoire de travail lorsqu'il est trop long: rogner le répertoire de travail de l'invite de commande du terminal

  

Créez un petit script python qui implémente la logique de rognage souhaitée.

     

Exemple: ~ / short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)
     

Maintenant, testez-le depuis un terminal:

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'
     

Si vous êtes d'accord avec le résultat, ajoutez simplement la commande dans votre ~ / .bashrc

    
réponse donnée Olivier Lalonde 22.12.2010 - 01:26
la source
4

Je veux souvent le faire temporairement. Voici ce que je fais:

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

J'espère que cela aide quelqu'un.

    
réponse donnée Joe Codeswell user601770 27.03.2013 - 23:33
la source
0

La chose qui m'a aidé était: export PS1 = '$'

Pour avoir ceci à chaque fois que vous ouvrez le terminal, écrivez la commande à la fin du fichier .bashrc que vous pouvez ouvrir avec "cd" suivi de "gedit .bashrc".

J'espère que ça aide. J'ai travaillé pour moi.

    
réponse donnée Arka Mitra 05.07.2018 - 21:36
la source

Lire d'autres questions sur les étiquettes