0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

來學(xué)一學(xué)在Linux中使用fc命令

Linux愛好者 ? 來源:未知 ? 作者:李倩 ? 2018-04-26 15:29 ? 次閱讀

fc(FixCommands 的縮寫)是個 shell 內(nèi)置命令,用于在交互式 shell 里列出、編輯和執(zhí)行最近輸入的命令。你可以用你喜歡的編輯器編輯最近的命令并再次執(zhí)行,而不用把它們整個重新輸入一遍。除了可以避免重復(fù)輸入又長又復(fù)雜的命令,它對修正拼寫錯誤來說也很有用。因?yàn)槭?shell 內(nèi)置命令,大多 shell 都包含它,比如 Bash 、 Zsh 、 Ksh 等。在這篇短文中,我們來學(xué)一學(xué)在 Linux 中使用fc命令。

fc 命令教程及示例

列出最近執(zhí)行的命令

執(zhí)行不帶其它參數(shù)的fc -l命令,它會列出最近 16 個命令。

$fc-l

507fish

508fc-l

509sudonetctlrestartwlp9s0sktab

510ls-l

511pwd

512uname-r

513uname-a

514touchostechnix.txt

515viostechnix.txt

516echo"Welcome to OSTechNix"

517sudoapcman-Syu

518sudopacman-Syu

519moreostechnix.txt

520wc-lostechnix.txt

521catostechnix.txt

522clear

-r 選項(xiàng)用于將輸出反向排序。

$fc-lr

-n 選項(xiàng)用于隱藏行號。

$fc-ln

nano~/.profile

source~/.profile

source~/.profile

fc-ln

fc-l

sudonetctlrestartwlp9s0sktab

ls-l

pwd

uname-r

uname-a

echo"Welcome to OSTechNix"

sudoapcman-Syu

catostechnix.txt

wc-lostechnix.txt

moreostechnix.txt

clear

這樣行號就不再顯示了。

如果想以某個命令開始,只需在 -l 選項(xiàng)后面加上行號即可。比如,要顯示行號 520 至最近的命令,可以這樣:

$fc-l520

520ls-l

521pwd

522uname-r

523uname-a

524echo"Welcome to OSTechNix"

525sudoapcman-Syu

526catostechnix.txt

527wc-lostechnix.txt

528moreostechnix.txt

529clear

530fc-ln

531fc-l

要列出一段范圍內(nèi)的命令,將始、末行號作為 fc -l 的參數(shù)即可,比如 520 至 525:

$fc-l520525

520ls-l

521pwd

522uname-r

523uname-a

524echo"Welcome to OSTechNix"

525sudoapcman-Syu

除了使用行號,我們還可以使用字符。比如,要列出最近一個 pwd 至最近一個命令之間的所有命令,只需要像下面這樣使用起始字母即可:

$fc -lp

521pwd

522uname -r

523uname -a

524echo"Welcome to OSTechNix"

525sudo apcman -Syu

526cat ostechnix.txt

527wc -lostechnix.txt

528more ostechnix.txt

529clear

530fc -ln

531fc -l

532fc -l520

533fc -l520525

534fc -l520

535fc -l522

536fc -ll

要列出所有 pwd 和 more 之間的命令,你可以都使用起始字母,像這樣:

$fc -lpm

或者,使用開始命令的首字母以及結(jié)束命令的行號:

$fc -lp528

或者都使用行號:

$fc -l521528

這三個命令都顯示一樣的結(jié)果。

編輯并執(zhí)行上一個命令

我們經(jīng)常敲錯命令,這時你可以用默認(rèn)編輯器修正拼寫錯誤并執(zhí)行而不用將命令重新再敲一遍。

編輯并執(zhí)行上一個命令:

$fc

這會在默認(rèn)編輯器里載入上一個命令。

你可以看到,我上一個命令是fc -l。你可以隨意修改,它會在你保存退出編輯器時自動執(zhí)行。這在命令或參數(shù)又長又復(fù)雜時很有用。需要注意的是,它同時也可能是毀滅性的。比如,如果你的上一個命令是危險的rm -fr ,當(dāng)它自動執(zhí)行時你可能丟掉你的重要數(shù)據(jù)。所以,小心謹(jǐn)慎對待每一個命令。

更改默認(rèn)編輯器

另一個有用的選項(xiàng)是-e,它可以用來為fc命令選擇不同的編輯器。比如,如果我們想用nano來編輯上一個命令:

$fc -enano

這個命令會打開nano編輯器(而不是默認(rèn)編輯器)編輯上一個命令。

如果你覺得用-e選項(xiàng)太麻煩,你可以修改你的默認(rèn)編輯器,只需要將環(huán)境變量FCEDIT設(shè)為你想要讓fc使用的編輯器名稱即可。

比如,要把nano設(shè)為默認(rèn)編輯器,編輯你的~/.profile或其他初始化文件: (LCTT 譯注:如果~/.profile不存在可自己創(chuàng)建;如果使用的是 bash ,可以編輯~/.bash_profile)

$vi ~/.profile

添加下面一行:

FCEDIT=nano

# LCTT譯注:如果在子 shell 中會用到 fc ,最好在這里 export FCEDIT

你也可以使用編輯器的完整路徑:

FCEDIT=/usr/local/bin/emacs

輸入 :wq 保存退出。要使改動立即生效,運(yùn)行以下命令:

$source ~/.profile

現(xiàn)在再輸入 fc 就可以使用 nano 編輯器來編輯上一個命令了。

不編輯而直接執(zhí)行上一個命令

我們現(xiàn)在知道 fc 命令不帶任何參數(shù)的話會將上一個命令載入編輯器。但有時你可能不想編輯,僅僅是想再次執(zhí)行上一個命令。這很簡單,在末尾加上連字符(-)就可以了:

$echo"Welcome to OSTechNix"

Welcome toOSTechNix

$fc -e -

echo"Welcome to OSTechNix"

Welcome toOSTechNix

如你所見,fc 帶了 -e 選項(xiàng),但并沒有編輯上一個命令(例中的 echo " Welcome to OSTechNix")。

需要注意的是,有些選項(xiàng)僅對指定 shell 有效。比如下面這些選項(xiàng)可以用在 zsh 中,但在 Bash 或 Ksh 中則不能用。

顯示命令的執(zhí)行時間

想要知道命令是在什么時候執(zhí)行的,可以用 -d 選項(xiàng):

fc -ld

118:41exit

218:41clear

318:42fc -l

418:42sudo netctl restart wlp9s0sktab

518:42ls -l

618:42pwd

718:42uname -r

818:43uname -a

918:43cat ostechnix.txt

1018:43echo"Welcome to OSTechNix"

1118:43more ostechnix.txt

1218:43wc -lostechnix.txt

1318:43cat ostechnix.txt

1418:43clear

1518:43fc -l

這樣你就可以查看最近命令的具體執(zhí)行時間了。

使用選項(xiàng) -f ,可以為每個命令顯示完整的時間戳。

fc -lf

14/5/201818:41exit

24/5/201818:41clear

34/5/201818:42fc -l

44/5/201818:42sudo netctl restart wlp9s0sktab

54/5/201818:42ls -l

64/5/201818:42pwd

74/5/201818:42uname -r

84/5/201818:43uname -a

94/5/201818:43cat ostechnix.txt

104/5/201818:43echo"Welcome to OSTechNix"

114/5/201818:43more ostechnix.txt

124/5/201818:43wc -lostechnix.txt

134/5/201818:43cat ostechnix.txt

144/5/201818:43clear

154/5/201818:43fc -l

164/5/201818:43fc -ld

當(dāng)然,歐洲的老鄉(xiāng)們還可以使用 -E 選項(xiàng)來顯示歐洲時間格式。

fc -lE

25.4.201818:41clear

35.4.201818:42fc -l

45.4.201818:42sudo netctl restart wlp9s0sktab

55.4.201818:42ls -l

65.4.201818:42pwd

75.4.201818:42uname -r

85.4.201818:43uname -a

95.4.201818:43cat ostechnix.txt

105.4.201818:43echo"Welcome to OSTechNix"

115.4.201818:43more ostechnix.txt

125.4.201818:43wc -lostechnix.txt

135.4.201818:43cat ostechnix.txt

145.4.201818:43clear

155.4.201818:43fc -l

165.4.201818:43fc -ld

175.4.201818:49fc -lf

fc 用法總結(jié)

當(dāng)不帶任何參數(shù)時,fc將上一個命令載入默認(rèn)編輯器。

當(dāng)帶一個數(shù)字作為參數(shù)時,fc將數(shù)字指定的命令載入默認(rèn)編輯器。

當(dāng)帶一個字符作為參數(shù)時,fc將最近一個以指定字符開頭的命令載入默認(rèn)編輯器。

當(dāng)有兩個參數(shù)時,它們分別指定需要列出的命令范圍的開始和結(jié)束。

更多細(xì)節(jié),請參考 man 手冊。

$man fc

好了,今天就這些。希望這篇文章能幫助到你。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208721
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    800

    瀏覽量

    31056

原文標(biāo)題:給初學(xué)者的 fc 示例教程

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    IC打工人最常用的20個Linux命令

    我看到些IC初學(xué)者,竟然糾結(jié)于看哪本Linux書,甚至有人看視頻教程集的學(xué)。筆者認(rèn)為,學(xué)
    的頭像 發(fā)表于 04-19 09:34 ?1370次閱讀

    如何在Linux中使用htop命令

    本文介紹如何在 Linux 中使用 htop 命令。
    的頭像 發(fā)表于 12-04 14:45 ?1831次閱讀
    如何在<b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用htop<b class='flag-5'>命令</b>

    對照DOS學(xué)Linux的基本命令

    、軟盤,光盤的使用與我們通常在DOS與Windows中的使用方法是不樣的,不能直接訪問,因?yàn)?b class='flag-5'>在Linux中它們都被視為文件,因此訪問使用前必須使用裝載
    發(fā)表于 10-17 19:09

    linux怎么學(xué)???

    linux怎么學(xué)???
    發(fā)表于 12-08 16:56

    如何評價《Linux就該這么學(xué)》這本書?

    的不足,做到查漏補(bǔ)缺,而且此書的作者也一直在更新章節(jié)目錄,現(xiàn)在已經(jīng)到了高級部分,所以對于Linux從業(yè)者的提高是非常有幫助的??傮w來說《Linux就該這么學(xué)》的內(nèi)容很通俗易懂,對于新手
    發(fā)表于 10-21 13:01

    嵌入式Linux學(xué)哪些東西

    Linux學(xué)習(xí)之路1——從單片機(jī)工程師的角度看嵌入式Linux前言這篇文章簡單我們起梳理嵌入式Linux
    發(fā)表于 11-23 07:56

    手把手教你學(xué)Linux常用shell命令

    此筆記由個人整理塞上蒼鷹_fly課程來自:正點(diǎn)原子_手把手教你學(xué)Linux常用shell命令查看版本號uname -a查看當(dāng)前路徑下的文件lsls -l查看文件詳情ls -al查看文件詳情包括隱藏
    發(fā)表于 12-15 07:05

    學(xué)STM32還是學(xué)嵌入式linux?哪個好?

    01話 題經(jīng)常有大學(xué)生同學(xué)糾結(jié):我到底是學(xué)STM32還是學(xué)嵌入式linux。這個問題很多人都會有自己的看法,今天我試著從多個角度,把我了解到的事實(shí)講下,希望對大家有所啟發(fā)。02STM
    發(fā)表于 12-16 07:54

    學(xué)做嵌入式 Linux系統(tǒng)

    本人詳細(xì)講述了學(xué)做嵌入式 Linux系統(tǒng)方法,希望對您的學(xué)習(xí)有幫助!.
    發(fā)表于 05-26 17:25 ?188次下載

    概述學(xué)習(xí)Linux系統(tǒng)中命令的簡單方法

    如果說如何快速學(xué)習(xí)、了解 Linux 的話,我的答案是學(xué)命令、背命令!為何呢?對于名新手來說,去學(xué)習(xí)
    發(fā)表于 04-11 08:57 ?854次閱讀
    概述學(xué)習(xí)<b class='flag-5'>Linux</b>系統(tǒng)中<b class='flag-5'>命令</b>的簡單方法

    數(shù)據(jù)驅(qū)動的建模:水資源和環(huán)境工程學(xué)中使用MATLAB

    數(shù)據(jù)驅(qū)動的建模:水資源和環(huán)境工程學(xué)中使用MATLAB說明。
    發(fā)表于 05-27 09:53 ?0次下載

    嵌入式Linux怎么學(xué)?

    嵌入式Linux怎么學(xué)?要學(xué)哪些東西?些人總在糾結(jié),怕走了彎路,怕學(xué)的東西不符合企業(yè)需求。那么今天就從這幾點(diǎn)簡要分析下嵌入式要學(xué)習(xí)的內(nèi)容。
    發(fā)表于 11-01 16:31 ?10次下載
    嵌入式<b class='flag-5'>Linux</b>怎么<b class='flag-5'>學(xué)</b>?

    linux嵌入式主要學(xué)什么,學(xué)嵌入式linux,用什么開發(fā)板,請大家推薦

    搞個嵌入式linux培訓(xùn)班的課程來看下,就知道要學(xué)什么了C語言基礎(chǔ)、C++基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)原理、Linux應(yīng)用基礎(chǔ)、電子電路基礎(chǔ)開課前周:入學(xué)基礎(chǔ)測試與輔導(dǎo)(C語言、C++、
    發(fā)表于 11-02 14:51 ?17次下載
    <b class='flag-5'>linux</b>嵌入式主要<b class='flag-5'>學(xué)</b>什么,<b class='flag-5'>學(xué)</b>嵌入式<b class='flag-5'>linux</b>,用什么開發(fā)板,請大家推薦<b class='flag-5'>一</b>下

    基礎(chǔ)的Linux操作命令

    IC設(shè)計是linux環(huán)境下,很多操作需要在Terminal中進(jìn)行,因此想要學(xué)習(xí)IC設(shè)計,就必須先需要熟悉Linux環(huán)境、掌握基礎(chǔ)的Linux操作
    的頭像 發(fā)表于 03-15 13:42 ?1500次閱讀

    如何在Linux中使用progress命令

    progress 命令個簡單但功能強(qiáng)大的 Linux/Unix 命令行工具,可讓用戶查看文件操作的進(jìn)度。
    的頭像 發(fā)表于 04-08 15:51 ?2273次閱讀