前端开发也要学点儿 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 //中断、正常退出、暂停、继续等命令的代码
复制代码
相关文章
相关标签/搜索