Si je suis dans un répertoire profond, disons:
~/Desktop/Dropbox/School/2017/C/A3/
puis quand j'ouvre le terminal, ça dit
bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$
puis j'écris ma commande. C'est très long et chaque ligne que j'écris dans le terminal passe à la ligne suivante. Je veux savoir s'il existe un moyen pour qu'il affiche uniquement mon répertoire actuel. Je veux qu'il affiche:
bob@bob-ubuntu: A3/$
De cette façon, c'est beaucoup plus clair, et je peux toujours faire pwd
pour voir tout mon répertoire. Je ne veux tout simplement pas que le répertoire entier soit visible dans le terminal car il prend trop de place.
Vous devez modifier PS1
dans votre fichier de démarrage Shell (probablement .bashrc
).
S'il est déjà là, son paramètre contiendra \w
, ce qui donne votre répertoire de travail. Changez cela en \W
(majuscule). Déconnectez-vous et reconnectez-vous, ou faites:
. .bashrc
(ou quel que soit votre fichier).
Si ce n'est pas le cas, ajoutez quelque chose comme:
PS1='\u@\h: \W:\$'
à .bashrc
ou peu importe. Chercher PS1
dans la page de manuel bash
pour obtenir plus d'idées.
Faites attention; bash
peut utiliser plusieurs fichiers d'initialisation, par exemple .bashrc
et .bash_profile
; il se peut que PS1
est défini dans l'ensemble du système. Mais vous pouvez remplacer cela dans l'un de vos propres fichiers.
Depuis bash 4, le moyen simple de raccourcir la profondeur du répertoire en ligne de commande est d'utiliser la commande ci-dessous dans votre fichier bashrc. N'oubliez pas de rouvrir votre terminal et le nombre (c'est-à-dire 1) spécifie la profondeur du répertoire à afficher.
Prompt_DIRTRIM = 1
En supposant que vous utilisez bash, modifiez la chaîne d'invite (variable PS1) pour qu'elle ait \W
au lieu de \w
.
par exemple. si votre PS1 est actuellement \u@\h:\w\$
, définissez-le sur \u@\h:\W\$
Pour rendre cela permanent, vous devrez le changer dans vos fichiers de démarrage bash - par exemple ~/.bash_profile
ou ~/.bashrc
.
voir man bash
et recherchez PROMPTING
pour plus de détails et une liste de caractères spéciaux avec barre oblique inverse.
Ceci est portable pour tous les shells sh
.
Attribuez à PS1
Dans l'un de vos fichiers de démarrage Shell:
PS1='${PWD##*/} $ '
L'invite ressemblera
dir $
Où dir
est le nom de base du répertoire courant.
La variable $PWD
Contient le chemin du répertoire actuel et ${PWD##*/}
Supprimera tout jusqu'au dernier /
Inclus dans ce chemin.
Les guillemets simples empêchent le formulaire Shell d'évaluer la substitution de variable au moment de l'affectation (la valeur de $PS1
Sera évaluée chaque fois que l'invite est affichée).
La variable PS1
Ne doit pas être exportée car elle est uniquement utilisée par le shell actuel.
dans ce cas, vous devrez modifier PS1,
au lieu de \w
, vous aurez une commande ou une variable qui affiche le chemin raccourci:
pS1 d'origine
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'
le changer en
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]${PWD##*/}\[\033[00m\]\$'
Notez que cela mettra le nom d'utilisateur insteed de ~ si vous êtes dans votre répertoire personnel!
pour éviter cela, vous aurez besoin de quelques commandes insteed de $ {PWD ## * /} par exemple.
if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi
la nouvelle PS1 ressemblera à ce qui suit
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]`if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi`\[\033[00m\]\$'
oOps alors que j'essaie de sauver le monde, je n'ai eu aucune idée | oublié le \ W
https://github.com/chrissound/SodiumSierraStrawberry
Vous permet de tronquer un chemin comme:
À partir de:/accueil/sodium/Projets/Personnel/Sierra/Super/Long/Chemin/HolyAvacado
À: "Projets/Sie…/Sup…/Lon…/Pat…/HolyAvacado /