作為后端開(kāi)發(fā),這些常用命令不得不會(huì),掌握這些命令,工作上會(huì)事半功倍,提供工作效率。 ?
一.文件和目錄
cd命令,用于切換當(dāng)前目錄,它的參數(shù)是要切換到的目錄的路徑,可以是絕對(duì)路徑,也可以是相對(duì)路徑。
?
cd?/home????進(jìn)入?'/?home'?目錄 cd?..????????????返回上一級(jí)目錄? cd?../..?????????返回上兩級(jí)目錄? cd???????????????進(jìn)入個(gè)人的主目錄? cd?~user1???進(jìn)入個(gè)人的主目錄? cd?-?????????????返回上次所在的目錄
?
pwd命令,顯示工作路徑
?
[root@mailvip?~]#?pwd /root
?
ls命令,查看文件與目錄的命令,list之意
?
ls?查看目錄中的文件? ls?-l?顯示文件和目錄的詳細(xì)資料? ls?-a?列出全部文件,包含隱藏文件 ls?-R?連同子目錄的內(nèi)容一起列出(遞歸列出),等于該目錄下的所有文件都會(huì)顯示出來(lái)?? ls?[0-9]?顯示包含數(shù)字的文件名和目錄名
?
cp命令,用于復(fù)制文件,copy之意,它還可以把多個(gè)文件一次性地復(fù)制到一個(gè)目錄下
?
-a :將文件的特性一起復(fù)制 -p :連同文件的屬性一起復(fù)制,而非使用默認(rèn)方式,與-a相似,常用于備份 -i :若目標(biāo)文件已經(jīng)存在時(shí),在覆蓋時(shí)會(huì)先詢(xún)問(wèn)操作的進(jìn)行 -r :遞歸持續(xù)復(fù)制,用于目錄的復(fù)制行為?//經(jīng)常使用遞歸復(fù)制 -u :目標(biāo)文件與源文件有差異時(shí)才會(huì)復(fù)制
?
mv命令,用于移動(dòng)文件、目錄或更名,move之意
?
-f :force強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在,不會(huì)詢(xún)問(wèn)而直接覆蓋 -i :若目標(biāo)文件已經(jīng)存在,就會(huì)詢(xún)問(wèn)是否覆蓋 -u :若目標(biāo)文件已經(jīng)存在,且比目標(biāo)文件新,才會(huì)更新
?
rm命令,用于刪除文件或目錄,remove之意
?
-f :就是force的意思,忽略不存在的文件,不會(huì)出現(xiàn)警告消息 -i :互動(dòng)模式,在刪除前會(huì)詢(xún)問(wèn)用戶(hù)是否操作 -r :遞歸刪除,最常用于目錄刪除,它是一個(gè)非常危險(xiǎn)的參數(shù)
?
二、查看文件內(nèi)容
cat命令,用于查看文本文件的內(nèi)容,后接要查看的文件名,通常可用管道與more和less一起使用
?
cat?file1?從第一個(gè)字節(jié)開(kāi)始正向查看文件的內(nèi)容? tac?file1?從最后一行開(kāi)始反向查看一個(gè)文件的內(nèi)容? cat -n file1 標(biāo)示文件的行數(shù)? more?file1?查看一個(gè)長(zhǎng)文件的內(nèi)容? head?-n?2?file1?查看一個(gè)文件的前兩行? tail?-n?2?file1?查看一個(gè)文件的最后兩行? tail?-n?+1000?file1??從1000行開(kāi)始顯示,顯示1000行以后的 cat?filename?|?head?-n?3000?|?tail?-n?+1000??顯示1000行到3000行 cat?filename?|?tail?-n?+3000?|?head?-n?1000??從第3000行開(kāi)始,顯示1000(即顯示3000~3999行)
?
三.文件搜索
find命令,用來(lái)查找系統(tǒng)的
?
find?/?-name?file1?從?'/'?開(kāi)始進(jìn)入根文件系統(tǒng)搜索文件和目錄? find?/?-user?user1?搜索屬于用戶(hù)?'user1'?的文件和目錄? find?/usr/bin?-type?f?-atime?+100?搜索在過(guò)去100天內(nèi)未被使用過(guò)的執(zhí)行文件? find?/usr/bin?-type?f?-mtime?-10?搜索在10天內(nèi)被創(chuàng)建或者修改過(guò)的文件? whereis?halt?顯示一個(gè)二進(jìn)制文件、源碼或man的位置? which?halt?顯示一個(gè)二進(jìn)制文件或可執(zhí)行文件的完整路徑
?
刪除大于50M的文件:
?
find?/var/mail/?-size?+50M?-exec?rm?{}?\;
?
四.文件的權(quán)限 - 使用 "+" 設(shè)置權(quán)限,使用 "-" 用于取消
chmod命令,改變文件/文件夾權(quán)限
?
ls?-lh?顯示權(quán)限? chmod?ugo+rwx?directory1?設(shè)置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r,4?)、寫(xiě)(w,2)和執(zhí)行(x,1)的權(quán)限? chmod?go-rwx?directory1??刪除群組(g)與其他人(o)對(duì)目錄的讀寫(xiě)執(zhí)行權(quán)限
?
chown命令,改變文件的所有者
?
chown?user1?file1?改變一個(gè)文件的所有人屬性? chown -R user1 directory1 改變一個(gè)目錄的所有人屬性并同時(shí)改變改該目錄下所有文件的屬性? chown?user1:group1?file1?改變一個(gè)文件的所有人和群組屬性
?
11.chgrp命令,改變文件所屬用戶(hù)組
?
chgrp?group1?file1?改變文件的群組
?
五.文本處理
grep命令,分析一行的信息,若當(dāng)中有我們所需要的信息,就將該行顯示出來(lái),該命令通常與管道命令一起使用,用于對(duì)一些命令的輸出進(jìn)行篩選加工等等
?
grep?Aug?/var/log/messages??在文件?'/var/log/messages'中查找關(guān)鍵詞"Aug"? grep?^Aug?/var/log/messages?在文件?'/var/log/messages'中查找以"Aug"開(kāi)始的詞匯? grep?[0-9]??/var/log/messages?選擇?'/var/log/messages'?文件中所有包含數(shù)字的行? grep?Aug?-R?/var/log/*?在目錄?'/var/log'?及隨后的目錄中搜索字符串"Aug"? sed?'s/stringa1/stringa2/g'?example.txt?將example.txt文件中的?"string1"?替換成?"string2"? sed?'/^$/d'?example.txt?從example.txt文件中刪除所有空白行
?
paste命令
?
paste?file1?file2?合并兩個(gè)文件或兩欄的內(nèi)容? paste?-d?'+'?file1?file2?合并兩個(gè)文件或兩欄的內(nèi)容,中間用"+"區(qū)分
?
sort命令
?
sort?file1?file2?排序兩個(gè)文件的內(nèi)容? sort?file1?file2?|?uniq?取出兩個(gè)文件的并集(重復(fù)的行只保留一份)? sort?file1?file2?|?uniq?-u?刪除交集,留下其他的行? sort?file1?file2?|?uniq?-d?取出兩個(gè)文件的交集(只留下同時(shí)存在于兩個(gè)文件中的文件)
?
comm命令
?
comm?-1?file1?file2?比較兩個(gè)文件的內(nèi)容只刪除?'file1'?所包含的內(nèi)容? comm?-2?file1?file2?比較兩個(gè)文件的內(nèi)容只刪除?'file2'?所包含的內(nèi)容? comm?-3?file1?file2?比較兩個(gè)文件的內(nèi)容只刪除兩個(gè)文件共有的部分
?
六、打包和壓縮文件
tar命令,對(duì)文件進(jìn)行打包,默認(rèn)情況并不會(huì)壓縮,如果指定了相應(yīng)的參數(shù),它還會(huì)調(diào)用相應(yīng)的壓縮程序(如gzip和bzip等)進(jìn)行壓縮和解壓
?
-c :新建打包文件 -t :查看打包文件的內(nèi)容含有哪些文件名 -x :解打包或解壓縮的功能,可以搭配-C(大寫(xiě))指定解壓的目錄,注意-c,-t,-x不能同時(shí)出現(xiàn)在同一條命令中 -j :通過(guò)bzip2的支持進(jìn)行壓縮/解壓縮 -z :通過(guò)gzip的支持進(jìn)行壓縮/解壓縮 -v :在壓縮/解壓縮過(guò)程中,將正在處理的文件名顯示出來(lái) -f filename :filename為要處理的文件 -C dir :指定壓縮/解壓縮的目錄dir
?
壓縮:tar -jcv -f filename.tar.bz2 要被處理的文件或目錄名稱(chēng) 查詢(xún):tar -jtv -f filename.tar.bz2 解壓:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
?
bunzip2?file1.bz2?解壓一個(gè)叫做?'file1.bz2'的文件? bzip2?file1?壓縮一個(gè)叫做?'file1'?的文件? gunzip?file1.gz?解壓一個(gè)叫做?'file1.gz'的文件? gzip?file1?壓縮一個(gè)叫做?'file1'的文件? gzip?-9?file1?最大程度壓縮? rar?a?file1.rar?test_file?創(chuàng)建一個(gè)叫做?'file1.rar'?的包? rar?a?file1.rar?file1?file2?dir1?同時(shí)壓縮?'file1',?'file2'?以及目錄?'dir1'? rar?x?file1.rar?解壓rar包 zip?file1.zip?file1?創(chuàng)建一個(gè)zip格式的壓縮包? unzip?file1.zip?解壓一個(gè)zip格式壓縮包? zip?-r?file1.zip?file1?file2?dir1?將幾個(gè)文件和目錄同時(shí)壓縮成一個(gè)zip格式的壓縮包
?
七.系統(tǒng)和關(guān)機(jī)(關(guān)機(jī)、重啟和登出)
?
shutdown?-h?now?關(guān)閉系統(tǒng)(1)? init?0?關(guān)閉系統(tǒng)(2)? telinit?0?關(guān)閉系統(tǒng)(3)? shutdown?-h?hours:minutes?&?按預(yù)定時(shí)間關(guān)閉系統(tǒng)? shutdown?-c?取消按預(yù)定時(shí)間關(guān)閉系統(tǒng)? shutdown?-r?now?重啟(1)? reboot?重啟(2)? logout?注銷(xiāo)? time?測(cè)算一個(gè)命令(即程序)的執(zhí)行時(shí)間?
?
八、進(jìn)程相關(guān)的命令
jps命令,顯示當(dāng)前系統(tǒng)的java進(jìn)程情況,及其id號(hào)
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個(gè)顯示當(dāng)前所有java進(jìn)程pid的命令,簡(jiǎn)單實(shí)用,非常適合在linux/unix平臺(tái)上簡(jiǎn)單察看當(dāng)前java進(jìn)程的一些簡(jiǎn)單情況。
ps命令,用于將某個(gè)時(shí)間點(diǎn)的進(jìn)程運(yùn)行情況選取下來(lái)并輸出,process之意
?
-A :所有的進(jìn)程均顯示出來(lái) -a :不與terminal有關(guān)的所有進(jìn)程 -u :有效用戶(hù)的相關(guān)進(jìn)程 -x :一般與a參數(shù)一起使用,可列出較完整的信息 -l :較長(zhǎng),較詳細(xì)地將PID的信息列出 ps?aux?#?查看系統(tǒng)所有的進(jìn)程數(shù)據(jù) ps?ax?#?查看不與terminal有關(guān)的所有進(jìn)程 ps?-lA?#?查看系統(tǒng)所有的進(jìn)程數(shù)據(jù) ps?axjf?#?查看連同一部分進(jìn)程樹(shù)狀態(tài)
?
kill命令,用于向某個(gè)工作(%jobnumber)或者是某個(gè)PID(數(shù)字)傳送一個(gè)信號(hào),它通常與ps和jobs命令一起使用
命令格式 : kill[命令參數(shù)][進(jìn)程id]
命令參數(shù):
?
-l??信號(hào),若果不加信號(hào)的編號(hào)參數(shù),則使用“-l”參數(shù)會(huì)列出全部的信號(hào)名稱(chēng) -a??當(dāng)處理當(dāng)前進(jìn)程時(shí),不限制命令名和進(jìn)程號(hào)的對(duì)應(yīng)關(guān)系 -p??指定kill?命令只打印相關(guān)進(jìn)程的進(jìn)程號(hào),而不發(fā)送任何信號(hào) -s??指定發(fā)送信號(hào) -u??指定用戶(hù)
?
實(shí)例1:列出所有信號(hào)名稱(chēng) 命令:kill -l 輸出:
?
[root@localhost?test6]#?kill?-l ?1)?SIGHUP???????2)?SIGINT???????3)?SIGQUIT??????4)?SIGILL ?5)?SIGTRAP??????6)?SIGABRT??????7)?SIGBUS???????8)?SIGFPE ?9)?SIGKILL?????10)?SIGUSR1?????11)?SIGSEGV?????12)?SIGUSR2 13)?SIGPIPE?????14)?SIGALRM?????15)?SIGTERM?????16)?SIGSTKFLT 17)?SIGCHLD?????18)?SIGCONT?????19)?SIGSTOP?????20)?SIGTSTP 21)?SIGTTIN?????22)?SIGTTOU?????23)?SIGURG??????24)?SIGXCPU 25)?SIGXFSZ?????26)?SIGVTALRM???27)?SIGPROF?????28)?SIGWINCH 29)?SIGIO???????30)?SIGPWR??????31)?SIGSYS??????34)?SIGRTMIN 35)?SIGRTMIN+1??36)?SIGRTMIN+2??37)?SIGRTMIN+3??38)?SIGRTMIN+4 39)?SIGRTMIN+5??40)?SIGRTMIN+6??41)?SIGRTMIN+7??42)?SIGRTMIN+8 43)?SIGRTMIN+9??44)?SIGRTMIN+10?45)?SIGRTMIN+11?46)?SIGRTMIN+12 47)?SIGRTMIN+13?48)?SIGRTMIN+14?49)?SIGRTMIN+15?50)?SIGRTMAX-14 51)?SIGRTMAX-13?52)?SIGRTMAX-12?53)?SIGRTMAX-11?54)?SIGRTMAX-10 55)?SIGRTMAX-9??56)?SIGRTMAX-8??57)?SIGRTMAX-7??58)?SIGRTMAX-6 59)?SIGRTMAX-5??60)?SIGRTMAX-4??61)?SIGRTMAX-3??62)?SIGRTMAX-2 63)?SIGRTMAX-1??64)?SIGRTMAX
?
說(shuō)明:
只有第9種信號(hào)(SIGKILL)才可以無(wú)條件終止進(jìn)程,其他信號(hào)進(jìn)程都有權(quán)利忽略。? ?下面是常用的信號(hào):
?
HUP????1????終端斷線(xiàn) INT?????2????中斷(同?Ctrl?+?C) QUIT????3????退出(同?Ctrl?+?) TERM???15????終止 KILL????9????強(qiáng)制終止 CONT???18????繼續(xù)(與STOP相反,?fg/bg命令) STOP????19????暫停(同?Ctrl?+?Z)
?
實(shí)例2:得到指定信號(hào)的數(shù)值
?
[root@localhost?test6]#?kill?-l?KILL [root@localhost?test6]#?kill?-l?SIGKILL [root@localhost?test6]#?kill?-l?TERM [root@localhost?test6]#?kill?-l?SIGTERM [root@localhost?test6]#
?
實(shí)例3:先用ps查找進(jìn)程,然后用kill殺掉
?
命令:kill?3268 [root@localhost?test6]#?ps?-ef|grep?vim? root??????3268??2884??0?16:21?pts/1????0000?vim?install.log root??????3370??2822??0?16:21?pts/0????0000?grep?vim [root@localhost?test6]#?kill?3268?
?
實(shí)例4:徹底殺死進(jìn)程
?
命令:kill?–9?3268???//?-9?強(qiáng)制殺掉進(jìn)程
?
killall命令,向一個(gè)命令啟動(dòng)的進(jìn)程發(fā)送一個(gè)信號(hào),用于殺死指定名字的進(jìn)程
命令格式 : killall[命令參數(shù)][進(jìn)程名]
?
命令參數(shù): -Z?只殺死擁有scontext?的進(jìn)程 -e?要求匹配進(jìn)程名稱(chēng) -I?忽略小寫(xiě) -g?殺死進(jìn)程組而不是進(jìn)程 -i?交互模式,殺死進(jìn)程前先詢(xún)問(wèn)用戶(hù) -l?列出所有的已知信號(hào)名稱(chēng) -q?不輸出警告信息 -s?發(fā)送指定的信號(hào) -v?報(bào)告信號(hào)是否成功發(fā)送 -w?等待進(jìn)程死亡 --help?顯示幫助信息 --version?顯示版本顯示
?
示例
?
1:殺死所有同名進(jìn)程 ????killall?nginx ????killall?-9?bash 2.向進(jìn)程發(fā)送指定信號(hào) ????killall?-TERM?ngixn??或者??killall?-KILL?nginx
?
top命令,是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類(lèi)似于Windows的任務(wù)管理器。
如何殺死進(jìn)程:
?
(1)圖形化界面的方式 (2)kill?-9?pid??(-9表示強(qiáng)制關(guān)閉) (3)killall?-9?程序的名字 (4)pkill?程序的名字
?
查看進(jìn)程端口號(hào):
?
netstat?-tunlp|grep?端口號(hào)
?
?
審核編輯:湯梓紅
評(píng)論
查看更多