迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash History 大小

作者:迹忆客 最近更新:2023/05/18 浏览次数:

在本篇文章中,我们将了解 Bash 的历史、它的大小,以及我们如何更改我们的历史大小和处理限制。 在进入我们的主题之前,让我们首先了解为什么我们需要 Bash shell 中的历史记录以及我们如何获取它。

大多数开发人员、系统管理员和软件应用工程师在 Linux 命令行上花费大量时间。 作为人类,他们会犯打字错误。

此外,许多命令都有一个参数/选项列表(及其各自的顺序)。 因此,很难按照它们的确切顺序记住它们。

因此,历史可以帮助我们回忆起之前在 Bash shell 中键入的命令。


Bash 历史概述

在历史方面,Bash 会跟踪命令、文件和快捷方式。 用户可以使用历史实用程序在命令行上键入。

历史实用程序提供有用的信息。 它有助于追踪当前系统或帐户更改可能是如何发生的。

Bash 有两个与 Bash 历史相关的内置命令:

  1. history- 这个命令提供了你的 Bash 历史中以前使用过的命令的列表,它还允许你修改 Bash 历史
  2. fc - 此命令执行历史命令的所有任务并允许执行该命令。

所有关于 Bash 历史的信息都将保存在 Bash 用户的 ~/.bash_history 文件中,而对于其他用户它可能只是 .history 。

让我们从历史命令开始,看看它是如何工作的。


使用 Bash history 命令查看 Bash 历史记录

如果你想查看你的整个历史记录,你可以在 shell 中编写 history 命令。 它将列出历史文件中的整个历史。

$ history

输出将如下所示:

    1  ping baidu.com
    2  sudo apt update
    3  ping baidu.com
    4  java --version
    5  sudo apt install openjdk-17-jre-headless
    6  sudo apt-get install gcc
    7  sudo apt-get install gpp
    8  sudo apt-get install g++
    9  sudo apt-get install mingw-w64
   10  sudo apt-get install codeblocks
   11  codeblocks
   12  sudo apt update
   13  sudo apt update mu-editor
   14  sudo apt install mu-editor
   15  sudo apt update
   16  python3 --version
   17  clear
   18  snap find pycharm
   19  sudo snap install pycharm-professional --classic
   20  clear
   21  cd desktop/python
   22  cd desktop/python task5.py
    ...

还有其他有用的 Bash 历史命令,我们不会解释,但您可以从这个网站上阅读它们。

Linux 中 Bash 中的 fc 命令也称为 fix 命令。 主要是用来修改多行命令。

fc 命令的参数 -l 显示以前的命令历史记录。

让我们看一下命令及其输出的以下示例:

$ fc -l
302     284 ./a.out
303     285 gcc execve1.c -o e1
304     286 gcc execve2.c
305     287 ./a.out
306     288 $ sudo snap install whatsdesk
307     289 sudo snap install whatsdesk
308     290 cd ..
309     291 cd CodeForces/
310     292 pwd
311     293 history
312     294 1  ping google.com
313     295 ls
314     296 wc Test.c
315     297 fc -l
316     298 ls
317     clear

Bash 历史大小

如果你说到 Bash 历史文件,你认为也有一些数据。 Bash 历史文件的默认值为 500 到 1000。

它是历史文件中的最大条目数。 但它不是永久性的,因为我们可以使用不同的命令将历史大小配置到我们想要的程度。

让我们探索一下。

配置 Bash 历史记录

要配置 Bash 命令历史记录,您必须更改 ~/.bashrc 文件。 可以使用以下 nano 命令更新 ~/.bashrc 文件:

$ nano ~/.bashrc

修改完成后,按 Ctrl+O,然后按 Ctrl+X 保存并关闭 nano 编辑器。 然后,运行以下命令重新加载 Bash 设置:

$ source ~/.bashrc

或者

$ . ~/.bashrc

这两个命令都会在 Bash 历史文件中进行修改。


修改 Bash 历史文件大小

变量 HISTSIZE 和 HISTFILESIZE 与 Bash 历史有关。 变量 HISTSIZE 具有要缓存的最大 Bash 命令的计数,而变量 HISTFILESIZE 具有存储在历史文件中的顶级命令的计数。

默认情况下,我们最多可以在历史文件中保留 500 条命令。

我们可以通过打印这些变量来查看这些值; 输出可能因不同的机器/配置而异。 这是一个示例运行和相关结果:

$ echo $HISTSIZE
$ echo $HISTFILESIZE
1000
2000

我们可以通过将以下行添加到文件 ~/.bashrc 来配置这些值:

$ HISTSIZE = 6000
$ HITFILESIZE = 6000

同样,我们可以打印这些变量来检查值:

$ echo $HISTSIZE
$ echo $HISTFILESIZE
6000
6000

设置无限的 Bash 历史文件大小

上一节讨论了在 Bash 中修改历史大小的方法。 但是,有时将其设置为不受限制的大小会很方便。 我们将如何做到这一点? 让我们一起探索吧!

您还可以使用以下步骤设置 Bash 历史记录大小或文件总大小:

  • 更改 Bash 历史文件。 正如您在 StackOverFlow 中看到的那样,Bash 历史文件存在一些问题,因为它在某些情况下会被截断。

    我们可以通过更改 HISTFILE 环境变量以使用不同的目录来解决这个问题。

    export HITSFILE= ~/.history
    
    HISTFILE 是指历史文件的路径/位置(默认为 ~/.bash_history)。
  • 增加历史大小。 将 HISTFILESIZE 和 HISTSIZE 变量设置为空字符串以使 Bash 历史记录大小不受限制。
    $ export HITSFILESIZE=
    $ export HITSIZE=
    
  • 复制现有的历史。 虽然我们使用的是一个新的历史文件,但我们不应该丢失以前的文件命令,因此我们将旧文件的内容复制到新文件中。
    $ cp ~/.bash_history ~/.history
    

控制 Bash 历史

您可以从 Bash 历史记录中排除命令以避免输出噪音或安全原因。 您可以使用历史控制命令 HISTCONTROL 来执行此操作,该命令控制存储的历史记录。

您可以将其指定为忽略 ~/.bashrc 文件中重复的条目和带有前导空格的条目。

  • ignorespace – 这消除了以空间历史列表开头的命令。
  • ignoredups——这消除了重复的命令。
  • ignoreboth – 这会同时启用 ignoreups 和 ignorespace。
  • erasedups - 这会从整个列表中删除重复项。
$ export HISTCONTROL=ignorespace:ignoredups

您还可以使用变量 HISTIGNORE 控制要忽略的命令。 它是一个以冒号分隔的模式列表,我们可以在其中指定我们想要从历史记录中省略的所有命令。

例如,如果您想在历史列表中忽略基本和最常用的命令(例如 lspwd),请在 ~/.bashrc 文件中写入以下行:

$ export HISTIGNORE="ls:pwd:"

与重复旧命令相比,您可以使用 Linux Bash 命令历史执行更多操作。


注销前将历史记录保存到 HISTFILE

只有在用户注销后,这些命令才会写入 Bash 文件。 但是,write 选项可用于 history 命令以在注销前将历史记录写入文件。

语法是:

$ history -w

此命令会将所有当前会话命令历史记录写入 HISTFILE。 在此之后,命令脚本将可供将来使用。

最后,在本文中,我们介绍了 Bash 历史记录、历史记录大小和文件大小,或者我们如何将 Bash 历史记录及其大小修改为有限或无限范围。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

批处理脚本中的 For 循环

发布时间:2023/05/19 浏览次数:103 分类:操作系统

本篇文章将介绍如何在批处理脚本中使用 FOR 循环。循环用于连续执行特定任务,直到达到程序员指定的次数。 这个 FOR 循环有不同的版本。

批处理脚本中的 For \F

发布时间:2023/05/19 浏览次数:151 分类:操作系统

本文将讨论在批处理脚本中使用 FOR /F 循环。在批处理脚本中使用 FOR /F 循环 此类 FOR 循环的一般格式如下所示:

批处理文件循环遍历子目录中的文件

发布时间:2023/05/19 浏览次数:163 分类:操作系统

本文说明了我们如何编写一个批处理脚本来循环遍历子目录中的文件。 我们将举一个例子来解释这个概念。批处理文件循环遍历子目录中的文件

批处理文件删除文件名的 X 个字符

发布时间:2023/05/19 浏览次数:136 分类:操作系统

本文说明了我们如何使用批处理脚本从文件的文件名中删除特定字符。 我们将在下面介绍在 Windows 上重命名文件的几种方法。Windows 上的文件资源管理器重命名

在批处理脚本中声明变量

发布时间:2023/05/19 浏览次数:69 分类:操作系统

本文将演示如何在批处理脚本中声明和定义变量。在批处理脚本中声明变量。在 Batch 中,不需要使用任何其他关键字来声明整数、浮点数、双精度或字符串类型变量。

在批处理脚本中将文件读入变量

发布时间:2023/05/19 浏览次数:174 分类:操作系统

本文将向我们展示如何将整个文件内容放入一个变量中,此外,我们还将看到一个示例和解释,以使该主题更容易理解。使用FOR循环批量读取变量中的文件

Batch 检查指定的环境变量是否包含子字符串

发布时间:2023/05/19 浏览次数:108 分类:操作系统

本文讨论如何使用 Batch 命令来测试某个环境变量是否包含特定的子字符串。 我们将介绍可以在上述场景中使用的两个批处理脚本。检查指定的环境变量是否包含子字符串

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便