![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 52
MagnumLu
一只喜欢安安静静写代码的程序猿~
展开
-
使用iptables丢弃指定ip和端口的包
【代码】使用iptables丢弃指定ip和端口的包。原创 2023-07-19 17:15:40 · 1036 阅读 · 0 评论 -
shell:如何判断用户是否有sudo权限
如何判断用户是否有sudo权限呢?原创 2022-12-14 21:57:36 · 2295 阅读 · 1 评论 -
如何防止进程在oom时不被杀
在后台运行,就可以看到用更多进程的 score 是 0 仍然挂掉了,比如 sshd、dhclient、systemd-logind、systemd-timesyn、dbus-daemon 等,所以设置错误的。一是系统根据该进程的内存占用情况打分,进程的内存开销是变化的,所以该值也会动态变化。如果用户将该进程的 oom_score_adj 设定成。如果设置为正数,分数会增加,可以优先杀死该进程,,OOM killer 给进程打分,把。如果设置为负数,表示分数会打一定的折扣,,表示用户不调整分数,转载 2022-12-14 21:51:01 · 1686 阅读 · 0 评论 -
CLion:windows版本远程同步设置
windows版本CLion的远程同步相关问题原创 2022-10-10 16:00:01 · 1427 阅读 · 0 评论 -
c/c++动态检测内存错误利器 - ASan
注:asan的完整功能是要gcc版本在4.9.2以上才能使用,较低版本比如4.8.5不能使用内存泄漏的功能。如何使用1、使用ASan时,只需gcc选项加上-fsanitize=address;2、如果想要在使用asan的时候获取更好的性能,可以加上O1或者更高的编译优化选项;3、想要在错误信息中让栈追溯信息更友好,可以加上-fno-omit-frame-pointer选项;4、编译时有时候需要加上-static-libasan;5、如果需要输出的调用链中信息更精确,对应到代码文件原创 2022-05-05 17:01:32 · 987 阅读 · 0 评论 -
linux命令提示符样式PS1
PS1样式:PS1="\[\e[31;1m\][\[\e[32;1m\]\u\[\e[33;1m\]@\[\e[35;1m\]\h\[\e[36;1m\]:\[\e[32;1m\]\w\[\e[31;1m\]]\[\e[33;1m\]\$ \[\e[0m\]"效果图:原创 2022-04-27 10:51:26 · 834 阅读 · 0 评论 -
centos下升级gcc-7.2.0
所需依赖资源包详情如下:gcc-7.2.0.tar.xzgmp-6.1.0.tar.bz2mpc-1.0.3.tar.gzmpfr-3.1.4.tar.bz2isl-0.16.1.tar.bz2温馨提示:若以上资源包下载不了,可以使用离线的资源,亲测可用:gcc7.2.0_download_prerequisites_安装gcc依赖安装过程中./contrib/download_prerequisites这一步大部分国内用户都会失败,由于网络等问题,所需的资源包下载不了,下面的命令本质原创 2022-04-26 15:48:20 · 818 阅读 · 1 评论 -
pthread_create创建线程失败,返回11: Resource temporarily unavailable
一、问题背景在重启一个程序时死活启动不起来,后发现程序中在使用pthread_create函数创建线程时失败,返回值11,即Resource temporarily unavailable。二、问题解决谷歌发现,大部分解决方法都是调大系统线程数目上限,但是我使用ulimit -a发现该系统的最大用户线程数是62809,但是pstree -p | wc -l查看系统当前的线程数目只有1153,很明显不是系统最大线程数目设小了。ulimit -a的系统信息:但是 ,该系统的栈空间大小原创 2021-11-08 14:47:07 · 9250 阅读 · 0 评论 -
linux下添加动态链接库路径的方法
Linux共享库路径配置 Linux下找不到共享库文件的典型现象为明明已经安装某个软包(如libnet,MySQL),编译连接可以正常进行,但是在运行时出现如“error while loading shared libraries: libnet.so.1:cannot open shared object file :No such file or directory”的错误提示。 原因是Linux下的共享库路径配置不正确。默认的linux共享库搜索路径为/lib和/usr/lib两个目录(原创 2021-09-02 21:20:05 · 5245 阅读 · 0 评论 -
主程序调用动态库的两种方式,动态库调用主程序的函数
主程序调用动态库有两种方式,即隐式调用和显式调用。隐式调用就是共享方式,程序一开始运行就调进去。在链接时候用如下的方式链接动态库:gcc -o main main.o -L./lib -ltest(就像链接像静态库的一样)显示调用就是在程序中用系统调用把动态库加载进来,用系统调用:dlopen、dlsym、dlerror、dlclose函数,那样在编译链接时候,就不用加上:-L./lib -ltest了。不过因为要使用dl*系列函数,需要在编译链接时要加上 -ldl 。动态库可以直接调用主程序中原创 2021-09-02 21:13:13 · 5199 阅读 · 0 评论 -
gdb如何调试守护进程的程序?
很多程序都使用了守护进程的方式,即程序启动之后,父进程退出,子进程被init进程托管,并且主程序交由子进程执行。这种情况下,如果使用gdb调试程序,使用一般的方式调试,我们会发现,调试开始后没有函数栈信息,这是因为gdb之后跟踪的是父进程,而父进程已经退出了。那么这种情况如何调试呢?gdb开始之后,先设置set follow-fork-mode child,gdb将在fork之后直接跟踪子进程。然后就是设置断点,r执行程序并调试。...原创 2021-09-01 15:13:46 · 2495 阅读 · 0 评论 -
Git 同步主分支
工作场景:某项目有master分支和dev分支,dev分支原本是从master分叉而来的,dev分支不断延伸,在这过程中master分支已经有了新的提交;现在问题是,我需要将dev分支与master分支同步,也就是说dev分支现在要将master分支最新的提交同步到dev这边来,使得dev的开发时刻是建立在最新的master基础上的。关键词概括:同步主分支跳坑指南:在dev分支上,直接git pull origin master(这相当于拉取远程master的最新提交到本地dev,并且与dev分..原创 2021-05-25 20:50:56 · 6176 阅读 · 1 评论 -
Git踩坑集锦(小白作者在工作场景使用git的总结)
1工作场景:某项目有master分支和dev分支,dev分支原本是从master分叉而来的,dev分支不断延伸,在这过程中master分支已经有了新的提交;现在问题是,我需要将dev分支与master分支同步,也就是说dev分支现在要将master分支最新的提交同步到dev这边来,使得dev的开发时刻是建立在最新的master基础上的。跳坑指南:在dev分支上,直接git pull origin master (这相当于拉取远程master的最新提交到本地dev,并且与dev分支merge)温.原创 2020-10-12 15:24:34 · 344 阅读 · 4 评论 -
vim: 打开、切换~多窗口、多文件
打开多个文件:一、vim还没有启动的时候:1.在终端里输入vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:e file可以再打开一个文件,并且此时vim里会显示出file文件的内容。3.同时显示多个文件::sp //水平切分窗口:vsplit //垂直切分窗口二、在文件之间切换:1.文件间切换Ctrl+6 //两文件间的切换:bn //下一个文件:bp ...原创 2020-09-10 20:53:06 · 616 阅读 · 0 评论 -
linux下用命令获取本地ip
在写一个脚本时,需要获取本地主机的ip,网上找了一番发现好多都不能成功获取正确的本地ip,经过研究我发现以下命令在大部分机器上可以获取到本地的local ipip addr show | grep inet | grep eth1 | awk -F'/' '{print $1}' | awk '{print $2}'...原创 2020-09-02 20:28:24 · 2195 阅读 · 0 评论 -
我的vim设置
在家目录下执行 vim .vimrc ,拷贝以下内容,保存即可set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8set numberset relativenumberset cursorlineset linebreakset wrapmargin=2set rulerset showmatchset hlsearchset incs原创 2020-08-25 19:50:04 · 153 阅读 · 0 评论 -
vim常用命令之多行注释和多行删除
vim常用命令之多行注释和多行删除vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率。1.多行注释: 1). 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式; 2). 在行首使用上下键选择需要注释的多行; 3). 按下键盘(大写)“I”键,进入插入模式; 4). 然后输入注释符(“//”、“#”等); 5). 最后按下“Esc”键。 注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的2.删除多行注释:...转载 2020-08-25 19:43:39 · 549 阅读 · 0 评论 -
mysql常用操作:登陆、添加新用户、分配权限及相关操作命令
一、登录mysql本地登录mysql账户:mysql -u 【mysql账户名】 -p--可以是root账户名也可以是普通账户,让后输入密码即可登陆登陆远程主机的mysql账户mysql -h [mysql所在的远程主机ip] -P [mysql所在的远程主机设置的mysql服务端口] -u 【mysql账户】 -p 【mysql账户密码】--mysql的默认服务端口是3306二、添加新账户允许本地 IP 访问 localhost, 127.0.0.1 ,假设添加的新账户名为原创 2020-08-25 19:20:12 · 982 阅读 · 0 评论 -
Linux下安装mysql-5.7.24及问题总结
前言:本文档讲解安装版本为mysql-5.7.24,对于5.7.24之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。 安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。此外,在文末会附上参考链接。一 安装前准备1、检查是否已经安装过mysql,执行命令[root@localhost /]# rpm -qa | grep mysql原创 2020-08-25 17:00:18 · 952 阅读 · 0 评论 -
Linux用户管理---创建用户和删除用户
一、用户管理的命令:(1)创建用户命令有两种: adduser useradd(2)删除用户命令: userdel二、两个用户创建命令之间的区别adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。三、为用户指定参数的useradd命令:常用命令行选...转载 2020-07-31 10:59:21 · 450 阅读 · 0 评论 -
Linux命令之ldd 查看程序依赖库
ldd作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。示例:查看test程序运行所依赖的库:/opt/app/todeav1/test$ldd testlibstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)libm.so.6 => /lib64/libm....原创 2019-07-26 14:30:34 · 1032 阅读 · 0 评论 -
Makefile中:= ?= += =的区别
新建一个Makefile,内容为:ifdef DEFINE_VREVRE = “Hello World!”elseendififeq ($(OPT),define)VRE ?= “Hello World! First!”endififeq ($(OPT),add)VRE += “Kelly!”endififeq ($(OPT),recover...原创 2019-07-26 17:30:25 · 242 阅读 · 0 评论 -
linux里install命令和cp命令
install和cp类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile(在RPM的spec里面也经常用到),使用它来将程序拷贝到目标(安装)目录。常用参数:--backup[=CONTROL]:为每个已存在的目的地文件进行备份。 -b:类似 --backup,但不接受任何参数。 -d,--directo...原创 2019-07-26 18:21:25 · 548 阅读 · 0 评论 -
cmake:指定install的安装目录
使用 CMAKE_INSTALL_PREFIX 来指定。方法1-在执行cmake时指定:cmake -DCMAKE_INSTALL_PREFIX=<你想要安装的路径>方法二-设置CMAKE_INSTALL_PREFIX 变量:SET(CMAKE_INSTALL_PREFIX <install_path>)要加在 PROJECT(< projec...原创 2019-07-30 11:34:43 · 27267 阅读 · 0 评论 -
Linux命令之查看系统负载
网站服务器经常会遇到linux系统负载的问题,那么linux下查看系统负载的命令有哪些呢?linux下查看负载的主要命令有下面一些:top, uptime,w,vmstat1、top命令查看linux负载:第一行解释:top - 01:18:39 up 2 days, 18:54, 1 user, load average: 0.04, 0.03, 0.0501:18:3...转载 2019-03-22 11:30:25 · 4834 阅读 · 0 评论 -
Linux命令之ldconfig
ldconfig是一个动态链接库管理命令。为了让动态链接库为系统所共享,需运行动态链接库的管理命令--ldconfig。 ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为 /etc/...原创 2019-07-26 14:28:11 · 517 阅读 · 0 评论 -
Linux 系统库 共享库 编译选项 链接库 静态库 动态库
1、静态库与动态库的参考文章:https://blog.csdn.net/u010977122/article/details/529583302、gcc编译链接选项讲解:https://my.oschina.net/u/2539854/blog/8549003、在用gcc编译时有时候需要加-ldl、-lpthread、-lm之类的选项,这些选项代表链接一定的动态库,比如-ldl对应lib...原创 2019-07-26 14:24:26 · 401 阅读 · 0 评论 -
Ubuntu16.04如何通过Firefox安装Flash插件
下载https://get.adobe.com/flashplayer/选择.tar.gz for Linux包解压cd到下载的目录里面,比如下载的*.tar.gz 包在download目录下,则cd到download目录,然后解压tar -zxvf flash_player_npapi_linux.x86_64.tar.gz 复制sudo cp libflas...原创 2019-06-10 17:58:28 · 1277 阅读 · 0 评论 -
Ubuntu 16.04安装sogou拼音输入法
安装完Ubuntu 16.04后,要更换为国内的软件源: sudo gedit /etc/apt/sources.list #用文本编辑器打开源列表在文件开头添加下面的阿里云的软件源:deb http://mirrors.aliyun.com/ubuntu/ quantal main restricted universe multiversedeb http:...原创 2019-06-06 10:50:52 · 4090 阅读 · 0 评论 -
腾讯内网 vmware+ubuntu设置网络代理访问外网
腾讯的内网为了安全方面的考虑,需要设置网络代理才能访问外网。这篇文章讲的是在虚拟机linux上通过设置网络代理访问外网!我的环境如下:vmware12 + ubuntu16.04新入职的实习生一枚,以前玩Linux的时候喜欢用虚拟机+ubuntu,今天熟练地把环境搭起来,准备装个vim,结果执行sudo apt-get install vim后显示没有可用的软件包。但是我诡异的是...原创 2019-06-29 15:49:42 · 951 阅读 · 0 评论 -
Linux网络编程中connect()、listen()和accept()与TCP三次握手的关系
Linux网络编程开发分为服务器端和客户端两个部分:对于服务器端的流程——类似于接电话过程socket()[找到一个可以通话的手机]----->bind()[插入一个固定号码]------>listen()[随时准备接听]-------> accept------->recv()------->send()------>close();对于客户端的主...原创 2019-03-22 22:18:15 · 4030 阅读 · 0 评论 -
Linux 常用命令
1. Linux用户相关命令1.1 用户切换 Linux 下有两种用户:超级用户(root)、普通用户。 a) 超级用户:可以再 linux 系统下做任何事情,不受限制。 b)普通用户:在 linux 下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。 命令:su [用户名] 功能:切换用户。例如,要从...原创 2019-03-22 18:36:51 · 451 阅读 · 0 评论 -
Linux命令之后台执行命令:& 和 nohup
当一个进程被启动的时候,可能需要比较久的时间才能运行完,而这时候你又想去做些其他的事情,那用什么命令可以达到这个效果呢?(面试被问了两次,当然也包括下面要说的nohup命令)一、&当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。在后台运行作业时要当心:需要用户与终端进行交互的命令不要放在后台执行,因为这样你的程序因为得不到...原创 2019-03-22 08:43:52 · 720 阅读 · 0 评论 -
Linux命令之重定向 >、 >>、 1>、 2>、 1>>、 2>>、 <
1.> 和 >>这两个区别在于>是重定向到一个文件,>>是追加内容到一个文件。如果文件不存在,那么这两个命令都会首先创建这个文件。我们可以看到将ll的输出重定向到a.txt中, >>也是同样的效果;不过>>是可以追加内容的,比如:2.1> 和 2>他们两个用于将一个文件正确的输出,和错误的输出分开保...原创 2019-03-22 07:44:28 · 28724 阅读 · 2 评论 -
Linux IPC 之管道
原创 2019-03-24 22:17:37 · 293 阅读 · 0 评论 -
mmap共享存储映射(存储I/O映射)系列详解
mmap共享存储映射又称为存储I/O映射,是Unix**共享内存**概念中的一种。在Unix进程间通信中,大致有1. 管道 pipe(),用于父子进程间通信(不考虑传递描述符)2. FIFO(有名管道) 非父子进程也能使用,以文件打通3. 文件 文件操作,效率可想而知4. 本地套接字 ...转载 2019-03-24 21:49:41 · 364 阅读 · 0 评论 -
Linux网络高并发服务器之epoll接口
本文转载自:https://blog.csdn.net/qq_36359022/article/details/81355897epoll接口是为解决Linux内核处理大量文件描述符而提出的方案。该接口属于Linux下多路I/O复用接口中select/poll的增强。其经常应用于Linux下高并发服务型程序,特别是在大量并发连接中只有少部分连接处于活跃下的情况 (通常是这种情况),在该情况下能...转载 2019-03-24 21:43:27 · 861 阅读 · 0 评论 -
Linux 用户管理 修改用户的家目录 useradd usermod
在创建一个用户之后,想把该用户的家目录指定到一个其他的目录,使用usermod命令。usermod命令使用格式usermod -d /usr/newfolder -u uid username-u后面一定要接uid啊,然后是username uid可使用 [id 用户名] 查看。附:usermod详细参数语 法:usermod [-LU][-c <备注>...原创 2019-06-04 20:18:53 · 36873 阅读 · 1 评论 -
ubuntu 16.04 用deb包安装 chrome 浏览器
本教程是以离线的deb包来安装chrome。下载linux版的deb包下载地址:https://support.google.com/chrome/a/answer/9025926?hl=zh-Hans&ref_topic=9025817接受并安装,将下载的deb文件放在ubuntu桌面上。cd到桌面目录下,然后接着在终端执行下面的命令。安装将软件包移动至/us...原创 2019-06-11 19:55:57 · 13788 阅读 · 1 评论 -
Redis的启动/停止/重启脚本
1、start.sh#!/bin/shif [ $# -ne 1 ]; then echo "usage: $0 port" exit -1;fiPORT=$1#您可以在此处修改redis-server和conf的所在路径REDIS_SERVER="./redis-server"REDIS_CLI="./redis-cli"REDIS_CONF="./conf/red...原创 2019-07-30 17:49:33 · 3758 阅读 · 0 评论