linux 已經逐漸成為了最受開發者歡迎的操作系統。本文將介紹四個極為實用的技巧,相信這將能夠提高您在 Linux 下的工作效率和流暢性,也讓工作變得更為舒適、優雅。
1. 跳轉目錄優雅順滑
1.1 bd 命令
快速回到 Bash 中的特定父目錄,而不是多余地鍵入?cd ../../..。
如果您在此路徑中/home/radia/work/python/tkinter/one/two并且想快速轉到目錄 python,只需鍵入:
bd?python
或者僅輸入目錄的前幾個字母,如匹配多個目錄,則回到最近的一個:
bd?p
示例:

bd 命令安裝:
sudo?wget?--no-check-certificate?-O?/usr/bin/bd?https://raw.githubusercontent.com/vigneshwaranr/bd/master/bd sudo?chmod?+rx?/usr/bin/bd echo?'alias?bd=".?bd?-si"'?>>?~/.bashrc source?~/.bashrc
要啟用區分大小寫的目錄名稱匹配,請在別名中使用 -s 代替 -si:
如希望了解更多可以訪問開發者 GitHub:https://github.com/vigneshwaranr/bd
1.2 cd 命令的一些常用技巧
cd 后面不跟任何參數,回用戶主目錄,等同:cd ~。
cd cd?~
cd – 回退,返回之前目錄:
cd?-
1.3 自定義命令,跳轉到常用目錄
對于經常使用的目錄,可以增加一條自定義命令,實現一鍵直達。這點在下文詳解,先看個效果。
如果您在此路徑中/home/radia/work/python/tkinter/one/two,并且想快速轉到目錄?/home/radia/work/linux/linux-3.16.6,然后只需鍵入:
cl
示例:

2. 多終端操作
在 Linux 終端操作時,任意分割屏幕為多個窗口,減少鼠標操作,都是提高效率的好辦法。
在此,推薦 Terminator。安裝方法:
sudo?apt-get?install?terminator
安裝完成后 CTRL + ALT + T 打開軟件,或者在所有程序中搜索 terminator。
如下圖所展示了一個使用快捷鍵分屏出三個小窗口的示例,并且將左下窗口重命名為 log。
這樣分割的三部分:
-
左下角可以專門用來顯示實時串口 log;
-
左上側可以用來編譯代碼,查看編譯報錯等;
-
右側可以編輯代碼,瀏覽文件等。

當然,各個分屏的大小也是可以靈活調節的,鼠標拖動和快捷鍵 CTRL + SHIFT + ↑ ↓ ← → 都可以實現。
如果一個標簽頁不能滿足需求,可以使用快捷鍵 CTRL + SHIFT + T 開啟多個標簽頁,標簽頁也可以編輯標題,便于區分。另外,搜索公眾號頂級科技后臺回復“API接口”,獲取一份驚喜禮包。
常用的快捷鍵如下:
-
CRTL + SHIFT + T,開新標簽頁
-
CRTL + SHIFT + E,垂直方向分屏
-
CRTL + SHIFT + O,水平方向分屏
-
ALT + ↑ ↓ ← → 在同一個標簽頁中的各個分屏之間切換
-
CTRL + PAGEUP / PAGEDOWN 左右切換不同標簽頁
快捷鍵也可以按照自己的習慣進行配置,比如切換標簽頁的快捷鍵是 CRTL + PAGEUP/PAGEDOWN,對于這樣一個常用操作,手指移動到 PAGEUP/PAGEDOWN 按鍵,距離還是太長了,我習慣將其配置為 ALT + H 和 ALT + L ,因為 ALT 按鍵配合方向鍵可以切換同一標簽頁中的不同分屏,索性也就讓 ALT 來切換不同標簽頁。選擇 H 和 T 是因為習慣了 Vim 中 H 和 T 的左右移動。
將常用功能單獨預留一個終端窗口,并且編輯終端標題,可以提高效率。按照自己的習慣分屏窗口,調整窗口,再結合下一小節中配制出的強大 Vim,就可以輕松打造自己專屬且高效的 IDE 了。
3. 文件編輯
3.1 Markdown 編輯器推薦
Markdown 是目前最為流行的標記語言,可以給常規的文本文件賦予:格式排版、插入圖片、插入圖表、插入代碼等實用功能,此處推薦 Typora 編輯器,文藝風格,功能強大。
Tpyora 安裝:
wget?-qO?-?https://typora.io/linux/public-key.asc?|?sudo?apt-key?add?- #?add?Typora's?repository sudo?add-apt-repository?'deb?https://typora.io/linux?./' sudo?apt-get?update #?install?typora sudo?apt-get?install?typora
Markdown 和 Tpyora 使用簡單,一看就會,不用再多做介紹。
可以將 Markdown 格式作為記錄筆記,整理自己知識樹的常用格式。
Typora 官網:https://www.typora.io
3.2 代碼編輯與查看
被公認最好用的代碼編輯器當然是 Vim,但許多功能配置起來有些繁瑣。需要花大量的時間去對比、研究各種插件,這個過程對于初學者是不友好的。
本文先不對任何 Vim 插件做對比,避免眼花繚亂,陷入選擇恐懼癥,而是直接附上我多年積累、一直在使用的 Vim 配置壓縮包,直接解壓就可以使用。建議還沒有形成自己使用習慣的讀者使用我提供的版本,先用起來,在實際使用中慢慢理解,相信過不了多久就能習慣 Vim,再根據自己需求調整或重新配置。
3.2.1 Vim 安裝與快速配置
Vim 安裝方法:
sudo?apt-get?install?vim
Vim 配置:
下載 vim.tar.gz 解壓后,將 vim-config.tar 解壓至用戶根目錄:
tar?-xvf?vim-config.tar??-C?~/
安裝完畢,就這么簡單,所有的插件已經包含到壓縮包里了,不需要再下載其它東西。
重新開啟一個終端窗口就可以使用 Vim 打開代碼看看效果了:

上述界面可以看到,左側界面是文件列表(默認不顯示,F3 開 / 關),右側是函數列表(默認顯示,F9 開 / 關),可以使用 CTRL + W 在各個區域之間跳轉,在三個界面上都可以像編輯文件一樣,通過 h、j、k、l 移動光標定位。
在函數列表項上按回車鍵即可跳轉到指定函數。
在文件列表項上按回車鍵,打開相應文件;按 i 或 s,以水平分割或縱向分割窗口打開文件,這個 Vim 的分割窗口的功能,查看代碼很實用。
3.2.2 搜索一個文件
使用 F3 呼出的文件列表,在同目錄下打開文件還是比較方便的,但如果需要打開其它位置的文件還是不太方便,可以按 F5 呼出文件查找窗口,輸入項目中的文件名,快速開啟文件。
3.2.3 跳轉到函數定義
查看代碼必備的功能就是快速到達函數或變量的定義位置。要實現這個功能,首先需要創建索引。
牛逼啊!接私活必備的?N?個開源項目!趕快收藏
在項目根目錄下執行:
ctags?-R?* //或者指定需要建立索引的語言 ctags?--languages=c,c++,java?-R
執行時間根據項目中源碼數量而定,文件多則創建索引的時間會久一些。執行完成之后,在項目跟目錄下會生成一個 tags 文件。這樣再次在該目錄下,打開 Vim 就可以使用 CTRL + ] 快捷鍵,跳轉到函數或變量的定義位置了,使用 CTRL + T 返回原來的位置。
3.2.4 其它
上述給出的這些基本操作,已經基本能夠滿足日常所有的需求。如果喜歡折騰,熟悉之后可以探索更多功能,還可以加快查找速度,這些在 vim.tar.gz 中的 readme 也有簡單的說明,算是拋磚引玉。
希望通過上述介紹,你能習慣并喜歡上 Vim。
這套配置默認開啟了鼠標的支持,可以通過鼠標定位光標的焦點,使用滾輪翻頁代碼,這是為了便于初學者上手,后續熟悉了之后建議關閉此功能,因為開啟鼠標功能后會損失鼠標的右鍵菜單,鼠標也不如鍵盤操作的效率高。
關閉 Vim 中鼠標功能:
vim?~/.vimrc //在303行前加引號,將set?mouse=a注釋掉即可 "?set?mouse=a
4. 自定義 shell 命令
Linux 的精髓就是腳本,可以對常用操作加入邏輯關系,完成一系列操作,解放我們的雙手,這也是程序員喜歡使用 Linux 的一個主要原因。
4.1 cl 命令的實現
先來看看上文提到的 cl 命令,其能夠實現快速跳轉到常用的 Linux 源碼目錄,這是如何實現的呢?
其實簡單到難以置信:只需在當前用戶根目錄下的 .bashrc 文件中增加命令別名。
按照如下命令嘗試一下吧,將其中/home/radia/work/linux/linux-3.16.6/?替換成自己的常用路徑:
echo?'alias?cl="cd?/home/radia/work/linux/linux-3.16.6/"'?>>?~/.bashrc source?~/.bashrc

上圖可以看到,在添加之前 cl 命令不可用,添加之后就能夠實現功能,成功跳轉到指定目錄了。
注:上述操作僅需操作一次,在添加后開啟的所有終端就都包含了 cl 命令。
4.2 來嘗試一個功能更復雜的命令
邏輯更復雜的命令,就不能像上述 cl 一樣,直接寫在 ~/.bashrc 文件中了。
假設如下場景:
A 工作場景時,需要開啟 A 場景所需的軟件 A1、A2、A3;B 場景時,又需要軟件 B1、B2、B3 的支持。那么可以新增一條命令 env_switch 完成這樣的工作環境的切換
env_switch?A?start?#開啟A工作環境下的軟件A1,A2,A3 env_switch?A?stop?#關閉A工作環境下的軟件A1,A2,A3 env_switch?B?start?#開啟B工作環境下的軟件B1,B2,B3 env_switch?B?stop?#開啟B工作環境下的軟件B1,B2,B3
實現如下:
在任意目錄下,如?/home/radia/cmd,創建腳本文件?env_switch.sh。
加入如下內容,其中開啟、關閉軟件使用 echo 替代了,實際使用時替換為軟件的開啟命令即可:
#!/bin/bash function?env_switch() { ????if?[?$1?=?"A"?];?then ????????echo?"A1,A2,A3?" ????????if?[?$2?=?"start"?];then ????????????echo?"will?be?opened" ????????elif?[?$2?=?"stop"?];?then ????????????echo?"will?be?closed" ????????fi ????elif?[?$1?=?"B"?];then ????????echo?"B1,B2,B3" ????????if?[?$2?=?"start"?];then ????????????echo?"will?be?opened" ????????elif?[?$2?=?"stop"?];?then ????????????echo?"will?be?closed" ????????fi ????fi }
增加執行權限:
chmod?+x?env_switch.sh
放到?~/.bashrc?文件中,這是為了在開啟每個終端時,都自動載入我們自定義的命令:
echo?'source?/home/radia/cmd/env_switch.sh'?>>?~/.bashrc source?~/.bashrc

可以看到上述腳本?env_switch.sh?中只有一個函數,而且并未被調用。這就是本小節中的關鍵技巧所在,利用 source 命令將腳本中的函數導入當前 shell,這樣腳本中的函數就可以和其他的 shell 命令一樣使用了,如有其他需求,可以在 env_switch.sh 文件中增加函數即可,增加一個函數,就會新增一條命令。
這種方法適合那些你每天都在做的一系列操作,歸納后形成一個常用命令,是個不錯的選擇。
另外在開發過程中一些測試場景,如果需要多個步驟的操作,而且在一段時間內會頻繁使用,則建議編寫成腳本即可,無需增加為命令。
4.3 再談談 bd 命令
細心的同學可能已經發現了,其實我們之前使用的 bd 命令也只是一個才 50 多行的小腳本,我們平時在使用中也可以花時間寫一些自己的小腳本,這樣不斷積累下來,工作效率才會不斷提升,所謂磨刀不誤砍柴工嘛。