Background-Process
Kali Linux 中的後台程序到底有什麼作用?
語境
我檢查了幾個關於同一主題的問題,當他們解釋後台程序到底是什麼時,我仍然感到困惑。我解釋的常見答案是:
在後台執行的程序允許您與同一個終端進行互動……等等。
我通過執行以下命令對此進行了測試:
ping google.com -c 100 &
- PS:我也在沒有
&
操作員的情況下執行了相同的命令並使用了 Ctrl-Z,但所做的只是暫停命令問題
當我執行這個命令時,輸出仍然在我的主終端中,在命令完成執行或終止命令之前,我無法執行任何其他命令。
在我列出我的問題之前,我的問題不是如何將命令的輸出重定向到單獨的文件/位置。我已經知道如何將
ping google.com -c 100
命令的輸出重定向到不同的地方,這樣我仍然可以與主終端互動我的問題是
- 用最簡單的術語來說,後台命令實際上做了什麼
&
在命令末尾加上 a 有什麼作用- 這樣做的目的是什麼/我從後台命令中獲得什麼
- 我什麼時候想要後台命令
**如果您需要進一步澄清問題或上下文,請告訴我
在互動式 shell 的上下文中回答這些問題。在 shell 腳本的上下文中,這些行為略有不同,但大體相似。
- 用最簡單的術語來說,後台命令實際上做了什麼
後台命令(或其他程序)允許它執行,同時仍然允許您與 shell 互動(即啟動新程序)。
- 在命令末尾加上 & 有什麼作用
分隔符表示給定命令的
&
結束,並立即將該命令呼叫的程序放到後台執行。它是類似的,因此;
分隔符表示要執行的給定命令的結束,直到它終止,因此提供了新的 shell 提示符。
- 這樣做的目的是什麼/我從後台命令中獲得什麼
- 我什麼時候想要後台命令
這些本質上是同一個問題。簡短的回答是:當您即將執行一個需要很長時間才能執行的命令時,但您可以在執行它的同時繼續做其他事情。一個例子是,對於一個人為的例子:
$ tail -f /path/to/apache-log > ~/webserverlog.txt & $ curl --silent -o /dev/null https://localhost/path/site/you/are/debugging $ kill %1