当前位置: 首页 > 科技观察

一起来看看这些在Linux命令行中使用历史记录的小技巧

时间:2023-03-12 17:24:29 科技观察

当你经常使用Linux命令行时,有效地使用历史记录可以大大提高工作效率。今天我们就来介绍几个在Linux命令行中使用history相关的技巧。1.使用HISTTIMEFORMAT显示时间戳在命令行输入history时,会显示序号和命令。出于审计目的,使用命令显示时间戳可能会有所帮助。[root@localhost~]#exportHISTTIMEFORMAT='%F%T'[root@localhost~]#history|less2。使用Ctrl+r搜索历史当你执行了一个很长的命令时,你可以简单地使用关键字搜索历史并重新执行相同的命令而无需完全键入它。按Ctrl+r并键入关键字。在以下示例中,我搜索了wget,它显示历史记录中包含单词wget的先前命令“wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-8.repo”。#当按下ctrl+r键时,会出现如下状态。(reverse-i-search)`':#然后输入wget,会有命令过滤出匹配的历史命令。如果显示不需要的命令,您可以继续补充命令行。(reverse-i-search)`wget':wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-8.repo当你搜索你想要的东西时想要在命令行中,可以按回车键来执行命令。过滤掉匹配的历史命令。如果要更改参数,可以按tab键或方向键退出搜索模式修改这条历史命令并执行。3.快速重复之前的命令即可使用!!两个感叹号,执行前面的命令。您也可以使用!-1来执行之前的命令。4.要执行历史记录中的特定命令,您可以使用!添加一个数字以执行历史记录中具有指定行号的命令。[root@localhost~]#!4ss-tulNetidStateRecv-QSend-QLocalAddress:PortPeerAddress:PortProcessudpUNCONN00127.0.0.1:3230.0.0.0:*udpUNCONN00[::1]:323[::]:*tcpLISTEN01280.0.0.0:ssh0.0.0.0:*tcpLISTEN0128[::]:ssh[::]:*5。使用HISTSIZE控制历史记录的总行数。默认情况下,在Centos8中,history存储1000条历史记录。可以使用如下命令查看:[root@localhost~]#echo$HISTSIZE1000在.bash_profile中加入如下两行,然后执行source~/.bash_profile即可生效。在下面的命令中,减少了历史存储历史,只存储了200条记录。[root@localhost~]#echo"HISTSIZE=200">>.bash_profile[root@localhost~]#echo"HISFILETSIZE=200">>.bash_profile[root@localhost~]#source~/.bash_profile其中HISTSIZE变量,控制历史命令显示的数量。其中,HISTFILESIZE变量控制.bash_history文件中的历史记录条数。6.更改历史文件名默认情况下,历史文件名为.bash_history,可以使用HISTFILE变量更改其文件名,可以将HISTFILE变量写入~/.bash_profile文件中,如下例:[root@localhost~]#echo"HISTFILE=/root/.cmd_hist">>~/.bash_profile[root@localhost~]#reboot添加完成后重启操作系统,可以看到新的历史文件可以存储历史。7.清除历史使用-c选项清除历史:[root@localhost~]#history-c8.禁用历史如果要完全禁用历史,请将HISTSIZE和HISTFILESIZE设置为0,如下所示。[root@localhost~]#echo"HISTSIZE=0">>.bash_profile[root@localhost~]#echo"HISFILETSIZE=0">>.bash_profile[root@localhost~]#source~/.bash_profile