shell 歷史命令相關記錄

2021-07-14 13:21:48 字數 2218 閱讀 9751

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中的這時候另乙個更有趣的命令派上用場了,

「^」號(替換)

shell> 

^mo^mp

這會把上乙個命令列裡的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,這裡面儲存的是我上次登陸正確登出後儲存的命令。這次登陸正確退出的時候才會把命令同步到....