history

历史

1.历史 histroy

当执行命令时,执行过的命令会自动记录在内存中,方便后续再次调用
每次用户退出系统时,会将内存中保存的历史记录保存到对应的家目录中,存储位置为/.bash_histroy
再次登录时,会自动将历史文件中的信息自动加载到内存。

2.历史命令

histroy

  • -c 清空历史
  • -d 删除历史的第几个命令
  • n 显示最近的n条命令
  • -r 将历史文件的内容附加到历史列表
  • -w 保存历史列表内容到指定文件

3.调用历史命令

3.1重复历史命令

重复前一个历史命令方法:
1.重复前一个命令使用上方向键,并回车执行
2. 按 !! 并回车执行 输入 !-1 并回车执行
3.按 Ctrl+p 并回车执行
4. !:0 执行前一条命令(去除参数)

[root@centos8 ~]#cd /data
[root@centos8 data]#!:0
cd
[root@centos8 ~]#
  • !n 执行history命令输出对应序号n的命令
[root@centos8 ~]#history 
    1  cd 
    2  cd /data
    3  cd
    4  history 
[root@centos8 ~]#!2
cd /data
[root@centos8 data]#
  • !-n 执行history历史中倒数第n个命令
[root@centos8 ~]#history 
    1  cd 
    2  cd /data
    3  cd 
    4  history 
[root@centos8 ~]#!-3
cd /data
[root@centos8 data]#

3.2 搜索历史命令

使用up(向上)和down(向下)键来上下浏览从前输入的命令

  • Ctrl-r来在命令历史中搜索命令 (reverse-i-search)`’:
  • Ctrl+g:从历史搜索模式退出
root@centos8 data]#history 
    1  cd /data
    2  cd 
    3  cd /data 
    4  ll 
    5  history 
[root@centos8 data]#ll 
total 0
-rw-r--r--. 1 root root 0 Jul 29 14:08 f1
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
  • !string 重复前一个以“string”开头的命令
[root@centos8 data]#history 
    1  ls /
    2  ls
    3  cd /data
    4  cd
    5  history 
[root@centos8 data]#!c
cd
[root@centos8 ~]#
  • !?string 重复前一个包含string的命令
[root@centos8 ~]#history 
    1  ls /
    2  ls
    3  cd /data
    4  cd
    5  history 
[root@centos8 ~]#!?data
cd /data
[root@centos8 data]#

3.3 调用前一个历史命令参数

  • 要重新调用前一个命令中最后一个参数
    1.!$
    2.Esc, . 点击Esc键后松开,然后点击 .
    3.Alt+ . 按住Alt键的同时点击 .
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f1
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
[root@centos8 data]#ll !$
ll f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
  • command !^ 利用上一个命令的第一个参数做cmd的参数
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 6 Jul 29 14:26 f1
-rw-r--r--. 1 root root 7 Jul 29 14:27 f2
[root@centos8 data]#cat !^
cat f1
Hello
  • command !$ 利用上一个命令的最后一个参数做cmd的参数
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 6 Jul 29 14:26 f1
-rw-r--r--. 1 root root 6 Jul 29 14:28 f2
[root@centos8 data]#cat !$
cat f2
World
  • command !* 利用上一个命令的全部参数做cmd的参数
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 6 Jul 29 14:30 f1
-rw-r--r--. 1 root root 6 Jul 29 14:28 f2
[root@centos8 data]#cat !*
cat f1 f2
Hello
World
  • command !:n 利用上一个命令的第n个参数做cmd的参数
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 6 Jul 29 14:30 f1
-rw-r--r--. 1 root root 6 Jul 29 14:28 f2
[root@centos8 data]#ll !:1
ll f1
-rw-r--r--. 1 root root 6 Jul 29 14:30 f1

3.4 调用第n条命令的参数

  • command !n:^ 调用第n条命令的第一个参数
[root@centos8 data]#history 
    1  cat f1 f2
    2  cat f3 f4
    3  history 
[root@centos8 data]#cat !1:^
cat f1
Hello
  • command !n:$ 调用第n条命令的最后一个参数
[root@centos8 data]#history 
    1  cat f1 f2
    2  cat f3 f4
    3  history 
[root@centos8 data]#cat !1:$
cat f2
World
  • command !n:m 调用第n条命令的第m个参数
[root@centos8 data]#history 
    1  cat f1 f2
    2  cat f3 f4
    3  history 
[root@centos8 data]#cat !2:2
cat f4
Happy
  • command !n:* 调用第n条命令的所有参数
[root@centos8 data]#history 
    1  cat f1 f2
    2  cat f3 f4
    3  history 
[root@centos8 data]#cat !1:*
cat f1 f2
Hello
World

3.5 搜索历史命令调用参数

  • command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
[root@centos8 data]#history 
    1  cd
    2  cd /data
    3  vim f1
    4  ll f1 f2
    5  history 
[root@centos8 data]#cat !ll:^
cat f1
Hello
  • command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
[root@centos8 data]#history 
    1  cd
    2  cd /data
    3  vim f1
    4  ll f1 f2
    5  history 
[root@centos8 data]#cat !ll:$
cat f2
World
  • command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
[root@centos8 data]#history 
    1  cd
    2  cd /data
    3  vim f1
    4  ll f1 f2
    5  history 
[root@centos8 data]#cat !ll:1
cat f1
Hello 
  • command !string: *从命令历史中搜索以 string 开头的命令,并获取它的所有参数
[root@centos8 data]#history 
    1  cd
    2  cd /data
    3  vim f1
    4  ll f1 f2
    5  history 
[root@centos8 data]#cat !ll:*
cat f1 f2
Hello

3.6 其他

  • ^string 删除上一条命令中的第一个string
root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f1
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
[root@centos8 data]#^f1
ll  f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
  • ^string1^string2 将上一条命令中的第一个string1替换为string2
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f1
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
[root@centos8 data]#^f1^f2
ll f2 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
  • !:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
[root@centos8 data]#ll f1 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f1
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
[root@centos8 data]#^f1^f2
ll f2 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
-rw-r--r--. 1 root root 0 Jul 29 14:08 f2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值