Linux中絕對用得到的四個技巧!

2022-02-18 19:01:01
本篇文章中給大家帶來了關於Linux中的相關知識,主要介紹四個極為實用的技巧,包括跳轉目錄、多終端操作、檔案編輯以及自定義shell命令的相關問題,希望對大家有幫助。

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

1. 跳轉目錄優雅順滑

1.1 bd 命令

快速回到 Bash 中的特定父目錄,而不是多餘地鍵入「cd ../../..」。

如果您在此路徑中

/home/radia/work/python/tkinter/one/two,並且想快速轉到目錄 python,只需鍵入:

bd python

或者僅輸入目錄的前幾個字母,如匹配多個目錄,則回到最近的一個:

bd p

範例:

c56cc437338ca9eee848636dd47f6435.gif

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

範例:

500e48718be9ae6d43f8709861f40995.gif

2. 多終端操作

在 Linux 終端操作時,任意分割螢幕為多個視窗,減少滑鼠操作,都是提高效率的好辦法。

在此,推薦 Terminator。安裝方法:

sudo apt-get install terminator

安裝完成後 CTRL + ALT + T 開啟軟體,或者在所有程式中搜尋 terminator。

如下圖所展示了一個使用快捷鍵分屏出三個小視窗的範例,並且將左下視窗重新命名為 log。

這樣分割的三部分:

  • 左下角可以專門用來顯示實時串列埠log;

  • 左上側可以用來編譯程式碼,檢視編譯報錯等;

  • 右側可以編輯程式碼,瀏覽檔案等。

8140ae8198b2963d08ea3dbbd102ee65.gif

當然,各個分屏的大小也是可以靈活調節的,滑鼠拖動和快捷鍵 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.tar.gz 解壓後,將 vim-config.tar 解壓至使用者根目錄:

tar -xvf vim-config.tar  -C ~/

安裝完畢,就這麼簡單,所有的外掛已經包含到壓縮包裡了,不需要再下載其它東西。

重新開啟一個終端視窗就可以使用 Vim 開啟程式碼看看效果了:

e8cc1c4d6c3fd78a7293959269fbd672.png

上述介面可以看到,左側介面是檔案列表(預設不顯示,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

68591efd9ee81734588d6289566f8759.gif

上圖可以看到,在新增之前 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

dd37e11689f4be2e8a49ae184ccbd078.png

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

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

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

4.3 再談談 bd 命令

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

相關推薦:《Linux視訊教學

以上就是Linux中絕對用得到的四個技巧!的詳細內容,更多請關注TW511.COM其它相關文章!