您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關提高Linux工作效率的九大bash技巧分別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
我喜歡鉆研bash環境。很多時候,在使用bash編程中,有些問題一遍又一遍的重復遇到。每次我都需要重新思考這些問題的解決方法。直到有一天我無法忍受,于是坐下來,編寫一個通用的函數,放入我的.bashrc文件中,部署到電腦上。
希望我的這些追求最大化命令行效率的努力成果也能給其他喜歡使用bash的朋友們帶來一些幫助。我更大的期望是我的這種行為能引起其他朋友的互動——給我提建議、提出更好的bash技巧,請在文后留言討論。
別的不多說了,下面就是我的總結。
每次我都會重新尋找這個命令的寫法。下面就是如何使用sed往一個文件頂部添加一行的方法:
sed -i path/to/file/you/want/to/change.txt
這種方法非常簡單,很多人都知道,下面就是如何用命令行將(>>)多行文本插入一個文件中。這里使用的是“here document”語法,它能讓你通過塊文本符號來將段落插入文件中,通常用的符合是EOF(意思是 “End Of File”):
cat >> path/to/file/to/append-to.txt << /jdk1.8.0_31/bin: /jdk1.8.0_31/ EOF
兩個”EOF“之間的所有內容都會被添加到文件中。
如果你使用Eclipse,ItelliJ或其它IDE,這些工具的強大重構能力也許會讓你輕松實現很多事情。但我估計很多時候你的開發環境中沒有這樣的集成工具。
如何使用命令行對一個目錄進行遞歸搜索和替換?別想Perl語言,你可以使用find and sed。感謝Stack Overflow提供的指導:
find . -type f -name -exec sed -i s/this/that/g +
使用了一段時間后,我總結寫出了一個函數,添加入了 .bashrc ,就像下面這樣:
sr find . -type f -exec sed -i s///g +
你可以像這樣使用它:
sr wrong_word correct_word
我過去喜歡用Emacs里的scratch facility功能。也經常用Vim快速創建臨時文件。下面這兩個函數是使用openssl生成隨機的字符串作為文件名:
sc gvim ~/Dropbox/openssl rand -base64 tr -dc .txt scratch gvim ~/Dropbox/openssl rand -base64 tr -dc .txt
在命令行窗口輸入sc或scratch,一個新的gvim或macvim窗口就會彈出來,里面會加載一個隨機文件名的臨時文件。
下載一個頁面輸出到終端,跟隨鏈接轉向,忽略安全異常:
curl -Lks <some-url>
下載一個鏈接,跟隨鏈接轉向,忽略安全異常:
curl -OLks <some-url/to/a/file.tar.gz>
這里用了很多參數,你可以閱讀這個簡單的curl文檔來了解它們。
你還沒有在.bashrc里使用bashmarks嗎?還在等待什么?它真的非常有用。它能幫你保持歷史操作,跳回到你經常使用的目錄。下面是我的配置文件里腳本,但我想上面的鏈接能提供你更多技巧:
我幾乎天天都會使用它。真的。經常會有一些輸出,我只需要其中的第二列,或第三列,下面這個命令就能做到這些:
M .bashrc ?? .vim/bundle/extempore/ $ git status -s awk .bashrc .vim/bundle/extempore/
為什么不寫個函數,讓我們隨時都可以用呢?
col awk -v
這使得提取列非常容易,比如,你不想要第一列?簡單:
$ git status -s col 2 .bashrc .vim/bundle/extempore/
我對xargs很著迷,我感覺它就像一把快刀。但有時候用它獲得的結果需要調整一下,也許需要取得一些值。例如,你想去掉下面文件影像里的一些信息:
skip cut -d -f-
下面是如何使用它:
使用 docker images 得到下面的輸出:
使用上面的函數,你可以獲取所有的IDs:
$ docker images col 3 IMAGE 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a
進一步處理:
docker images col xargs IMAGE 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a
但前面的”IMAGE”字符我也想去掉:
docker images col xargs skip 1 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a
完整的寫下來就是這樣:
docker rmi docker images col xargs skip 1
在bash里,你可以很容易的創建自己的命令組件,你可以看一下下面我寫的:
通過上面的腳本,我可以將ssh key拷貝到任何網站服務器——只需要鍵入 dur key user@somehost.
看完上述內容,你們對提高Linux工作效率的九大bash技巧分別是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。