
<p id="350NGVLP">我都记不清有多少回我得重新用一个命令了,如果你和我一样,你就知道这有多令人沮丧。但默认的历史设置就存有限量的命令,这意味着重要的命令可能在你最需要的时候消失。</p><p><h5>为啥我要用无限制的 Bash 历史记录</h5></p><p id="350NGVLQ">如果你曾经滚动浏览你的命令历史记录以查找几周前的一个复杂命令,你就知道 Bash 历史记录有多有用。但默认情况下,大多数系统只存储大约 500 到 1000 个命令。这听着可能不少,但要是你跟我似的大量用 Bash——比如在设置环境或自动化任务时——你很快就会用完。</p><p id="350NGVLR">无限制的历史记录能保证我输入的每个命令都存起来了,而且还容易搜。无论我是需要进行故障排除、重新访问一个长命令,还是避免输入相同的内容两次,它都在我的指尖。我发现当在机器或虚拟环境之间切换时,它特别有用,在那里重新使用命令是我日常工作流程的一部分。</p><p><h5>我如何设置无限制的 Bash 历史记录</h5></p><p id="350NGVLS">下面就是我在自己系统上设置的办法,你也能这么来</p><p id="350NGVLV">在进行任何更改之前,一定要确保给文件做好备份。</p><p><h5>打开您的 Bash 配置文件</h5></p><p id="350NGVM2">您得调整 <strong>~/.bashrc</strong> 或者 <strong>~/.bash_profile 文件</strong>。我通常用<strong>.bashrc</strong>,因为每次一打开终端它就会运行。 您可以使用 nano 打开它:</p><p>nano ~/.bashrc <h5>修改历史大小变量</h5></p><p id="350NGVM3">在配置文件里把这些行修改一下:</p><p><ul><li id="350NGVMP">HISTSIZE=-1</li><li id="350NGVMQ">HISTFILESIZE=-1</li></ul></p><p id="350NGVM4">这会取消您的历史记录中可保存命令数量的限制。</p><p><h5>启用历史记录追加</h5></p><p id="350NGVM5">我了解到这么一件事,如果不启用历史记录追加,不同会话中的命令可能会被覆盖。为避免这种情况,要是还没包含的话,请添加以下这行。</p><p>shopt -s histappend</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1103%2Ff4272b6082f3ab1a963be32e3f74a1c3.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>重新加载您的配置</h5></p><p id="350NGVM9">完成这些更改后,用以下命令来应用:</p><p>执行 `source ~/.bashrc` <h5>为什么无限的 Bash 历史记录可能并非适合所有人</h5></p><p id="350NGVMA">尽管我喜欢拥有无限的历史记录,但我明白这并非对所有人而言都是正确的选择。以下是一些可能用力过猛甚至存在风险的情况:</p><p><ul><li id="350NGVMR"><strong>隐私问题</strong>: 如果您在敏感系统上工作或共享您的机器,无限期地存储每个命令或许会暴露机密信息。例如,带有密码或令牌的命令可能最终出现在历史记录中,这可不是您希望随意留存的东西。</li><li id="350NGVMS"><strong>系统开销</strong>: 如果您输入许多命令,您的历史文件可能会变得臃肿,这可能会减慢历史搜索的速度。我不常碰到这种情况,但这得记住。</li><li id="350NGVMT"><strong>混乱的历史记录</strong>: 有时,拥有过多的历史记录可能会使您更难找到所需的内容。如果您一天多次输入相同的命令,您的历史记录可能会很快填满并变得难以处理。</li></ul></p><p id="350NGVMB">如果这些问题适用于您,您或许希望在并非完全无限的情况下增大历史记录的大小。</p><p><h5>我管理长 Bash 历史记录的提示</h5></p><p id="350NGVMC">为了让我的历史记录保持干净且具有相关性,我在我的 <strong>.bashrc</strong> 中使用 <strong>HISTCONTROL=ignoreboth</strong> 设置。此设置确保:</p><p><ul><li id="350NGVMU">重复的命令不会被保存在历史记录当中。</li><li id="350NGVMV">以空格开头的命令不会被记录,这对于我如果需要临时运行某些内容或者防止某些命令(比如敏感命令)被存储是很有帮助的。</li></ul></p><p id="350NGVMD">这在文件里是这样的:</p><p>HISTCONTROL=ignoreboth</p><p id="350NGVME">这种组合提供了更多的控制权,能让我的历史记录保持整洁,并且在必要的时候隐藏命令。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1103%2F8d6a6009eb3b89ef4e8e80f44087a35b.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>使用 Ctrl+R 快速搜索命令</h5></p><p id="350NGVMI">我最喜欢的快捷键之一是 Ctrl+R。您通过输入部分命令,它就能让您在历史记录中往后搜索。当您想要回忆特定内容的时候,它能节省大量时间。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1103%2F8fe69dca32a0566a30ccae1cd5.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>对于重复命令使用别名(但要留意空格)</h5></p><p id="350NGVMM">别名在缩短长命令方面非常有用,但在设置它们时要小心,如果处理不当,空格可能会导致错误。创建别名时,请确保 <strong>=</strong> 符号周围没有空格。</p><p id="350NGVMN"> 为我设置无限制的 Bash 历史记录是一种打破常规的做法。它让我的工作流程更加顺畅,还使我不必重新输入或忘记重要的命令。但它并非适合所有人——要是您担心隐私、系统性能或者混乱,在并非完全无限制的情况下增加历史记录大小或许是一个更好的选择。</p><p id="350NGVMO">要是您想简化工作流程并把每个命令都掌控在手中,只是要记得通过别名和重复过滤来保持事务的可管理性,这样您的历史记录就能保持有用,而不会让人感到不知所措。</p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151751.html