239 votes

Le "mode incognito" du terminal ?

J'utilise beaucoup Terminal, et il m'arrive d'exécuter des commandes, qui ne sont pas des choses que je ne veux pas que les autres voient, mais plutôt des commandes qui, si j'y accédais par accident et que j'exécutais accidentellement, me causeraient beaucoup de problèmes.

Je me demande donc s'il existe, ou si je peux créer, une sorte de "mode incognito" du terminal qui me permettrait, à l'exécution d'une certaine commande, d'arrêter d'enregistrer mon historique, et de ne recommencer à enregistrer qu'après avoir exécuté une commande de reprise de l'enregistrement de l'historique et quitté le "mode incognito", ou après avoir simplement redémarré le terminal ?

Parce que je me retrouve plus tard à aller enlever des trucs de mon .bash_history alors qu'il aurait été beaucoup plus facile de l'empêcher d'enregistrer à cet endroit, ou du moins de l'empêcher d'essayer d'enregistrer à un endroit où il n'aurait pas été autorisé à le faire et où il aurait fini par ne pas l'enregistrer.

10voto

horen Points 401

Vous pouvez modifier les lignes de l'historique dans la session courante de Shell. Si vous revenez en arrière dans l'historique (par exemple avec Up o Ctrl + P ) et modifier une ligne sans l'exécuter , seule la version modifiée de la ligne sera sauvegardée. Vous pouvez la modifier de la manière que vous voulez ; de bons choix incluraient l'utilisation de Ctrl + U pour vider totalement la ligne ou en utilisant Esc# pour mettre un # caractère de commentaire au début.

Pour laisser derrière vous une ligne sans l'exécuter, n'oubliez pas de ne pas taper sur la touche Return ( Enter ). Ce que je fais, c'est revenir à la ligne la plus récente de l'histoire via Esc> .

(Au lieu de Esc suivi par > Dans la plupart des terminaux, vous pouvez tenir Alt et appuyez sur > ; il en va de même pour le Esc# suggestion ci-dessus).

Note : Vous ne pouvez pas modifier de façon permanente les entrées des sessions précédentes de cette façon. Ces modifications ne seront pas appliquées à la HISTFILE à la fin de la session.

6voto

Webtm Points 198

Vous pouvez aussi faire en sorte que .bash_history soit en lecture seule. Je viderais d'abord le fichier, puis je le ferais :

 chattr +i .bash_history

5voto

keag Points 151

Vous pourriez exécuter les commandes sensibles dans une session écran, puis détruire la session lorsque vous avez terminé.

Vous pouvez également conserver cette session d'écran en vie mais détachée, et n'y accéder que lorsque vous souhaitez réellement être en mesure d'accéder aux commandes autrement dangereuses.

1voto

Sergiy Kolodyazhnyy Points 97292

Personnellement, j'utilise mksh et ce Shell par défaut n'a pas de fichier d'historique. Cela signifie que vous pourriez lancer des Shell alternatives telles que mksh o dash (qui est d'ailleurs fourni par défaut) pour exécuter la commande que vous ne voulez pas que les utilisateurs voient, et quitter une fois terminé. bash L'historique enregistrera seulement que vous avez lancé l'alternative Shell et c'est tout.

1voto

vusan Points 457

Vous pouvez également utiliser un multiplexeur de terminal tel que tmux , screen . Ainsi, sous tmux o screen l'histoire ne serait pas sauvée.

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