PS:整理一下日常工作中用到的linux命令掌呜,偶爾忘記了也可以快速回憶
ssh
登錄遠(yuǎn)程服務(wù)器捕传,shh 用戶名@IP地址,例如 `ssh huangy@10.111.32.21`。登錄之后,如果想退出,可以使用`logout`退出疲恢。
常用參數(shù):
(1)-p : 指定遠(yuǎn)程服務(wù)器的端口
tail
從末尾查看文件,常用`tail -f XXXX`
常用參數(shù):
(1)-f : 查看文件的新添加的內(nèi)容
(2)-n : n可以是任意數(shù)字瓷胧,查看從末尾開始的n行
head
從頭查看文件显拳,常用`tail -100 XXXX`
常用參數(shù):
(1)-n : n可以是任意數(shù)字,查看從頭開始的n行
ps
查看名稱對應(yīng)的進(jìn)程搓萧,常用`ps aux | grep XXX`杂数,ps aux按照指定格式打印進(jìn)程信息。
ps aux輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND<br>
格式說明:
USER: 行程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態(tài)瘸洛,linux的進(jìn)程有5種狀態(tài):
D 不可中斷 uninterruptible sleep (usually IO)
R 運(yùn)行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它狀態(tài)還包括W(無駐留頁), <(高優(yōu)先級進(jìn)程), N(低優(yōu)先級進(jìn)程), L(內(nèi)存鎖頁).
START: 行程開始時間
TIME: 執(zhí)行的時間
COMMAND:所執(zhí)行的指令
free
查看內(nèi)存使用情況揍移,常用`free -m`
真正未用到的內(nèi)存數(shù)(可用內(nèi)存):free+buffers+cached 的值,也就是+ buffers/cache反肋。如果這個值太小那伐,說明內(nèi)存不足了∈幔可以考慮把其他較小的項(xiàng)目內(nèi)存弄小
老版本的linux罕邀,沒有+ buffers/cache字段,可以使用available字段觀察
top
查看內(nèi)存和CPU的使用情況
lsof
查看文件的打開情況
scp
下載文件到本地养距,常用 `scp 登錄名@IP:路徑 本地路徑`
另外诉探,如果從線上機(jī)器下載文件的時候,線上機(jī)器一般不會開放22端口棍厌,因此肾胯,往往需要選擇別的端口,這時候可以用到-P參數(shù)耘纱,指定端口敬肚。例如:`scp -P 50022 登錄名@IP:路徑 本地路徑`
zcat
查看壓縮包內(nèi)容,常和grep一起使用束析,`zcat 文件名 | grep '查找的內(nèi)容' --color`
cat
查看文件內(nèi)容帘皿,常和grep一起使用,`cat 文件名 | grep '查找的內(nèi)容' --color`
grep
1畸陡、匹配文本內(nèi)容鹰溜,常用grep -E '查找的內(nèi)容'
文件名。更多用法參考:https://www.cnblogs.com/leo-li-3046/p/5690613.html
參數(shù):
--color 把匹配的內(nèi)容顯示為紅色
-E 使用正則匹配
-A10 顯示匹配行后面10行
-B10 顯示匹配行前面10行
-C10 顯示匹配行前后10行
-c 顯示匹配行的計數(shù)
2丁恭、grep實(shí)現(xiàn)and語義:grep 'pattern1' filename | grep 'pattern2'
曹动,不過一般情況下,搜索日志需要搜索整個文件牲览,因此使用cat和grep搭配使用:cat filename | grep 'pattern1' | grep 'pattern2'
3墓陈、假如一頁無法顯示完,需要grep第献、cat贡必、more結(jié)合使用,例如 cat install.log | grep “i686”| more
庸毫。
(1)在more 文件名
下仔拟,空格
向后一頁,ctrl + B
往前一頁飒赃。在cat install.log | grep “i686”| more
情況下利花,無法使用ctrl + B
往前一頁
(2)在這種情況下,推薦使用cat test.text | grep -C100 '2' | less
载佳,可以達(dá)到more一樣的效果炒事,d
往后翻頁,b
往前翻頁
curl
1蔫慧、默認(rèn)模擬get請求:curl -u username https://api.github.com/user?access_token=XXXXXXXXXX
2挠乳、模擬post請求:curl -u username --data "param1=value1¶m2=value" https://api.github.com
iptables
1、使用iptables -nvL
查看防火墻開放的端口
如圖: dpt:9001表示9001端口開放姑躲; dpts:31000:38000表示31000到38000之間的端口開放
2睡扬、開放端口:
// 開放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
// 開放范圍的端口
iptables -A INPUT -p tcp --dport 4800:4900 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 4800:4900 -j ACCEPT
// 保存配置:
/etc/rc.d/init.d/iptables save
// 重啟服務(wù):
/etc/init.d/iptables restart
netstat
1、使用netstat -anp |grep 端口號
肋联,如果對應(yīng)端口顯示情況如下:
如圖威蕉,表示3306端已經(jīng)被占用
telnet
1、登錄遠(yuǎn)程:telnet ip port
橄仍,比如說telnet localhost 8080
剪切文本
假如需要先進(jìn)行正則匹配韧涨,然后再剪切出所需要的文本,該怎么做侮繁?
只是利用grep虑粥,正則匹配返回的是一整行,如果我只想要其中某部分呢宪哩?
我提供一個方法(網(wǎng)上各位大神肯定有更好的哈):
zcat wechat-union-core-2018-09-19.*.log.zip | grep 'asyncLog upload, statParamMap' | cut -d { -f 2 | cut -d } -f 1
(1)先利用grep篩選出滿足條件的行
(2)然后利用cut -d對行進(jìn)行分割娩贷,文中是利用“{”及“}”做了2次分割
(3)再利用-f參數(shù),選擇需要的部分锁孟,文中先選擇了第2部分彬祖,在此基礎(chǔ)上茁瘦,再選擇第1部分
PS:這種方法的使用場景還是比較狹隘,望賜教
參考:
https://www.cnblogs.com/gbyukg/p/3326825.html
https://www.cnblogs.com/zongfa/p/7967935.html