如何让linux的historylinux 命令历史记录显示时间记录

为你在 Bash 历史中执行过的每一项命令设置时间和日期-技术 ◆ 学习|Linux中国开源社区
为你在 Bash 历史中执行过的每一项命令设置时间和日期
作者: Ravi Saive译者: Hymantin
在默认情况下,所有通过 Bash 在命令行中执行过的命令都被存储在历史缓存区或者一个叫做 ~/.bash_history 的文件里。这意味着系统管理员可以看到系统上用户执行过的命令清单,或者用户可以通过像 这样的选项来看他或她自己的命令历史。
Linux 历史命令
从上面 的输出可知,命令被执行的日期和时间并没有显示出来。基本上所有的 Linux 发行版的默认设置都是这样的。
在这篇文章里,我们将解释当在 Bash 中执行 history 命令显示每个命令时,如何配置显示时间戳信息。
每个命令相关的日期和时间可以记录到历史文件中,用 HISTTIMEFORMAT 环境变量的设置作为命令历史的备注记录。
这里有两种可行的方式来达到目的:一种是暂时的效果,一种是永久的效果。
要临时设置&HISTTIMEFORMAT 环境变量,在命令行这样输出它:
$ export HISTTIMEFORMAT='%F %T'
在上面的输出命令当中,时间戳格式如下:
1、%F-展开为完整日期,即 %Y-%m-%d(年-月-日)。
2、%T-展开为时间,即 %H:%M:%S(时:分:秒)。
通读 的 man 手册来获得更多使用说明:
$ man date
然后如下检查你的命令历史:
显示带有日期和时间的 Linux 命令历史。
(LCTT 译注:注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置 HISTTIMEFORMAT 变量的时间。)
然而,如果你想永久地配置该变量,用你最喜欢的编辑器打开文件&~/.bashrc。
$ vi ~/.bashrc
然后在下方添加(用注释将其标记为你自己的配置):
# 我的配置
export HISTTIMEFORMAT='%F %T'
保存文件并退出,然后,运行下面的命令以便改动当即生效:
$ source ~/.bashrc
就是这些!请通过下方的评论区来与我们分享一些有趣的历史命令的小技巧以及你对这篇文章的想法。
作者简介:我是 Ravi Saive,TecMint 的创建者。一个爱在网上分享的技巧和提示的电脑极客和 Linux 专家。我的大多数服务器运行在名为 Linux 的开源平台上。请在 Twitter、 Facebook 和 Google 等上关注我。
作者: 译者: 校对:
原创编译, 荣誉推出
点击“了解更多”可访问文内链接
复制:点此复制文章内容
/article-8139-1.html?utm_source=toutiaoLinux下history命令查看时显示操作时间 - 简书
Linux下history命令查看时显示操作时间
BASH内置了一个变量属性HISTTIMEFORMAT,用于格式化history的输出
HISTTIMEFORMAT="%F %T $(whoami) "
这样显示的条目信息为
-05-026 15:10:12 root history | tail
定义脚本并加入到环境变量管理,这样登陆就会生效此功能
# vim /etc/profile.d/history.sh
# add timestamp on history commands
HISTTIMEFORMAT="%F %T $(whoami) "
HISTSIZE=10000
HISTFILESIZE=10000
# source /etc/profile.d/timestamp.sh
脚本里重新定义了保存的历史命令条目数量;默认是保存1000条命令,命名保存在文件~/.bash_history里,文件路径也可以通过变量属性HISTFILE更改的。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 427, 距离下一级还需 73 积分
论坛徽章:0
我和同事用不同的机器登陆到同一台linux服务器上,我用history查看命令只能看到自己终端所操作的命令,如果我也想看到所有连接到此服务器的终端所操作的命令,应该修改什么???
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
家境小康, 积分 1331, 距离下一级还需 669 积分
论坛徽章:0
历史命令都在 .bash_history 文件中呀,每个用户的家目录中都有这个文件的,去看他们的历史命令吧
稍有积蓄, 积分 427, 距离下一级还需 73 积分
论坛徽章:0
.bash_history
这个文件在哪里,怎么看下??3q
家境小康, 积分 1005, 距离下一级还需 995 积分
论坛徽章:0
看不到,他退出登录之前,命令历史记录在内存里,没有写入到文件.
家境小康, 积分 1331, 距离下一级还需 669 积分
论坛徽章:0
本帖最后由
17:35 编辑
.bash_history
这个文件在哪里,怎么看下??3q
ttl289 发表于
在每个用户的家目录里,看文本命令很多,如: cat \ more \ less \ vi 等等这些命令都可以看某个用户的 .bash_history 文件。
例:# more ~user/.bash_history& && &&&看 user 用户的历史命令,但是你要访问的权限才行。
忘说了,看的是上次的历史命令
稍有积蓄, 积分 355, 距离下一级还需 145 积分
论坛徽章:0
.bash_history在每个用户的$HOME下
丰衣足食, 积分 943, 距离下一级还需 57 积分
论坛徽章:0
我和同事用不同的机器登陆到同一台linux服务器上,我用history查看命令只能看到自己终端所操作的命令,如果 ...
ttl289 发表于
& & 写个定时任务,让间隔很短的时间就执行一下history -a
论坛徽章:379
在每个用户的home目录下的.bash_history
稍有积蓄, 积分 427, 距离下一级还需 73 积分
论坛徽章:0
我和同事用的都是root登陆的,我在/root下也找到这个文件,但是我cat /root/.bash_history
里面还只有我这个终端登陆的多条记录(好像1000条吧),我想他所有终端的历史记录!
怎么设置呀????
丰衣足食, 积分 506, 距离下一级还需 494 积分
论坛徽章:5
两人时实看到对方的操作的话可以用
screen命令
相同用户一个再终端输入screen
另一个输入screen -x
然后你们每个人的操作都可以看到对方博客访问: 270712
博文数量: 57
博客积分: 2331
博客等级: 大尉
技术积分: 605
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
inux和unix上都提供了history命令,可以查询以前执行的命令历史记录但是,这个记录并不包含时间项目因此只能看到命令,但是不知道什么时间执行的如何让history记录时间呢?&&解决方案&注意:本方法只对bash-3.0以上版本有效执行rpm -q bash即可显示bash的版本对于常见的linux AS4、AS5,都是有效的---------------------------------------------编辑/etc/bashrc文件,加入如下三行:HISTFILESIZE=2000HISTSIZE=2000HISTTIMEFORMAT="%Y%m%d-%H%M%S: "& 或者HISTTIMEFORMAT="%Y%m%d %T "export HISTTIMEFORMAT
或者一句话:
echo "HISTFILESIZE=2000" && /etc/bashrc && echo "HISTSIZE=2000" && /etc/bashrc && echo 'HISTTIMEFORMAT="%Y%m%d %T "'&& /etc/bashrc && export HISTTIMEFORMAT保存后退出,关闭当前shell,并重新登录这个时候,在~/.bash_history文件中,就有记录命令执行的时间了用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的而是按照unix time来显示:[root@vz ~]# cat ~/.bash_history#touch 3#exit#history&[root@vz ~]#&这个时间叫做unix time,是从日临时起,到现在一共经过了多少秒因为1969年是unix系统诞生,因此日被规定为unix系统诞生的时间的初始linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了,例如:[root@vz ~]# history | more1 935: ll2 935: w3 935: rm -rf *4 935: ll5 935: w6 935: cat /etc/redhat-release&7 935: rpm -ivh expect-5.42.1-1.i386.rpm&8 935: ll9 935: vi /etc/sysconfig/i18n&10 935: ll11 935: rpm -q expect[root@vz ~]#这样即可查看到在什么时间执行了什么命令。注意:本方法必须在服务器刚刚新安装好时候,就设置这个参数。如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。
阅读(4847) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。
1&History命令语法:
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
:数字,要列出最近的 n 笔命令列表
:将目前的shell中的所有 history 内容全部消除
:将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,
则预设写入 ~/.bash_history
:将 histfiles 的内容读到目前这个 shell 的 history 记忆中
:将目前的 history 记忆内容写入 histfiles
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。
如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。
linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。
2&运行特定的历史命令
history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号接编号”的方式运行特定的历史命令.
[test@linux]# [!number]
[!command] [!!]
参数说明:
:第几个指令的意思;
:指令的开头几个字母
:上一个指令的意思!
3&History命令实战
列出所有的历史记录:
[test@linux] # history
只列出最近10条记录:
[test@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[test@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[test@linux] #!!
执行最后一次以rpm开头的命令(!?
?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[test@linux] #!rpm
逐屏列出所有的历史记录:
[test@linux]# history | more
立即清空history当前所有历史命令的记录
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 终端提示下,你也可以使用上下方向键来翻阅命令历史(向下箭头会向前翻阅),直到你找到所需命令为止。这可以让我们很方便地编辑前面的某一条命令,而不用重复输入类似的命令。
History命令的用途确实很大!但需要小心安全的问题!尤其是 root 的历史纪录档案,这是黑客们的最爱!因为不小心的 root 会将很多的重要资料在执行的过程中会被纪录在 ~/.bash_history 当中,如果这个档案被解析的话,后果不堪设想!

我要回帖

更多关于 linux history 记录数 的文章

 

随机推荐