駕馭 Linux 超強 source 命令
Linux是世界上最廣泛使用的操作系統。如果你之前沒有接觸過Linux,剛開始可能會覺得它很復雜,但實際上它并不復雜,學習Linux和學習其他操作系統一樣簡單。本文將深入介紹一個重要的內置命令 source。
關于source命令及其執行方式: 在Linux系統中,source是一個內置的Shell命令,它讀取并執行當前Shell中文件的內容。這些文件通常包含一系列要交給TCL解釋器讀取和運行的命令。
如果提供了任何參數,它們將成為將由source執行的[文件名]的位置參數。否則,位置參數保持不變。
$PATH中的條目用于查找包含[文件名]的目錄,然而,如果文件在$PATH中不存在,它將在當前目錄中搜索文件。source命令沒有選項,參數只能是文件名。
語法:
source [filename] [arguments]
其中:
- [filename]:要由source命令執行的文件的名稱或路徑。
- [arguments]:當文件執行時,您提供的任何參數將成為位置參數。
點(句點)字符可以代替source命令,產生相同的輸出:
. [filename] [arguments]
示例:
創建一個名為 linuxmi.txt 的文件,并將以下命令粘貼到其中。
echo “Hello Linux迷 www.linuxmi.com”
pwd
date
echo $PATH
現在運行source命令,使用你剛剛創建的文件的正確路徑。確保你使用了正確的文件路徑。
source linuxmi.txt
以上的source命令讀取并執行了提供的文件中的命令。
輸出如下:
重要提示: 小心!”./”和”source”不完全相同。
“./script”將腳本作為可執行文件運行,啟動一個新的shell來運行它。 “source script”從當前shell環境中讀取并執行文件中的命令。 注意:”./script”不等于”. script”,但”. script”等同于”source script”。
如何使用source命令讀取配置文件:
借助source命令,我們可以創建一個配置文件并在另一個文件中讀取它。
基本上,我們需要創建兩個文件:
- sample-config.sh → 包含一些隨機配置
- config-reader.sh → 讀取配置文件并執行一些操作。
在同一個目錄下創建這些文件。
創建 sample-config.sh 并添加以下命令:
profile_page="https://www.linuxmi.com/"
article_list="https://linux.linuxmi.com/"
創建config-reader.sh并添加以下命令:
#!/usr/bin/env bash
source sample-config.sh
echo "*****************************"
echo "Profile Page : $profile_page"
echo "List of Articles : $article_list"
echo "*****************************"
config-reader.sh文件包含一個使用配置文件的source命令。它在后續命令中使用了config-reader.sh文件中的file變量。
輸出:
執行以下命令以讀取配置并在當前文件中使用它們 source config-reader.sh
如下圖:
刷新當前的Shell環境
有時我們希望為經常使用的命令設置一個別名,以便在任何Shell會話中更容易使用。
我們可以通過創建一個如下所示的Shell別名命令來開始:
alias ll=’ls -ltrh’
該命令以長格式列出當前目錄中的所有文件和文件夾,并按時間戳升序排列,以易讀的格式顯示。
實際上,當前的命令存在一個問題,它在當前的Shell會話中運行得很好,但我們無法在當前Shell會話之外訪問它。
但是,我們有一個解決方案,可以使其成為一個永久命令,以便在任何Shell會話中都可以訪問它。
我們只需要將這個別名添加到.bashrc(或.zsh對于macOS)文件中,該文件位于主目錄中::
sudo vim ~/.bashrc
在”#some more ls aliases”部分下面,添加以下內容:
alias ll = 'ls -ltrh'
我已經添加了類似的內容如下:
alias ll = 'ls -ltrh'
alias g = 'git'
alias k = 'kubectl'
添加別名后,我們需要刷新當前的Shell環境,以便測試它是否按預期工作:;
source ~/.bashrc