Linux ::使用Bash历史记录
提高生产率的最好方法之一就是学习更有效地使用Bash历史记录。考虑到这一点,您可能在多用户环境中进行的最重要的调整之一就是histappend 为您的Shell启用该 选项。为此,只需运行以下命令:
shopt -s histappend
这允许多个终端会话同时写入历史记录。在大多数环境中,未 启用此选项 。这意味着,如果您打开了多个Bash会话(本地或通过SSH),历史记录通常会丢失。
另一个常见的任务是使用来重复最后一个命令 sudo。例如,假设您要创建一个目录 mkdir/etc/ansible/facts.d。除非您是root用户,否则此命令将失败。根据我的观察,大多数用户都按下 up 箭头,滚动到该行的开头,然后添加 sudo 命令。有一种更简单的方法。只需像这样运行命令:
sudo !!
Bash将运行sudo ,然后运行 上一个命令的全部。按顺序运行时,它的样子就是这样:
usercentos ~$ -p etcansiblefacts.d mkdir: cannot create directory ‘etcansible’: Permission denied usercentos ~$ -p etcansiblefacts.d
当 !! 运行时,完整命令将回显到终端,因此您知道刚刚执行了什么。
!* 快捷方式类似,但使用频率更低 。这告诉Bash,您希望 在当前命令中重复前一个命令的所有 *arguments*。这对于具有许多要重用的参数的命令可能很有用。一个简单的示例是创建一堆文件,然后更改它们的权限:
usercentos tmp$ file1 file2 file3 file4 usercentos tmp$ 777 777 file1 file2 file3 file4
仅在特定情况下方便使用,但可以节省一些击键操作。
说到保存击键,让我们谈谈在历史记录中查找命令。大多数用户将执行以下操作:
history |grep
但是,有一种更简便的方法来搜索您的历史记录。如果按
ctrl + r
Bash将对您的历史记录进行反向搜索。当您开始输入内容时,结果将开始出现。例如:
(reverse-i-search)`hist': shopt -s histappend
在上面的示例中,我输入了内容, hist 并且它与shopt 我们前面介绍的命令匹配 。如果继续按 ctrl+r,Bash将继续向后搜索所有其他匹配项。
我们的最后一个技巧并不是一个有用的命令,而是可以用来计数和显示历史记录中最常用的命令的一个技巧。
usercentos tmp$ 'BEGIN {FS="[ \t]+|\\|"} {print $3}' -c -nr 81 50 46 45 39 29 nvidia-xrun 20 19
在此示例中,您可以看到这 ssh 是迄今为止我历史上最常用的命令。