Bash History 大小
在本篇文章中,我们将了解 Bash 的历史、它的大小,以及我们如何更改我们的历史大小和处理限制。 在进入我们的主题之前,让我们首先了解为什么我们需要 Bash shell 中的历史记录以及我们如何获取它。
大多数开发人员、系统管理员和软件应用工程师在 Linux 命令行上花费大量时间。 作为人类,他们会犯打字错误。
此外,许多命令都有一个参数/选项列表(及其各自的顺序)。 因此,很难按照它们的确切顺序记住它们。
因此,历史可以帮助我们回忆起之前在 Bash shell 中键入的命令。
Bash 历史概述
在历史方面,Bash 会跟踪命令、文件和快捷方式。 用户可以使用历史实用程序在命令行上键入。
历史实用程序提供有用的信息。 它有助于追踪当前系统或帐户更改可能是如何发生的。
Bash 有两个与 Bash 历史相关的内置命令:
- history- 这个命令提供了你的 Bash 历史中以前使用过的命令的列表,它还允许你修改 Bash 历史
- 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
-
增加历史大小。 将 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 控制要忽略的命令。 它是一个以冒号分隔的模式列表,我们可以在其中指定我们想要从历史记录中省略的所有命令。
例如,如果您想在历史列表中忽略基本和最常用的命令(例如 ls
和 pwd
),请在 ~/.bashrc 文件中写入以下行:
$ export HISTIGNORE="ls:pwd:"
与重复旧命令相比,您可以使用 Linux Bash 命令历史执行更多操作。
注销前将历史记录保存到 HISTFILE
只有在用户注销后,这些命令才会写入 Bash 文件。 但是,write 选项可用于 history 命令以在注销前将历史记录写入文件。
语法是:
$ history -w
此命令会将所有当前会话命令历史记录写入 HISTFILE。 在此之后,命令脚本将可供将来使用。
最后,在本文中,我们介绍了 Bash 历史记录、历史记录大小和文件大小,或者我们如何将 Bash 历史记录及其大小修改为有限或无限范围。
相关文章
批处理脚本中的 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 浏览次数:136 分类:操作系统
-
我们将讨论所有的方法和可能性。 本教程将讨论从批处理文件中的变量中删除双引号。在批处理文件中使用波浪字符删除双引号
在批处理脚本中将文件读入变量
发布时间:2023/05/19 浏览次数:174 分类:操作系统
-
本文将向我们展示如何将整个文件内容放入一个变量中,此外,我们还将看到一个示例和解释,以使该主题更容易理解。使用FOR循环批量读取变量中的文件
Batch 检查指定的环境变量是否包含子字符串
发布时间:2023/05/19 浏览次数:108 分类:操作系统
-
本文讨论如何使用 Batch 命令来测试某个环境变量是否包含特定的子字符串。 我们将介绍可以在上述场景中使用的两个批处理脚本。检查指定的环境变量是否包含子字符串