一. 常用命令
文件目錄操作
- cd 切換目錄
cd dirname
- ls 顯示文件/目錄屬性
常見參數(shù):
-l :列出長數(shù)據(jù)串,包含文件的屬性與權(quán)限數(shù)據(jù)等
-a :列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄的文件數(shù)據(jù)
-h :將文件容量以較易讀的方式(GB,kB等)列出來
-R :連同子目錄的內(nèi)容一起列出(遞歸列出),等于該目錄下的所有文件都會顯示出來
示例: ls -l /tmp
- pwd 顯示當(dāng)前路徑
pwd
- mkdir 創(chuàng)建目錄
mkdir newdir
mkdir -p newdir/newdir #遞歸創(chuàng)建目錄
- touch創(chuàng)建文件
touch filename
- cp
常見參數(shù):
-r: 遞歸復(fù)制
-p: 保持屬性復(fù)制
- mv移動文件/重命名
mv filename dirname 移動文件
mv oldfilename newfilename 對文件重命名
- rm 刪除文件
-i: 交互式
-r: 遞歸
-f: 強制
- ln創(chuàng)建鏈接
ln /etc/passwd passwd 創(chuàng)建硬鏈接
ln -s 創(chuàng)建軟鏈接
- chown 更改文件擁有者
chown [-R] user dir/file
chown [-R] user:group dir/file
- chgrp 更改文件擁有組
chgrp [-R] groupname dir/file
參數(shù):
-R: 遞歸更改
- chmod 更改文件權(quán)限
r=4,w=2,x=1
chmod xxx filename
日常開關(guān)機
禁止在線上服務(wù)器使用
- shutdown
-r 關(guān)機重啟
-h 關(guān)機不重啟
now 立刻關(guān)機
- halt 關(guān)機
- reboot 重啟
- 切換執(zhí)行等級: init
Linux共有七種執(zhí)行等級:
--run level 0 :關(guān)機
--run level 3 :純文本模式
--run level 5 :含有圖形接口模式
--run level 6 :重新啟動
用戶管理
- useradd /adduser
用法: useradd [-u|-g|-m|-d|-s] username
參數(shù)說明:
-u: 指定用戶id
-g: 指定用戶組id
-d: 指定用戶家目錄
-m/M:創(chuàng)建家目錄/M 不創(chuàng)建
-s: 指定用戶登陸的shell
- userdel
用法: userdel [-r] username - usermod
- passwd
用法: passwd username 或者 echo password | passwd username --stdin
搜索命令
- 尋找【執(zhí)行擋】:which
which ls 尋找ls命令所在位置
- 尋找特定檔案:whereis
# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
- 尋找特定檔案:locate
locate passwd
- 尋找特定檔案:find
用法: find [PATH] [option] [action]
find支持正則匹配
-name 按照文件名查找文件。
-perm 按照文件權(quán)限來查找文件。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件
-type 查找某一類型的文件
實例:
find / -name *.txt
find . -name *.pyc exec rm -rf {}\; 找出 pyc文件并刪除
find . -type d 查找目錄
二. 文本操作
1. 全文查看 cat/tac
- 語法: cat/tac filename
2. 分頁查看 less/more
- 語法: less/more filename
3. 頭尾查看 head/tail
- 語法: hean filename
- 常見用法:
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行
4. 統(tǒng)計命令wc
- wc語法
wc [-lwm]
選項:
-l :僅列出行;
-w :僅列出多少字(英文單字);
-m :多少字符;
- 常見用法
# wc /etc/passwd
50 94 2550 /etc/passwd
行數(shù) 單詞數(shù) 字節(jié)數(shù)
# wc -l /etc/passwd #統(tǒng)計行數(shù)很常用
# wc -w /etc/passwd #統(tǒng)計單詞出現(xiàn)次數(shù)
# wc -m /etc/passwd #統(tǒng)計文件的字節(jié)數(shù)
5. 切分命令 cut
- cut語法
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
主要參數(shù)
-b :以字節(jié)為單位進行分割。這些字節(jié)位置將忽略多字節(jié)字符邊界,除非也指定了 -n 標(biāo)志。
-c :以字符為單位進行分割。
-d :自定義分隔符,默認為制表符。
-f :與-d一起使用,指定顯示哪個區(qū)域。
- 常用
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
lp:4:7:lp
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin
adm:3:4:adm:/sbin/nologin
lp:4:7:lp:/sbin/nologin
6. 排序命令 sort
- 語法:
sort [-bcfMnrtk][源文件][-o 輸出文件]
參數(shù):
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經(jīng)按照順序排序。
-f 排序時,忽略大小寫字母。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數(shù)值的大小排序。
-o 將排序后的結(jié)果存入指定的文件。
-r 以相反的順序來排序。
-t <分隔符> 指定排序時所用的欄位分隔字符。
-k 選擇以哪個區(qū)間進行排序。
- 常用
1 按文本排序
sort filename
2 按數(shù)字排序
sort -n
3 在輸出內(nèi)容中去除重復(fù)行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列號 -t 分隔符
7. 去重命令——uniq
uniq命令可以去除排序過的文件中的重復(fù)行,因此uniq經(jīng)常和sort合用。也就是說,為了使uniq起作用,所有的重復(fù)行必須是相鄰的。
- 語法
# uniq [-icu]
選項與參數(shù):
-i :忽略大小寫字符的不同;
-c :進行計數(shù)
-u :只顯示唯一的行
- 常見用法
1 去重
cat words | sort |uniq
2 排序之后刪除了重復(fù)行,同時在行首位置輸出該行重復(fù)的次數(shù):
#sort testfile | uniq -c
3 僅顯示存在重復(fù)的行,并在行首顯示該行重復(fù)的次數(shù):
#sort testfile | uniq -dc
8. 查找命令——grep
- 用法 : grep [options]
主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計數(shù)。
-I:不區(qū)分大 小寫(只適用于單字符)。
-h(huán):查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數(shù):
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結(jié)束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結(jié)束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字符。
* :有字符,長度可以為0。
- 常見使用:
1 grep root /etc/passwd 匹配文件中有root的行
2 grep ^root /etc/passwd 匹配文件中以root開頭的行
3 grep -v root /etc/passwd 匹配文件中無root的行
4 grep -v ^$ test 過濾文件中的空行
5 grep '[239].' data #輸出所有含有以2,3或9開頭的,并且是兩個數(shù)字的行
9. 替換/查找/刪除命令——sed
10. 強大的文本分析命令——awk
三. 任務(wù)操作
1. at
在一個指定的時間執(zhí)行一個指定任務(wù),只能執(zhí)行一次,且需要開啟atd進程
- 格式:
at[參數(shù)][時間]
- 常用:
1 三天后的下午5點鐘執(zhí)行date : at 5pm+3 days date
2 刪除定時任務(wù):
通過atq查看任務(wù)號
atrm 任務(wù)號
3 顯示定時任務(wù)內(nèi)容
at -c 任務(wù)號
2. crontab 定時任務(wù)
crond是linux下用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個守護進程
- 使用
vim /etc/crontab
文件格式:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時,可以是從0到23之間的任何整數(shù)。
day:表示日期,可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,腳本文件。
特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率
- 命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
參數(shù):
-u user : 指定循環(huán)定時任務(wù)的用戶
file : cronttab格式的文件
-e : 編輯某個用戶的crontab文件,默認當(dāng)點用戶
-l : 顯示內(nèi)容
-r : 從/var/spool/cron目錄中刪除某個用戶的crontab文件
- 常用
1 每1分鐘執(zhí)行一次command
命令:
* * * * * command
2 每小時的第3和第15分鐘執(zhí)行
命令:
3,15 * * * * command
3 在上午8點到11點的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 * * * command
4 每隔兩天的上午8點到11點的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 */2 * * command
5 每個星期一的上午8點到11點的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 * * 1 command
3. 任務(wù)調(diào)度 & / nuhup
將任務(wù)打入后臺
示例:
python test.py&
nuhup python test.py&
四. 系統(tǒng)管理
1. uptime 系統(tǒng)負載
- 用法: uptime
- 顯示:
19:38:23 up 53 min, 2 users, load average: 0.11, 0.13, 0.16
開機時間 運行時長 在線用戶 負載: 1min 5min 15min
2. free 顯示內(nèi)存使用
- 用法:
free [-b|k|m|g]
- 顯示:
total used free shared buffers cached
Mem: 1885320 494352 1390968 17080 688 207632
-/+ buffers/cache: 286032 1599288
Swap: 0 0 0
第一行: 內(nèi)存總計 已經(jīng)使用 空閑 多個進程共享的內(nèi)存總額 緩沖 緩存
第二行: 除去緩沖緩存
第三行: swap空間使用情況
3. vmstat
vmstat是Linux中監(jiān)控內(nèi)存的常用工具,可對操作系統(tǒng)的虛擬內(nèi)存、進程、CPU等的整體情況進行監(jiān)視.
格式
vmstat -t 間隔 -d 次數(shù)
顯示:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1183708 2340 1374156 0 0 214 21 220 899 4 1 93 1 0
4. ps
- 用法:
ps [option]
-A :所有的進程均顯示出來
-a :不與terminal有關(guān)的所有進程
-u :有效用戶的相關(guān)進程
-x :一般與a連用 可列出較完整的信息
-l :以長列表形式顯示
-o :自定義顯示
- 常用:
ps -aux/-ef 顯示所有進程信息
ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 顯示cpu以及內(nèi)存占用最高的10個進程
5. top
- 格式
top [option]
參數(shù):
d 指定每兩次屏幕信息刷新之間的時間間隔。當(dāng)然用戶可以使用s交互命令來改變之。
p 通過指定監(jiān)控進程ID來僅僅監(jiān)控某個進程的狀態(tài)。
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程
- 常用命令
h或者? 顯示幫助畫面,給出一些簡短的命令總結(jié)說明。
k 終止一個進程。
i 忽略閑置和僵死進程。
q 退出程序。
r 重新安排一個進程的優(yōu)先級別
s 改變兩次刷新之間的延遲時間
M 根據(jù)駐留內(nèi)存大小進行排序。
P 根據(jù)CPU使用百分比大小進行排序。
T 根據(jù)時間/累計時間進行排序。
- 常用
top //每隔5秒顯式所有進程的資源占用情況
top -d 2 //每隔2秒顯式所有進程的資源占用情況
top -c //每隔5秒顯式進程的資源占用情況
6. sar
sar(System Activity Reporter系統(tǒng)活動情況報告)是目前 Linux 上最為全面的系統(tǒng)性能分析工具之一,可以從多方面對系統(tǒng)的活動進行報告,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤I/O、CPU效率、內(nèi)存使用狀況、進程活動及IPC有關(guān)的活動等
- 格式:
常用參數(shù):
-A:所有報告的總和。
-u:CPU利用率
-v:進程、I節(jié)點、文件和鎖表狀態(tài)。
-d:硬盤使用報告。
-r:沒有使用的內(nèi)存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩沖區(qū)使用情況。
-a:文件讀寫情況。
-c:系統(tǒng)調(diào)用情況。
- 常用:
(1) sar -b 5 5 // IO傳送速率
(2) sar -B 5 5 // 頁交換速率
(3) sar -c 5 5 // 進程創(chuàng)建的速率
(4) sar -d 5 5 // 塊設(shè)備的活躍信息
(5) sar -n DEV 5 5 // 網(wǎng)路設(shè)備的狀態(tài)信息
(6) sar -n SOCK 5 5 // SOCK的使用情況
(7) sar -n ALL 5 5 // 所有的網(wǎng)絡(luò)狀態(tài)信息
(8) sar -r 5 5 // 內(nèi)存和swap空間使用情況
IO相關(guān)
- iostat
iostat通過觀察設(shè)備的活躍時間和他們平均傳輸率之間的關(guān)系來監(jiān)視系統(tǒng)的輸入/輸出設(shè)備負
格式:
iostat [option]
參數(shù):
-c 輸出CPU統(tǒng)計信息。不能與-d參數(shù)同時使用。
-d 輸出設(shè)備和分區(qū)的I/O統(tǒng)計信息。不能與-c參數(shù)同時使用。
-k/b/m : 以kb/mb等顯示
常用:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盤讀寫速度單位為KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盤讀寫速度單位為MB)
iostat -d -x -k 1 10 #查看設(shè)備使用率(%util)、響應(yīng)時間(await) iostat -c 1 10 #查看cpu狀態(tài)
- iotop
格式:
iotop [option]
參數(shù):
-o:只顯示有io操作的進程
-b:批量顯示。
-n 5:顯示5次,主要用于非交互式模式。
-d 1:間隔1秒顯示一次。
-p PID:監(jiān)控的進程pid。
-u USER:監(jiān)控的進程用戶。
五. 網(wǎng)絡(luò)相關(guān)
1. ifconfig 查看設(shè)置網(wǎng)卡參數(shù)
- 命令格式:
ifconfig [網(wǎng)絡(luò)設(shè)備] [參數(shù)]
- 常用
ifconfig eth0 up/down 啟用或關(guān)閉指定網(wǎng)卡
ifconfig eth0 顯示網(wǎng)卡信息
2. ping 測試網(wǎng)絡(luò)連通性
Ping命令通過發(fā)送Internet控制消息協(xié)議(ICMP)回響請求消息來驗證與另一臺TCP/IP計算機的IP級連接
- 格式:
ping [參數(shù)] [主機名或IP地址]
參數(shù):
-d 使用Socket的SO_DEBUG功能。
-f 極限檢測。大量且快速地送網(wǎng)絡(luò)封包給一臺機器,看它的回應(yīng)。
-n 只輸出數(shù)值。
-q 不顯示任何傳送封包的信息,只顯示最后的結(jié)果。
-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠端主機上。通常是查看本機的網(wǎng)絡(luò)接口是否有問題。
-R 記錄路由過程。
-v 詳細顯示指令的執(zhí)行過程。
- 常用
ping www.163.com
ping -R www.163.com
3. netstat 查看網(wǎng)絡(luò)狀態(tài)
- 格式
netstat [option]
參數(shù):
-a: 顯示所有
-n: 以ip形式顯示
-p: 顯示進程
-r: 顯示路由表
-t: 只顯示tcp
-u: 只顯示udp
-i: 顯示網(wǎng)絡(luò)接口
- 常用:
1 netstat
2 netstat -nu 只顯示udp / -t只顯示tcp
3 netstat -r 顯示路由表,作用同route
4. ss 查看網(wǎng)絡(luò)狀態(tài)
ss與netstat命令作用相同,但比netstat更高效,采用的是tcp協(xié)議棧中tcp_diag.
使用方法參考netstat,且基本參數(shù)相同
- 常用:
ss -s 我想查看當(dāng)前服務(wù)器的網(wǎng)絡(luò)連接統(tǒng)計
ss -l 我想查看所有打開的網(wǎng)絡(luò)端口
ss -a 查看這臺服務(wù)器上所有的socket連接
5. ip 查看設(shè)置網(wǎng)卡參數(shù)
6. route 查看路由以及添加路由
- 格式
route [option] [action]
參數(shù):
-n 不解析名字
-v 顯示詳細的處理信息
-f 清除所有網(wǎng)關(guān)入口的路由表。
-p 與 add 命令一起使用時使路由具有永久性。
add:添加一條新路由。
del:刪除一條路由。
-net:目標(biāo)地址是一個網(wǎng)絡(luò)。
-host:目標(biāo)地址是一個主機。
- 常用
route -n 顯示路由表
route add/del default gw 192.168.120.1 刪除和添加設(shè)置默認網(wǎng)關(guān)
route add -net 172.25.0.0 netmask 255.255.0.0 dev eth0 添加網(wǎng)關(guān)
7. traceroute 查看路由軌跡
traceroute追蹤網(wǎng)絡(luò)數(shù)據(jù)包的路由途徑
- 格式
traceroute[參數(shù)][主機]
參數(shù):
-I 使用ICMP回應(yīng)取代UDP資料信息。
-d 使用Socket層級的排錯功能。
-s 設(shè)置本地主機送出數(shù)據(jù)包的IP地址。
-n 只顯示IP
- 常用
traceroute www.163.com
traceroute -n www.163.com 顯示IP地址,不查主機名
8. nslookup,dns查看
nslookup命令用于查詢DNS的記錄,查看域名解析是否正常,在網(wǎng)絡(luò)故障的時候用來診斷網(wǎng)絡(luò)問題
- 格式
nslookup [-qt=type] domain [dns-server]
type為 dns的解析記錄
- 常用
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8