一、
創新互聯自2013年創立以來,是專業互聯網技術服務公司,擁有項目成都網站設計、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元城中做網站,已為上家服務,為城中各地企業和個人服務,聯系電話:18982081108
加在一個命令的最后,可以把這個命令放到后臺執行,如:
[root@bqh-01 ~]# watch -n 3 "sh 1.sh " #每3s在后臺執行一次 1.sh 腳本
二、ctrl + z
可以將一個正在前臺執行的命令放到后臺,并且處于暫停狀態。
三、jobs
查看當前有多少在后臺運行的命令
jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。
將后臺中的命令調至 前臺 繼續運行。如果后臺中有多個命令,可以用fg %jobnumber(是命令編號,不是進程號)將選中的命令調出。
五、bg
將一個在后臺暫停的命令,變成在 后臺 繼續執行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調出。
六、kill
****
前臺進程的終止:Ctrl+c
****七、 nohup
如果讓程序始終在后臺執行,即使關閉當前的終端也執行(之前的做不到),這時候需要nohup。該命令可以在你退出帳戶/關閉終端之后繼續運行相應的進程。關閉中斷后,在另一個終端jobs已經無法看到后臺跑得程序了,此時利用ps(進程查看命令)
pre style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"ps -aux | grep "1.sh" #a:顯示所有程序 u:以用戶為主的格式來顯示 x:顯示所有程序,不以終端機來區分/pre
有些時候,我們需要在終端啟動一個程序,并使之運行——但是如果關閉終端,那么這個程序也就隨著關閉了。那么有沒有什么方法在關閉終端后,讓已經從這個終端啟動的程序繼續運行呢?有以下方法
1.讓linux忽略終端的hung up 信號,不關閉進程;
2.讓此進程變為終端的非子進程。
方法一:
在終端輸入命令:
# ./pso pso.file 21
解釋:將pso直接放在后臺運行,并把終端輸出存放在當前目錄下的pso.file文件中。
當客戶端關機后重新登陸服務器后,直接查看pso.file文件就可看執行結果(命
令:#cat pso.file )。
或者 在終端輸入命令:
# nohup ./pso pso.file 21
解釋:nohup就是不掛起的意思,將pso直接放在后臺運行,并把終端輸出存放在當前
目錄下的pso.file文件中。當客戶端關機后重新登陸服務器后,直接查看pso.file
文件就可看執行結果(命令:#cat pso.file )。
方法二:
實現方案就是nohup命令。
例如要啟動jboss,可以nohup ./run.sh 。這樣就可以了,結尾的“”符號表示后臺啟動jboss,從而不影響繼續運行其他命令。
但這樣有一個問題,nohup命令雖然可以讓linux“放過”這個進程,但是nohup會同時把進程的控制臺輸出重定向到nohup.txt下(默認是這個文件),當然可以重定向為其他的文件,但是輸出總會有的。
如果jboss運行很長時間,而且如果有很多控制臺輸出的話,nohup.txt文件就會變的很大很大。
通常項目中的日志都會輸出到特定的日志文件或者輸出到 數據庫 中,也就是說控制臺的輸出對于程序的意義不大,那么可不可以拋棄掉這些輸出呢?答案是肯定的。
這里講解一下linux的重定向(注意,是linux的重定向,不是針對nohup)。
0、1和2分別表示標準輸入、標準輸出和標準錯誤信息輸出,可以用來指定需要重定向的標準輸入或輸出。
在一般使用時,默認的是標準輸出,既1.當我們需要特殊用途時,可以使用其他標號。例如,將某個程序的錯誤信息輸出到log文件中:./program 2log。這樣標準輸出還是在屏幕上,但是錯誤信息會輸出到log文件中。
另外,也可以實現0,1,2之間的重定向。21:將錯誤信息重定向到標準輸出。
Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。
結合nohup,我們可以這樣 nohup ./run.sh /dev/null
這是最簡單的一種方式,既保證了程序能夠一直后臺執行,又能保證不會產生太大的nohup.txt文件。
方法三:
利用的linux的一個機制,讓程序在subshell中執行,方法很簡單,將命令用括號() 括起來即可。
ps -ef | grep test
可以看到run.sh的父進程為1,不是當前終端了,這樣就能忽略hung up信號。
當然linux還可以動態的讓程序后臺運行或不被hung up 信號關閉,例如disown命令,setid命令等。
方法四:
如果是使用Ubuntu的話,你可以利用CTRL+ALT+T組合鍵打開終端。當然你也可以使用超級鍵(Windows鍵)打開Dash,搜索“TERM”,然后點擊“Term”圖標來打開終端窗口。
對于其他的桌面環境來說,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜單中找到終端。有些環境會在停靠欄或者面板上面包含終端圖標。
通常情況下,你可以在終端里面直接輸入應用程序名來啟動一個應用程序。比如說,你可以通過輸入“firefox”來啟動Firefox。
在終端啟動應用程序的好處是,你可以包含一些額外的參數。
例如,你可以通過下列命令來打開一個Firefox瀏覽窗口,然后利用默認的搜索引擎搜索相關信息:
firefox -search "linux點吸煙 "
你可能會注意到,如果你啟動Firefox,程序打開以后,回到了終端窗口控制,這就意味著你可以繼續在終端進行工作。
通常情況下,如果你在終端啟動了應用程序,控制會切換到新啟動的應用程序,只有程序被關閉以后才會重新切換到終端控制。這是因為你在前臺啟動了這個程序。
如果要在Linux終端打開應用程序并且返回終端控制,那么你需要將應用程序啟動為后臺進程。
和下面所列的命令一樣,我們可以通過增加一個()符號,將應用程序在后臺啟動。
libreoffice
譯者注:如果需要加參數的話,記得把符號放在最后。
譯者注:一般情況下,關閉終端時,在這個終端啟動的后臺程序也會被終止,要使終端關閉以后,后臺程序依然保持執行可以使用下列命令
nohup command [arg...]
如果應用程序目錄沒有安裝在PATH變量包含的目錄里面的話,我們就沒有辦法直接通過應用程序名來啟動程序,必須輸入應用程序的整個路徑來啟動它。
/path/to/yourprogram
如果你不確定程序輸入哪個Linux目錄結構的話,可以使用find或者location命令來定位它。
可以輸入下列符號來找到一個文件:
find /path/to/start/from -name programname
例如,你可以輸入下列命令來找到Firefox:
find / -name firefox
命令運行的結果會嗖的一下輸出一大堆,別擔心,你也可以通過less或者more來進行分頁查看。
find / -name firefox | more find / -name firefox | less
當find命令查找到沒有權限訪問的文件夾時,會報出一條拒絕訪問錯誤,
你可以通過sudo命令來提示權限。當然,如果你沒有安裝sudo的話,就只能切換到一個擁有權限的用戶了。
sudo find / -name firefox | more
如果你知道你要查找的文件在你的當前目錄結構中,那么你可以使用點來代替斜杠:
sudo find . -name firefox | more
你可能需要sudo來提升權限,也可能根本就不需要,如果這個文件在你的主目錄里面,那么就不需要使用sudo。
有些應用程序則必須要提升權限才能運行,否則你就會得到一大堆拒絕訪問錯誤,除非你使用一個具有權限的用戶或者使用sudo提升權限。
這里有個小竅門。如果你運行了一個程序,但是它需要提升權限來操作,輸入下面命令試試:
sudo !!
方法五:
在Unix/Linux下如果想讓程序獨立終端運行,一般都是使用 在命令結尾來讓程序自動運行。(命令后可以不追加空格)
打開gnome-terminal,執行如下命令:
delectate@delectate:~$ totem [1] 8510delectate@delectate:~$ 有幾點需要注意:
已經啟動的程序依然attach于當前pts,只有當前終端模擬器關閉(使用exit命令退出),進程自動被tty繼承。delectate@delectate:~$ ps -e | grep totem //程序已被以totem 形式啟動,當前附在pts0上8819 pts/0 00:00:00 totemdelectate@delectate:~$ ps -e | grep totem //pts0的模擬終端被exit命令關閉,totem自動附在tty8819 ? 00:00:00 totemdelectate@delectate:~$
具有debug輸出的進程,需要按enter鍵進行中斷當前debug輸出。但是如果程序持續進行printf,你將無法輸入任何命令。delectate@delectate:~$ vlc [1] 8850delectate@delectate:~$ VLC media player 1.0.6 Goldeneye[0x8b998b0] main libvlc: Running vlc with the default interface. Use ‘cvlc’ to use vlc without interface. //enter presseddelectate@delectate:~$ //show a clean terminal now** (:8850): CRITICAL **: giop_thread_request_push: assertion `tdata != NULL’ failed //仍然在輸出數據…… //關閉程序[1]+ Done vlcdelectate@delectate:~$
你無法記錄程序的debug輸出結果。
只有當虛擬終端是 $ 或者 # 時候,才可以關閉此終端,否則可能導致已經啟動的進程被關閉(按enter——如果程序持續輸出信息而沒有出現 $ 或 #)
使用nohup命令:
nohup描述:Run COMMAND, ignoring hangup signals.(忽略任何中斷/掛起信號,使命令繼續執行)
但是當你嘗試使用命令:
1nohup command
時候卻會遇到不大不小的麻煩……
delectate@delectate:~$ nohup vlcnohup: ignoring input and appending output to `nohup.out’
是的,雖然它自動把debug信息記錄到nohup.out文件,但是你卻無法使用這個終端進行任何操作。
所以你需要和第一個方法混用,即
nohupcommand {option}
混用后,它會自動把你執行的命令輸出結果記錄到權限為-rw——-,名為nohup.out的文件中。
但是你仍然需要
delectate@delectate:~$ nohup vlc [1] 9045delectate@delectate:~$ nohup: ignoring input and appending output to `nohup.out’ //在這里按一下回車或以ctrl+c以 //show a clean terminal delectate@delectate:~$
與使用 “” 性質相同,當前啟動程序的終端如果沒有被關閉,已經啟動的程序附在pst上;如果終端被關閉,則自動附在tty。
如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out。默認狀態下,nohup默認輸出到nohup.out文件,你也可以利用重定向來指定輸出文件:
nohupcommand {option} myout.file 21
只有當虛擬終端是 $ 或者 # 時候,才可以關閉此終端,否則可能導致已經啟動的進程被關閉(按enter——如果程序持續輸出信息而沒有出現 $ 或 #)
其他相關命令:
jobs:查看當前有多少在后臺運行的命令
fg:將后臺中的命令調至前臺繼續運行。如果后臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
bg:將一個在后臺暫停的命令,變成繼續執行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
殺死進程
殺死已經啟動的程序和普通方式一樣:
pkill -9 name
killall name
kill pid
…
命令應用:
linux服務器掛機下載;啟動相關服務;linux服務器啟動進程(尤其是ssh登錄)
我就曾經用 1nohup aria2c -i downloadlist -m 0 -j 1
命令后直接加,這個命令就在后臺執行;
正在運行的命令,使用Ctrl+z,就掛起;
jobs命令,可以現實后臺,包括掛起的命令;
使用bg?%作業號?就可以把掛起的命令在后臺執行;
使用fg??%作業號?就可以把后臺命令調到前臺。
1、打開終端輸入一下的命令$crontab ?-e。
2、進入選擇editor,直接enter回車。
3、接著我們會進入如下的編輯窗口。
4、在后面填寫*/1 ?* ?* ?* ?* ? ? ? date ? ?~/123,每一分鐘執行“?date ? ?~/123”命令,把當前時間寫123文件,這里的時間間隔可以自己設置。
5、然后“ctrl+x”進行保存,輸入“Y”回車確定。
6、填寫文件名,可以默認直接回車。
7、等一分后,我們發現用戶目錄多個123文件,打開里面時間日期,每分鐘都會呢更新。
擴展資料
configure'腳本有大量的命令行選項.對不同的軟件包來說,這些選項可能會有變化,但是許多基本的選項是不會改變的.帶上'-- help'選項執行'configure'腳本可以看到可用的所有選項。
盡管許多選項是很少用到的,但是當你為了特殊的需求而configure一個包時,知道他們的存在是很有益處的.下面對每一個選項進行簡略的介紹:
cache-file=FILE
'configure'會在你的系統上測試存在的特性(或者bug!).為了加速隨后進行的配置,測試的結果會存儲在一個cache file里.當configure一個每個子樹里都有'configure'腳本的復雜的源碼樹時,一個很好的cache file的存在會有很大幫助。
help
輸出幫助信息.即使是有經驗的用戶也偶爾需要使用使用'--help'選項,因為一個復雜的項目會包含附加的選項。例如,GCC包里的'configure'腳本就包含了允許你控制是否生成和在GCC中使用GNU匯編器的選項。
no-create
'configure'中的一個主要函數會制作輸出文件。此選項阻止'configure'生成這個文件.你可以認為這是一種演習(dry run),盡管緩存(cache)仍然被改寫了。
quiet/--silent
當'configure'進行他的測試時,會輸出簡要的信息來告訴用戶正在作什么。這樣作是因為'configure'可能會比較慢,沒有這種輸出的話用戶將會被扔在一旁疑惑正在發生什么。使用這兩個選項中的任何一個都會把你扔到一旁。
文章名稱:linux后執行命令設置 linux命令的執行過程是怎樣的?新手必讀
當前URL:http://vcdvsql.cn/article44/ddihdhe.html
成都網站建設公司_創新互聯,為您提供小程序開發、全網營銷推廣、、建站公司、定制開發、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯