FC(LINUX命令)

FC(LINUX命令)

FC是LINUX命令用途是處理命令歷史列表,fc 命令顯示了歷史命令檔案內容或調用一個編輯器去修改並重新執行以前在 shell 中輸入的命令。

基本介紹

  • 中文名:FC
  • 類型:LINUX命令
  • 用途 :處理命令歷史列表
  • 領域:計算機
語法,描述,標誌,參數,環境變數,退出狀態,檔案,

語法

打開一個編輯器去修改或重新執行以前輸入的命令
fc [ -r ] [ -e Editor ] [ First [ Last ] ]
生成一個以前輸入的命令的列表
fc -l [ -n ] [ -r ] [ First [ Last ] ]
重新執行一個以前輸入的命令
fc -s [ Old= New ] [ First ]

描述

fc 命令顯示了歷史命令檔案內容或調用一個編輯器去修改並重新執行以前在 shell 中輸入的命令。
歷史命令檔案按編號列出命令。列表中的第一個編號可以任意選擇。每一個命令與編號的關係不會改變,除非用戶登錄進系統並且沒有其它進程訪問過該列表。在這種情況下,系統將重新設定編號,並把餘下的最老的命令編號設定為 1。
如果歷史命令檔案中的編號達到了一個大於 HISTSIZE 環境變數值,或是大於 32767 的極限值,不管是哪一種情況,shell 將把編號重新設為 1。儘管可選編號重新開始設定,但 fc 命令會按時間順序維護命令序列。例如,有三個命令按照編號 32766,32767 和 1(被折返)排序,則編號 32767 的命令仍被認為在編號為 1 的命令之前。
可以使用 -l(L 的小寫)標誌列出歷史檔案中的命令。當沒有使用 -l 標誌並且使用了 -eEditor 標誌編輯命令,其結果行將輸入到歷史檔案的末尾並且被 shell 重新執行( fc -e Editor 命令不會被輸入進歷史命令列表中)。如果編輯器返回一個非零的退出狀態值,這將禁止歷史檔案中的條目和命令重新執行。
與 fc 命令一起使用的命令行上的任何變數賦值或者重定向運算符將再一次調用前面的命令,並且抑制 fc 命令和前面的命令所產生的標準錯誤。示例:
fc -s -- -1 2>/dev/null

標誌

-e Editor 使用指定的編輯器編輯命令。 Editor 參數應是一個命令名稱。該命令用 PATH 環境變數指定位置。當沒有指定 -e 標誌時,環境變數 FCEDIT中的值被用作預設值。如果環境變數 FCEDIT 是空值或沒有設定,則使用 ed 編輯器。 -l (L 的小寫)列出了歷史檔案中的命令。不調用編輯器去修改它們。按照 First 和 Last 參數所指定的順序寫命令,就象-r 標誌所作用的,在每一個命令的前面有一個命令編號。 -n 當與 -l 標誌一起使用時,隱藏命令編號。 -r 逆轉所列出命令的順序(當使用 -l 標誌)或者逆轉所編輯的命令順序(當沒有指定 -l 標誌時)。
-s 不調用編輯器重新執行一個命令。如果沒有指定 First 參數,則 -s 標誌重新執行前一個命令。

參數

First or Last 選擇要列出或編輯的命令。HISTSIZE 環境變數值確定了能夠訪問到的以前所輸入命令的數量。First 參數和 Last 參數必須具有下列數值中的一個:
[+] Number
表示一個特定的命令編號。-l 標誌可以顯示命令編號。預設是一個 +(加符號)字元。
-Number
表示一個以前執行的命令,由存儲在歷史列表中的命令編號指定。例如,-1 指出了前一個剛執行過的命令。
String
指出了最近所輸入的命令,該命令以指定的字元串開頭。如果指定了 Old=New 參數但沒有指定 -s 標誌,則來自 First 參數的字元串中不能包含一個嵌入的 =(等於符號)。
當使用 -s 標誌時,省略 First 參數將導致使用前一個命令。
當沒有指定 -s 標誌時,將套用下列規則:
* 當使用 -l 標誌時,省略 Last 參數將會導致預設使用前一個命令。
* 當使用 -r、-n 和 -e 標誌時,省略 Last 參數會導致預設使用 First 參數。
* 如果 First 參數和 Last 參數都被省略了,則列出前 16 個命令或編輯前一個命令(取決於是否使用 -l 標誌)。
* 如果使用了 First 參數和 Last 參數,則列出所有的命令(當指定了 -l 標誌時)或編輯所有的命令(當沒有指定 -l 標誌)。通過將所有的命令同時顯示在編輯器中,可以實現編輯多個命令,每個命令都另起一新行。如果 First 參數表示的命令比 Last 參數表示的命令要更新的話,則命令是以相反的順序被列出或編輯的。這與使用 -r 標誌的效果是一樣的。例如,下列第一行的命令與第二行上相應的命令是等價的:
fc -r 10 20 fc 30 40
fc 20 10 fc -r 40 30
* 當使用某一範圍中的命令時,如果 First 參數或 Last 參數指定了不在歷史列表的值時,這並不是一個錯誤。fc 命令會替換表示列表中合適的最早或最近的命令的值。例如,如果在歷史列表中僅有編號從 1 到 10 的十個命令,則命令:
fc -l
fc 1 99
分別列出和編輯所有這十個命令。
Old=New 在要重新執行的命令中,用新字元串去代替第一個出現的老字元串。

環境變數

下列環境變數會影響 fc 命令的執行:
FCEDIT 當 shell 擴展該環境變數時,該變數確定了 -e editor 變數的預設值。如果環境變數 FCEDIT 為空值或沒有被設定,則預設使用 ed 編輯器。
HISTFILE 確定歷史命令檔案的路徑名。如果環境變數 HISTFILE 沒有被設定,則 shell 可能會嘗試訪問或創建在用戶主目錄中的 .sh_history 檔案。
HISTSIZE 確定一個十進制數值,該數值表示了可以訪問的以前輸入的命令的數量限值。如果沒有設定該變數,則使用預設值 128。

退出狀態

下列出口值被返回:
0 成功完成列表。
>0 發生錯誤。
否則退出狀態是由 fc 命令執行的命令的狀態。
示例 
①要對最近所使用的命令調用環境變數 FCEDIT 所定義的編輯器(預設的編輯器是 /usr/bin/ed),請輸入:
fc
當完成編輯之後,執行該命令。
②要列出執行過的前兩個命令,請輸入:
fc -l -2
③要找到以 cc 字元開始的命令,且把 foo 改變為 bar,並顯示和執行該命令,請輸入:
fc -s foo=bar cc

檔案

/usr/bin/ksh 包含了 Korn shell 的內置命令 fc。
/usr/bin/fc 包含了 fc 命令。

相關詞條

熱門詞條

聯絡我們