Linux的力量“历史命令”在Bash Shell

我们经常使用history命令在我们日常的日常工作,检查命令的历史或获取有关用户执行的命令的信息。 在这篇文章中,我们将看到如何使用history命令有效地提取用户在Bash shell中执行的命令。 这可能是审核的目的有益的或者有发现什么命令是在什么日期时间执行。

默认的日期时间戳在执行history命令不会被看到。 然而,bash shell中提供了编辑用户的命令历史记录CLI工具。 让我们来看看历史命令的一些实用提示和技巧和力量。

历史命令示例

1.列出Linux中的最后/所有执行的命令

从终端执行简单的历史 ,命令将显示与行号最后执行的命令的完整列表。

[narad@youcl ~]$ history
1  PS1='\e[1;35m[\u@\h \w]\$ \e[m '
2  PS1="\e[0;32m[\u@\h \W]\$ \e[m "
3  PS1="\u@\h:\w [\j]\$ "
4  ping google.com
5  echo $PS1
6   tail -f /var/log/messages
7  tail -f /var/log/messages
8  exit
9  clear
10  history
11  clear
12  history

2.列出所有具有日期和时间戳的命令

如何找到日期时间戳对命令? 与变量将显示在执行命令时,相应的时间戳history命令“导出”命令。

[narad@youcl ~]$ export HISTTIMEFORMAT='%F %T  '
1  2013-06-09 10:40:12   cat /etc/issue
2  2013-06-09 10:40:12   clear
3  2013-06-09 10:40:12   find /etc -name *.conf
4  2013-06-09 10:40:12   clear
5  2013-06-09 10:40:12   history
6  2013-06-09 10:40:12   PS1='\e[1;35m[\u@\h \w]\$ \e[m '
7  2013-06-09 10:40:12   PS1="\e[0;32m[\u@\h \W]\$ \e[m "
8  2013-06-09 10:40:12   PS1="\u@\h:\w [\j]\$ "
9  2013-06-09 10:40:12   ping google.com
10  2013-06-09 10:40:12   echo $PS1
HISTTIMEFORMAT变量的含义
%F Equivalent to %Y - %m - %d
%T Replaced by the time ( %H : %M : %S )

3.历史记录中的过滤器命令

我们可以看到相同的命令在上面的输出中被重复多次。 如何过滤历史中的简单或非破坏性命令? HISTIGNORE =指定命令使用下面的' 出口 '命令':密码:日期:ls -l命令'不会被保存制度和历史命令不会显示。

[narad@youcl ~]$ export HISTIGNORE='ls -l:pwd:date:'

4.忽略历史记录中的重复命令

使用以下命令将帮助我们忽略用户创建的重复命令条目。 如果用户在Bash提示符中多次执行相同的命令,则只有单个条目将显示在历史记录中。

[narad@youcl ~]$ export HISTCONTROL=ignoredups

5.取消设置导出命令

在运行时取消设置导出命令。 执行与一个变量的一个什么命令已被导出命令导出未设置导出命令。

[narad@youcl ~]$ unset export HISTCONTROL

6.永久保存导出命令

做一个条目中的.bash_profile如下永久保存导出命令。

[narad@youcl ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export HISTCONTROL=ignoredups
PATH=$PATH:$HOME/bin
export PATH

7.列出特定用户的执行命令

如何查看特定用户执行的命令历史记录。 Bash保留历史记录在“〜/ .bash_history的'文件。 我们可以查看或打开文件以查看命令历史记录。

[narad@youcl ~]$ vi .bash_history
cd /tmp/
cd logstalgia-1.0.3/
./configure
sudo passwd root
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
./configure
make
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc++
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
apt-get install make
mysql -u root -p
apt-get install grsync
apt-get install unison
unison

8.禁用存储命令历史记录

由于组织的安全策略,一些组织不保留命令的历史。 在这种情况下,我们可以修改用户的文件的.bash_profile(这是隐藏文件),并让一个条目如下。

[narad@youcl ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
HISTSIZE=0
export PATH
.bash_profile (END)

使用以下命令保存文件并加载更改。

[narad@youcl ~]$ source .bash_profile

注意:如果您不希望系统记住你键入的命令,只需执行以下命令将禁用或停止的飞行记录历史。

[narad@youcl ~]$ export HISTSIZE=0

温馨提示:搜索“HISTSIZE”和编辑与超级用户“/ etc / profile文件'文件。 文件中的更改将在全局范围内生效。

9.删除或清除命令历史

随着向上向下箭头,我们可以看到以前使用的命令,它可能会有所帮助或愤怒的你。 删除或从“-c”选项bash的历史记录列表中清除所有条目。

[narad@youcl ~]$ history -c

10.历史中的搜索命令使用Grep命令

通过“.bash_history的 ”通过如下管道历史文件到'grep'可以搜索命令。 例如,下面的命令将搜索和查找历史列表'PWD'命令。

[narad@youcl ~]$ history | grep pwd
113  2013-06-09 10:40:12     pwd
141  2013-06-09 10:40:12     pwd
198  2013-06-09 15:46:23     history | grep pwd
202  2013-06-09 15:47:39     history | grep pwd

11.搜索最后执行的命令

搜索先前执行的与'按Ctrl + R“命令命令。 一旦你找到你要找的命令,按“Enter”键执行相同否则按“ESC”键取消。

(reverse-i-search)`source ': source .bash_profile

12.回忆最后执行的命令

调用以前使用的特定命令。 8组合(!8)命令会记得你所执行的8号命令。

[narad@youcl ~]$ !8

13.回忆最后执行的特定命令

回想一下以前使用的命令(netstat的-np | grep的22)'!“ 然后是该特定命令的一些字母。

[narad@youcl ~]$ !net
netstat -np | grep 22
(No info could be read for "-p": geteuid()=501 but you should be root.)
tcp        0     68 192.168.50.2:22             192.168.50.1:1857           ESTABLISHED -
tcp        0      0 192.168.50.2:22             192.168.50.1:2516           ESTABLISHED -
unix  2      [ ]         DGRAM                    12284  -                   @/org/freedesktop/hal/udev_event
unix  3      [ ]         STREAM     CONNECTED     14522  -
unix  2      [ ]         DGRAM                    13622  -
unix  3      [ ]         STREAM     CONNECTED     12250  -                   @/var/run/hald/dbus-ujAjOMNa0g
unix  3      [ ]         STREAM     CONNECTED     12249  -
unix  3      [ ]         STREAM     CONNECTED     12228  -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12227  -

我们试图强调历史命令的力量。 然而,这不是结束。 请通过我们的评论框,与我们分享您的历史命令的经验。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏