| 标题 | 简介 | 类型 | 公开时间 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 详情 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[SAFE-ID: JIWO-2025-2674] 作者: hudie 发表于: [2020-05-21]
本文共 [585] 位读者顶过
今天总结几个非常常用的Linux命令,其中有几个在面试中很可能问相关命令的原理,比如后台运行命令。希望对大家有所帮助,最好自己去尝试在Linux操作系统中实践一下。[出自:jiwo.org]
1、查看目录以及权限
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 参数名 | 含义 |
|---|---|
| -n | 使用IP地址表示主机。使用数字表示端口 |
| -i | 指定要监听的端口。如果为"-i any"表示住区所有网卡数据包 |
| -v | 输出诸如ip数据包中的TTL更加详细的信息 |
| -t | 不打印时间戳 |
| -e | 显示以太网帧头部信息 |
| -c | 仅仅抓取指定数量的数据包 |
| -x | 按照十六进制显示数据包内容 |
| -X | 不仅仅输出-x结果还输出十六进制对应的ASCII字符 |
| -s | 设置抓包时的抓包长度 |
| -w | 将输出结果定向到某个文件,一般为pcap后缀 |
| -r | 从文件读取数据包并显示数字表示端口 |
|
-i |
指定要监听的端口。如果为"-i any"表示住区所有网卡数据包 |
| -v | 输出诸如ip数据包中的TTL更加详细的信息 |
| -t | 不打印时间戳 |
| -e | 显示以太网帧头部信息 |
| -c | 仅仅抓取指定数量的数据包 |
| -x | 按照十六进制显示数据包内容 |
| -X | 不仅仅输出-x结果还输出十六进制对应的ASCII字符 |
| -s | 设置抓包时的抓包长度 |
| -w | 将输出结果定向到某个文件,一般为pcap后缀 |
| -r |
从文件读取数据包并显示 |
知道了相关参数,下面看几个案例
| 执行任务 | 执行命令 |
|---|---|
| 捕获特定网口数据包 | tcpdump -i eth0 |
| 捕获特定个数(1000)的包 | tcpdump -c 1000 -i eth0 |
| 将捕获的包保存到文件 | tcpdump -w a.pcap -i eth0 |
| 读取pcap格式的包 | tcpdump -r a.pcap |
| 增加捕获包的时间戳 | tcpdump -n -ttt -i eth0 |
| 指定捕获包的协议类型 | tcpdump -i eth0 arp |
| 捕获指定端口 | tcpdump -i eth0 post 22 |
| 捕获特定目标ip+port的包 | tcpdump -i eth0 dst address and port 22 |
| 捕获DNS请求和响应 | tcpdump -i eth0 -s0 port 53 |
| 匹配Http请求头 | tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:" |
| 将捕获的包保存到文件 | tcpdump -w a.pcap -i eth0 |
| 读取pcap格式的包 | tcpdump -r a.pcap |
| 增加捕获包的时间戳 | tcpdump -n -ttt -i eth0 |
| 指定捕获包的协议类型 | tcpdump -i eth0 arp |
| 捕获指定端口 | tcpdump -i eth0 post 22 |
| 捕获特定目标ip+port的包 | tcpdump -i eth0 dst address and port 22 |
| 捕获DNS请求和响应 | tcpdump -i eth0 -s0 port 53 |
| 匹配Http请求头 | tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:" |
列出当前系统打开的文件描述符工具。可以得知感兴趣的描述符是被哪些进程使用
同样,我们看看相关参数
| 参数 | 描述 |
|---|---|
| -i | 显示sokcet文件描述符 |
| -c | 显示指定的命令打开的所有文件描述符 |
| -t | 仅显示打开了目标文件描述符的进程pid |
老规矩,上几个例子
| 执行任务 | 命令 |
|---|---|
| 列出所有的网络链接 | lsof -i |
| 列出所有udp的网络链接 | lsof -i udp |
| 列出谁在使用某个端口 | lsof -i :3306 |
| 列出谁在使用特定的tcp端口 | lsof -i tcp:80 |
| 根据文件描述范围列出文件信息 | lsof -d 2-3 |
nc-->“瑞士军刀”。不知大家在渗透过程中,拿了shell有没有使用nc搞点事儿。它用来快速构建网络链接。常用来调试客户端程序。
| 参数 | 描述 |
|---|---|
| -i | 设置数据包传送的时间间隔 |
| -l | 以服务器方式运行。默认为客户端运行 |
| -k | 重复接受并处理某个端口上的所有链接 |
| -p | 以客户端运行时强制其使用指定端口 |
| -C | 将CR和LF两个字符作为结束符 |
| -u | 使用udp协议。默认tcp协议 |
| -X | nc客户端余代理服务器通信时默认为socks5协议。 |
| -z | 扫描目标机器某个范围服务是否开启 |
小贱上案例
| 执行任务 | 执行命令 |
|---|---|
| 扫描机器A端口号在30-40的服务 | nc -z A 30-40 |
| 连接服务器A 端口号为5000 | nc -C A 5000 |
| 传送文件 | MachineA:nc -v -n ip portE:\a.exe |
netstat是一个网络信息统计工具。它可以得到网卡接口上全部了解,路由表信息,网卡接口信息等。通常在网络编程中我们用它来显示TCP连接以及状态信息。
| 参数 | 描述 |
|---|---|
| -n | 使用IP地址表示主机 |
| -a | 显示结果中包含监听的socket |
| -t | 仅显示TCP连接 |
| -r | 显示路由信息 |
| -i | 显示网卡接口数据流量 |
| -c | 每隔1s输出一次 |
| -o | 显示socket定时器的信息 |
| -p | 显示socket所属的进程的PID和名字 |
下面列举几个常用例子
| 执行任务 | 执行命令 |
|---|---|
| 列出所有连接 | netstat -a |
| 只列出TCP或者UDP | netstat -at/netstat -au |
| 列出监听中的连接 | netstat -tnl |
| 获取进程名、进程号以及用户 ID | nestat -nlpt |
| 打印统计信息 | netstat -s |
| netstat持续输出 | netstat -ct |
| 打印active状态的连接 | netstat -atnp | grep ESTA |
| 查看服务是否运行(npt) | netstat -aple| grep ntp |
vmstat能够实时输出系统的进程信息,内存使用,cpu使用等资源的使用情况
| 参数 | 描述 |
|---|---|
| -f | 显示系统自启动以来执行的fork次数 |
| -s | 显示内存相关统计信息 |
| -d | 显示磁盘相关统计信息 |
| -p | 显示指定磁盘分区统计信息 |
| count | 采样次数。 |
看一下vmstat都有哪些输出字段。

| 字段名 | 描述 |
|---|---|
| procs | r表示等待运行的而进程数目。b表示处于不可中断睡眠状态的进程数目 |
| memory | swpd:使用的虚拟内存量。free:空闲内存量。buff:用作缓冲区的内存量。cache:用作缓存的内存量。 |
| swap | si:从磁盘换入的内存量(/s)。so:交换到磁盘的内存量(/s)。 |
| io | bi:从块设备接收的块(blocks/s)。bo:发送到块设备的块(blocks/s)。 |
| system | in:每秒中断的次数,包括时钟。cs:每秒上下文切换的次数。 |
这里注意哈,如果查看磁盘的更加详细信息,有另外iostat所得到的信心就更加详细哟
能够实时监测多处理器系统中各个cpu的使用情况。这个命令的执行需要安装sysstat,在centos中执行yum install systat就好了。

| 字段 | 描述 |
|---|---|
| cpu | 表示当前条信息属于哪个cpu的数据 |
| %usr | 进程运行在用户空间所占cpu运行时间的比例 |
| %nice | nice值为负的进程运行在用户空间的时间占cpu总运行时间的比例 |
| %iowait | cpu等待磁盘操作的时间占cpu总运行时间的比例 |
| %irq | cpu用于处理硬件中断时间占cpu总运行时间的比例 |
| %soft | cpu用于处理软件中断的时间占cpu用运行时间的比例 |
| %steal | 一对虚拟cpu。当超级管理员在处理某个虚拟cpu时,另一个等待它处理完才能运行。这段等待时间表示为steal时间占总运行时间的比例 |
| %guest | 运行虚拟cpu时间占cpu总运行时间的比例 |
| %idle | 系统空闲时间占cpu总运行时间的比例 |
将文件分割为数个。
split -5 a.txt//将a.txt每5行分割为一个文件
统计文件中单词的个数。
一页一页显示,通过空白键显示下一页/上一页
查看某文件前几行或者后几行
diff -c file1 file2 //显示两个文件的差异