fc(FixCommands的缩写)是一个shell内置命令,用于在交互式shell中列出、编辑和执行最近输入的命令。您可以在您最喜欢的编辑器中编辑最近的命令并再次执行它们,而无需重新输入它们。除了避免重复输入长而复杂的命令外,它还有助于纠正拼写错误。因为它是一个shell内置命令,所以大多数shell都包含它,比如Bash、Zsh、Ksh等。在这篇简短的文章中,让我们学习如何在Linux中使用fc命令。带示例的fc命令教程列出最近执行的命令执行不带其他参数的fc-l命令,它将列出最近的16个命令。$fc-l507fish508fc-l509sudonetctlrestartwlp9s0sktab510ls-l511pwd512uname-r513uname-a514touchostechnix.txt515viostechnix.txt516echo“欢迎使用OSTechNix”517sudoapcman-Syu518txtsudopacman-Syu519wmore52ostechnix-lostechnix.txt521catostechnix.txt522clear-r选项用于对输出进行反向排序。$fc-lr-n选项用于隐藏行号。$fc-lnnano~/.profilesource~/.profilesource~/.profilefc-lnfc-lsudonetctlrestartwlp9s0sktabls-lpwduname-runame-aecho"WelcometoOSTechNix"sudoapcman-Syucatostechnix.txtwc-lostechnix.txtmoreostechnix.txt清除以便不再显示行号。如果要从命令开始,只需在-l选项后添加行号即可。例如,要从第520行显示最近的命令,您可以这样做:$fc-l520520ls-l521pwd522uname-r523uname-a524echo"WelcometoOSTechNix"525sudoapcman-Syu526catostechnix.txt527wc-lostechnix。txt528moreostechnix.txt529clear530fc-ln531fc-l要列出一系列命令,只需使用开始和结束行号作为fc-l的参数,例如520到525:$fc-l520525520ls-l521pwd522uname-r523uname-a524echo"WelcometoOSTechNix"525sudoapcman-Syu除了使用行号,我们还可以使用字符。例如,要列出从最后一个pwd到最后一个命令的所有命令,只需使用这样的首字母:$fc-lp521pwd522uname-r523uname-a524echo"WelcometoOSTechNix"525sudoapcman-Syu526catostechnix。txt527wc-lostechnix.txt528moreostechnix.txt529clear530fc-ln531fc-l532fc-l520533fc-l520525534fc-l520535fc-l522536列出所有fc-对于more之间的命令,你可以同时使用字母,像这样:$fc-lpm或者,使用起始命令的第一个字母和结束命令的行号:$fc-lp528或两者都使用行号:$fc-l521528这三个命令都显示相同的结果。编辑并执行上一条命令我们经常会输入错误的命令。这时候你可以使用默认的编辑器更正错字并执行,无需再次输入命令。编辑并执行最后一条命令:$fc这将在默认编辑器中加载最后一条命令。如您所见,我的最后一个命令是fc-l。你可以随意修改它,它会在你保存退出编辑器时自动执行。当命令或参数又长又复杂时,这很有用。需要注意的是,它可能同时具有毁灭性。例如,如果您的上一个命令是危险的rm-fr,则当它自动执行时您可能会丢失重要数据。因此,请谨慎对待每条命令。更改默认编辑器的另一个有用选项是-e,它可用于为fc命令选择不同的编辑器。例如,如果我们想使用nano来编辑最后一条命令:$fc-enano该命令将打开nano编辑器(而不是默认编辑器)来编辑最后一条命令。如果您觉得使用-e选项太麻烦,您可以通过将环境变量FCEDIT设置为您希望fc使用的编辑器的名称来修改您的默认编辑器。例如,要将nano设置为默认编辑器,请编辑您的~/.profile或其他初始化文件:)$vi~/.profile添加以下行:FCEDIT=nano#LCTT注释:如果fc将在子shell中使用,***exportFCEDIT这里也可以使用编辑器全路径:FCEDIT=/usr/local/bin/emacs输入:wq保存退出。要使更改立即生效,请运行以下命令:$source~/.profile现在输入fc以使用nano编辑器编辑之前的命令。执行最后一条命令而不进行编辑我们现在知道,不带任何参数的fc命令会将最后一条命令加载到编辑器中。但有时你可能不想编辑,只想再次执行上一条命令。很简单,在末尾加一个连字符(-)即可:$echo"WelcometoOSTechNix"WelcometoOSTechNix$fc-e-echo"WelcometoOSTechNix"WelcometoOSTechNix可以看到,fc带-e选项,但是没有编辑前面的命令(在示例中回显“欢迎使用OSTechNix”)。需要注意的是,有些选项只对指定的shell有效。例如,以下选项在zsh中有效,但在Bash或Ksh中无效。显示命令的执行时间如果想知道命令什么时候执行,可以使用-d选项:fc-ld118:41exit218:41clear318:42fc-l418:42sudonetctlrestartwlp9s0sktab518:42ls-l618:42pwd718:42uname-r818:43uname-a918:43catostechnix.txt1018:43echo“欢迎使用OSTechnix”1118:43更多ostechnix.txt1218:43wc-lostechnix。txt1318:43catostechnix.txt1418:43clear1518:43fc-l这样可以查看最新命令的具体执行时间。使用选项-f,可以为每个命令显示完整的时间戳。fc-lf14/5/201818:41exit24/5/201818:41clear34/5/201818:42fc-l44/5/201818:42sudonetctlrestartwlp9s0sktab54/5/201818:42ls-l64/5/201818:42pwd74/5/201818:42uname-r84/5/201818:43uname-a94/5/201818:43catostechnix.txt104/5/201818:43echo"WelcometoOSTechnix"114/5/201818:43moreostechnix.txt124/5/201818:43wc-lostechnix.txt134/5/201818:43catostechnix.txt144/5/201818:43clear154/5/201818:43fc-l164/5/201818:43fc-ld当然,欧洲人们还可以使用-E选项来显示欧洲时间格式。fc-lE25.4.201818:41clear35.4.201818:42fc-l45.4.201818:42sudonetctlrestartwlp9s0sktab55.4.201818:42ls-l65.4.201818:42pwd75.4.201818:42uname-r85.4.201818:43uname-a95.4.201818:43catostechnix.txt105.4.201818:43echo“欢迎使用OSTechNix”115.4.201818:43更多ostechnix.txt125.4.201818:43wc-lostechnix.txt135.4.201818:43catostechnix.txt145.4.201818:43清除155.4.201818:43fc-l165.4。201818:43fc-ld175.4.201818:49fc-lffc用法摘要在不带任何参数的情况下,fc会将最后一个命令加载到默认编辑器中。当使用数字作为参数时,fc会将数字指定的命令加载到默认编辑器中。当给定一个字符作为参数时,fc将以指定字符开头的最新命令加载到默认编辑器中。当有两个参数时,它们分别指定要列出的命令范围的开始和结束。有关详细信息,请参阅手册页。$manfc好了,今天就到这里。希望这篇文章能帮到你。更多精彩内容敬请期待!