linux常用的命令

ps 命令

ps 只为您提供当前进程的快照。要即时查看最活跃的进程,可使用 top。

查找进程:ps -aux |grep [name]

参数解读:
-A  参数列出所有进程
-e 与-A效果相同
-f 全格式
-a 显示现行终端的所有进程(包括其他用户的进程)
u 以用户为主的进程
x 显示没有控制终端的进程

ps详细命令解析

top

top:监视系统中不同进程的实时资源状态
(https://img-blog.csdn.net/20180515151017216?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MTkyMTE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
top参数详细解析

查找是否有僵尸进程 定位僵尸进程 和杀死僵尸进程

top 命令可以显示 僵尸进程(Zombie)数量

定位僵尸进程:
ps -A -o stat,pid,ppid,cmd|grep '^[zZ]'

杀死僵尸进程:
kill -kill pid

定位并杀死僵尸进程:ps -A -o stat,pid,ppid,cmd|grep '^[zZ]'|awk{print$2}|xargs kill -9

参数解析:
-o  自定义输出字段 stat(状态)、ppid(进程父id)、pid(进程id)、cmd(命令)
因为状态为z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
-e 使用正则表达式
^ 表示行首
[Zz] Z 或z任意字母
$2 第二个字段
kill -9 向指定的pid 发送一个SIGKILL 信号,不实施清理工作

find

find用来在指定目录下查找文件。

find [PATH] -name "*.test"
netstat

查看linux中网络系统的信息状态

netstat -at:列出所有端口
netstat -lt:显示所有正在监听tcp的端口

-a 显示所有的连接
-t tcp协议的连接
-d udp协议的连接
-l 显示监控中的服务器socket
-n 直接显示ip地址,不通过域名服务器
-r 显示路由表

netstat参数详解

tcpdump

抓包工具

tcpdump -i ens33 -vnn -tcp :抓取所有流过ens33网卡的tcp数据包
tcpdump - i ens33 -vnn src host 192.168.0.1 dst port 22:抓取所有通过ens33网卡源ip地址为192.168.0.1且目的端口为22的数据包

tcpdump详细用法

动态库与静态库的创建

 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库

1.编写源文件 max.c
2.编译生成共享库: gcc max.c -o libmax -fPIC -shared
3.生成可执行文件:gcc -c test.c -L ./ -lmax
4.运行文件,链接 LD_LIBARRY=/root/

fPIC就是position independent code告诉编译器产生与位置无关代码

静态库在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。

1.编写源文件 add.c
2.生成.o文件:gcc add.c
3用.o文件创建静态库: ar rcs libadd add.o
4链接静态库: gcc test.c -o test -L./ -ladd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值