
Linux
YMY_mine
这个作者很懒,什么都没留下…
展开
-
mac和linux上sed命令的区别
mac:sed -i "" "s/a=\"10.0.53.1\"/a=\"127.0.0.1\"/g" test.pysed -i '' 's/aaa/bbb/g' test.pylinux:sed -i 's/dc_ip="10.194.53.118"/dc_ip="10.157.204.15"/g' test.pysed -i 's/aaa/bbb/g' test.py原创 2021-08-18 17:41:20 · 879 阅读 · 0 评论 -
测试开发常用linux命令
1、已知pid,如何知道pid做对应的进程所在的路径ps -aux | greppid 或者 ll /proc/pid2、查看端口是否被占用 lsof -i:port3、如何查看当前环境磁盘空间大小 df -h4、查看a.go文件第5列内容 cat a.go|awk ‘{print $5}’5、查找文件 find . -name a.go|xargs grep "nxx"6、修改文件内容 sed -i "s/mm/xx/g" a.go7、查找...原创 2021-01-15 10:53:47 · 832 阅读 · 0 评论 -
查看端口被哪个进程占用&进程路径
1、lsof -i:port 会出现进程pidps -ef | grep pid 就可以查看全路径但这个方法有时候就失效了,我也不知道为什么2、不过第二种方法绝对有效,每个进程启动之后在 /proc下面有一个于pid对应的路径lsof -i:port 会出现进程pidcd /proc/pid ls -lrt注意cwd,即是你要查找的进程所在路径...原创 2020-06-08 21:12:04 · 731 阅读 · 0 评论 -
kmalloc()和vmalloc()
一、vmalloc()函数为了把物理上不连续的页面转换为虚拟地址空间上连续的页,必须专门建立页表项。还有,通过vmalloc()获得的页必须一个一个的进行映射(因为它们物理上不是连续的),这就会导致比直接内存映射大得多的缓冲区刷新。因为这些原因,vmalloc()仅在绝对必要时才会使用——典型的就是为了获得大块内存时,例如,当模块被动态插入到内核中时,就把模块装载到由vmalloc()分配的内存上...原创 2018-08-13 20:55:33 · 3934 阅读 · 0 评论 -
保护模式
全局描述符表GDT中存放着段描述符, 每个段描述符8个字节. 为了跟踪全局描述符表, 处理器内部有一个48位寄存器, 叫做全局描述符表寄存器(GDTR), GDTR分为两部分,分别为32位的线性地址和16的边界, 32位线性基地址部分保存的是全局描述符表在内存中的起始线性地址, 16位边界部分是全局描述符表的边界(界限), 其值等于表的大小(总字节数) - 1, 因为从偏移0开始. 如果界限值...原创 2018-08-30 00:59:34 · 906 阅读 · 0 评论 -
阻塞、非阻塞、同步、异步
一、阻塞、非阻塞:阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.eg1、应用进程请求I/O操作时,如果要访问的数据未准备好,请求立即返回就是非阻塞,不立即返回就是阻塞。简单说就是做一件事如果不能立即获得返回,需要等待,就是阻塞,否则就可以理解为非阻塞。eg2、阻塞调用:比如 socket 的 recv(),调用这个函数的线程如果没有数据返回,它会一直阻塞着,也就是...原创 2018-09-04 21:25:10 · 151 阅读 · 0 评论 -
reactor和proactor模式
转自:https://blog.youkuaiyun.com/caiwenfeng_for_23/article/details/8458299 Reactor模式,或者叫反应器模式高性能IO设计的Reactor和Proactor模式 首先就第一篇《Reactor模式,或者叫反应器模式》做一下笔记: 刚开店做生意,老板为了给顾客一个美好的印象,给顾客最好的服务,一对一: 随着经...转载 2018-09-04 21:47:37 · 185 阅读 · 0 评论 -
写时拷贝
一、在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后大多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据也许并不共享,或者,如果...原创 2018-09-24 23:54:43 · 250 阅读 · 0 评论