LINUX

关注公众号 jb51net

关闭
操作系统 > LINUX >

在Linux命令终端中查看和编辑曾执行过的命令

张映

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 4<6
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个命令