bash 历史记录

运行Bash的Linux终端具有内置的历史记录,您可以用来跟踪最近的操作。 要查看您的Bash会话的历史记录,请使用内置的命令history

$ echo "foo"
foo
$ echo "bar"
bar
$ history
1  echo "foo"
2  echo "bar"
3  history

与大多数命令一样, history命令不是文件系统上的可执行文件,而是Bash的功能。 您可以使用type命令来验证这一点:

$ type history
history is a shell builtin

历史控制

Shell历史记录中的行的上限由HISTSIZE变量定义。 您可以在.bashrc文件中设置此变量。 以下将您的历史记录设置为3,000行,此后,最旧的行被删除以为最新命令腾出空间,该命令位于列表的底部:

 export HISTSIZE = 3000 

还有其他与历史相关的变量。 HISTCONTROL变量控制存储什么历史记录。 您可以通过将Bash放在.bashrc文件中来强制Bash排除以空格开头的命令:

 export HISTCONTROL = $HISTCONTROL :ignorespace 

现在,如果键入以空格开头的命令,该命令将不会记录在历史记录中:

$ echo "hello"
$     mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1  echo "hello"
2  echo "world"
3  history

您也可以避免重复输入:

 export HISTCONTROL = $HISTCONTROL :ignoredups 

现在,如果您键入两个命令,一个接一个,则历史记录中只会出现一个:

$ ls
$ ls
$ ls
$ history
1  ls
2  history

如果您同时喜欢这两种忽略,则可以使用ignoreboth :

 export HISTCONTROL = $HISTCONTROL :ignoreboth 

从历史记录中删除命令

有时您会犯一个错误,并在shell中键入一些敏感内容,或者您​​只是想清理历史记录,以便它更准确地代表您使某件东西正常工作所采取的步骤。 如果要从Bash的历史记录中删除命令,请使用-d选项和要删除的项目的行号:

$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535  echo "foo"
536  echo "bar"
537  history | tail
$ history -d 536
$ history | tail
535  echo "foo"
536  history | tail
537  history -d 536
538  history | tail

要停止添加history条目,可以在命令之前放置一个space ,只要您在HISTCONTROL环境变量中具有ignorespace

$  history | tail
535  echo "foo"
536  echo "bar"
$  history -d 536
$  history | tail
535  echo "foo"

您可以使用-c选项清除整个会话历史记录:

$ history -c
$  history
$

历史课

根据需要使用历史记录会话,并明智地行使对历史的控制权。 快乐的历史黑客!

翻译自: https://opensource.com/article/20/6/bash-history-control

bash 历史记录

bash 历史记录_这些提示使Bash历史记录更加有用相关推荐

  1. bash 命令提示符_命令行上每天的Bash提示

    bash 命令提示符 作为许多Linux和Unix变体的默认外壳,Bash包括各种未被充分利用的功能,因此很难决定讨论什么. 最终,我决定专注于使日常活动变得更轻松的Bash技巧. 作为顾问,我看到了 ...

  2. linux bash 变量_如何在Linux上的Bash中设置环境变量

    linux bash 变量 fatmawati achmad zaenuri/Shutterstock Fatmawati achmad zaenuri / Shutterstock There's ...

  3. sh脚本和bash脚本_我是如何开始使用bash脚本的

    sh脚本和bash脚本 前几天我写了一个剧本. 对于某些人来说,这句话听起来没什么大不了的. 对于其他人,我知道您在外面,那句话很重要. 你看,我不是程序员. 我是作家 我需要解决的问题 我的问题很简 ...

  4. Linux下bash:command not found提示

    linux下提示bash:command not found 新安装的linux系统,如果进行精简安装可能会出现bash:command not found 的提示,大家在安装的时候可以选择默认安装b ...

  5. linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案

    linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案 参考文章: (1)linux输入yum后提示: -bash: /u ...

  6. mysqlcheck命令时提示: bash: mysqlcheck: command not found

    mysqlcheck命令时提示: bash: mysqlcheck: command not found 收藏 打印来源:     浏览188次 [共0条评论]2013-01-14 22:12:10 ...

  7. 用mysqlbinlog命令查看二进制日志文件提示: -bash:mysqlbinlog:command not found

    Linux下使用mysqlbinlog工具报错(-bash: mysqlbinlog: command not found) 使用mysqlbinlog查看二进制日志报错,提示找不到mysqlbinl ...

  8. shell bash脚本_如何在Windows 10上创建和运行Bash Shell脚本

    shell bash脚本 With the arrival of Windows 10's Bash shell, you can now create and run Bash shell scri ...

  9. 禁用删除键退回历史记录_如何在Windows 8中删除或禁用搜索超级按钮历史记录

    禁用删除键退回历史记录 When you use the Search Charm in Windows 8 it remembers everything you search for, which ...

最新文章

  1. Ubuntu 16.04下的LAMP环境配置
  2. mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程
  3. 评上了7月份的Microsoft MVP
  4. 散点图为什么是两组点_SAT数学易错点排雷之scatter plot
  5. sed修炼系列(三):sed高级应用之实现窗口滑动技术
  6. Mysql 解决left join 数据重复的问题
  7. Chrome插件 - 突破百度网盘下载限制(大文件直接下载、使用迅雷下载)
  8. java中级考试_Java中级开发工程师笔试题及答案2016
  9. ABB机器人Test指令
  10. SystemUI 布局
  11. java定时任务cron表达式每周执行一次的坑
  12. 素材网下载图片要 VIP ? 不存在的
  13. 鸟哥的Linux 私房菜 (1-12) + my
  14. 2022年危险化学品生产单位安全生产管理人员操作证考试题库及答案
  15. python抓取微博评论的图片_用Python语言爬虫抓取微博评论图文教程
  16. Win32关于调整窗口大小时,窗口闪烁问题及解决办法
  17. Web 服务寻址(WS-Addressing)对 SOAP 的隐式影响
  18. python程序设计第三版约翰策勒第六章编程练习答案
  19. 反射如何打破封装性_打破产品建议的复杂性
  20. 在Vue项目和微信小程序中使用阿里图标

热门文章

  1. 问题:pom文件有删除线,不能识别maven模块
  2. RabbitMQ消息确认以及return机制
  3. apache druid 与kafka整合使用
  4. 基于docker使用jenkins集成sonar
  5. 我来重新学习 javascript 的面向对象(part 1)
  6. Michael Dell承诺打造新的EMC/戴尔/VMware工程技术系统
  7. linux下用gtk+写比赛赌博GUI小游戏
  8. kindeditor编辑器 编辑器textarea不能获取到内容的解决办法
  9. 敏捷开发日常跟进系列之四:跟进表
  10. 性能测试 Performance Test