Dans cette compilation des horreurs sysadmin , l'un des auteurs écrit, en règle générale:
Faites toujours un
cd .
avant de faire quoi que ce soit.
Pourquoi voudriez-vous faire ça?
Dans cette compilation des horreurs sysadmin , l'un des auteurs écrit, en règle générale:
Faites toujours un
cd .
avant de faire quoi que ce soit.
Pourquoi voudriez-vous faire ça?
Réponses:
Non.
Du moins pas comme ça. La ligne précédente du document cité est importante:
- Configurez votre invite pour faire
pwd
chaque fois que vous cd.- Faites toujours un
cd .
avant de faire quoi que ce soit.
De cette façon, vous, en tant qu'opérateur, vérifiez votre répertoire de travail actuel avant de faire quoi que ce soit d'important, car il est imprimé à chaque changement. cd .
n'a aucun sens autrement.
Cette "vérification" est une bonne chose et vous devez en adapter une forme. Une variante plus courante (à mon humble avis) de ce thème consiste à toujours imprimer le répertoire de travail à l'invite.
pwd
avant de faire quoi que ce soit?
cd .
changerait le sous-jacent réel répertoire dans lequel vous vous trouvez.
cd .
mais avant de faire autre chose. Cela réduit simplement la probabilité d'être dans le mauvais répertoire, mais ne résout pas le problème général. À moins que vous ne basculiez vers le répertoire réel en utilisant quelque chose comme cd $(readlink -f .)
étant donné que vous voulez réellement y rester.
Si le répertoire de travail actuel de votre shell est supprimé, il est possible de perdre des données.
Par exemple,
$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>
La sortie de some_command
n'a pas été écrite sur le disque.
Taper cd .
avant d'exécuter une commande révélera le problème.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Si le répertoire du répertoire de travail en cours était supprimé et recréé, la frappe cd .
"actualiserait" la référence à ce répertoire.
$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls
foo bar ljz
Je pense qu'il est plus important d'afficher votre répertoire actuel.
Sur chaque serveur Linux, je modifie l'invite en /etc/bashrc
changeant "W" en "w".
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
à
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
L'effet de ceci est:
[root@xt include]#
contre
[root@xt /usr/src/spl-0.6.1/include]#
PS1
spécifique à bash?
~/.profile
or ~/.bash_profile
ainsi que la mise à jour/etc/skel/.profile