history
history 命令可以用来显示曾执行过的命令,也可以根据显示的治疗来重新执行需要的命令
n 显示n个最近的记录
-a 添加记录
-r 读取记录,但不会添加内容记录
-w 覆盖原有的history 文件
-c 清除记录
-d编号>[n] 删除指定n条记录
-n文件> 读取指定文件
-r文件> 读取文件但不记录
-w文件> 覆盖原有文件
例1
[root@redhat ~]# history        #查看所有执行过的命令
    1  ls
    2  pwd
    3  fc -l
    4  history 
 
[root@redhat ~]# history 2      #显示2条
    4  history 
    5  history 2
 
[root@redhat ~]# !4             #执行编号是4的命令,注意感叹号
history 
    1  ls
    2  pwd
    3  fc -l
    4  history 
    5  history 2
    6  history 
[root@redhat ~]# history -c    #清除历史记录
!$ 引用前一个命令的最后一个参数
[tank@localhost workspace]$ ls -all
总用量 1060
drwxrwxr-x. 15 tank tank    4096 8月   6 16:26 .
drwx------. 60 tank tank    4096 8月  15 16:13 ..
-rw-r--r--   1 root root    2466 7月  23 18:02 1.html
drwxr-xr-x   7 tank tank    4096 7月  17 03:02 ckeditor
drwxr-xr-x.  2 tank tank    4096 5月  29 00:08 database
[tank@localhost workspace]$ !$         #取得-all
-all
bash: -all: command not found
例2
[root@redhat ~]# ! -N             #执行倒数第N条命令
[root@redhat ~]# !!               #执行上一条命令
fc
fc 命令可以编辑曾今执行过的命令,并以批处理的形式让这些命令重新执行
-1 列出第一个指令和最后一个指令之间额度所有指令
-n 不显示编号
-r 反向排序
-e文本编辑器> 指定文本编辑器编辑,默认Vi
-s指令> 选择指令执行
例1
[root@redhat ~]# fc -l                #查看执行过的命令,根history,很相似
348      eval echo "aaa" ls
349      eval echo "aaa";ls
350      exec ls
351      apt-get install mysql
352      apt-get install mysql-server
353      exit
354      expr 4%6
355      expr 4 % 6 
356      expr 46 
357      expr 4''6 
358      expr 6 '+' 5
359      expr 6 '*' 5
360      expr 6 '>' 5
361      fc -l
362      man fc
363      fc --help
[root@redhat ~]# fc -s 358  #执行第358个命令
expr 6 '+' 5
11
[root@redhat ~]# fc 358     #编辑第358个命令