Linux コマンド ライン ユーザーの場合、特定のコマンドをコマンド ライン履歴に記録したくない場合があります。理由はさまざまです。たとえば、あなたは会社で特定の地位にあり、他の人に悪用されたくない特定の特権を持っています。または、履歴リストの参照中に誤って実行したくない、特に重要なコマンドがいくつかある場合もあります。
しかし、どのコマンドを履歴リストに入れ、どのコマンドを入れないかを制御する方法はありますか?言い換えれば、Linux ターミナルでブラウザのようなシークレット モードを有効にすることはできますか?答えは「はい」です。希望する具体的な目標に応じて、それを達成する方法はたくさんあります。この記事では、実証済みのいくつかの方法について説明します。
注: この記事に登場するすべてのコマンドは Ubuntu でテストされています。
最初の 2 つの方法は前の記事で説明されています。すでに知っている場合は、この部分をスキップしてください。ただし、理解できない場合は、注意深く読むことをお勧めします。
はい、その通りです。コマンドの前にスペースを挿入すると、コマンドはシェルによって無視され、履歴に表示されなくなります。ただし、この方法には前提条件があります。環境変数 HISTCONTROL が「ignorespace」または「ignoreboth」に設定されている場合にのみ機能します。ほとんどの場合、これがデフォルト値です。
したがって、次のコマンドのようにします (ここで [スペース] はスペースを入力することを意味します):
リーリー以前に以下のコマンドを実行して環境変数を設定したことがある場合、上記のコマンドは履歴に表示されません。
リーリー以下のスクリーンショットは、このアプローチの例です。
4番目の「echo」コマンドは前にスペースがあるため履歴に記録されません。
セッションのすべての履歴を無効にしたい場合は、コマンドライン作業を開始する前に環境変数 HISTSIZE の値をクリアするだけです。次のコマンドを実行して値をクリアします:
リーリーHISTSIZE は、bash セッションの履歴リストに保存できるコマンドの数 (行数) を示します。デフォルトでは、ゼロ以外の値に設定されています。たとえば、私のコンピュータでは 1000 です。
そのため、上記のコマンドは値を 0 に設定し、その結果、ターミナルを閉じるまで履歴には何も保存されません。上矢印キーを押したり、history コマンドを実行したりしても、以前に実行したコマンドを表示することはできないことに注意してください。
これは、前のパートで提案したソリューションの別の実装として見ることができます。唯一の違いは、すべての作業が完了した後にこのコマンドを実行することです。以下は先ほど述べたコマンドです:
リーリー今述べたように、これは HISTSIZE メソッドと同じ効果があります。
前に説明した方法 (2 と 3) は目的を果たしますが、履歴全体を消去する可能性があり、多くの場合、一部は期待どおりではない可能性があります。コマンドラインでの作業を開始するまでの履歴を保存したい場合があります。このようなニーズがある場合は、作業する前に次のコマンドの実行を開始します:
リーリー注: [スペース] はスペースを意味します。また、スペースがあるため、コマンド自体もログに記録されません。
上記のコマンドは履歴機能を一時的に無効にします。つまり、このコマンドの後に実行したすべての操作は履歴に記録されませんが、このコマンド以前の操作はすべて履歴リストにそのまま記録されます。
履歴機能を再度有効にするには、次のコマンドを実行します:
リーリー環境が元の状態、つまり作業が完了した状態に復元され、上記のコマンドを実行した後のコマンドが履歴に表示されます。
现在假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。直接动手删除它们。通过下面的命令来删除:
history | grep "part of command you want to remove"
上面的命令会输出历史记录中匹配的命令,每一条前面会有个数字。
一旦你找到你想删除的命令,执行下面的命令,从历史记录中删除那个指定的项:
history -d [num]
下面是这个例子的截图。
第二个 ‘echo’命令被成功的删除了。
(如果你不希望上述命令本身也被记录进历史中,你可以在上述命令前加个空格)
同样的,你可以使用向上的箭头一直往回翻看历史记录。当你发现你感兴趣的命令出现在终端上时,按下 “Ctrl + U”清除整行,也会从历史记录中删除它。
有多种不同的方法可以操作 Linux 命令行历史来满足你的需求。然而请记住,从历史中隐藏或者删除命令通常不是一个好习惯,尽管本质上这并没有错。但是你必须知道你在做什么,以及可能产生的后果。
以上がLinux コマンドライン履歴を非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。