久久首页
免费软件
网络时尚
网络学堂
专题讨论
网络资源
网络游戏
网络文档
网络产品
网站导航: 首页 > 网络编程 > 脚本语言 学堂讨论 | 推荐文章

Linux介绍-bash (4)


2004-05-25  
 
命令历史记录

bash 也支持命令历史记录。这意味着 bash 保留了一定数目的你先前已经在shell 里输入过的命令。这个数目取决于一个叫做HISTSIZE的变量。有关 HISTSIZE 的更多信息,请看本文后面的“bash 变量”一节。

bash 把你先前输入的命令文本保存在一个历史列表中。当你用你的帐号登录后历史列表将根据一个历史文件被初始化。历史文件的文件名被一个叫 HISTFILE 的 bash变量指定。历史文件的缺省名字是 .bash_history。这个文件通常在你的用户目录中。(注意该文件的文件名以一个句号开头,这意味着它是隐含的,仅当你带 -a 或 -A参数的 ls 命令列目录时才可见)

仅将先前的命令存在历史文件里是没有用的,所以 bash 提供了几种方法来调用它们。使用历史记录列表最简单的方法是用上方向键。按下上方向键后最后键入的命令将出现在命令行上。再按一下则倒数第二条命令会出现,以此类推。如果上翻多了的话也可以用向下的方向键来下翻。(和 DOS 实用程序doskey一样)如果需要的话,显示在命令行上的历史命令可以被编辑。

另一个使用命令历史文件的方法是用 bash 的内部命令 history 和 fc(fix 命令)命令来显示和编辑历史命令。history 命令能以两种不同的方法来调用。第一种是:

history [n]

当 history 命令没有参数时,整个历史命令列表的内容将被显示出来。下面是一个命令历史列表的例子:

1 mkdir /usr/games/pool

2 cp XpoolTable-1.2.linux.tar.z /usr/games/pool

3 cd /usr/games/pool/

4 ls

5 gunzip XpoolTable-1.2.linux.tar.z

6 tar -xf XpoolTable-1.2.linux.tar

7 ls

8 cd Xpool

9 ls

10 xinit

11 exit

12 which zip

13 zip

14 more readme

15 vi readme

16 exit

使用 n 参数的作用是仅有最后 n 个历史命令会被列出。例如,history 5 显示最后 5 个命令。
调用 history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下:

history [-r|w|a|n] [filename]

这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。

fc 命令能用两种方法来编辑历史命令。第一种使用下列语法:

fc [-e editor_name] [-n] [-l] [-r] [first] [last]

这里所有参数都是可选的。-e editor_name 选项用来指定用于编辑命令的文本编辑器。 first 和 last 选项用于选择列出历史命令的范围,既可以是数字也可以是字符串。-n 选项禁止列出命令的编号。-r 选项反向列出匹配的命令。-l 选项把匹配的命令行列在屏幕上(而不是在编辑器中)。如果-e editor_name参数没有被指定,则以变量FCEDIT的值来代替,如果该变量不存在的话,则用变量EDITOR的值来代替,都不存在的话将使用vi编辑器。
 
发表评论 推荐文章 关闭窗口
 相关内容
- Linux介绍-bash (7) 2004-05-25
- Linux介绍-bash (5) 2004-05-25
- Linux介绍-bash (6) 2004-05-25
- Linux介绍-bash (1) 2004-05-25
- bash 编程指南 2004-05-25
- Linux介绍-bash (3) 2004-05-25
- Linux介绍-bash (2) 2004-05-25
 
 学堂分类
网络知识操作系统
网络应用网络服务
网页开发网络编程
数据存储网络设备
 文章搜索
 
网站简介 | 广告服务 | 编程支持 | 设计服务 | 诚邀合作 | 访客留言
Copyright © 1999-2004 99NET. All Rights Reserved
版权所有 久久网络工作室
Email:webmaster@99net.net