前端開發也要學點兒 Linux 基礎命令(三)

Linux 網絡與系統命令入門

主要內容:linux

網絡經常使用工具命令

ping、host、nc、netstat、tcpdump編程

ping: 全稱:package Internet groperbash

協議:ICMP(IP層/網絡層中的協議,非 TCP/UDP 子協議,因此無故口概念)服務器

做用:檢測網絡連通性,檢測服務器可訪問性網絡

使用示例:ssh

// 與 Windows 中不一樣,直接 ping 一個網址的話會一直 ping 下去,因此要加上控制的參數

ping -c 3 -W 1 www.baidu.com // -c 3 表示 ping 3 次即停,-W 1 表示 超時時間 1 秒

ping -q www.baidu.com // -q 表示靜默輸出,直接輸出結果
複製代碼
hostname // 獲取本機主機名

ifconfig // 獲取虛擬網卡的 IP 地址

host ip地址 // DNS解析,解析一個 IP 地址,能夠獲取對應的主機名

host 主機名 // 逆解析,解析主機名獲取 IP 地址
複製代碼

nc: socket 編程中經常使用的網絡發包工具 nc,可實現一個聊天軟件socket

nc -t www.baidu.com 80  // -t 發送 TCP 數據包
nc -u // 發送 UDP 數據包
nc -l // 監聽服務的某個端口
複製代碼

示例,模仿 HTTP 請求行來返回百度首頁:tcp

實現一個聊天服務,圖太長就不截了,本身實操最佳:工具

1. 使用 ifconfig 拿到本身本地 IP
2. nc -l xxx.xx.xx.xx 6666 //監聽本機 6666 端口
3. 新開一個 terminal
4. nc -t xxx.xx.xx.xx 6666 // 向 6666 端口發送 TCP 數據,發送任意數據
5. 這時返回第一個 terminal 界面,便可看到你剛剛發送過來的數據,這時兩個 tab 頁就能夠相互聊天了
複製代碼

telnet: 基於 Telnet 協議 做用是遠程登陸和 TCP 鏈接測試 遠程登陸暫不演示,舉個鏈接測試的例子,跟上面有點相似:post

1.nc -l xxx.xx.xx.xx 6666 // 先開一個 terminal 監聽某個端口
2.telnet xxx.xx.xx.xx 6666 // 創建鏈接,便可相互發送消息
複製代碼

netstat:查看網絡端口使用狀況

netstat -an // 參數 a 表示把全部 socket 端口信息都打出來, n 表示以 ip 形式而不是主機名形式顯示
複製代碼

tcpdump:Linux下經常使用的軟件抓包工具

tcpdump -vvv -i eth0 host xx.xx.xx.xx and tcp and port xxxx -w ./temp.pcap
// 參數 vvv 能夠多打一些內容
// 參數 i 指定虛擬網卡
// 參數 host 指定 host 地址
// 還能夠 指定協議 指定端口 
// 參數 w 能夠把抓包的內容寫到文件中,供線下分析(如使用 wireshark)
複製代碼

遠程命令

ssh - 基於 SSH 協議的遠程登陸工具實現

scp - 遠程拷貝,本機與遠程服務器文件能夠相互上傳和拉取

不學了,學不動了。這裏我選擇可視化工具。

進程與系統

linux 開發必會的四個命令 ps、free、top、kill

ps: 查看進程信息

ps -ef // 查看進程信息
// 各個字段含義
UID //進程啓動的用戶 ID
PID //進程 ID
PPID //啓動該進程的進程 ID
C //CPU 當前佔用率
TTY //表示虛擬終端
TIME //啓動以來佔用 CPU 的時間
CMD //系統的啓動命令
ps -Lf pid // 查看指定進程的線程信息
// 字段解讀,只有三個不一樣
LWP // 線程號
NLWP // 該進程共有多少個線程
STAT //該線程當前狀態
複製代碼

free: 查看內存使用信息

free -m // 以 MB 爲單位顯示,還能夠用 -g,-k 等單位
free -h // 根據數值大小自動選擇單位顯示,並把單位顯示在後面
複製代碼

top: 查看 CPU 使用率,內存信息,進程情況,CPU load 等重要信息

kill: 發送信號給進程

kill -9 pid //強制終止,殺死進程
kill -l //中斷、正常退出、暫停、繼續等命令的代碼
複製代碼
相關文章
相關標籤/搜索