常用的Linux命令彙總

掌握這些常用命令,學習和工作上會事半功倍,提供工作效率。

一.文件和目錄

1. cd命令,用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。
cd /home    進入 '/ home' 目錄
cd ..            返回上一級目錄 
cd ../..         返回上兩級目錄 
cd               進入個人的主目錄 
cd ~user1   進入個人的主目錄 
cd -             返回上次所在的目錄
2. pwd命令,顯示工作路徑
[root@mailvip ~]# pwd
/root
3. ls命令,查看文件與目錄的命令,list之意
ls 查看目錄中的文件 
ls -l 顯示文件和目錄的詳細資料 
ls -a 列出全部文件,包含隱藏文件
ls -R 連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來  
ls [0-9] 顯示包含數字的文件名和目錄名
4. cp命令,用於複製文件,copy之意,它還可以把多個文件一次性地複製到一個目錄下
-a :將文件的特性一起復制
-p :連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份
-i :若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-r :遞歸持續複製,用於目錄的複製行爲 //經常使用遞歸複製
-u :目標文件與源文件有差異時纔會複製
5. mv命令,用於移動文件、目錄或更名,move之意
-f :force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i :若目標文件已經存在,就會詢問是否覆蓋
-u :若目標文件已經存在,且比目標文件新,纔會更新
6. rm命令,用於刪除文件或目錄,remove之意
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行)

二.查看文件內容

7. cat命令,用於查看文本文件的內容,後接要查看的文件名,通常可用管道與more和less一起使用
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 {} \;

三.文件搜索

8. find命令,用來查找系統的

四.文件的權限 - 使用 "+" 設置權限,使用 "-" 用於取消

9. chmod命令,改變文件/文件夾權限
ls -lh 顯示權限 
chmod ugo+rwx directory1 設置目錄的所有人(u)、羣組(g)以及其他人(o)以讀(r,4 )、寫(w,2)和執行(x,1)的權限 
chmod go-rwx directory1  刪除羣組(g)與其他人(o)對目錄的讀寫執行權限
10. chown命令,改變文件的所有者
chown user1 file1 改變一個文件的所有人屬性 
chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性 
chown user1:group1 file1 改變一個文件的所有人和羣組屬性
11.chgrp命令,改變文件所屬用戶組
chgrp group1 file1 改變文件的羣組

五.文本處理

12. 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文件中刪除所有空白行


13. paste命令
paste file1 file2 合併兩個文件或兩欄的內容 
paste -d '+' file1 file2 合併兩個文件或兩欄的內容,中間用"+"區分
  1. sort命令
sort file1 file2 排序兩個文件的內容 
sort file1 file2 | uniq 取出兩個文件的並集(重複的行只保留一份) 
sort file1 file2 | uniq -u 刪除交集,留下其他的行 
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在於兩個文件中的文件)
  1. comm命令
comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容 
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容 
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分

六.打包和壓縮文件

16. 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 測算一個命令(即程序)的執行時間 

八.進程相關的命令

17. jps命令,顯示當前系統的java進程情況,及其id號

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

  1. ps命令,用於將某個時間點的進程運行情況選取下來並輸出,process之意
-A :所有的進程均顯示出來 -a :不與terminal有關的所有進程 -u :有效用戶的相關進程 -x :一般與a參數一起使用,可列出較完整的信息 -l :較長,較詳細地將PID的信息列出
ps aux # 查看系統所有的進程數據
ps ax # 查看不與terminal有關的所有進程
ps -lA # 查看系統所有的進程數據
ps axjf # 查看連同一部分進程樹狀態
19. 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    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:徹底殺死進程
命令:kill –9 3268   // -9 強制殺掉進程
  1. 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
  1. top命令,是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。
如何殺死進程:
(1)圖形化界面的方式
(2)kill -9 pid  (-9表示強制關閉)
(3)killall -9 程序的名字
(4)pkill 程序的名字

查看進程端口號:
netstat -tunlp|grep 端口號

 
來自:https://www.jianshu.com/p/7c0df6fcfc71

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章