2018-08-14 17:10:22 1572瀏覽
大家都知道,Linux系統(tǒng)提供了非常多非常多的命令或工具,這些命令都各有所長,都是系統(tǒng)需要的。但我們精力有限,要掌握全部的命令不太現(xiàn)實(shí),所以只需要掌握其中部分常用的命令即可。這里,小編從一個(gè)Java程序員的角度,總結(jié)出常用的一些Linxu命令,供參加Linux培訓(xùn)的同學(xué)參考。文章很長,分為三篇發(fā)布哦。
文件目錄基本操作
ls命令用來顯示目標(biāo)列表,在Linux中是使用率較高的命令。ls命令的輸出信息可以進(jìn)行彩色加亮顯示,以分區(qū)不同類型的文件。
常用選項(xiàng):
ls(選項(xiàng))(參數(shù))
-a顯示所有檔案及目錄(ls默認(rèn)不會(huì)列出隱藏文件);
-l所有輸出信息用單列格式輸出,不輸出為多列;
--color[=WHEN]:使用不同的顏色高亮顯示不同類型的。
實(shí)際應(yīng)用時(shí),我經(jīng)常會(huì)使用ls-l--color=auto,并給它指定一個(gè)別名ll:
aliasll='ls-l--color=auto'
效果如圖1:
cd用來切換工作目錄至dirname。其中dirname表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的homedirectory。
常用選項(xiàng):
cd進(jìn)入用戶主目錄
cd~進(jìn)入用戶主目錄
cd-返回進(jìn)入此目錄之前所在的目錄
cd..返回上級(jí)目錄(若當(dāng)前目錄為“/“,則執(zhí)行完后還在“/";".."為上級(jí)目錄的意思)
cd../..返回上兩級(jí)目錄
cd!$把上個(gè)命令的參數(shù)作為cd參數(shù)使用
mkdir創(chuàng)建目錄。該命令創(chuàng)建由dirname命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當(dāng)前目錄下創(chuàng)建由dirname指定的目錄;如果給出了一個(gè)已經(jīng)存在的路徑,將會(huì)在該目錄下創(chuàng)建一個(gè)指定的目錄。
常用選項(xiàng):
-p若所要建立目錄的上層目錄目前尚未建立,則會(huì)一并建立上層目錄
rm刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,也可以將某個(gè)目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個(gè)鏈接文件,而原有文件保持不變。
常用選項(xiàng):
-f:強(qiáng)制刪除文件或目錄
-i:刪除已有文件或目錄之前先詢問用戶
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理
注意:使用rm命令要格外小心。因?yàn)橐坏﹦h除了一個(gè)文件,就無法再恢復(fù)它。
cp將一個(gè)或多個(gè)源文件或者目錄復(fù)制到指定的目的文件或目錄。
常用選項(xiàng):
-f:強(qiáng)行復(fù)制文件或目錄,不論目標(biāo)文件或目錄是否已存在
-i:覆蓋既有文件之前先詢問用戶
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理
示例:
cp/home/sre/tom.log.將文件/home/sre/tom.log復(fù)制到當(dāng)前目錄
cp-rkatarina/home/sre/logs/將目錄katarina復(fù)制到/home/sre/logs/目錄下
mv對文件或目錄重新命名,或者將文件從一個(gè)目錄移到另一個(gè)目錄中。source表示源文件或目錄,target表示目標(biāo)文件或目錄。如果將一個(gè)文件移到一個(gè)已經(jīng)存在的目標(biāo)文件中,則目標(biāo)文件的內(nèi)容將被覆蓋。
常用選項(xiàng):
-f:若目標(biāo)文件或目錄與現(xiàn)有的文件或目錄重復(fù),則直接覆蓋現(xiàn)有的文件或目錄
-u:當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在時(shí),才執(zhí)行移動(dòng)操作
示例:
mvkatarina/*logs/將目錄katarina下所有文件復(fù)制到目錄logs下
touch兩個(gè)功能:一是創(chuàng)建新的空文件;二是用于把已存在文件的時(shí)間標(biāo)簽更新為系統(tǒng)當(dāng)前的時(shí)間(默認(rèn)方式),它們的數(shù)據(jù)將原封不動(dòng)地保留下來。
示例:
touch/var/wd/logs/touch.txt創(chuàng)建空文件/var/wd/logs/touch.txt
chmod變更文件或目錄的權(quán)限。在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的控制分別以讀取、寫入、執(zhí)行3種一般權(quán)限來區(qū)分,另有3種特殊權(quán)限可供運(yùn)用。用戶可以使用chmod指令去變更文件與目錄的權(quán)限,設(shè)置方式采用文字或數(shù)字代號(hào)皆可。
示例:
chmod+xwhat_cpu_do.sh給腳本what_cpu_do.sh增加可執(zhí)行權(quán)限
chmodu+x,g+wtest//為文件test設(shè)置自己可以執(zhí)行,組員可以寫入的權(quán)限
file探測給定文件的類型。
示例:
[sre@CDVM-213017031~]$filewhat_cpu_do.sh
what_cpu_do.sh:Bourne-Againshellscripttextexecutable
[sre@CDVM-213017031~]$filelogs
logs:directory
[sre@CDVM-213017031~]$filenetwork_last.log
network_last.log:empty
[sre@CDVM-213017031~]$filefix
fix:directory
文件內(nèi)容查看
cat連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上,cat經(jīng)常用來顯示文件的內(nèi)容。
示例:
[sre@CDVM-213017031~]$catflow_of_network.sh|grep"RX_next"
RX_next=$(cat/proc/net/dev|grep$ethn|sed's/://g'|awk'{print$2}')
RX=$((${RX_next}-${RX_pre}))
grep是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。
常用選項(xiàng):
-A<顯示列數(shù)>(After)除了顯示符合范本樣式的那一行之外,并顯示該行之后的內(nèi)容
-B(Before)在顯示符合范本樣式的那一行之外,并顯示該行之前的內(nèi)容
-C<顯示列數(shù)>除了顯示符合范本樣式的那一列之外,并顯示該列之前后的內(nèi)容
-i忽略字符大小寫。
示例:
[sre@CDVM-213017031~]$catwhat_cpu_do.sh|grep"processof"-A5-B5(等效于catwhat_cpu_do.sh|grep"jstack"-C5)
echo"checkingpid($pid)"
fi
iftest-z"$(jps-l|cut-d''-f1|grep$pid)"
then
echo"processof$pidisnotexists"
exit
fi
lineNum=$2
iftest-z$lineNum
tail輸出文件中的尾部內(nèi)容,默認(rèn)在屏幕上顯示指定文件的末尾10行。
常用選項(xiàng):
-f:顯示文件最新追加的內(nèi)容(查看服務(wù)器上動(dòng)態(tài)刷新的日志時(shí)經(jīng)常使用)。
-n:輸出文件的尾部N(N位數(shù)字)行內(nèi)容
示例:
tail-100f/var/wd/logs/owl/owl.20170508.log顯示文件/var/wd/logs/owl/owl.20170508.log中的后100行,并且當(dāng)文件有更新顯示最新的內(nèi)容。
head顯示文件的開頭的內(nèi)容。在默認(rèn)情況下,head命令顯示文件的頭10行內(nèi)容。
常用選項(xiàng):
-n<數(shù)字>:指定顯示頭部內(nèi)容的行數(shù)
-c<字符數(shù)>:指定顯示頭部內(nèi)容的字符數(shù)
-v:總是顯示文件名的頭信息
-q:不顯示文件名的頭信息
more一個(gè)基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容,支持vi中的關(guān)鍵字定位操作。more名單中內(nèi)置了若干快捷鍵,常用的有H(獲得幫助信息),Enter(向下翻滾一行),空格(向下滾動(dòng)一屏),Q(退出命令)。
常用選項(xiàng):
Space鍵:顯示文本的下一屏內(nèi)容
Enter鍵:只顯示文本的下一行內(nèi)容
斜線符/:接著輸入一個(gè)模式,可以在文本中尋找下一個(gè)相匹配的模式
h鍵:顯示幫助屏,該屏上有相關(guān)的幫助信息
b鍵:顯示上一屏內(nèi)容
q鍵:退出rnore命令
less與more十分相似,都可以用來瀏覽文字檔案的內(nèi)容,不同的是less命令允許用戶向前或向后瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時(shí),用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應(yīng)按q鍵。
wc用來計(jì)算數(shù)字。利用wc指令我們可以計(jì)算文件的Byte數(shù)、字?jǐn)?shù)或是列數(shù)。
常用選項(xiàng):
-c:只顯示Bytes數(shù)
-l:只顯示列數(shù)
-w:只顯示字?jǐn)?shù)
tr對來自標(biāo)準(zhǔn)輸入的字符進(jìn)行替換、壓縮和刪除。它可以將一組字符變成另一組字符,經(jīng)常用來編寫優(yōu)美的單行命令,作用很強(qiáng)大。
常用選項(xiàng):
-c:取代所有不屬于第一字符集的字符
-d:刪除所有屬于第一字符集的字符
-s:把連續(xù)重復(fù)的字符以單獨(dú)一個(gè)字符表示
示例:
echo"HELLOWORLD"|tr'A-Z''a-z'helloworld將輸入字符由大寫轉(zhuǎn)換為小寫
helloworld
echo"hello123world456"|tr-d'0-9'helloworld使用tr刪除字符
helloworld
sort將文件進(jìn)行排序,并將排序結(jié)果標(biāo)準(zhǔn)輸出。它可以從特定的文件,也可以從stdin中獲取輸入。
常用選項(xiàng):
-d:排序時(shí),處理英文字母、數(shù)字及空格字符外,忽略其他的字符
-f:排序時(shí),將小寫字母視為大寫字母
-k:來指定列數(shù)
-r:以相反的順序來排序來自
示例:
[sre@CDVM-213017031~]$ps-mp25211-oTHREAD,tid,time|sort-r-k2
USER%CPUPRISCNTWCHANUSERSYSTEMTIDTIME
sre8.8------4-04:00:56
sre5.419-futex_--254852-13:59:26
sre0.819-futex_--1675500:00:24
sre0.119-ep_pol--2566301:31:00
sre0.119-ep_pol--2548701:38:57
sre0.119-ep_pol--2548601:38:52
sre0.019-skb_re--2458600:00:00
sre0.019-poll_s--2567800:44:56
sre0.019-poll_s--2567600:00:00
sre0.019-poll_s--2521300:00:01
sre0.019-futex_--767900:00:00
sre0.019-futex_--595200:00:00
上述命令功能:查看進(jìn)程(pid為25211)占用CPU資源最多的線程信息(根據(jù)CPU占用率倒序排列)。
文件查找與比較
find在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí),不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。
示例:
find/home-name"*.txt"在/home目錄下查找以.txt結(jié)尾的文件名
find/home-iname"*.txt"同上,但忽略大小寫
find/home!-name"*.txt"找出/home下不是以.txt結(jié)尾的文件
which查找并顯示給定命令的絕對路徑,環(huán)境變量PATH中保存了查找命令時(shí)需要遍歷的目錄。which指令會(huì)在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件。也就是說,使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
示例:
[sre@CDVM-213017031~]$whichjava
/usr/java/default/bin/java
[sre@CDVM-213017031~]$whichpwd
/bin/pwd
[sre@CDVM-213017031~]$whichpython
/usr/bin/python
whereis用來定位指令的二進(jìn)制程序、源代碼文件和man手冊頁等相關(guān)文件的路徑。
和find相比,whereis查找的速度非???,這是因?yàn)閘inux系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有文件都記錄在一個(gè)數(shù)據(jù)庫文件中,當(dāng)使用whereis和下面即將介紹的locate時(shí),會(huì)從數(shù)據(jù)庫中查找數(shù)據(jù),而不是像find命令那樣,通過遍歷硬盤來查找,效率自然會(huì)很高。
示例:
[sre@CDVM-213017031~]$whereispython
python:/usr/bin/python/usr/bin/python2.6/usr/lib/python2.6/usr/lib64/python2.6/usr/include/python2.6/usr/share/man/man1/python.1.gz
[sre@CDVM-213017031~]$whereislua
lua:/usr/bin/lua/usr/lib64/lua/usr/share/lua/usr/share/man/man1/lua.1.gz
[sre@CDVM-213017031~]$whereisjava
java:/usr/bin/java
以上就是扣丁學(xué)堂Linux培訓(xùn)小編給大家分享的文章,希望對小伙伴們有所幫助,想要了解更多關(guān)于Linux開發(fā)方面內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。扣丁學(xué)堂不僅有專業(yè)的Linux培訓(xùn)班供大家學(xué)習(xí),還有與時(shí)俱進(jìn)的課程體系和大量的Linux在線視頻教程讓學(xué)員免費(fèi)觀看學(xué)習(xí),想要快速學(xué)習(xí)Linux開發(fā)就到由專業(yè)老師授課的扣丁學(xué)堂學(xué)習(xí)吧。扣丁學(xué)堂Linux技術(shù)交流群:422345477。
【關(guān)注微信公眾號(hào)獲取更多的學(xué)習(xí)資料】
查看更多關(guān)于“Linux培訓(xùn)資訊”的相關(guān)文章>>