使用linux的過程中,在處理很長的並且包含複雜的語法的命令時,如果不小心犯了一點小錯誤,需要重新輸入整個命令以及引數,直到命令執行成功為止。另一種選擇是使用 fc 命令編輯並重新執行前乙個命令,而無需重新輸入整個命令以及引數。
fc 命令是 fix command 的縮寫,是乙個內建命令,它能列出、編輯、重新執行最近在互動shell中輸入的命令,你可以使用指定的編輯器編輯並執行最近輸入的命令,而不需要重新輸入整個命令。
fc命令的語法如下:
[root@ecs-centos-7 ~]# fc --h
fc: usage: fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
使用指定的編輯器編輯,預設是 vi 編輯器, 在下面的例子中ls /home/tt
命令在 vi 中編輯,把 ls 改成 cd,在儲存退出的時候會執行cd /home/tt
命令, 具體的結果如下:
[root@ecs-centos-7 ~]# fc -l
657 ls /home/tt
658 fc -l
[root@ecs-centos-7 ~]# fc -e vi 657
ls /home/tt
"/tmp/bash-fc-27929723442" 1l, 12c written
cd /home/tt
[root@ecs-centos-7 tt]# pwd
/home/tt
[root@ecs-centos-7 tt]#
列出最近的歷史命令,預設是16條
[root@ecs-centos-7 ~]# fc -l
1 date
2 cd ~
3 fc -l
4 fc -lr
5 ls /home/tt
6 chage -l
[root@ecs-centos-7 ~]# fc -l -3
4 fc -lr
5 ls /home/tt
6 chage -l
[root@ecs-centos-7 ~]#
[root@ecs-centos-7 wl]# fc -l 530
530 date
531 chage -l tt
532 chage -h
533 chage -l root
534 fc -l
[root@ecs-centos-7 wl]# fc -l 531 534
531 chage -l tt
532 chage -h
533 chage -l root
534 fc -l
逆序顯示歷史命令,一般都是跟 -l 引數一起使用,下面是使用 -r 選項的例子。fc -l 選項顯示的是從1到2行的命令。執行 fc -lr 顯示的命令列數要包括前面 fc -l 的命令,所以結果會比前面多一行,執行逆序之後的行數是從3到1行, 具體的結果如下:
[root@ecs-centos-7 ~]# fc -l
1 date
2 cd ~
[root@ecs-centos-7 ~]# fc -lr
3 fc -l
2 cd ~
1 date
[root@ecs-centos-7 ~]#
顯示歷史命令時不顯示行號,一般都是跟-l引數一起使用, 下面的例子中沒有顯示行號
[root@ecs-centos-7 tt]# fc -l
1 date
2 chage -l tt
[root@ecs-centos-7 tt]# fc -ln
date
chage -l tt
fc -l
[root@ecs-centos-7 tt]#
-s [pat=rep] [command] 把 pat 命令替換成 rep 命令並執行,下面的例子把ls /home/tt
替換成cd /home/tt
命令,執行成功之後,當前目錄變成了/home/tt
命令執行結果如下:
[root@ecs-centos-7 tt]# fc -l
1 date
2 ls /home/tt
[root@ecs-centos-7 tt]# fc -s cd=ls 2
ls /home/tt
[root@ecs-centos-7 tt]# pwd
/home/tt
[root@ecs-centos-7 tt]#
乙個有用的小技巧, 使用 fc -s 'pre' 可以自動執行最近乙個以 'pre' 開頭的命令,輸入fc -s
命令 可以再次執行這個命令。
[root@ecs-centos-7 ~]# fc -l
1 ls /home/tt
2 chage -l
3 date
上面是歷史命令列表,執行fc -s 'da'
命令會執行最近乙個以 'da' 開頭的命令,下面是具體的執行結果
[root@ecs-centos-7 ~]# fc -s 'da'
date
mon jun 29 20:26:33 cst 2020
[root@ecs-centos-7 ~]# fc -s 'l'
ls /home/tt
[root@ecs-centos-7 ~]# fc -s
ls /home/tt
從上面的結果來看,執行fc -s 'da'
會執行最近一條以 'da' 開頭的命令,也即 date 命令。
執行fc -s 'l'
命令會執行最近一條以 'l' 開頭的命令,也即ls /home/tt
命令,緊接著執行fc -s
命令,會再次執行一次ls /home/tt
命令
linux下如何使用sftp命令。
舉例,如遠端主機的 ip 是 202.206.64.33或者是網域名稱www.hebust.edu.cn,使用者名稱是 fyt 在命令列模式下 sftp fyt 202.206.64.33或者 fyt www.hebust.edu.cn。回車提示輸入密碼。進入提示符 sftp ssh fyt 202...
linux下如何使用sftp命令
linux的命令有許多,今天著重來講下sftp吧!sftp 在命令列模式下 sftp fyt 202.206.64.33或者 fyt www.hebust.edu.cn。回車提示輸入密碼。進入提示符 sftp ssh fyt 202.206.64.33 其實sftp就是ssh 的乙個程式。sftp ...
Linux下如何使用vim命令
一 一般模式 刪除 複製與貼上類命令 x,x x為向後刪除乙個字元,x為先前刪除乙個字元 nx n代表數字 向後刪除n個字元 dd 刪除當前行 d 刪除當前行所有字元,試成為空行 ndd n代表數字 刪除游標所在行的向下n列 d1g 刪除游標所在行到第一行的所有資料 dg 刪除游標所在行到最後一行的...