用途:LINUX命令用法,不掛斷地運(yùn)行命令。
成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
語法:nohup Command [ Arg … ] [ ]
描述:nohup 命令運(yùn)行由 Command 參數(shù)和任何相關(guān)的 Arg 參數(shù)指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運(yùn)行后臺(tái)中的程序。要運(yùn)行后臺(tái)中的 nohup 命令,添加 ( 表示“and”的符號)到命令的尾部。
例子: nohup ./startWeblogic.sh 意思是即使退出ssh界面,命令仍然在后臺(tái)執(zhí)行,并且打印過程日志到nohup.out,當(dāng)然也可以將nohup.out的輸出轉(zhuǎn)向到其他文件,高級應(yīng)用請參考擴(kuò)展閱讀。
如上文所述出現(xiàn)了超大號的文件簡直是令人討厭的事情,而且nohup.out會(huì)一直一直自己增長下去,如果你的服務(wù)器硬盤不給力的話,很容易把應(yīng)用也掛掉(硬盤沒空間 ,啥都玩不轉(zhuǎn)),但是又不能一味的直接刪。因?yàn)橹苯觿h除,可能會(huì)造成應(yīng)用無法打印后續(xù)的錯(cuò)誤日志,該問題常見于weblogic服務(wù)器,jboss服務(wù)器等這些大型中間件,這個(gè)在生產(chǎn)環(huán)境上要尤為注意。
可以使用以下兩種方法實(shí)現(xiàn): 不停止WEB服務(wù)就可以清空nohup.out的命令 。
不用擔(dān)心網(wǎng)上所說的性能問題,通常2/3 個(gè)G的文件都是1-2秒執(zhí)行完畢
以下是定義日志打印級別,除了高于級別2的告警信息記錄到log文件外,其余直接不記錄
可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。例如,將某個(gè)程序的錯(cuò)誤信息輸出到log文件中:./program 2log。這樣標(biāo)準(zhǔn)輸出還是在屏幕上,但是錯(cuò)誤信息會(huì)輸出到log文件中。另外,也可以實(shí)現(xiàn)0,1,2之間的重定向。21:將錯(cuò)誤信息重定向到標(biāo)準(zhǔn)輸出。
Linux下還有一個(gè)特殊的文件/dev/null,它就像一個(gè)無底洞,所有重定向到它的信息都會(huì)消失得無影無蹤。這一點(diǎn)非常有用,當(dāng)我們不需要回顯程序的所有信息時(shí),就可以將輸出重定向到/dev/null。
在Linux中,輸入0會(huì)提示“arg: 0”,這是一個(gè)提示,表示你正在輸入一個(gè)命令行參數(shù)(argument)。參數(shù)是指定給某個(gè)程序(或腳本)的輸入,它可以是文件名、目錄名、變量名或其他任何東西。
這兩天在使用Ubuntu系統(tǒng)上進(jìn)行開發(fā)軟件的安裝,一直遇到創(chuàng)建的Android
Studio圖標(biāo)無法使用的問題,創(chuàng)建的圖標(biāo)提示「應(yīng)用程序啟動(dòng)錯(cuò)誤」。在網(wǎng)上也找了很多文章,都是說文件夾中包含空格。但是文件路徑確實(shí)沒包含空格,但是包含-,即"android-studio",所以準(zhǔn)備重命名進(jìn)行嘗試,但是遇到"bareword
not
allowed"的問題。
Linux下對文件重命名有兩種命令:
mv
,rename
mv很簡單,move文件移動(dòng)
mv
/dir/file1
/dir2/file1
兩個(gè)參數(shù),第一個(gè)是源文件,第二個(gè)是目的地,如果第二個(gè)參數(shù)文件名不一樣,則會(huì)重命名。
當(dāng)兩個(gè)參數(shù)不帶目錄,只有文件名時(shí),那就是重命名了。這是單個(gè)文件的重命名。
rename
arg1
arg2
arg3
rename才是真正的批量重命名命令。而且他是3個(gè)參數(shù),不是2個(gè)。
arg1:舊的字符串
arg2:新的字符串
arg3:匹配要重命名的文件,可以使用3種通配符,*、?、[char],*表示任意多個(gè)字符,?表示單個(gè)字符,[char]匹配char單個(gè)自定的精確字符,可以填寫任意字符,foo[a]*表示只匹配fooa開頭的文件名,如果一個(gè)文件是foobcc.txt,是不會(huì)被匹配的。
值的注意的是,此命令在不同的Linux版本也有不同,Debian一系的操作系統(tǒng)別有用法。舉例說明:
比如/home下有兩個(gè)文件
abbcc.txt,
addbb.txt
,
a.txt
我想把a(bǔ)替換為xxx,命令是這樣的
:
rename
“a”
“xxx”
*.txt
那么它會(huì)首先去匹配有哪些文件需要修改,這里凡是.txt后綴的文件都會(huì)被匹配,如果改成?.txt則只會(huì)匹配到一個(gè)文件,那就是a.txt。然后把匹配到的文件中的a字符替換為xxx,注意測試時(shí)abab.txt這樣的,只會(huì)替換第一個(gè)a,有待再了解。
說到Debian一系的操作系統(tǒng),比如Ubuntu,這個(gè)命令這樣使用是不對的,報(bào)錯(cuò),向下面這樣的:
Bareword
“a”
not
allowed
while
“strict
subs”
in
use
at
(eval
1)
line
1.
經(jīng)過Google之后發(fā)現(xiàn)有這樣的說法:
On
Debian-based
distros
it
takes
a
perl
expression
and
a
list
of
files.
you
need
to
would
need
to
use:
rename
‘s/foo/foox/’
*
這里是一個(gè)perl表達(dá)式,好理解點(diǎn)說就是綜合了前兩個(gè)參數(shù)為1個(gè),這樣就只需要2個(gè)參數(shù),而非上面所說的3個(gè)參數(shù)形式。
所以在Ubuntu下執(zhí)行上面舉例的重命名時(shí),命令是這樣的:rename
‘s/a/xxx/’
*.txt