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

安全劍客發表於2020-09-27
作為運維人員,這些常用 不得不會,掌握這些 ,工作上會事半功倍,提供工作效率。

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

一.檔案和目錄

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的命令,簡單實用,非常適合在 /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    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 強制殺掉程式
killall命令,向一個命令啟動的程式傳送一個訊號,用於殺死指定名字的程式
命令格式 : killall[命令引數][程式名]

命令引數:
-Z 只殺死擁有scontext 的程式
-e 要求匹配程式名稱
-I 忽略小寫
-g 殺死程式組而不是程式
-i 互動模式,殺死程式前先詢問使用者
-l 列出所有的已知訊號名稱
-q 不輸出警告資訊
-s 傳送指定的訊號
-v 報告訊號是否成功傳送
-w 等待程式死亡
--help 顯示幫助資訊
--version 顯示版本顯示

示例

殺死所有同名程式

  killall nginx
    killall -9 bash

向程式傳送指定訊號

 killall -TERM ngixn  或者  killall -KILL nginx

top命令,是Linux下常用的效能分析工具,能夠實時顯示系統中各個程式的資源佔用狀況,類似於Windows的工作管理員。
如何殺死程式:

(1)圖形化介面的方式
(2)kill -9 pid (-9表示強制關閉)
(3)killall -9 程式的名字
(4)pkill 程式的名字
檢視程式埠號:

netstat -tunlp|grep 埠號

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2724633/,如需轉載,請註明出處,否則將追究法律責任。

相關文章