2021-05-12 14:32:11
幾個Linux命令及指令碼使用中的有趣技巧
範例1.建立一個別名,刪除原始檔案,同時在使用者的home目錄下backup中儲存副本。
#/bin/bash
cp $@ ~/backup && rm -rf $@
範例2.Fork炸彈。
:(){:|:&};:
範例3.生成一個11位的隨機密碼,包括大小寫字母、數位及特殊(/與+)符號。
openssl rand -base64 200|cut -b 1-11|head -n 1
範例4.不切換當前工作目錄,使用cd命令並顯示切換後目標目錄的內容。
(cd /bin;ls)
本例子中,使用()定義了一個子shell,對當前的shell並無影響,所有改變僅限於子shell中,上述操作在某些場景中特別有用。
範例5.為防止當前工作終端退出造成正在執行的任務被中斷,我們可以在螢幕上隨機列印一些數位字母。下面命令用來裝X有時候也挺有用。
while true ; do display=`echo $RANDMOM|md5sum` ; echo $display $display ; done
範例6.使用一條命令隨機建立一個指定格式的檔案或目錄。
mktemp gyslXXX
mktemp -d gyslXXX
此命令一般不常見,gysl為指定的字首,之後的大寫X為預留位置,這些大寫的X不能位於名稱最前面,並且至少保證存在3個X預留位置,這些大寫X在建立新檔案和新目錄是會被隨機字母所替代。如果直接執行mktemp命令,那麼會在本機的/tmp目錄下建立臨時檔案或目錄。執行該命令建立的檔案預設許可權為:600,目錄許可權為700,並不受umask所影響,這一點需要特別注意。
範例7.刪除文字中的空白行。
sed -i '/^$/d' a.txt
實現這個功能的命令很多,可能這是最簡單一個命令了。
範例8.通過正規表示式的匹配,將匹配內容使用&替代,按照指定格式輸出。
echo "My name is Ivan."|sed 's/w+/[&]/g'
echo "My name is Ivan. My phone number is 010-87654321"|sed 's/[a-zA-Z0-9]+/{&}'
上面例子分別匹配出了目標字串中的單詞(包括數位和字母),並把匹配內容分別使用[]和{}包起來。
範例9.通過sed命令直接編輯文字時,在編輯之前先將原始檔進行備份。
sed -i.1010.bak 's/ChatDevOps/gysl/' test.txt
執行完該命令後,原始檔裡面的每一行第一個匹配的ChatDevOps替換為gysl,並將原始檔備份為test.txt.1010.bak。
相關文章