shell 歷史命令使用上有很多技巧,除了經常經常使用的
fc -l
history
!!
!: 是對歷史命令引數的直接引用 。shell> ls /bin/sh
shell> file !:$
再來看乙個長點的。
這顯然是乙個錯誤的輸入,大家都知道bz2是使用bzip解壓縮的,對應的tar引數,應當是使用」jxvf」. 那我們可以立即這樣修正它:
shell> tar jxvf !:2
「!:2」會獲得上面tar命令的第2個引數,作為當前的輸入. 獲取的歷史輸入,並不只是可以單獨使用,也可以作為命令的一部分象這樣:
shell> tar jxvf !:2 -c /usr/tmo執行完上面的獲取,命令被替換成了tar jxvf httpd-2.0.59.tar.bz2 -c /usr/tmo
那就會按照-c指定的路徑把包解壓縮到/usr/tmo中.
命令執行後的結果:
tar: /usr/tmo: cannot chdir: no such file or directory
tar: error is not recoverable: exiting now
sorry,我一不小心又敲錯了.我本來是想解壓縮到/usr/tmp中的這時候另乙個更有趣的命令派上用場了,
「^」號(替換)
這會把上乙個命令列裡的mo替換成mpshell>
^mo^mp
神奇吧,你的指法再快,只是在浪費時間,我輕敲6個字元,就搞定了上面的錯誤.
!是bash和cshell預設的歷史替換符號
!! 重複最後乙個命令
!:s/xy/yx 這個命令會把最後乙個命令裡的xy替換成yx
比如etho xy !:s/xy:/yx
!so 重複最近以so開始的命令
!?fn? 重複最近喊有fn的命令,在某個引數中或某個命令的名稱中都可以使用
!32 執行號碼為32的命令
!! & 會在最後乙個命令的末尾加上& (可以加上任意內容)
!:0 挑選出命令的名稱,而不是整行
!:3 第3個引數
!:2-4 第2到4個引數
!:-3 從第0個到第三個引數
!^ 第乙個引數
!$ 最後乙個引數
!* 第乙個到最後乙個引數
!:2* 第2個到最後乙個
!:2- 從第2個開始,但不要結尾引數
!?fn?% 給出第乙個包含 fn的次(sort fn1 fn2 fn3 … =>echo !?fn?% =>echo fn1)
還有乙個會用到,$ !!:p
這個命令可將最後一條命令顯示出來並更改歷史記錄,可以這樣更有用$ !788:p
顯示第788條記錄,並寫到最近歷史命令中去。
更cool的,請參
man 3 history
和其他的一些man page
命令列程式設計 shell是直接支援命令列程式設計的. 比如:
開工了,我要把這些東西裝起來,解壓縮吧,好多呀,要敲n個命令.
別急,這不會花費你幾秒鐘的時間;
眼暈了吧,不一會所有的包都解壓縮了。sh > for i in `ls *z`
sh > do
sh > tar zxvf $i
sh > done
shell 歷史命令記錄功能
標籤 空格分隔 linux shell 在 linux 下面可以使用history命令檢視使用者的所有歷史操作,同時 shell 命令操作記錄預設儲存在使用者目錄的.bash history檔案中。通過這個檔案可以查詢 shell 命令的執行歷史,有助於運維人員進行系統審計和問題排查,同時在伺服器遭...
shell歷史命令記錄功能
在linux下可通過history命令檢視使用者所有的歷史操作記錄,同時shell命令操作記錄預設儲存在使用者目錄下的.bash history檔案中,通過這個檔案可以查詢shell命令的執行歷史,有助於運維人員進行系統審計和問題排查,同事,在伺服器遭受黑客攻擊後,也可以通過這個命令或檔案查詢黑客登...
Shell歷史命令
1.歷史命令 history 輸出的是我上次.bash history儲存下來的和我這次輸入的命令。歷史命令實際儲存在使用者家目錄下的檔案中 bash history 開啟該檔案 cat bash history,這裡面儲存的是我上次登陸正確登出後儲存的命令。這次登陸正確退出的時候才會把命令同步到....