最近升级日期:2009/08/25
命令别名与历史命令: 我们知道在早期的 DOS 年代,清除屏幕上的信息可以使用 cls 来清除,但是在 Linux 里面,
我们则是使用 clear 来清除画面的。那么可否让 cls 等于 clear 呢?可以啊!用啥方法?
link file 还是什么的?别急!底下我们介绍不用 link file 的命令别名来达成。那么什么又是历史命令?
曾经做过的举动我们可以将他记录下来喔!那就是历史命令啰~底下分别来谈一谈这两个玩意儿。 命令别名配置: alias, unalias 命令别名是一个很有趣的东西,特别是你的惯用命令特别长的时候!还有, 增设默认的选项在一些惯用的命令上面,可以预防一些不小心误杀文件的情况发生的时候! 举个例子来说,如果你要查询隐藏档,并且需要长的列出与一页一页翻看,那么需要下达『 ls -al | more 』这个命令,我是觉得很烦啦! 要输入好几个单字!那可不可以使用 lm 来简化呢?当然可以,你可以在命令行下面下达:
立刻多出了一个可以运行的命令喔!这个命令名称为 lm ,且其实他是运行 ls -al | more 啊!真是方便。不过, 要注意的是:『alias 的定义守则与变量定义守则几乎相同』, 所以你只要在 alias 后面加上你的 {『别名』='命令 选项...' }, 以后你只要输入 lm 就相当于输入了 ls -al|more 这一串命令!很方便吧! 另外,命令别名的配置还可以取代既有的命令喔!举例来说,我们知道 root 可以移除 (rm) 任何数据!所以当你以 root 的身份在进行工作时,需要特别小心, 但是总有失手的时候,那么 rm 提供了一个选项来让我们确认是否要移除该文件,那就是 -i 这个选项!所以,你可以这样做:
那么以后使用 rm 的时候,就不用太担心会有错误删除的情况了!这也是命令别名的优点啰! 那么如何知道目前有哪些的命令别名呢?就使用 alias 呀!
由上面的数据当中,你也会发现一件事情啊,我们在第十章的 vim 程序编辑器里面提到 vi 与 vim 是不太一样的,vim 可以多作一些额外的语法检验与颜色显示,默认的 root 是单纯使用 vi 而已。 如果你想要使用 vi 就直接以 vim 来开启文件的话,使用『 alias vi='vim' 』这个配置即可。 至于如果要取消命令别名的话,那么就使用 unalias 吧!例如要将刚刚的 lm 命令别名拿掉,就使用:
那么命令别名与变量有什么不同呢?命令别名是『新创一个新的命令, 你可以直接下达该命令』的,至于变量则需要使用类似『 echo 』命令才能够呼叫出变量的内容! 这两者当然不一样!很多初学者在这里老是搞不清楚!要注意啊! ^_^
历史命令:history 前面我们提过 bash 有提供命令历史的服务!那么如何查询我们曾经下达过的命令呢?就使用 history 啰!当然,如果觉得 histsory 要输入的字符太多太麻烦,可以使用命令别名来配置呢! 不要跟我说还不会配置呦! ^_^
如此则输入 h 等于输入 history 啰!好了,我们来谈一谈 history 的用法吧!
在正常的情况下,历史命令的读取与记录是这样的:
那么 history 这个历史命令只可以让我查询命令而已吗?呵呵!当然不止啊! 我们可以利用相关的功能来帮我们运行命令呢!举例来说啰:
经过上面的介绍,瞭乎?历史命令用法可多了!如果我想要运行上一个命令, 除了使用上下键之外,我可以直接以『 !! 』 来下达上个命令的内容,此外, 我也可以直接选择下达第 n 个命令,『 !n 』来运行,也可以使用命令标头,例如 『 !vi 』来运行最近命令开头是 vi 的命令列!相当的方便而好用! 基本上 history 的用途很大的!但是需要小心安全的问题!尤其是 root 的历史纪录文件,这是
Cracker 的最爱!因为不小心的 root 会将很多的重要数据在运行的过程中会被纪录在
~/.bash_history 当中,如果这个文件被解析的话,后果不堪吶!无论如何,使用 history 配合『
! 』曾经使用过的命令下达是很有效率的一个命令下达方法!
有些朋友在练习 linux 的时候喜欢同时开好几个 bash 接口,这些 bash 的身份都是 root 。 这样会有 ~/.bash_history 的写入问题吗?想一想,因为这些 bash 在同时以 root 的身份登陆, 因此所有的 bash 都有自己的 1000 笔记录在内存中。因为等到注销时才会升级记录文件,所以啰, 最后注销的那个 bash 才会是最后写入的数据。唔!如此一来其他 bash 的命令操作就不会被记录下来了 (其实有被记录,只是被后来的最后一个 bash 所覆盖升级了) 。 由于多重登陆有这样的问题,所以很多朋友都习惯单一 bash 登陆,再用工作控制 (job control, 第四篇会介绍) 来切换不同工作!
这样才能够将所有曾经下达过的命令记录下来,也才方便未来系统管理员进行命令的 debug 啊!
历史命令还有一个问题,那就是无法记录命令下达的时间。由于这 1000 笔历史命令是依序记录的, 但是并没有记录时间,所以在查询方面会有一些不方便。如果读者们有兴趣,其实可以透过 ~/.bash_logout 来进行 history 的记录,并加上 date 来添加时间参数,也是一个可以应用的方向喔! 有兴趣的朋友可以先看看情境模拟题一吧! |
||||||||||
本网页主要以Firefox配合解析度 1024x768 作为设计依据 鸟哥自由软件整合应用研究室