運維人員經常使用的Linux命令彙總

做爲運維人員,這些經常使用命令不得不會,掌握這些命令,工做上會事半功倍,提供工做效率。java

運維人員經常使用的Linux命令彙總

一.文件和目錄

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

2、查看文件內容

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

三.文件搜索

  1. 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的文件:linux

find /var/mail/ -size +50M -exec rm {} \;

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

  1. chmod命令,改變文件/文件夾權限nginx

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

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

chgrp group1 file1 改變文件的羣組

五.文本處理

  1. 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文件中刪除全部空白行
  1. 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 比較兩個文件的內容只刪除兩個文件共有的部分

6、打包和壓縮文件

  1. 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 欲解壓縮的目錄bash

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

8、進程相關的命令

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

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

  1. ps命令,用於將某個時間點的進程運行狀況選取下來並輸出,process之意
-A :全部的進程均顯示出來
-a :不與terminal有關的全部進程
-u :有效用戶的相關進程
-x :通常與a參數一塊兒使用,可列出較完整的信息
-l :較長,較詳細地將PID的信息列出

ps aux # 查看系統全部的進程數據
ps ax # 查看不與terminal有關的全部進程
ps -lA # 查看系統全部的進程數據
ps axjf # 查看連同一部分進程樹狀態
  1. kill命令,用於向某個工做(%jobnumber)或者是某個PID(數字)傳送一個信號,它一般與ps和jobs命令一塊兒使用

命令格式 : kill[命令參數][進程id]運維

命令參數:ide

-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

相關文章
相關標籤/搜索