Linux history命令怎么使用
导读:本文共3641字符,通常情况下阅读需要12分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身,如果你想要查看命令历史的时... ...
目录
(为您整理了一些要点),点击可以直达。history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!
执行指定序号的历史命令。
使用 HISTTIMEFORMAT 显示时间戳
当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身,如果你想要查看命令历史的时间戳,那么可以执行:
#exportHISTTIMEFORMAT='%F%T'#history|more12008-08-0519:02:39servicenetworkrestart22008-08-0519:02:39exit32008-08-0519:02:39id42008-08-0519:02:39cat/etc/redhat-release
注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置 HISTTIMEFORMAT 变量的时间。
使用 Ctrl+R 搜索历史
Ctrl+R 是我经常使用的一个快捷键,此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行pre该命令,如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。
#[PressCtrl+Rfromthecommandprompt,whichwilldisplaythereverse-i-searchprompt](reverse-i-search)`red‘:cat/etc/redhat-release[Note:Pressenterwhenyouseeyourcommand,whichwillexecutethecommandfromthehistory]#cat/etc/redhat-releaseFedorarelease9(Sulphur)
快速重复执行上一条命令
有 4 种方法可以重复执行上一条命令:
❝
1.使用上方向键,并回车执行。 2.按 !! 并回车执行。 3.输入 !-1 并回车执行。 4.按 Ctrl+P 并回车执行。
从命令历史中执行一个指定的命令
在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:
#history|more1servicenetworkrestart2exit3id4cat/etc/redhat-release#!4cat/etc/redhat-releaseFedorarelease9(Sulphur)
通过指定关键字来执行以前的命令
在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:
#!pspsaux|grepyproot169470.00.1365161264?Sl13:100:00ypbindroot175030.00.04124740pts/0S+19:190:00grepyp
使用 HISTSIZE 控制历史命令记录的总行数
将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:
#vi~/.bash_profileHISTSIZE=450HISTFILESIZE=450
使用 HISTFILE 更改历史文件名称
默认情况下,命令历史存储在 ~/.bash_history 文件中,添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:
#vi~/.bash_profileHISTFILE=/root/.commandline_warrior
使用 HISTCONTROL 从命令历史中剔除连续重复的条目
在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目,要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:
#pwd#pwd#pwd#history|tail-444pwd45pwd46pwd[Notethattherearethreepwdcommandsinhistory,afterexecutingpwd3timesasshownabove]47history|tail-4#exportHISTCONTROL=ignoredups#pwd#pwd#pwd#history|tail-356exportHISTCONTROL=ignoredups57pwd[Notethatthereisonlyonepwdcommandinthehistory,evenafterexecutingpwd3timesasshownabove]58history|tail-4
使用 HISTCONTROL 清除整个命令历史中的重复条目
上例中的 ignoredups 只能剔除连续的重复条目,要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:
#exportHISTCONTROL=erasedups#pwd#servicehttpdstop#history|tail-338pwd39servicehttpdstop40history|tail-3#ls-ltr#servicehttpdstop#history|tail-635exportHISTCONTROL=erasedups36pwd37history|tail-338ls-ltr39servicehttpdstop[Notethatthepreviousservicehttpdstopafterpwdgoterased]40history|tail-6
使用 HISTCONTROL 强制 history 不记住特定的命令
将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:
#exportHISTCONTROL=ignorespace#ls-ltr#pwd#servicehttpdstop[Notethatthereisaspaceatthebeginningofservice,toignorethiscommandfromhistory]#history|tail-367ls-ltr68pwd69history|tail-3
使用 -c 选项清除所有的命令历史
如果你想清除所有的命令历史,可以执行:
#history-c
命令替换
在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:
#lsanaconda-ks.cfganaconda-ks.cfg#vi!!:$vianaconda-ks.cfg
补充:使用 !$ 可以达到同样的效果,而且更简单。下例中,!^ 从上一条命令获得第一项参数:
#cpanaconda-ks.cfganaconda-ks.cfg.bakanaconda-ks.cfg#vi-5!^vianaconda-ks.cfg
为特定的命令替换指定的参数
在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:
#cp~/longname.txt/really/a/very/long/path/long-filename.txt#ls-l!cp:2ls-l/really/a/very/long/path/long-filename.txt
下例里,!cp:$ 获取 cp 命令的最后一项参数:
#ls-l!cp:$ls-l/really/a/very/long/path/long-filename.txt
使用 HISTSIZE 禁用 history
如果你想禁用 history,可以将 HISTSIZE 设置为 0:
#exportHISTSIZE=0#history#[Notethathistorydidnotdisplayanything]
使用 HISTIGNORE 忽略历史中的特定命令
下面的例子,将忽略 pwd、ls、ls -ltr 等命令:
#exportHISTIGNORE=”pwd:ls:ls-ltr:”#pwd#ls#ls-ltr#servicehttpdstop#history|tail-379exportHISTIGNORE=”pwd:ls:ls-ltr:”80servicehttpdstop81history[Notethathistorydidnotrecordpwd,lsandls-ltr]
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Linux history命令怎么使用的详细内容,希望对您有所帮助,信息来源于网络。