当前位置: 首页 > 科技观察

如何隐藏您的Linux命令行历史_0

时间:2023-03-17 11:04:14 科技观察

如果您是Linux命令行用户,有时您可能不希望某些命令被记录在您的命令行历史中。可能有很多原因,比如你在公司担任某个职位,你有一些特权,你不想被别人滥用。或者有一些特别重要的命令,不想在浏览历史列表时误执行。但是,有没有办法控制哪些命令进入历史列表,哪些不进入历史列表?或者换句话说,我们能不能像Linux终端中的浏览器一样启用隐身模式?答案是肯定的,而且要看你想要达到特定目标的方法有很多种。在本文中,我们将讨论一些行之有效的方法。注意:本文中出现的所有命令均已在Ubuntu下进行测试。不同的可能方法前两种方法已在上一篇文章中进行了描述。如果您已经知道,可以跳过这部分。但是,如果您不理解,建议您仔细阅读。1.在命令前插入一个空格是的,你没有看错。在命令前插入一个空格会导致它被shell忽略,这意味着它不会出现在历史记录中。但是这个方法有一个前提,只有当你的环境变量HISTCONTROL设置为“ignorespace”或者“ignoreboth”时,它才会起作用。在大多数情况下,这是默认设置。所以,像下面的命令(LCTT译注:这里的[space]表示输入一个空格):历史。exportHISTCONTROL=ignorespace下面的截图是这种方法的一个例子。第四个“echo”命令没有记录在历史中,因为它前面有一个空格。2.禁用当前会话的所有历史记录如果要禁用某个会话的所有历史记录,可以在开始命令行工作之前清除环境变量HISTSIZE的值。执行以下命令清除其值:exportHISTSIZE=0HISTSIZE表示bash会话历史列表中可以保存的命令数(行数)。默认情况下,它设置为非零值,例如我电脑上1000。所以上面提到的命令将其值设置为0,因此在您关闭终端之前,历史记录中不会存储任何内容。还请记住,您无法通过按向上箭头键或运行历史命令来查看以前执行的命令。3.工作结束后清除整个历史这可以看作是上一节提出的解决方案的另一种实现。唯一的区别是这个命令是在你完成所有工作之后执行的。这是刚才提到的命令:history-cw前面提到过,这与HISTSIZE方法具有相同的效果。4.只为你的工作关闭历史虽然前面描述的方法(2和3)起到了作用,但它们清除了整个历史,在许多情况下,有些可能不是我们想要的。有时您可能希望在开始使用命令行之前保存历史记录。对于这样的需求,在开始工作前执行如下命令:[space]set+ohistory注意:[space]表示一个空格。由于有空格,命令本身也不会被记录。上面的命令会暂时关闭历史功能,也就是说你在这条命令之后执行的所有操作都不会被记录在历史中,但是在这条命令之前的所有操作都会原封不动地记录在历史列表中。要重新启用历史功能,执行以下命令:[Space]set-ohistory它将把环境恢复到原来的状态,即你已经完成了你的工作,执行以上命令后的命令将出现在历史。5.从历史记录中删除指定的命令现在假设历史记录中已经包含了一些您不想记录的命令。在这种情况下我们该怎么办?这很简单。只需手动删除它们。使用以下命令删除:history|grep"partofcommandyouwanttoremove"上面的命令会输出历史中匹配的命令,每条命令前面都有一个数字。找到要删除的命令后,执行以下命令从历史记录中删除指定的项目:history-d[num]以下是此示例的屏幕截图。第二个“echo”命令已成功删除。(LCTT译注:如果你不想让上面的命令本身被记录在历史中,可以在上面的命令前加一个空格)同样,你可以使用向上箭头向后滚动浏览历史。当您找到您感兴趣的命令出现在终端上时,按“Ctrl+U”清除整行并将其从历史记录中删除。总结有许多不同的方法来操纵Linux命令行历史以满足您的需要。但是,请记住,从历史记录中隐藏或删除命令通常不是一个好的做法,即使它本身并没有什么错误。但是你必须知道你在做什么,以及可能的后果。via:https://www.maketecheasier.com/linux-command-line-history-incognito/作者:HimanshuArora译者:chunyang-wen校对:wxy