常用的21條Linux命令

Linux是目前應(yīng)用最廣泛的服務(wù)器操作系統(tǒng)干奢,基于Unix快耿,開源免費另患,由于系統(tǒng)的穩(wěn)定性和安全性纽乱,市場占有率很高,幾乎成為程序代碼運(yùn)行的最佳系統(tǒng)環(huán)境昆箕。linux不僅可以長時間的運(yùn)行我們編寫的程序代碼鸦列,還可以安裝在各種計算機(jī)硬件設(shè)備中,如手機(jī)鹏倘、路由器等薯嗤,Android程序最底層就是運(yùn)行在linux系統(tǒng)上的。

一.文件和目錄

1. cd命令纤泵,用于切換當(dāng)前目錄骆姐,它的參數(shù)是要切換到的目錄的路徑,可以是絕對路徑捏题,也可以是相對路徑玻褪。

cd /home    進(jìn)入 '/ home' 目錄
cd ..            返回上一級目錄 
cd ../..         返回上兩級目錄 
cd               進(jìn)入個人的主目錄 
cd ~user1   進(jìn)入個人的主目錄 
cd -             返回上次所在的目錄

2. pwd命令,顯示工作路徑

[root@mailvip ~]# pwd
/root

3. ls命令公荧,查看文件與目錄的命令带射,list之意

ls 查看目錄中的文件 
ls -l 顯示文件和目錄的詳細(xì)資料 
ls -a 列出全部文件,包含隱藏文件
ls -R 連同子目錄的內(nèi)容一起列出(遞歸列出)循狰,等于該目錄下的所有文件都會顯示出來  
ls [0-9] 顯示包含數(shù)字的文件名和目錄名

4. cp命令窟社,用于復(fù)制文件,copy之意绪钥,它還可以把多個文件一次性地復(fù)制到一個目錄下

-a :將文件的特性一起復(fù)制
-p :連同文件的屬性一起復(fù)制灿里,而非使用默認(rèn)方式,與-a相似昧识,常用于備份
-i :若目標(biāo)文件已經(jīng)存在時钠四,在覆蓋時會先詢問操作的進(jìn)行
-r :遞歸持續(xù)復(fù)制盗扒,用于目錄的復(fù)制行為 //經(jīng)常使用遞歸復(fù)制
-u :目標(biāo)文件與源文件有差異時才會復(fù)制

5. mv命令跪楞,用于移動文件缀去、目錄或更名,move之意

-f :force強(qiáng)制的意思甸祭,如果目標(biāo)文件已經(jīng)存在缕碎,不會詢問而直接覆蓋
-i :若目標(biāo)文件已經(jīng)存在,就會詢問是否覆蓋
-u :若目標(biāo)文件已經(jīng)存在池户,且比目標(biāo)文件新咏雌,才會更新

6. rm命令,用于刪除文件或目錄校焦,remove之意

-f :就是force的意思赊抖,忽略不存在的文件,不會出現(xiàn)警告消息
-i :互動模式寨典,在刪除前會詢問用戶是否操作
-r :遞歸刪除氛雪,最常用于目錄刪除,它是一個非常危險的參數(shù)


二耸成、查看文件內(nèi)容

7. cat命令报亩,用于查看文本文件的內(nèi)容,后接要查看的文件名井氢,通诚易罚可用管道與more和less一起使用

cat file1 從第一個字節(jié)開始正向查看文件的內(nèi)容 
tac file1 從最后一行開始反向查看一個文件的內(nèi)容 
cat -n file1 標(biāo)示文件的行數(shù) 
more file1 查看一個長文件的內(nèi)容 

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行)


三.文件搜索

8. find命令劲件,用來查找系統(tǒng)的

find / -name file1 從 '/' 開始進(jìn)入根文件系統(tǒng)搜索文件和目錄 
find / -user user1 搜索屬于用戶 'user1' 的文件和目錄 
find /usr/bin -type f -atime +100 搜索在過去100天內(nèi)未被使用過的執(zhí)行文件 
find /usr/bin -type f -mtime -10 搜索在10天內(nèi)被創(chuàng)建或者修改過的文件 
whereis halt 顯示一個二進(jìn)制文件、源碼或man的位置 
which halt 顯示一個二進(jìn)制文件或可執(zhí)行文件的完整路徑

刪除大于50M的文件:
find /var/mail/ -size +50M -exec rm {} \;

四.文件的權(quán)限 - 使用 "+" 設(shè)置權(quán)限约急,使用 "-" 用于取消

9. chmod命令寇仓,改變文件/文件夾權(quán)限

ls -lh 顯示權(quán)限 
chmod ugo+rwx directory1 設(shè)置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r烤宙,4 )遍烦、寫(w,2)和執(zhí)行(x躺枕,1)的權(quán)限 
chmod go-rwx directory1  刪除群組(g)與其他人(o)對目錄的讀寫執(zhí)行權(quán)限

10. chown命令服猪,改變文件的所有者

chown user1 file1 改變一個文件的所有人屬性 
chown -R user1 directory1 改變一個目錄的所有人屬性并同時改變改目錄下所有文件的屬性 
chown user1:group1 file1 改變一個文件的所有人和群組屬性

11.chgrp命令,改變文件所屬用戶組

chgrp group1 file1 改變文件的群組


五.文本處理

12. grep命令拐云,分析一行的信息罢猪,若當(dāng)中有我們所需要的信息,就將該行顯示出來叉瘩,該命令通常與管道命令一起使用膳帕,用于對一些命令的輸出進(jìn)行篩選加工等等

grep Aug /var/log/messages  在文件 '/var/log/messages'中查找關(guān)鍵詞"Aug" 

grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"開始的詞匯 
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文件中刪除所有空白行

13. paste命令

paste file1 file2 合并兩個文件或兩欄的內(nèi)容 
paste -d '+' file1 file2 合并兩個文件或兩欄的內(nèi)容,中間用"+"區(qū)分

14. sort命令

sort file1 file2 排序兩個文件的內(nèi)容 
sort file1 file2 | uniq 取出兩個文件的并集(重復(fù)的行只保留一份) 
sort file1 file2 | uniq -u 刪除交集,留下其他的行 
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)

15. comm命令

comm -1 file1 file2 比較兩個文件的內(nèi)容只刪除 'file1' 所包含的內(nèi)容 
comm -2 file1 file2 比較兩個文件的內(nèi)容只刪除 'file2' 所包含的內(nèi)容 
comm -3 file1 file2 比較兩個文件的內(nèi)容只刪除兩個文件共有的部分


六危彩、打包和壓縮文件

16. tar命令攒磨,對文件進(jìn)行打包,默認(rèn)情況并不會壓縮汤徽,如果指定了相應(yīng)的參數(shù)娩缰,它還會調(diào)用相應(yīng)的壓縮程序(如gzip和bzip等)進(jìn)行壓縮和解壓

-c :新建打包文件
-t :查看打包文件的內(nèi)容含有哪些文件名
-x :解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄谒府,注意-c,-t,-x不能同時出現(xiàn)在同一條命令中
-j :通過bzip2的支持進(jìn)行壓縮/解壓縮
-z :通過gzip的支持進(jìn)行壓縮/解壓縮
-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 創(chuàng)建一個叫做 'file1.rar' 的包 
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1' 
rar x file1.rar 解壓rar包

zip file1.zip file1 創(chuàng)建一個zip格式的壓縮包 
unzip file1.zip 解壓一個zip格式壓縮包 
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個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ù)定時間關(guān)閉系統(tǒng) 
shutdown -c 取消按預(yù)定時間關(guān)閉系統(tǒng) 
shutdown -r now 重啟(1) 
reboot 重啟(2) 
logout 注銷 
time 測算一個命令(即程序)的執(zhí)行時間 


八完疫、進(jìn)程相關(guān)的命令

17. jps命令泰鸡,顯示當(dāng)前系統(tǒng)的java進(jìn)程情況,及其id號

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一個顯示當(dāng)前所有java進(jìn)程pid的命令壳鹤,簡單實用鸟顺,非常適合在linux/unix平臺上簡單察看當(dāng)前java進(jìn)程的一些簡單情況。

18. ps命令器虾,用于將某個時間點的進(jìn)程運(yùn)行情況選取下來并輸出讯嫂,process之意

-A :所有的進(jìn)程均顯示出來
-a :不與terminal有關(guān)的所有進(jìn)程
-u :有效用戶的相關(guān)進(jìn)程
-x :一般與a參數(shù)一起使用,可列出較完整的信息
-l :較長兆沙,較詳細(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)程樹狀態(tài)

19. kill命令,用于向某個工作(%jobnumber)或者是某個PID(數(shù)字)傳送一個信號欧芽,它通常與ps和jobs命令一起使用

命令格式 : kill[命令參數(shù)][進(jìn)程id]
命令參數(shù):
-l  信號,若果不加信號的編號參數(shù)葛圃,則使用“-l”參數(shù)會列出全部的信號名稱
-a  當(dāng)處理當(dāng)前進(jìn)程時千扔,不限制命令名和進(jìn)程號的對應(yīng)關(guān)系
-p  指定kill 命令只打印相關(guān)進(jìn)程的進(jìn)程號,而不發(fā)送任何信號
-s  指定發(fā)送信號
-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)才可以無條件終止進(jìn)程库正,其他信號進(jìn)程都有權(quán)利忽略曲楚。    下面是常用的信號:
HUP    1    終端斷線
INT     2    中斷(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    終止
KILL    9    強(qiáng)制終止
CONT   18    繼續(xù)(與STOP相反, fg/bg命令)
STOP    19    暫停(同 Ctrl + Z)


實例2:得到指定信號的數(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]#


實例3:先用ps查找進(jìn)程褥符,然后用kill殺掉

命令:kill 3268
[root@localhost test6]# ps -ef|grep vim 
root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim
[root@localhost test6]# kill 3268 


實例4:徹底殺死進(jìn)程
命令:kill –9 3268   // -9 強(qiáng)制殺掉進(jìn)程

20. killall命令龙誊,向一個命令啟動的進(jìn)程發(fā)送一個信號,用于殺死指定名字的進(jìn)程

命令格式 : killall[命令參數(shù)][進(jìn)程名]
命令參數(shù):
-Z 只殺死擁有scontext 的進(jìn)程
-e 要求匹配進(jìn)程名稱
-I 忽略小寫
-g 殺死進(jìn)程組而不是進(jìn)程
-i 交互模式喷楣,殺死進(jìn)程前先詢問用戶
-l 列出所有的已知信號名稱
-q 不輸出警告信息
-s 發(fā)送指定的信號
-v 報告信號是否成功發(fā)送
-w 等待進(jìn)程死亡
--help 顯示幫助信息
--version 顯示版本顯示
示例
1:殺死所有同名進(jìn)程
    killall nginx
    killall -9 bash

2.向進(jìn)程發(fā)送指定信號
    killall -TERM ngixn  或者  killall -KILL nginx

21. top命令趟大,是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況铣焊,類似于Windows的任務(wù)管理器逊朽。

如何殺死進(jìn)程:
(1)圖形化界面的方式
(2)kill -9 pid  (-9表示強(qiáng)制關(guān)閉)
(3)killall -9 程序的名字
(4)pkill 程序的名字

查看進(jìn)程端口號:
netstat -tunlp|grep 端口號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市曲伊,隨后出現(xiàn)的幾起案子叽讳,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岛蚤,死亡現(xiàn)場離奇詭異邑狸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)灭美,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門推溃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昂利,“玉大人届腐,你說我怎么就攤上這事》浼椋” “怎么了犁苏?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扩所。 經(jīng)常有香客問我围详,道長,這世上最難降的妖魔是什么祖屏? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任助赞,我火速辦了婚禮,結(jié)果婚禮上袁勺,老公的妹妹穿的比我還像新娘雹食。我一直安慰自己,他們只是感情好期丰,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布群叶。 她就那樣靜靜地躺著,像睡著了一般钝荡。 火紅的嫁衣襯著肌膚如雪街立。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天埠通,我揣著相機(jī)與錄音赎离,去河邊找鬼。 笑死端辱,一個胖子當(dāng)著我的面吹牛蟹瘾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掠手,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼憾朴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了喷鸽?” 一聲冷哼從身側(cè)響起众雷,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后砾省,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸡岗,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年编兄,在試婚紗的時候發(fā)現(xiàn)自己被綠了轩性。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡狠鸳,死狀恐怖揣苏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情件舵,我是刑警寧澤卸察,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站铅祸,受9級特大地震影響坑质,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜临梗,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一涡扼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盟庞,春花似錦吃沪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卸伞,卻和暖如春抹镊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荤傲。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工垮耳, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遂黍。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓终佛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雾家。 傳聞我的和親對象是個殘疾皇子铃彰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容