[dmtsai@study ~]$
!number
[dmtsai@study ~]$
!command
[dmtsai@study ~]$
!!
选项
参数
number
行第几
指令的意思;
command
:由最½的指令向前搜
『指令串
开头为
command
』的那
指令,并
行;
!!
:就是
行上一
指令
(
于按↑按
后,按
Enter)
[dmtsai@study ~]$
history
66 man rm
67 alias
68 man history
69 history
[dmtsai@study ~]$
!66
<==
行第
66
指令
[dmtsai@study ~]$
!!
<
==
行上一
指令,本例中亦即
!66
[dmtsai@study ~]$
!al
<==
行最½以
al
为开头
的指令
(
列出的第
67
)
经过上面的½绍,瞭乎?历史命令用法可多了!如果我想要执行上一个指令,
除了使用上下键之外,
我可以直½以『
!!
来下达上个指令的内容,此外,
我也可以直½选择下达第
n
个指令,『
!n
来执行,也可以使用指令标头,例如
!vi
』来执行最½指令开头是
vi
的指令列!相当的方便而
好用!
基本上
history
的用途很大的!但是需要小心安全的问题!尤其是
root
的历史纪录文件,这是
Cracker
的最爱!因为不小心的
root
会½很多的重要数据在执行的过程中会被纪录在
~/.bash_history
当中,
如果这个文件被½析的话,后果不堪吶!无论如何,使用
history
配合『
!
』曾经使用过的指令下
达是很有效率的一个指令下达方法!
.
同一账号同时多次登入的
history
写入问题
有些朋友在练习
linux
的时候喜欢同时开好几个
bash
½口,这些
bash
的身份都是
root
这样会
~/.bash_history
的写入问题吗?想一想,因为这些
bash
在同时以
root
的身份登入,
因此所有
bash
都有自己的
1000
笔记录在内存中。因为等到注销时才会更新记录文件,所以啰,
最后注
销的那个
bash
才会是最后写入的数据。唔!如此一来其他
bash
的指令操作就不会被记录下来了
(
实有被记录,只是被后来的最后一个
bash
所覆盖更新了
)
由于多重登入有这样的问题,所以很多朋友都习惯单一
bash
登入,再用
工作控制
(job control,
第四
篇会½绍
)
来切换不同工作!
这样才能够½所有曾经下达过的指令记录下来,也才方便未来系统管理
员½行指令的
debug
啊!
.
无法记录时间
历史命令还有一个问题,那就是无法记录指令下达的时间。由于这
1000
笔历史命令是依序记录的,
但是并没有记录时间,所以在查询方面会有一些不方便。如果读者们有兴趣,其实可以透过
~/.bash_logout
来½行
history
的记录,并加上
date
来增加时间参数,也是一个可以应用的方向喔!
有兴趣的朋友可以先看看情境模拟题一吧!