Maison > Tutoriel système > Linux > le corps du texte

Comment masquer l'historique de votre ligne de commande Linux

WBOY
Libérer: 2024-08-17 07:34:37
original
816 Les gens l'ont consulté

Si vous êtes un utilisateur de ligne de commande Linux, vous ne souhaitez parfois pas que certaines commandes soient enregistrées dans votre historique de ligne de commande. Les raisons peuvent être multiples. Par exemple, vous occupez un certain poste dans une entreprise et disposez de certains privilèges dont vous ne voulez pas que les autres abusent. Il se peut également qu'il y ait des commandes particulièrement importantes que vous ne souhaitez pas exécuter par erreur lors de la navigation dans la liste de l'historique.

Cependant, existe-t-il un moyen de contrôler quelles commandes entrent dans la liste d'historique et lesquelles ne le sont pas ? Ou en d’autres termes, pouvons-nous activer le mode incognito comme un navigateur dans un terminal Linux ? La réponse est oui, et selon les objectifs spécifiques que vous souhaitez atteindre, il existe de nombreuses façons d’y parvenir. Dans cet article, nous aborderons quelques méthodes éprouvées.

Remarque : Toutes les commandes apparaissant dans cet article ont été testées sous Ubuntu.

Différentes méthodes possibles

Les deux premières méthodes ont été décrites dans un article précédent. Si vous le savez déjà, vous pouvez ignorer cette partie. Toutefois, si vous ne le comprenez pas, il est recommandé de le lire attentivement.

1. Insérez un espace avant la commande

Oui, vous avez bien lu. En insérant un espace avant la commande, la commande sera ignorée par le shell, ce qui signifie qu'elle n'apparaîtra pas dans l'historique. Mais cette méthode a un prérequis. Elle ne fonctionnera que si votre variable d'environnement HISTCONTROL est définie sur "ignorespace" ou "ignoreboth". Dans la plupart des cas, il s'agit de la valeur par défaut.

Donc, comme la commande suivante (ici [espace] signifie entrer un espace) :

[space]echo "this is a top secret"
Copier après la connexion

Si vous avez déjà exécuté la commande suivante pour définir les variables d'environnement, la commande ci-dessus n'apparaîtra pas dans l'historique.

export HISTCONTROL = ignorespace
Copier après la connexion

La capture d'écran ci-dessous est un exemple de cette approche.

如何隐藏你的 Linux 的命令行历史

La quatrième commande "écho" n'est pas enregistrée dans l'historique car il y a un espace devant elle.

2. Désactivez tout l'historique de la session en cours

Si vous souhaitez désactiver tout l'historique d'une session, vous pouvez simplement effacer la valeur de la variable d'environnement HISTSIZE avant de commencer le travail en ligne de commande. Exécutez la commande suivante pour effacer sa valeur :

export HISTSIZE=0
Copier après la connexion

HISTSIZE indique le nombre de commandes (nombre de lignes) pouvant être enregistrées dans la liste historique d'une session bash. Par défaut, il est défini sur une valeur non nulle, par exemple sur mon ordinateur, il est 1000.

La commande mentionnée ci-dessus définit donc sa valeur sur 0, avec pour résultat que rien ne sera stocké dans l'historique jusqu'à ce que vous fermiez le terminal. N'oubliez pas que vous ne pouvez pas non plus voir les commandes précédemment exécutées en appuyant sur la touche fléchée vers le haut ou en exécutant la commande d'historique.

3. Effacez tout l'historique une fois le travail terminé

Cela peut être considéré comme une autre implémentation de la solution proposée dans la partie précédente. La seule différence est d'exécuter cette commande une fois que vous avez terminé tout votre travail. Voici la commande qui vient d'être mentionnée :

history -cw
Copier après la connexion

Comme mentionné tout à l'heure, cela a le même effet que la méthode HISTSIZE.

4. Désactivez l'historique uniquement pour votre travail

Bien que les méthodes décrites précédemment (2 et 3) soient utiles, elles peuvent effacer tout l'historique et, dans de nombreux cas, certaines peuvent ne pas correspondre à ce à quoi nous nous attendons. Parfois, vous souhaiterez peut-être enregistrer l'historique jusqu'à ce que vous commenciez à travailler sur la ligne de commande. Pour de tels besoins, vous commencez à exécuter les commandes suivantes avant de travailler :

[space]set +o history
Copier après la connexion

Remarque : [espace] signifie espace. Et à cause des espaces, la commande elle-même n'est pas non plus enregistrée.

La commande ci-dessus désactivera temporairement la fonction d'historique, ce qui signifie que toutes les opérations que vous effectuez après cette commande ne seront pas enregistrées dans l'historique, mais tout ce qui précède cette commande sera enregistré dans la liste de l'historique tel quel.

Pour réactiver la fonction historique, exécutez la commande suivante :

[Space]set -o history
Copier après la connexion

Il restaurera l'environnement à son état d'origine, c'est-à-dire que vous avez terminé votre travail, et les commandes après l'exécution de la commande ci-dessus apparaîtront dans l'historique.

5. Supprimez la commande spécifiée de l'historique

现在假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。直接动手删除它们。通过下面的命令来删除:

history | grep "part of command you want to remove"
Copier après la connexion

上面的命令会输出历史记录中匹配的命令,每一条前面会有个数字。

一旦你找到你想删除的命令,执行下面的命令,从历史记录中删除那个指定的项:

history -d [num]
Copier après la connexion

下面是这个例子的截图。

如何隐藏你的 Linux 的命令行历史

第二个 ‘echo’命令被成功的删除了。

(如果你不希望上述命令本身也被记录进历史中,你可以在上述命令前加个空格)

同样的,你可以使用向上的箭头一直往回翻看历史记录。当你发现你感兴趣的命令出现在终端上时,按下 “Ctrl + U”清除整行,也会从历史记录中删除它。

总结

有多种不同的方法可以操作 Linux 命令行历史来满足你的需求。然而请记住,从历史中隐藏或者删除命令通常不是一个好习惯,尽管本质上这并没有错。但是你必须知道你在做什么,以及可能产生的后果。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:linuxprobe.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!