一. 常用命令
文件目錄操作
- cd 切換目錄
cd dirname
- ls 顯示文件/目錄屬性
常見參數(shù):
-l :列出長(zhǎng)數(shù)據(jù)串秒梳,包含文件的屬性與權(quán)限數(shù)據(jù)等
-a :列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(lái)(常用)
-d :僅列出目錄本身一铅,而不是列出目錄的文件數(shù)據(jù)
-h :將文件容量以較易讀的方式(GB诅诱,kB等)列出來(lái)
-R :連同子目錄的內(nèi)容一起列出(遞歸列出)梅誓,等于該目錄下的所有文件都會(huì)顯示出來(lá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移動(dòng)文件/重命名
mv filename dirname 移動(dòng)文件
mv oldfilename newfilename 對(duì)文件重命名
- rm 刪除文件
-i: 交互式
-r: 遞歸
-f: 強(qiáng)制
- 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)機(jī)
禁止在線上服務(wù)器使用
- shutdown
-r 關(guān)機(jī)重啟
-h 關(guān)機(jī)不重啟
now 立刻關(guān)機(jī)
- halt 關(guān)機(jī)
- reboot 重啟
- 切換執(zhí)行等級(jí): init
Linux共有七種執(zhí)行等級(jí):
--run level 0 :關(guān)機(jī)
--run level 3 :純文本模式
--run level 5 :含有圖形接口模式
--run level 6 :重新啟動(dòng)
用戶管理
- useradd /adduser
用法: useradd [-u|-g|-m|-d|-s] username
參數(shù)說(shuō)明:
-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)限來(lái)查找文件。
-user 按照文件屬主來(lái)查找文件脐嫂。
-group 按照文件所屬的組來(lái)查找文件。
-mtime -n +n 按照文件的更改時(shí)間來(lái)查找文件
-type 查找某一類型的文件
實(shí)例:
find / -name *.txt
find . -name *.pyc exec rm -rf {}\; 找出 pyc文件并刪除
find . -type d 查找目錄
二. 文本操作
1. 全文查看 cat/tac
- 語(yǔ)法: cat/tac filename
2. 分頁(yè)查看 less/more
- 語(yǔ)法: less/more filename
3. 頭尾查看 head/tail
- 語(yǔ)法: hean filename
- 常見用法:
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行
4. 統(tǒng)計(jì)命令wc
- wc語(yǔ)法
wc [-lwm]
選項(xiàng):
-l :僅列出行紊遵;
-w :僅列出多少字(英文單字)账千;
-m :多少字符;
- 常見用法
# wc /etc/passwd
50 94 2550 /etc/passwd
行數(shù) 單詞數(shù) 字節(jié)數(shù)
# wc -l /etc/passwd #統(tǒng)計(jì)行數(shù)很常用
# wc -w /etc/passwd #統(tǒng)計(jì)單詞出現(xiàn)次數(shù)
# wc -m /etc/passwd #統(tǒng)計(jì)文件的字節(jié)數(shù)
5. 切分命令 cut
- cut語(yǔ)法
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
主要參數(shù)
-b :以字節(jié)為單位進(jìn)行分割暗膜。這些字節(jié)位置將忽略多字節(jié)字符邊界匀奏,除非也指定了 -n 標(biāo)志。
-c :以字符為單位進(jìn)行分割学搜。
-d :自定義分隔符娃善,默認(rèn)為制表符论衍。
-f :與-d一起使用,指定顯示哪個(gè)區(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
- 語(yǔ)法:
sort [-bcfMnrtk][源文件][-o 輸出文件]
參數(shù):
-b 忽略每行前面開始出的空格字符坯台。
-c 檢查文件是否已經(jīng)按照順序排序。
-f 排序時(shí)瘫寝,忽略大小寫字母蜒蕾。
-M 將前面3個(gè)字母依照月份的縮寫進(jìn)行排序。
-n 依照數(shù)值的大小排序焕阿。
-o 將排序后的結(jié)果存入指定的文件滥搭。
-r 以相反的順序來(lái)排序。
-t <分隔符> 指定排序時(shí)所用的欄位分隔字符捣鲸。
-k 選擇以哪個(gè)區(qū)間進(jìn)行排序瑟匆。
- 常用
1 按文本排序
sort filename
2 按數(shù)字排序
sort -n
3 在輸出內(nèi)容中去除重復(fù)行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列號(hào) -t 分隔符
7. 去重命令——uniq
uniq命令可以去除排序過(guò)的文件中的重復(fù)行,因此uniq經(jīng)常和sort合用栽惶。也就是說(shuō)愁溜,為了使uniq起作用,所有的重復(fù)行必須是相鄰的外厂。
- 語(yǔ)法
# uniq [-icu]
選項(xiàng)與參數(shù):
-i :忽略大小寫字符的不同冕象;
-c :進(jìn)行計(jì)數(shù)
-u :只顯示唯一的行
- 常見用法
1 去重
cat words | sort |uniq
2 排序之后刪除了重復(fù)行,同時(shí)在行首位置輸出該行重復(fù)的次數(shù):
#sort testfile | uniq -c
3 僅顯示存在重復(fù)的行汁蝶,并在行首顯示該行重復(fù)的次數(shù):
#sort testfile | uniq -dc
8. 查找命令——grep
- 用法 : grep [options]
主要參數(shù)
[options]主要參數(shù):
〗グ纭-c:只輸出匹配行的計(jì)數(shù)。
∫疵蕖-I:不區(qū)分大 小寫(只適用于單字符)墓律。
-h(huán):查詢多文件時(shí)不顯示文件名幔亥。
〕芊怼-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
∨撩蕖-n:顯示匹配行及 行號(hào)针肥。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息香伴。
∥空怼-v:顯示不包含匹配文本的所有行。
pattern正則表達(dá)式主要參數(shù):
\: 忽略正則表達(dá)式中特殊字符的原有含義即纲。
^:匹配正則表達(dá)式的開始行具帮。
$: 匹配正則表達(dá)式的結(jié)束行。
\<:從匹配正則表達(dá) 式的行開始。
\>:到匹配正則表達(dá)式的行結(jié)束匕坯。
[ ]:?jiǎn)蝹€(gè)字符束昵,如[A]即A符合要求 。
[ - ]:范圍葛峻,如[A-Z]锹雏,即A、B术奖、C一直到Z都符合要求 礁遵。
。:所有的單個(gè)字符采记。
* :有字符佣耐,長(zhǎng)度可以為0。
- 常見使用:
1 grep root /etc/passwd 匹配文件中有root的行
2 grep ^root /etc/passwd 匹配文件中以root開頭的行
3 grep -v root /etc/passwd 匹配文件中無(wú)root的行
4 grep -v ^$ test 過(guò)濾文件中的空行
5 grep '[239].' data #輸出所有含有以2,3或9開頭的唧龄,并且是兩個(gè)數(shù)字的行
9. 替換/查找/刪除命令——sed
10. 強(qiáng)大的文本分析命令——awk
三. 任務(wù)操作
1. at
在一個(gè)指定的時(shí)間執(zhí)行一個(gè)指定任務(wù)兼砖,只能執(zhí)行一次,且需要開啟atd進(jìn)程
- 格式:
at[參數(shù)][時(shí)間]
- 常用:
1 三天后的下午5點(diǎn)鐘執(zhí)行date : at 5pm+3 days date
2 刪除定時(shí)任務(wù):
通過(guò)atq查看任務(wù)號(hào)
atrm 任務(wù)號(hào)
3 顯示定時(shí)任務(wù)內(nèi)容
at -c 任務(wù)號(hào)
2. crontab 定時(shí)任務(wù)
crond是linux下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程
- 使用
vim /etc/crontab
文件格式:
minute hour day month week command
其中:
minute: 表示分鐘既棺,可以是從0到59之間的任何整數(shù)讽挟。
hour:表示小時(shí),可以是從0到23之間的任何整數(shù)丸冕。
day:表示日期耽梅,可以是從1到31之間的任何整數(shù)。
month:表示月份胖烛,可以是從1到12之間的任何整數(shù)眼姐。
week:表示星期幾,可以是從0到7之間的任何整數(shù)佩番,這里的0或7代表星期日众旗。
command:要執(zhí)行的命令,可以是系統(tǒng)命令答捕,腳本文件逝钥。
特殊字符:
星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào)拱镐,則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(hào)(,):可以用逗號(hào)隔開的值指定一個(gè)列表范圍持际,例如沃琅,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率
- 命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
參數(shù):
-u user : 指定循環(huán)定時(shí)任務(wù)的用戶
file : cronttab格式的文件
-e : 編輯某個(gè)用戶的crontab文件蜘欲,默認(rèn)當(dāng)點(diǎn)用戶
-l : 顯示內(nèi)容
-r : 從/var/spool/cron目錄中刪除某個(gè)用戶的crontab文件
- 常用
1 每1分鐘執(zhí)行一次command
命令:
* * * * * command
2 每小時(shí)的第3和第15分鐘執(zhí)行
命令:
3,15 * * * * command
3 在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 * * * command
4 每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 */2 * * command
5 每個(gè)星期一的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:
3,15 8-11 * * 1 command
3. 任務(wù)調(diào)度 & / nuhup
將任務(wù)打入后臺(tái)
示例:
python test.py&
nuhup python test.py&
四. 系統(tǒng)管理
1. uptime 系統(tǒng)負(fù)載
- 用法: uptime
- 顯示:
19:38:23 up 53 min, 2 users, load average: 0.11, 0.13, 0.16
開機(jī)時(shí)間 運(yùn)行時(shí)長(zhǎng) 在線用戶 負(fù)載: 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ì) 已經(jīng)使用 空閑 多個(gè)進(jìn)程共享的內(nèi)存總額 緩沖 緩存
第二行: 除去緩沖緩存
第三行: swap空間使用情況
3. vmstat
vmstat是Linux中監(jiān)控內(nèi)存的常用工具益眉,可對(duì)操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU等的整體情況進(jìn)行監(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 :所有的進(jìn)程均顯示出來(lái)
-a :不與terminal有關(guān)的所有進(jìn)程
-u :有效用戶的相關(guān)進(jìn)程
-x :一般與a連用 可列出較完整的信息
-l :以長(zhǎng)列表形式顯示
-o :自定義顯示
- 常用:
ps -aux/-ef 顯示所有進(jìn)程信息
ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 顯示cpu以及內(nèi)存占用最高的10個(gè)進(jìn)程
5. top
- 格式
top [option]
參數(shù):
d 指定每?jī)纱纹聊恍畔⑺⑿轮g的時(shí)間間隔郭脂。當(dāng)然用戶可以使用s交互命令來(lái)改變之年碘。
p 通過(guò)指定監(jiān)控進(jìn)程ID來(lái)僅僅監(jiān)控某個(gè)進(jìn)程的狀態(tài)。
s 使top命令在安全模式中運(yùn)行展鸡。這將去除交互命令所帶來(lái)的潛在危險(xiǎn)屿衅。
i 使top不顯示任何閑置或者僵死進(jìn)程
- 常用命令
h或者? 顯示幫助畫面,給出一些簡(jiǎn)短的命令總結(jié)說(shuō)明莹弊。
k 終止一個(gè)進(jìn)程涤久。
i 忽略閑置和僵死進(jìn)程。
q 退出程序忍弛。
r 重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別
s 改變兩次刷新之間的延遲時(shí)間
M 根據(jù)駐留內(nèi)存大小進(jìn)行排序响迂。
P 根據(jù)CPU使用百分比大小進(jìn)行排序。
T 根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序细疚。
- 常用
top //每隔5秒顯式所有進(jìn)程的資源占用情況
top -d 2 //每隔2秒顯式所有進(jìn)程的資源占用情況
top -c //每隔5秒顯式進(jìn)程的資源占用情況
6. sar
sar(System Activity Reporter系統(tǒng)活動(dòng)情況報(bào)告)是目前 Linux 上最為全面的系統(tǒng)性能分析工具之一蔗彤,可以從多方面對(duì)系統(tǒng)的活動(dòng)進(jìn)行報(bào)告,包括:文件的讀寫情況疯兼、系統(tǒng)調(diào)用的使用情況幕与、磁盤I/O、CPU效率镇防、內(nèi)存使用狀況啦鸣、進(jìn)程活動(dòng)及IPC有關(guān)的活動(dòng)等
- 格式:
常用參數(shù):
-A:所有報(bào)告的總和。
-u:CPU利用率
-v:進(jìn)程来氧、I節(jié)點(diǎn)诫给、文件和鎖表狀態(tài)。
-d:硬盤使用報(bào)告啦扬。
-r:沒(méi)有使用的內(nèi)存頁(yè)面和硬盤塊中狂。
-g:串口I/O的情況。
-b:緩沖區(qū)使用情況扑毡。
-a:文件讀寫情況胃榕。
-c:系統(tǒng)調(diào)用情況。
- 常用:
(1) sar -b 5 5 // IO傳送速率
(2) sar -B 5 5 // 頁(yè)交換速率
(3) sar -c 5 5 // 進(jìn)程創(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通過(guò)觀察設(shè)備的活躍時(shí)間和他們平均傳輸率之間的關(guān)系來(lái)監(jiān)視系統(tǒng)的輸入/輸出設(shè)備負(fù)
格式:
iostat [option]
參數(shù):
-c 輸出CPU統(tǒng)計(jì)信息瞄摊。不能與-d參數(shù)同時(shí)使用勋又。
-d 輸出設(shè)備和分區(qū)的I/O統(tǒng)計(jì)信息。不能與-c參數(shù)同時(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)時(shí)間(await) iostat -c 1 10 #查看cpu狀態(tài)
- iotop
格式:
iotop [option]
參數(shù):
-o:只顯示有io操作的進(jìn)程
-b:批量顯示。
-n 5:顯示5次惯驼,主要用于非交互式模式蹲嚣。
-d 1:間隔1秒顯示一次递瑰。
-p PID:監(jiān)控的進(jìn)程pid。
-u USER:監(jiān)控的進(jì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 測(cè)試網(wǎng)絡(luò)連通性
Ping命令通過(guò)發(fā)送Internet控制消息協(xié)議(ICMP)回響請(qǐng)求消息來(lái)驗(yàn)證與另一臺(tái)TCP/IP計(jì)算機(jī)的IP級(jí)連接
- 格式:
ping [參數(shù)] [主機(jī)名或IP地址]
參數(shù):
-d 使用Socket的SO_DEBUG功能抖部。
-f 極限檢測(cè)。大量且快速地送網(wǎng)絡(luò)封包給一臺(tái)機(jī)器议惰,看它的回應(yīng)慎颗。
-n 只輸出數(shù)值。
-q 不顯示任何傳送封包的信息换淆,只顯示最后的結(jié)果哗总。
-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上倍试。通常是查看本機(jī)的網(wǎng)絡(luò)接口是否有問(wèn)題讯屈。
-R 記錄路由過(guò)程。
-v 詳細(xì)顯示指令的執(zhí)行過(guò)程县习。
- 常用
ping www.163.com
ping -R www.163.com
3. netstat 查看網(wǎng)絡(luò)狀態(tài)
- 格式
netstat [option]
參數(shù):
-a: 顯示所有
-n: 以ip形式顯示
-p: 顯示進(jìn)程
-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)計(jì)
ss -l 我想查看所有打開的網(wǎng)絡(luò)端口
ss -a 查看這臺(tái)服務(wù)器上所有的socket連接
5. ip 查看設(shè)置網(wǎng)卡參數(shù)
6. route 查看路由以及添加路由
- 格式
route [option] [action]
參數(shù):
-n 不解析名字
-v 顯示詳細(xì)的處理信息
-f 清除所有網(wǎng)關(guān)入口的路由表。
-p 與 add 命令一起使用時(shí)使路由具有永久性彤钟。
add:添加一條新路由来候。
del:刪除一條路由。
-net:目標(biāo)地址是一個(gè)網(wǎng)絡(luò)逸雹。
-host:目標(biāo)地址是一個(gè)主機(jī)营搅。
- 常用
route -n 顯示路由表
route add/del default gw 192.168.120.1 刪除和添加設(shè)置默認(rèn)網(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ù)][主機(jī)]
參數(shù):
-I 使用ICMP回應(yīng)取代UDP資料信息。
-d 使用Socket層級(jí)的排錯(cuò)功能梆砸。
-s 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址转质。
-n 只顯示IP
- 常用
traceroute www.163.com
traceroute -n www.163.com 顯示IP地址,不查主機(jī)名
8. nslookup帖世,dns查看
nslookup命令用于查詢DNS的記錄休蟹,查看域名解析是否正常,在網(wǎng)絡(luò)故障的時(shí)候用來(lái)診斷網(wǎng)絡(luò)問(wèn)題
- 格式
nslookup [-qt=type] domain [dns-server]
type為 dns的解析記錄
- 常用
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8