
我怎樣才能同時執行多個命令? (作業系統=太陽solaris)
答案1
很高興看到您願意按照我之前在另一個問題中建議的那樣學習 shell。 :-)
要將命令放在後台並讓它在那裡執行:
yourcommand &
若要切換回該進程(如果僅啟動一個背景進程):
fg
列出所有背景進程:
jobs -l
如果您只想執行一個命令,然後執行另一個命令,然後執行另一個命令...
yourcommand && yourothercommand && youryetanothercommand
只有當上一個命令成功且沒有錯誤時,上面的範例才會繼續執行下一個命令。如果你不介意前面的命令是否成功,你可以這樣做
yourcommand; yourothercommand; youryetanothercommand
此外,命令screen
將成為你新的最好的朋友。它允許您在自己的「螢幕」中啟動一個進程,您可以稍後分離並重新附加該進程,這樣您就可以從公司桌上型電腦連接到伺服器,啟動一個螢幕並讓長時間運行的命令運行在那裡,分開會話,走到您公司的筆記型電腦前,用它連接到該伺服器,然後重新連接會話,看看同時發生了什麼。
無論如何,所有這些都是我不應該向你解釋的基礎知識;去閱讀教學來開始吧!只需谷歌即可bash 教程,如果你的 shell 是 bash。您似乎正在使用 Solaris,因此您的 shell 也可能是西施,在這種情況下谷歌搜索csh 教程。它們彼此相似,但確實存在一些差異,例如在環境變數方面。
答案2
您並不是試圖同時執行兩個命令,而是希望在第一個命令的輸出上執行第二個命令。 SvenW 已經提到了 find 的 -exec 參數,但另一種方法是使用 xargs,它允許您使用管道命令的輸出作為另一個命令的參數。
假設您想要尋找名為 foo 的每個目錄,並查看該目錄中任何檔案的權限:
查找/-type d -name 'foo' -print0 | xargs -0 ls -la
(如果需要,請參閱 find 和 xargs 的手冊頁以了解 -print0 和 -0 的使用。)
答案3
請解釋一下你想做什麼,因為有很多方法可以做到這一點。
- 您可以像這樣連結命令
command1; command2
- 您可以使用 & 將長時間運行的命令放在背景
command &
- 您可以使用 screen(強烈建議,
man screen
)讓多個虛擬控制台同時運行,即使在斷開連接後也是如此。 - 可以寫入shell腳本
- 等等等等
閱讀任何 Linux/Unix 初學者指南,這將有非常詳細的解釋。
此外,這不是一個學習基礎知識的初學者論壇。您提出的問題類型較適合在姊妹網站上超級用戶網站。