作為后端開發,這些常用命令不得不會,掌握這些命令,工作上會事半功倍,提供工作效率。 ?
一.文件和目錄
cd命令,用于切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。
?
cd?/home????進入?'/?home'?目錄 cd?..????????????返回上一級目錄? cd?../..?????????返回上兩級目錄? cd???????????????進入個人的主目錄? cd?~user1???進入個人的主目錄? cd?-?????????????返回上次所在的目錄
?
pwd命令,顯示工作路徑
?
[root@mailvip?~]#?pwd /root
?
ls命令,查看文件與目錄的命令,list之意
?
ls?查看目錄中的文件? ls?-l?顯示文件和目錄的詳細資料? ls?-a?列出全部文件,包含隱藏文件 ls?-R?連同子目錄的內容一起列出(遞歸列出),等于該目錄下的所有文件都會顯示出來?? ls?[0-9]?顯示包含數字的文件名和目錄名
?
cp命令,用于復制文件,copy之意,它還可以把多個文件一次性地復制到一個目錄下
?
-a :將文件的特性一起復制 -p :連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用于備份 -i :若目標文件已經存在時,在覆蓋時會先詢問操作的進行 -r :遞歸持續復制,用于目錄的復制行為?//經常使用遞歸復制 -u :目標文件與源文件有差異時才會復制
?
mv命令,用于移動文件、目錄或更名,move之意
?
-f :force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋 -i :若目標文件已經存在,就會詢問是否覆蓋 -u :若目標文件已經存在,且比目標文件新,才會更新
?
rm命令,用于刪除文件或目錄,remove之意
?
-f :就是force的意思,忽略不存在的文件,不會出現警告消息 -i :互動模式,在刪除前會詢問用戶是否操作 -r :遞歸刪除,最常用于目錄刪除,它是一個非常危險的參數
?
二、查看文件內容
cat命令,用于查看文本文件的內容,后接要查看的文件名,通常可用管道與more和less一起使用
?
cat?file1?從第一個字節開始正向查看文件的內容? tac?file1?從最后一行開始反向查看一個文件的內容? cat -n file1 標示文件的行數? more?file1?查看一個長文件的內容? head?-n?2?file1?查看一個文件的前兩行? tail?-n?2?file1?查看一個文件的最后兩行? tail?-n?+1000?file1??從1000行開始顯示,顯示1000行以后的 cat?filename?|?head?-n?3000?|?tail?-n?+1000??顯示1000行到3000行 cat?filename?|?tail?-n?+3000?|?head?-n?1000??從第3000行開始,顯示1000(即顯示3000~3999行)
?
三.文件搜索
find命令,用來查找系統的
?
find?/?-name?file1?從?'/'?開始進入根文件系統搜索文件和目錄? find?/?-user?user1?搜索屬于用戶?'user1'?的文件和目錄? find?/usr/bin?-type?f?-atime?+100?搜索在過去100天內未被使用過的執行文件? find?/usr/bin?-type?f?-mtime?-10?搜索在10天內被創建或者修改過的文件? whereis?halt?顯示一個二進制文件、源碼或man的位置? which?halt?顯示一個二進制文件或可執行文件的完整路徑
?
刪除大于50M的文件:
?
find?/var/mail/?-size?+50M?-exec?rm?{}?\;
?
四.文件的權限 - 使用 "+" 設置權限,使用 "-" 用于取消
chmod命令,改變文件/文件夾權限
?
ls?-lh?顯示權限? chmod?ugo+rwx?directory1?設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r,4?)、寫(w,2)和執行(x,1)的權限? chmod?go-rwx?directory1??刪除群組(g)與其他人(o)對目錄的讀寫執行權限
?
chown命令,改變文件的所有者
?
chown?user1?file1?改變一個文件的所有人屬性? chown -R user1 directory1 改變一個目錄的所有人屬性并同時改變改該目錄下所有文件的屬性? chown?user1:group1?file1?改變一個文件的所有人和群組屬性
?
11.chgrp命令,改變文件所屬用戶組
?
chgrp?group1?file1?改變文件的群組
?
五.文本處理
grep命令,分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用于對一些命令的輸出進行篩選加工等等
?
grep?Aug?/var/log/messages??在文件?'/var/log/messages'中查找關鍵詞"Aug"? grep?^Aug?/var/log/messages?在文件?'/var/log/messages'中查找以"Aug"開始的詞匯? grep?[0-9]??/var/log/messages?選擇?'/var/log/messages'?文件中所有包含數字的行? 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?合并兩個文件或兩欄的內容? paste?-d?'+'?file1?file2?合并兩個文件或兩欄的內容,中間用"+"區分
?
sort命令
?
sort?file1?file2?排序兩個文件的內容? sort?file1?file2?|?uniq?取出兩個文件的并集(重復的行只保留一份)? sort?file1?file2?|?uniq?-u?刪除交集,留下其他的行? sort?file1?file2?|?uniq?-d?取出兩個文件的交集(只留下同時存在于兩個文件中的文件)
?
comm命令
?
comm?-1?file1?file2?比較兩個文件的內容只刪除?'file1'?所包含的內容? comm?-2?file1?file2?比較兩個文件的內容只刪除?'file2'?所包含的內容? comm?-3?file1?file2?比較兩個文件的內容只刪除兩個文件共有的部分
?
六、打包和壓縮文件
tar命令,對文件進行打包,默認情況并不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓
?
-c :新建打包文件 -t :查看打包文件的內容含有哪些文件名 -x :解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中 -j :通過bzip2的支持進行壓縮/解壓縮 -z :通過gzip的支持進行壓縮/解壓縮 -v :在壓縮/解壓縮過程中,將正在處理的文件名顯示出來 -f filename :filename為要處理的文件 -C dir :指定壓縮/解壓縮的目錄dir
?
壓縮:tar -jcv -f filename.tar.bz2 要被處理的文件或目錄名稱 查詢:tar -jtv -f filename.tar.bz2 解壓:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
?
bunzip2?file1.bz2?解壓一個叫做?'file1.bz2'的文件? bzip2?file1?壓縮一個叫做?'file1'?的文件? gunzip?file1.gz?解壓一個叫做?'file1.gz'的文件? gzip?file1?壓縮一個叫做?'file1'的文件? gzip?-9?file1?最大程度壓縮? rar?a?file1.rar?test_file?創建一個叫做?'file1.rar'?的包? rar?a?file1.rar?file1?file2?dir1?同時壓縮?'file1',?'file2'?以及目錄?'dir1'? rar?x?file1.rar?解壓rar包 zip?file1.zip?file1?創建一個zip格式的壓縮包? unzip?file1.zip?解壓一個zip格式壓縮包? zip?-r?file1.zip?file1?file2?dir1?將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
?
七.系統和關機(關機、重啟和登出)
?
shutdown?-h?now?關閉系統(1)? init?0?關閉系統(2)? telinit?0?關閉系統(3)? shutdown?-h?hours:minutes?&?按預定時間關閉系統? shutdown?-c?取消按預定時間關閉系統? shutdown?-r?now?重啟(1)? reboot?重啟(2)? logout?注銷? time?測算一個命令(即程序)的執行時間?
?
八、進程相關的命令
jps命令,顯示當前系統的java進程情況,及其id號
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個顯示當前所有java進程pid的命令,簡單實用,非常適合在linux/unix平臺上簡單察看當前java進程的一些簡單情況。
ps命令,用于將某個時間點的進程運行情況選取下來并輸出,process之意
?
-A :所有的進程均顯示出來 -a :不與terminal有關的所有進程 -u :有效用戶的相關進程 -x :一般與a參數一起使用,可列出較完整的信息 -l :較長,較詳細地將PID的信息列出 ps?aux?#?查看系統所有的進程數據 ps?ax?#?查看不與terminal有關的所有進程 ps?-lA?#?查看系統所有的進程數據 ps?axjf?#?查看連同一部分進程樹狀態
?
kill命令,用于向某個工作(%jobnumber)或者是某個PID(數字)傳送一個信號,它通常與ps和jobs命令一起使用
命令格式 : kill[命令參數][進程id]
命令參數:
?
-l??信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱 -a??當處理當前進程時,不限制命令名和進程號的對應關系 -p??指定kill?命令只打印相關進程的進程號,而不發送任何信號 -s??指定發送信號 -u??指定用戶
?
實例1:列出所有信號名稱 命令: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
?
說明:
只有第9種信號(SIGKILL)才可以無條件終止進程,其他信號進程都有權利忽略。? ?下面是常用的信號:
?
HUP????1????終端斷線 INT?????2????中斷(同?Ctrl?+?C) QUIT????3????退出(同?Ctrl?+?) TERM???15????終止 KILL????9????強制終止 CONT???18????繼續(與STOP相反,?fg/bg命令) STOP????19????暫停(同?Ctrl?+?Z)
?
實例2:得到指定信號的數值
?
[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]#
?
實例3:先用ps查找進程,然后用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?
?
實例4:徹底殺死進程
?
命令:kill?–9?3268???//?-9?強制殺掉進程
?
killall命令,向一個命令啟動的進程發送一個信號,用于殺死指定名字的進程
命令格式 : killall[命令參數][進程名]
?
命令參數: -Z?只殺死擁有scontext?的進程 -e?要求匹配進程名稱 -I?忽略小寫 -g?殺死進程組而不是進程 -i?交互模式,殺死進程前先詢問用戶 -l?列出所有的已知信號名稱 -q?不輸出警告信息 -s?發送指定的信號 -v?報告信號是否成功發送 -w?等待進程死亡 --help?顯示幫助信息 --version?顯示版本顯示
?
示例
?
1:殺死所有同名進程 ????killall?nginx ????killall?-9?bash 2.向進程發送指定信號 ????killall?-TERM?ngixn??或者??killall?-KILL?nginx
?
top命令,是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于Windows的任務管理器。
如何殺死進程:
?
(1)圖形化界面的方式 (2)kill?-9?pid??(-9表示強制關閉) (3)killall?-9?程序的名字 (4)pkill?程序的名字
?
查看進程端口號:
?
netstat?-tunlp|grep?端口號
?
?
審核編輯:湯梓紅
評論
查看更多