这些技巧让 Bash 命令历史更加有用

新闻 Linux
告诉 Bash 你想要它记住什么,甚至删除不需要的记录重写历史。

 [[332481]]

告诉 Bash 你想要它记住什么,甚至删除不需要的记录重写历史。

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

  1. $ echo "foo" 
  2. foo 
  3. $ echo "bar" 
  4. bar 
  5. $ history 
  6.   1  echo "foo" 
  7.   2  echo "bar" 
  8.   3  history 

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

  1. $ type history 
  2. history is a shell builtin 

历史控制

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

  1. export HISTSIZE=3000 

还有其他与历史相关的变量。 HISTCONTROL 变量控制哪些历史被记录。你可以在 .bashrc 中写入下面的行来强制 Bash 排除以空格开头的命令:

  1. export HISTCONTROL=$HISTCONTROL:ignorespace 

现在,如果你输入以空格开头的命令,那么它将不会记录在历史记录中:

  1. $ echo "hello" 
  2. $     mysql -u bogus -h badpassword123 mydatabase 
  3. $ echo "world" 
  4. $ history 
  5.   1  echo "hello" 
  6.   2  echo "world" 
  7.   3  history 

你也可以避免重复的条目:

  1. export HISTCONTROL=$HISTCONTROL:ignoredups 

现在,如果你一个接着一个输入两个命令,历史记录中只会显示一个:

  1. $ ls 
  2. $ ls 
  3. $ ls 
  4. $ history 
  5.   1  ls 
  6.   2  history 

如果你喜欢这两个忽略功能,那么可以使用 ignoreboth:

  1. export HISTCONTROL=$HISTCONTROL:ignoreboth 

从历史记录中删除命令

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

  1. $ echo "foo" 
  2. foo 
  3. $ echo "bar" 
  4. bar 
  5. $ history | tail 
  6.   535  echo "foo" 
  7.   536  echo "bar" 
  8.   537  history | tail 
  9. $ history -d 536 
  10. $ history | tail 
  11.   535  echo "foo" 
  12.   536  history | tail 
  13.   537  history -d 536 
  14.   538  history | tail 

要停止添加 history 条目,只要在 HISTCONTROL 环境变量中有 ignorespace,就可以在命令前添加空格:

  1. $  history | tail 
  2.   535  echo "foo" 
  3.   536  echo "bar" 
  4. $  history -d 536 
  5. $  history | tail 
  6.   535  echo "foo" 

你可以使用 -c 选项清除所有会话历史记录:

  1. $ history -c 
  2. $  history 

history 命令的经验教训

操纵历史通常没有听起来那么危险,尤其是当你有目标地管理它时。例如,如果你要记录一个复杂的问题,通常最好使用会话历史来记录命令,因为通过将命令插入历史记录,你能运行它们并从而测试过程。很多时候,不执行历史命令会导致忽略小的步骤或写错小细节。

按需使用历史会话,并明智地控制历史记录。享受历史修改吧!

 

责任编辑:张燕妮 来源: Linux中国
相关推荐

2018-10-18 15:56:21

bash histor系统安全命令

2015-09-06 10:01:24

2020-01-13 14:00:06

技巧VLCLinux

2011-06-02 17:44:14

锚文本

2021-03-03 08:02:13

JavaScript函数字节

2022-03-18 08:00:48

Chrome工具前端

2022-09-19 15:02:24

C语言

2011-05-16 11:04:48

界面设计

2009-12-14 11:18:59

无线路由器

2018-04-15 15:43:46

Git技巧命令

2010-09-15 17:14:44

APC

2022-08-13 09:19:07

Bash命令Linux

2018-09-06 10:16:39

2009-12-25 17:20:13

Linux Bash命

2023-07-07 07:53:26

Python异常处理

2018-01-31 11:20:48

2014-06-17 10:02:58

Bash Getopt命令行

2013-01-21 10:18:40

2013-01-16 15:10:19

云计算大数据
点赞
收藏

51CTO技术栈公众号