linux
爬虫仔蛙
两全其美皆大欢喜
展开
-
linux内存管理——mmap函数详解
mmap函数是unix/linux下的系统调用。当存在客户-服务程序中复制文件时候,其数据流如下,要经历四次数据复制,开销很大。如果采用共享内存的方式,那么将大大优化IO操作,数据流变成了如下,数据只复制两次:映射文件或设备到内存中,取消映射就是munmap函数。语法如下:void*mmap(void*addr,size_tlength,intprot,intflags,intfd,off_toffset);intmu...转载 2020-08-24 15:19:37 · 346 阅读 · 0 评论 -
linux top命令VIRT,RES,SHR,DATA的含义
VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out2、包含其他进程的共享3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关于库占用内存的情况,它只统计加载的库文件所占内存大小SHR:s原创 2020-07-07 17:56:26 · 214 阅读 · 0 评论 -
git代码同步
brew update: The following untracked working tree files would be overwritten by merge:$cd /usr/local$git fetch origin$git reset --hard origin/master原创 2020-01-08 15:30:50 · 209 阅读 · 1 评论 -
常用linux命令
linux下批量删除空文件(大小等于0的文件)的方法在 要查找的 文件夹 ,打开命令行:find . -name "*" -type f -size 0c原创 2019-12-26 17:32:24 · 128 阅读 · 0 评论 -
linux 命令小结
将命令的执行结果赋给变量,有2种写法,如下 1)A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A 2)A=$(ls -la)原创 2019-12-24 11:00:37 · 118 阅读 · 0 评论 -
sublime中替换成换行
ctrl + h 打开替换窗口。replace with里输入 ctrl + shift + enter原创 2019-12-11 14:50:04 · 513 阅读 · 0 评论 -
Linux命令之--insmod命令
insmod命令-->install module的缩写,用来载入模块,通过模式的方式在需要时载入内核,可使内核精简,高效。此类载入的模块,通常为设备驱动程序.【insmod命令作用】静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空...转载 2019-11-29 21:45:41 · 900 阅读 · 0 评论 -
shell 远程执行命令
经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。所以介绍几种shell命令远程执行的方法。前提条件:配置shell免密登录执行单条命令ssh user@remoteNode "df -h"执行多条命令ssh user@remoteNode "cd /home ; ls" #双引号,必须...原创 2019-11-26 16:54:52 · 1467 阅读 · 1 评论 -
shell 脚本函数 return 和 echo 的返回值区别
return 返回的是状态码,函数结束 return不返回函数返回值 可以在前面用 echo 返回函数返回值,return 返回指定函数退出状态码echo 返回的是函数返回值,函数退出状态码是函数最后一条命令的退出状态码...原创 2019-11-25 17:24:37 · 1698 阅读 · 0 评论 -
linux 系统调用号表
位置位于/usr/include/asm/unistd.h由于我是64位系统,所以有一些额外的东西。我的这个文件为下文#ifndef _ASM_X86_UNISTD_H#define _ASM_X86_UNISTD_H/* x32 syscall flag bit */#define __X32_SYSCALL_BIT 0x40000000# ifdef __i386...转载 2019-03-04 17:35:06 · 1686 阅读 · 0 评论 -
Linux系统调用列表
一、进程控制:函数名 描述 文件 fork 创建一个新进程 kernel/fork.c clone 按指定条件创建子进程 kernel/fork.c execve 运行可执行文件 fs/exec.c exit 中止进程 kernel/exit.c _exit 立即中止当前进程 getdtable...原创 2019-03-04 17:30:53 · 267 阅读 · 0 评论 -
Linux的.a、.so和.o文件
在说明Linux的.a、.so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系 lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。 所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。 ...转载 2018-08-22 21:43:12 · 205 阅读 · 0 评论 -
shell脚本的并发
2016年05月09日 17:06:28阅读数:1680shell脚本的并发Default模式下,shell命令是阻塞执行的,可以通过其后添加&让这条命令异步执行,如:sleep 10 &1执行这条命令后,并不会阻塞10秒,而是立即返回。如果将这种方法用在while循环中,则可以实现多进程并行处理。例如一下test1.sh文件为:#!/bin/bashwhile read lin...原创 2018-06-13 16:58:14 · 3371 阅读 · 0 评论 -
linux的sed命令使用
1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。原创 2015-01-09 11:53:37 · 395 阅读 · 0 评论 -
expect spawn、linux expect 用法
expect spawn、linux expect 用法分类: linux2011-12-10 13:46 14628人阅读 评论(1) 收藏 举报linuxsshcmd脚本shelltcl使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。 脚原创 2015-11-03 09:36:49 · 572 阅读 · 0 评论 -
《UNIX环境高级编程》笔记--UNIX域套接字
1.非命名的UNIX域套接字UNIX套接字用于在用一台机器上运行的进程之间通信。UNIX套接字比因特网域套接字的效率更高。UNIX与套接字提供和数据报两种接口,UNIX域数据报服务是可靠的,就不会丢失消息也不会传递出错。UNIX域套接字是套接字和管道之间的混合物。为了创建一对非命名的,相互连接的UNXI域套接字,用户可以使用socketopair函数。原创 2016-01-16 16:46:12 · 473 阅读 · 0 评论 -
docker强制批量删除none的image镜像
真是有段时间没搞Docker了,我们大部门的业务基本docker化了… … 确实是个好东西,我现在更多的是应用docker,具体的维护运维还是交给运维的朋友们… … 说正题,今天遇到的问题是自己在开发机做坏了几个image镜像,删不了 我想大家也遇到过这样类似的问题 ….http://xiaorui.cchttp://xiaorui.cchttp://xi原创 2015-11-29 16:20:05 · 17312 阅读 · 0 评论 -
linux brctl
brctl 用来管理以太网桥,在内核中建立,维护,检查网桥配置。一个网桥一般用来连接多个不同的网络,这样这些不同的网络就可以像一个网络那样进行通讯。 网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备。网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“底层的路由器”原创 2016-01-13 17:44:13 · 473 阅读 · 0 评论 -
进程通信:管道(pipe)和 unix域套接字(socketpair)区别
管道pipe是半双工的,pipe两次才能实现全双工,使得代码复杂。socketpair直接就可以实现全双工socketpair对两个文件描述符中的任何一个都可读和可写,而pipe是一个读,一个写详间代码:一:pipe实现父子进程全双工通信:[cpp] view plaincopy#include #include原创 2016-01-13 22:27:44 · 4944 阅读 · 0 评论 -
普通管道和命名管道
(2116) (0)管道分为普通管道和命名管道;两者都是半双工的。普通管道只能用于父子进程或兄弟进程间的通信,因为普通管道通过fork调用来拷贝文件描述符的,在文件系统中,普通管道并不对应物理文件。命名管道在文件系统中有物理文件存在,因此可以用于非亲属的进程间通信。1、普通管道#includeint pipe(int fd[2])用于创建管道,创建原创 2016-08-04 11:32:10 · 1685 阅读 · 0 评论 -
linux
shell 单括号运算符号:a=$(date);等同于:a=`date`; 双括号运算符:a=$((1+2));echo $a;等同于:a=`expr 1 + 2`原创 2016-12-12 15:28:23 · 246 阅读 · 0 评论 -
执行shell脚本进入指定目录
在linux环境下,常有通过shell脚本进入指定目录的操作,例如有一段脚本chdir.sh: [plain] view plain copy#!/bin/sh cd /home/user/Downloads pwd 在shell环境下通过./chdir.sh执行这段脚本是无法进入Downloads目录的; 这是因为shell在执行脚本时,会创建一个子shell,并在子she...原创 2018-06-12 11:46:09 · 25967 阅读 · 6 评论 -
Linux系统VNC配置实践总结
VNC概述 VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC 中的任何远程控制软件媲美。在 Linux 中,VNC 包括转载 2015-04-06 22:02:17 · 2281 阅读 · 0 评论