
Linux
文章平均质量分 74
焱齿
tencent
展开
-
linux的/proc/{pid}/maps介绍及使用(定位内存泄漏)
1、介绍简单来说就是查看进程的虚拟地址空间是如何使用的。总共包括六列,每列及其含义如下。address | perms | offset | dev | inode | pathname(1)地址:本段在虚拟内存中的地址范围;对应vm_area_struct中的vm_start和vm_end。(2)权限:本段的权限; r-读,w-写,x-执行, p-私有;对应vm_flags。(3)偏移地址:即本段映射地址在文件中的偏移;对于有名映射指本段映射地址在文件中的偏移,对应vm_pgoff;对于匿原创 2022-04-03 12:43:39 · 13528 阅读 · 1 评论 -
vim设置默认utf-8编码
很简单:将上面的配置追加到 ~/.vimrc 文件中;然后重新vim打开文件就可以了。" =====================" 多语言环境" 默认为 UTF-8 编码" =====================if has("multi_byte") set encoding=utf-8 " English messages only "language messages zh_CN.utf-8 if has('win32') ..原创 2021-10-02 20:53:20 · 3811 阅读 · 0 评论 -
nohup与&区别于使用
nohup:运行不受挂起影响的命令。SIGHUP 信号:在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 系统对SIGHUP信号的默认处理是终止收到该信号的进程。先抛结论。使用&后台运行程序:①结果会输出终端;②使用Ctrl+C发送SIGINT信号,程序免疫;③关闭session发送SIGHUP,程序关闭;使用nohup运行程序:①结果默认输出到nohup.out; ..原创 2021-09-06 11:53:50 · 345 阅读 · 0 评论 -
统计相关总结(AWK等)
概述awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"。awk -F'=' '$3>=100{print $3,NF,NR}' water_oa.loghttps://www.cnblogs.com/hepeilinnow/p/103310...原创 2021-06-29 21:53:40 · 789 阅读 · 0 评论 -
动态库装载及 dlsym的RTLD_NEXT参数详解
在看公司spp框架代码的时候发现了如下一段宏定义,其中的dlsym函数及其RTLD_NEXT参数的含义不是很明白,于是网上搜了下这里做个记录。#define mt_hook_syscall(name) \do { \ if (!g_mt_sy原创 2020-11-08 18:16:41 · 10056 阅读 · 6 评论 -
Linux下python执行Killed
今天遇到了一个奇怪的情况那就是在执行python工具脚本的时候总是会出现“Killed”的情况。截图如下。最开始还以为是自己写的某个脚本出了问题,后续多测试才发现其他的原来好用的脚本文件大多也会这样。既然如此只能说明是当前脚本所处的环境有问题了。那究竟是什么问题呢?后来经过查阅发现了一个可能的解释是“pu过高系统出于自保进而主动杀死了进程”。究竟是不是这样呢?接下来具体查查看。这里又提到了异常日志所在路径 “var/log",通常我们在查询“out of memory"等记录的时候会关注..原创 2020-10-18 15:50:19 · 4470 阅读 · 0 评论 -
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
前言在使用ssh的时候,我们经常会遇到下列报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!下面介绍的就是此报错的问题原因及解决方法。报错如下原因WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!翻译过来就是警告:远程主机标识已更改!此报错是由于远程的主机的公钥发生了变化导致的。ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public .转载 2020-10-11 18:00:54 · 451 阅读 · 0 评论 -
hook原理介绍与简单实例
一、HOOK介绍1、什么是HOOK(钩子) HOOK技术即钩子函数,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。 钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。...原创 2020-11-08 15:50:50 · 4728 阅读 · 3 评论 -
tcpdump非常实用的抓包实例
转自https://blog.youkuaiyun.com/nanyun2010/article/details/23445223/再结合《Linux高性能服务器》中对tcpdump的介绍,常用的功能就没啥问题了!详细的文档见tcpdump高级过滤技巧基本语法========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# ...转载 2018-08-02 11:41:43 · 9026 阅读 · 1 评论 -
crontab每分钟执行一次任务
在/home/下面写了一个test.sh#!/bin/shecho hello > /home/hello.txt然后在crontab -e中设置了*/1 * * * * /home/a.sh为何等了好几分钟,home下面还是没有hello.txt呢?指定一下用什么运行*/1 * * * * sh /home/test.sh...原创 2020-04-18 17:32:18 · 256556 阅读 · 3 评论 -
Linux下的回收站trash
windows下的文件删除后就放到了回收站里,linux下的文件删除则分两种情况:界面删除:在文件夹界面右击“删除”,则该文件将移动到回收站,与windows下类似。 命令行删除:rm命令,运行该命令后,文件基本就无法恢复了。由于手抖rm了不该删除的文件带来的惨痛经历相比大家都或多或少的体验过。这里就介绍一种linux下将rm重命名将文件放入回收站而不是直接从硬盘删除的方法——trash。...原创 2020-03-28 11:42:41 · 5953 阅读 · 0 评论 -
linux常用文件及作用总结(profile/.bashrc等)
一、常规文件1、/etc/profile 文件作用:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。方法:(1)vim打开文件输入export语句。例如:export SCONS_PATH=/jsoncpp/scons-3.1.1export SCONS_LIB_DIR=$SCONS_PATH/engineexport JSONCPP_P...原创 2019-09-27 11:29:59 · 2427 阅读 · 0 评论 -
rz/sz安装与乱码问题
1、rz、sz的安装:yum install lrzsz注意:rz、sz指令的正确实行还需要终端的支持,例如常用的Xshell、SecureCRT都是支持的,此外现在使用的WeTERM也是支持的。不过mac自带的终端是不支持的。下图为mac终端的执行效果。2、尽可能使用“rz -e”,直接执行rz可能有如下乱码错误。一句话尽可能使用:rz -e-b:–binary...原创 2019-09-25 21:10:36 · 5576 阅读 · 0 评论 -
cmake入门
一、cmake介绍1、简介:CMake是一个跨平台的项目构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 的组态文档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix/linux 的 Ma...原创 2019-08-20 17:53:06 · 1477 阅读 · 0 评论 -
ps aux 输出格式
ps aux 指令输出的各列见上,列含义如下:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND说明:USER: 进程拥有者(谁启动了这个进程)PID: pid进程id。%CPU: CPU占用率%MEM: 内存占用率VSZ: 占用的虚拟内存量(KB)RSS:...原创 2019-07-17 11:51:25 · 843 阅读 · 0 评论 -
ssh: connect to host port 22: Connection refused
今天想使用scp把本地文件(路径:/Users/shuozhuo/Desktop/write.cc)推送到私人腾讯云服务器(/mystudy)。指令如下:scp /Users/shuozhuo/Desktop/write.cc root@9.134.50.94:/mystudy但是出现如下报错:看样子应该是端口不对,这时候联想到申请腾讯云服务器时候的的温馨提示,如下:据...原创 2019-07-13 22:09:27 · 2730 阅读 · 0 评论 -
VIM锁屏与解锁
Windows用惯了,使用VIM的时候经常按Ctrl+S的时候被锁住。现在记录一下提醒一下自己。在vim中:使用 CTRL+s 可以锁屏使用 CTRL+q 可以解锁。PS:ctrl+z停止进程后, 用fg恢复。...原创 2018-12-20 13:51:42 · 1353 阅读 · 0 评论 -
g++编译支持c++11
//第一种,直接包含在源程序文件中,如第一行代码所示#pragma GCC diagnostic error "-std=c++11"#include <iostream>using namespace std;int main(int argc,char **argv){ cout<<"hello world!"<<endl; au...原创 2018-07-29 13:13:19 · 548 阅读 · 0 评论 -
关于makefile的使用
什么是makefile?对于Winodws程序员来说可能很陌生,因为windows的IDE已经把所有的工作都做好了,你只需要点击各个俺舅舅可以了。但是对于一个Unix/Windows程序员来讲makefile则是必须要懂的。结合makefile的大多应用场合我们可以说:会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。...原创 2018-12-23 14:20:01 · 253 阅读 · 0 评论 -
strace的简单用法
Linux下,进程不能直接访问硬件设备。当进程需要访问硬件设备时(读取磁盘文件、接收网络数据等),则必须由用户态切换为内核态,然后通过系统调用来访问硬件设备。strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。strace最简单的用法是执行一个指定的命令(过程中,starce会记录和解析命令进程的所有系统调用及这个进程的所有的...原创 2018-12-24 10:39:22 · 28765 阅读 · 1 评论 -
Xshell连接centOS7与CentOS7联网——一步到位
参照https://mp.youkuaiyun.com/postedit/80922876 这篇文章一看就明白了!!就像引出“3+4”重构那样,我们也可以直接将配置前与配置后的对比状态列举出来,这样更省事。0、对于如下配置的宿主机(此处即为windows主机)1、编辑→虚拟网络编辑器 配置完毕后的状态如下:注:(1)其中的子网IP就是根据宿主机的IP修改得来的,即修改第三位。(...原创 2018-06-29 20:45:54 · 42927 阅读 · 10 评论 -
GDB定位coredump
这篇文章主要讲GDB和coredump两个方面。一、coredump1、coredump简介(1)、 core,又称coredump文件,准确来讲是Unix/Linux的记录机制产生的一种保存程序崩溃时现场状态的记录性文件。(2)、为何需要这种记录机制?原因很简单,程序在在正常执行的时候当然是皆大欢喜,但是如果程序出现致命性错误难道不要保存一些现场信息已被分析使用吗!!Unix/...原创 2018-12-24 16:30:50 · 13719 阅读 · 4 评论 -
GDB的使用
1、介绍:gdb是unix即unix-like下的调试工具。你可随心所欲的运行程序、指定断点处停留、程序停住是可查看状态、可以改变程序讲一个bug的影响修正从而调试其他bug。2、注意事项:必须用-g生成要调试的可执行文件,-g表示带调试信息。g++ -g gdbtest.cpp –o main3、基本调试语法:(1)进入gdb—— gdb/gdb test/gdb test...原创 2018-12-24 17:02:08 · 168 阅读 · 0 评论 -
内存检查工具valgrind介绍、安装与使用
一、valgrind介绍1、valgrind概述Valgrind是一套Linux下,开放源代码的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下...原创 2018-12-24 23:44:47 · 27013 阅读 · 1 评论 -
文件上传下载——sz和rz
借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。sz用法: 下载一个文件 sz filename 下载多个文件 sz filename1 filename2 下载dir目录下的所有文件,不包含dir下的文件夹 sz dir/*下载文件存放位置在securtCR...转载 2019-04-08 22:39:13 · 402 阅读 · 0 评论 -
linux hook技术
Hook中文翻译为钩子,可以用来截获调用函数,并改变函数的行为。Windows和Linux都提供了相应的实现机制。这篇文章是针对Linux平台的。也是在学习协程库libco过程中接触到的。正文:如果你是一个开发者,并期望去改变一个库函数的行为,那么这篇文章将带你入门——只是用库函数做实验。所有的代码是用C写的,在Linux上面使用GCC编译测试。根据维基百科,“在计算机...转载 2019-04-22 23:36:48 · 4195 阅读 · 0 评论 -
vim常见使用总结
在vim跳转到指定行常用如下两种方法(首先按esc进入命令行模式):1、:n (跳转到文件第n行,需要回车)vim打开的文件→按esc进入命令行模式→输入“:123”→按回车,即跳转到123行。2、vim +n filename (在打开文件后,跳转到文件的第n行)vim +456 main.cpp #打开main.cpp文件并跳转到456行...原创 2019-06-20 22:11:10 · 756 阅读 · 1 评论 -
history指令显示日期时间
echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc或echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bash_profile之后使配置生效:source ~/.bashrc对比效果如下:原创 2019-06-17 10:28:00 · 801 阅读 · 0 评论 -
Linux shell记录
前言有时候我们常看到类似这样的脚本调用:./test.sh>log.txt2>&1这里的2>&1是什么意思?该如何理解?先说结论:上面的调用表明将./test.sh的输出重定向到log.txt文件中,同时将标准错误也重定向到log.txt文件中。有何妙用(如果已经明白...原创 2018-11-22 21:19:12 · 189 阅读 · 1 评论