透過在 Linux 中同時執行多個命令來提高效率

透過在 Linux 中同時執行多個命令來提高效率
特徵影像加速處理多個指令

希望提高您的生產力?考慮在 Linux 終端機中同時執行多個命令。透過這種方法,您可以執行簡單的序列命令、在背景執行任務以及集中管理條件命令。

在本文中,我們將深入研究在 Linux 終端機上順序和並發執行命令的幾種技術。

同時運行多個命令的好處

無論您是執行日常維護任務、處理大型資料集還是自動化工作流程的各個部分,組合命令都可以簡化您的操作並提高整體效率。

例如,當備份多個目錄時,您可以連結命令,而不是單獨處理每個命令,這可以節省您的時間和精力。

在安裝需要多個模組的 Linux 軟體包時,我經常將命令連結在一起。透過這樣做,我確保套件及其依賴項在單一操作中安裝,從而消除重複鍵入。

順序命令執行

這是我使用終端時的首選方法。我們可以連結命令,以便無論前一個命令是否成功執行,它們都會依次執行。

若要依序執行這些命令,只需使用分號;作為分隔符號即可。當您按 Enter 鍵時,終端機會處理初始命令,等待其完成,然後繼續執行下一個命令。

例如,如果您的目標是更新系統並同時清除未使用的軟體包,則可以執行以下命令:

使用 apt 套件管理器更新、升級和清理 Ubuntu 系統。

透過連結這些命令,您可以強制順序執行,確保每項任務僅在前一項任務完成後才能完成,從而保持效率。

基於條件的命令執行

如果您只想在第一個命令成功(或失敗)時才執行第二個命令,則可以透過使用&&(AND) 和||(OR) 運算子來利用條件執行。

如果第一個指令成功則執行

為了確保命令僅在前一個命令成功時才運行,請&&在命令之間使用運算符。

例如,如果您希望建立新目錄,然後僅在目錄建立成功後才會變更到該目錄,請使用:

同時建立和更改目錄。

如果第一個命令失敗,則後續命令將不會執行。

如果第一個命令失敗則運行

||操作員。這對於後備命令或記錄錯誤特別有用,而不會中斷您的工作流程。

我經常發現這種做法在文件操作期間很有用,例如將文件複製到備份位置。如果複製失敗,我希望在不中斷正在進行的任務的情況下收到通知。你可以這樣構造它:

cp file_name /backup || echo "Failed!" >> error_log.txt

在這種情況下,該cp命令會嘗試將指定檔案複製到備份目錄。如果失敗,||操作員將執行下一個命令,該命令會將錯誤訊息附加到錯誤日誌中。這樣,您的工作流程就可以不間斷地繼續,同時也可以記錄問題以供日後查看。

在後台執行指令

有時,您可能不想暫停以完成任務。如果某個過程需要花費大量時間,您可以透過&在命令末尾附加一個「&」來保持工作順利進行。

例如,如果您希望從特定 URL 下載大文件,同時仍能執行其他任務,您可以使用:

sudo wget https://example.com/large-file.zip &

這允許您在後台執行下載的同時繼續在終端上工作。

透過後台執行連結命令

如果您想連接兩個命令,同時確保後者在前者完成後在背景運行,該怎麼辦?在這種情況下,您可以同時使用管道|運算符和 & 符號&

管道|將第一個命令的輸出作為第二個命令的輸入,而&符號&允許第二個命令在後台執行。

例如,要讀取大文件並提取關鍵字,將結果儲存到新文件,可以使用重定向>運算子:

cat samplefile.txt | grep "Project" > output.txt &
搜尋大檔案並單獨儲存指定結果。

透過此設置,搜尋和儲存操作都將在背景完成。這樣,您可以在處理文件時不間斷地執行其他命令。

使用 Xargs 同時執行多個命令

如果您渴望增強多工處理能力,請考慮利用該命令並行執行xargs命令。這允許同時執行多個命令,而不是依序處理它們。

xargs命令有效地將參數列表分成較小的批次,同時在每個批次上執行特定命令。

例如,如果您有一個文件中儲存的 URL 列表,並且想要一次下載所有這些 URL,則可以執行:

cat urls_file.txt | xargs -n 1 -P 4 wget

在這種情況下,-n 1指示xargs每個命令處理一個參數,並-P 4指示它同時執行四個命令。與順序方法相比,這顯著加快了下載過程。

結論

總之,您可以使用分號組合指令,使用和;實作條件執行,使用 執行後台進程,並使用 並行執行來提升多工處理能力。&&||&xargs

圖片來源:Unsplash。所有修改和螢幕截圖均由 Haroon Javed 完成。

來源

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *