自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

給Linux 初學(xué)者的fc示例教程

系統(tǒng) Linux
fc (Fix Commands 的縮寫)是個(gè) shell 內(nèi)置命令,用于在交互式 shell 里列出、編輯和執(zhí)行最近輸入的命令。你可以用你喜歡的編輯器編輯最近的命令并再次執(zhí)行,而不用把它們整個(gè)重新輸入一遍。除了可以避免重復(fù)輸入又長(zhǎng)又復(fù)雜的命令,它對(duì)修正拼寫錯(cuò)誤來(lái)說(shuō)也很有用。

[[226998]]

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

fc 命令教程及示例 

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

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

  1. $ fc -l
  2. 507 fish
  3. 508 fc -l
  4. 509 sudo netctl restart wlp9s0sktab
  5. 510 ls -l
  6. 511 pwd
  7. 512 uname -r
  8. 513 uname -a
  9. 514 touch ostechnix.txt
  10. 515 vi ostechnix.txt
  11. 516 echo "Welcome to OSTechNix"
  12. 517 sudo apcman -Syu
  13. 518 sudo pacman -Syu
  14. 519 more ostechnix.txt
  15. 520 wc -l ostechnix.txt
  16. 521 cat ostechnix.txt
  17. 522 clear

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

  1. $ fc -lr

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

  1. $ fc -ln
  2. nano ~/.profile
  3. source ~/.profile
  4. source ~/.profile
  5. fc -ln
  6. fc -l
  7. sudo netctl restart wlp9s0sktab
  8. ls -l
  9. pwd
  10. uname -r
  11. uname -a
  12. echo "Welcome to OSTechNix"
  13. sudo apcman -Syu
  14. cat ostechnix.txt
  15. wc -l ostechnix.txt
  16. more ostechnix.txt
  17. clear

這樣行號(hào)就不再顯示了。

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

  1. $ fc -l 520
  2. 520 ls -l
  3. 521 pwd
  4. 522 uname -r
  5. 523 uname -a
  6. 524 echo "Welcome to OSTechNix"
  7. 525 sudo apcman -Syu
  8. 526 cat ostechnix.txt
  9. 527 wc -l ostechnix.txt
  10. 528 more ostechnix.txt
  11. 529 clear
  12. 530 fc -ln
  13. 531 fc -l

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

  1. $ fc -l 520 525
  2. 520 ls -l
  3. 521 pwd
  4. 522 uname -r
  5. 523 uname -a
  6. 524 echo "Welcome to OSTechNix"
  7. 525 sudo apcman -Syu

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

  1. $ fc -l p
  2. 521 pwd
  3. 522 uname -r
  4. 523 uname -a
  5. 524 echo "Welcome to OSTechNix"
  6. 525 sudo apcman -Syu
  7. 526 cat ostechnix.txt
  8. 527 wc -l ostechnix.txt
  9. 528 more ostechnix.txt
  10. 529 clear
  11. 530 fc -ln
  12. 531 fc -l
  13. 532 fc -l 520
  14. 533 fc -l 520 525
  15. 534 fc -l 520
  16. 535 fc -l 522
  17. 536 fc -l l

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

  1. $ fc -l p m

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

  1. $ fc -l p 528

或者都使用行號(hào):

  1. $ fc -l 521 528

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

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

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

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

  1. $ fc

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

[[226999]]

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

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

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

  1. $ fc -e nano

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

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

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

  1. $ vi ~/.profile

添加下面一行:

  1. FCEDIT=nano
  2. # LCTT譯注:如果在子 shell 中會(huì)用到 fc ,***在這里 export FCEDIT

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

  1. FCEDIT=/usr/local/bin/emacs

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

  1. $ source ~/.profile

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

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

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

  1. $ echo "Welcome to OSTechNix"
  2. Welcome to OSTechNix
  3.  
  4. $ fc -e -
  5. echo "Welcome to OSTechNix"
  6. Welcome to OSTechNix

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

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

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

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

  1. fc -ld
  2. 1 18:41 exit
  3. 2 18:41 clear
  4. 3 18:42 fc -l
  5. 4 18:42 sudo netctl restart wlp9s0sktab
  6. 5 18:42 ls -l
  7. 6 18:42 pwd
  8. 7 18:42 uname -r
  9. 8 18:43 uname -a
  10. 9 18:43 cat ostechnix.txt
  11. 10 18:43 echo "Welcome to OSTechNix"
  12. 11 18:43 more ostechnix.txt
  13. 12 18:43 wc -l ostechnix.txt
  14. 13 18:43 cat ostechnix.txt
  15. 14 18:43 clear
  16. 15 18:43 fc -l

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

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

  1. fc -lf
  2. 1 4/5/2018 18:41 exit
  3. 2 4/5/2018 18:41 clear
  4. 3 4/5/2018 18:42 fc -l
  5. 4 4/5/2018 18:42 sudo netctl restart wlp9s0sktab
  6. 5 4/5/2018 18:42 ls -l
  7. 6 4/5/2018 18:42 pwd
  8. 7 4/5/2018 18:42 uname -r
  9. 8 4/5/2018 18:43 uname -a
  10. 9 4/5/2018 18:43 cat ostechnix.txt
  11. 10 4/5/2018 18:43 echo "Welcome to OSTechNix"
  12. 11 4/5/2018 18:43 more ostechnix.txt
  13. 12 4/5/2018 18:43 wc -l ostechnix.txt
  14. 13 4/5/2018 18:43 cat ostechnix.txt
  15. 14 4/5/2018 18:43 clear
  16. 15 4/5/2018 18:43 fc -l
  17. 16 4/5/2018 18:43 fc -ld

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

  1. fc -lE
  2. 2 5.4.2018 18:41 clear
  3. 3 5.4.2018 18:42 fc -l
  4. 4 5.4.2018 18:42 sudo netctl restart wlp9s0sktab
  5. 5 5.4.2018 18:42 ls -l
  6. 6 5.4.2018 18:42 pwd
  7. 7 5.4.2018 18:42 uname -r
  8. 8 5.4.2018 18:43 uname -a
  9. 9 5.4.2018 18:43 cat ostechnix.txt
  10. 10 5.4.2018 18:43 echo "Welcome to OSTechNix"
  11. 11 5.4.2018 18:43 more ostechnix.txt
  12. 12 5.4.2018 18:43 wc -l ostechnix.txt
  13. 13 5.4.2018 18:43 cat ostechnix.txt
  14. 14 5.4.2018 18:43 clear
  15. 15 5.4.2018 18:43 fc -l
  16. 16 5.4.2018 18:43 fc -ld
  17. 17 5.4.2018 18:49 fc -lf 

fc 用法總結(jié)

  • 當(dāng)不帶任何參數(shù)時(shí),fc 將上一個(gè)命令載入默認(rèn)編輯器。
  • 當(dāng)帶一個(gè)數(shù)字作為參數(shù)時(shí),fc 將數(shù)字指定的命令載入默認(rèn)編輯器。
  • 當(dāng)帶一個(gè)字符作為參數(shù)時(shí),fc 將最近一個(gè)以指定字符開頭的命令載入默認(rèn)編輯器。
  • 當(dāng)有兩個(gè)參數(shù)時(shí),它們分別指定需要列出的命令范圍的開始和結(jié)束。

更多細(xì)節(jié),請(qǐng)參考 man 手冊(cè)。

  1. $ man fc

好了,今天就這些。希望這篇文章能幫助到你。更多精彩內(nèi)容,敬請(qǐng)期待! 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2018-04-08 14:47:06

Linux命令type

2011-04-12 10:13:24

2018-05-14 08:53:51

Linux命令shuf

2018-02-23 10:03:30

Linux命令mkdir

2011-07-04 14:14:54

java

2018-04-16 08:33:39

Linux命令uniq

2022-06-15 15:30:29

Linux新用戶建議

2010-06-13 11:13:38

UML初學(xué)者指南

2018-04-02 11:59:04

Linux命令ln

2009-11-18 09:30:43

2016-11-18 17:40:35

2018-02-24 10:38:06

Linux命令rmdir

2012-05-22 14:38:04

2009-12-25 10:11:32

Red hat Lin

2024-03-06 09:31:34

SQL數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)構(gòu)

2022-09-05 15:36:39

Linux日志記錄syslogd

2011-08-24 17:05:01

Lua

2016-11-11 20:33:53

Hadoop大數(shù)據(jù)云計(jì)算

2009-02-18 11:10:40

c++忠告方法

2013-12-12 10:20:00

JavaScript學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)