4個技巧,Linux下讓工作效率翻倍!

語言: CN / TW / HK

Linux 已經逐漸成為了最受開發者歡迎的操作系統。本文將介紹四個極為實用的技巧,相信這將能夠提高您在 Linux 下的工作效率和流暢性,也讓工作變得更為舒適、優雅。

文中軟件安裝命令以 Ubuntu 為例,其它發行版類似。

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 開啟多個標籤頁,標籤頁也可以編輯標題,便於區分。

常用的快捷鍵如下:

  • 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 配置:

https://pan.baidu.com/s/1opcy7owSzThNmF04aMF3Ow

提取碼:b82k

下載 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 跳轉到函數定義

查看代碼必備的功能就是快速到達函數或變量的定義位置。要實現這個功能,首先需要創建索引。

在項目根目錄下執行:

``` 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

```

圖片

可以看到上述腳本 envswitch.sh 中只有一個函數,而且並未被調用。這就是本小節中的關鍵技巧所在,利用 source 命令將腳本中的函數導入當前 shell,這樣腳本中的函數就可以和其他的 shell 命令一樣使用了,如有其他需求,可以在 envswitch.sh 文件中增加函數即可,增加一個函數,就會新增一條命令。

這種方法適合那些你每天都在做的一系列操作,歸納後形成一個常用命令,是個不錯的選擇。

另外在開發過程中一些測試場景,如果需要多個步驟的操作,而且在一段時間內會頻繁使用,則建議編寫成腳本即可,無需增加為命令。

4.3 再談談 bd 命令

細心的同學可能已經發現了,其實我們之前使用的 bd 命令也只是一個才 50 多行的小腳本,我們平時在使用中也可以花時間寫一些自己的小腳本,這樣不斷積累下來,工作效率才會不斷提升,所謂磨刀不誤砍柴工嘛。

5. 尾聲

如果上述這些小技巧能對您的工作、學習帶來便利,將是我最願意看到的。感謝閲讀!