透過在 Linux 中同時執行多個命令來提高效率
希望提高您的生產力?考慮在 Linux 終端機中同時執行多個命令。透過這種方法,您可以執行簡單的序列命令、在背景執行任務以及集中管理條件命令。
在本文中,我們將深入研究在 Linux 終端機上順序和並發執行命令的幾種技術。
同時運行多個命令的好處
無論您是執行日常維護任務、處理大型資料集還是自動化工作流程的各個部分,組合命令都可以簡化您的操作並提高整體效率。
例如,當備份多個目錄時,您可以連結命令,而不是單獨處理每個命令,這可以節省您的時間和精力。
在安裝需要多個模組的 Linux 軟體包時,我經常將命令連結在一起。透過這樣做,我確保套件及其依賴項在單一操作中安裝,從而消除重複鍵入。
順序命令執行
這是我使用終端時的首選方法。我們可以連結命令,以便無論前一個命令是否成功執行,它們都會依次執行。
若要依序執行這些命令,只需使用分號;
作為分隔符號即可。當您按 Enter 鍵時,終端機會處理初始命令,等待其完成,然後繼續執行下一個命令。
例如,如果您的目標是更新系統並同時清除未使用的軟體包,則可以執行以下命令:
透過連結這些命令,您可以強制順序執行,確保每項任務僅在前一項任務完成後才能完成,從而保持效率。
基於條件的命令執行
如果您只想在第一個命令成功(或失敗)時才執行第二個命令,則可以透過使用&&
(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 完成。
發佈留言