Heim > System-Tutorial > LINUX > So verbergen Sie Ihren Linux-Befehlszeilenverlauf

So verbergen Sie Ihren Linux-Befehlszeilenverlauf

WBOY
Freigeben: 2024-08-17 07:34:37
Original
916 Leute haben es durchsucht

Wenn Sie ein Linux-Befehlszeilenbenutzer sind, möchten Sie möglicherweise manchmal nicht, dass bestimmte Befehle in Ihrem Befehlszeilenverlauf aufgezeichnet werden. Die Gründe dafür können vielfältig sein. Beispielsweise haben Sie eine bestimmte Position in einem Unternehmen inne und verfügen über bestimmte Privilegien, die Sie nicht missbrauchen möchten. Oder es gibt einige besonders wichtige Befehle, die Sie beim Durchsuchen der Verlaufsliste nicht versehentlich ausführen möchten.

Gibt es jedoch eine Möglichkeit zu steuern, welche Befehle in die Verlaufsliste aufgenommen werden und welche nicht? Oder mit anderen Worten: Können wir den Inkognito-Modus wie einen Browser in einem Linux-Terminal aktivieren? Die Antwort lautet „Ja“, und abhängig von den konkreten Zielen, die Sie sich wünschen, gibt es viele Möglichkeiten, diese zu erreichen. In diesem Artikel besprechen wir einige bewährte Methoden.

Hinweis: Alle in diesem Artikel vorkommenden Befehle wurden unter Ubuntu getestet.

Verschiedene mögliche Methoden

Die ersten beiden Methoden wurden in einem früheren Artikel beschrieben. Wenn Sie das bereits wissen, können Sie diesen Teil überspringen. Wenn Sie es jedoch nicht verstehen, wird empfohlen, es sorgfältig zu lesen.

1. Fügen Sie vor dem Befehl ein Leerzeichen ein

Ja, das hast du richtig gelesen. Durch Einfügen eines Leerzeichens vor dem Befehl wird der Befehl von der Shell ignoriert, was bedeutet, dass er nicht im Verlauf erscheint. Diese Methode hat jedoch eine Voraussetzung. Sie funktioniert nur, wenn Ihre Umgebungsvariable HISTCONTROL auf „ignorespace“ oder „ignoreboth“ gesetzt ist. In den meisten Fällen ist dies der Standardwert.

Also, wie der folgende Befehl (hier bedeutet [Leerzeichen] die Eingabe eines Leerzeichens):

[space]echo "this is a top secret"
Nach dem Login kopieren

Wenn Sie zuvor den folgenden Befehl zum Festlegen von Umgebungsvariablen ausgeführt haben, wird der obige Befehl nicht im Verlauf angezeigt.

export HISTCONTROL = ignorespace
Nach dem Login kopieren

Der Screenshot unten ist ein Beispiel für diesen Ansatz.

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

Der vierte „Echo“-Befehl wird nicht im Verlauf aufgezeichnet, da davor ein Leerzeichen steht.

2. Deaktivieren Sie den gesamten Verlauf der aktuellen Sitzung

Wenn Sie den gesamten Verlauf für eine Sitzung deaktivieren möchten, können Sie einfach den Wert der Umgebungsvariablen HISTSIZE löschen, bevor Sie mit der Befehlszeilenarbeit beginnen. Führen Sie den folgenden Befehl aus, um den Wert zu löschen:

export HISTSIZE=0
Nach dem Login kopieren

HISTSIZE gibt die Anzahl der Befehle (Anzahl der Zeilen) an, die in der Verlaufsliste einer Bash-Sitzung gespeichert werden können. Standardmäßig ist er auf einen Wert ungleich Null eingestellt, auf meinem Computer ist er beispielsweise 1000.

Der oben genannte Befehl setzt seinen Wert also auf 0, mit dem Ergebnis, dass nichts im Verlauf gespeichert wird, bis Sie das Terminal schließen. Denken Sie daran, dass Sie zuvor ausgeführte Befehle auch nicht sehen können, wenn Sie die Aufwärtspfeiltaste drücken oder den Befehl „history“ ausführen.

3. Löschen Sie den gesamten Verlauf nach Abschluss der Arbeit

Dies kann als eine weitere Implementierung der im vorherigen Teil vorgeschlagenen Lösung angesehen werden. Der einzige Unterschied besteht darin, dass Sie diesen Befehl ausführen, nachdem Sie Ihre gesamte Arbeit abgeschlossen haben. Das Folgende ist der gerade erwähnte Befehl:

history -cw
Nach dem Login kopieren

Wie gerade erwähnt, hat dies den gleichen Effekt wie die HISTSIZE-Methode.

4. Deaktivieren Sie den Verlauf nur für Ihre Arbeit

Während die zuvor beschriebenen Methoden (2 und 3) ihren Zweck erfüllen, können sie den gesamten Verlauf löschen, und in vielen Fällen entsprechen einige möglicherweise nicht unseren Erwartungen. Manchmal möchten Sie möglicherweise den Verlauf speichern, bis Sie mit der Arbeit an der Befehlszeile begonnen haben. Für solche Anforderungen beginnen Sie mit der Ausführung der folgenden Befehle, bevor Sie mit der Arbeit beginnen:

[space]set +o history
Nach dem Login kopieren

Hinweis: [Leerzeichen] bedeutet Leerzeichen. Und aufgrund der Leerzeichen wird auch der Befehl selbst nicht protokolliert.

Der obige Befehl deaktiviert vorübergehend die Verlaufsfunktion, was bedeutet, dass alle Vorgänge, die Sie nach diesem Befehl ausführen, nicht im Verlauf aufgezeichnet werden, aber alles vor diesem Befehl wird unverändert in der Verlaufsliste aufgezeichnet.

Um die Verlaufsfunktion wieder zu aktivieren, führen Sie den folgenden Befehl aus:

[Space]set -o history
Nach dem Login kopieren

Die Umgebung wird in ihren ursprünglichen Zustand zurückversetzt, d. h. Sie haben Ihre Arbeit abgeschlossen und die Befehle nach der Ausführung des obigen Befehls werden im Verlauf angezeigt.

5. Löschen Sie den angegebenen Befehl aus dem Verlauf

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

history | grep "part of command you want to remove"
Nach dem Login kopieren

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

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

history -d [num]
Nach dem Login kopieren

下面是这个例子的截图。

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

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

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

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

总结

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

Das obige ist der detaillierte Inhalt vonSo verbergen Sie Ihren Linux-Befehlszeilenverlauf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage