linux
水杯爱喝水
这个作者很懒,什么都没留下…
展开
-
linux 终端操作快捷键
对我来说经常使用的几个:回到行尾 ctrl + e回到行首 ctrl + a删除到尾 ctrl + k删除到首 ctrl + u删除单词 ctrl + w粘贴 ctrl + y向前移动 ctrl + b向后移动 ctrl + f搜索历史 ctrl + r移动词头 Esc + b移动词尾 Esc + f...原创 2021-06-15 11:24:13 · 188 阅读 · 0 评论 -
linux文件中插入多行技巧
一、通过命令行追加到文件结尾方法一:原创 2021-06-15 11:00:34 · 3228 阅读 · 0 评论 -
获取网卡IP
int get_devip(char *devip){ int sock; struct sockaddr_in sin; struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock == -1){ perror("socket"); return -1; } strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ).原创 2021-01-06 11:42:25 · 222 阅读 · 0 评论 -
GBD--条件断点、多线程调试
一、条件断点#b functionName if sid > 1720121101 && sid < 1720121130 //在函数上设置断点#btest.c:55if asset != 0x00 //在文件内设置断点二、多线程调试(转)nfo threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID 切换当前调试的线程为指定ID的线程。br...原创 2020-12-17 16:19:37 · 419 阅读 · 0 评论 -
fread “rb“与“r“,“wb“,“w“的区别
在fread时,"rb"与"r"对某些字符作用,是不同的;文本模式和二进制模式读取不一样的文本:读: 遇到回车-换行(0D 0A),就会转换为换行符0A 写:遇到换行符0A,就会转换为回车-换行(0D 0A) 比二进制相差一个字节而二进制则读写保持原样 为什么这样呢?答案: 为了与linux,nuix兼容, 本来换行原来就是0A('\n'), 微软把\n 改为了\r\n,即从0A改为0D 0A....转载 2020-12-08 16:58:13 · 956 阅读 · 0 评论 -
popen获取命令执行结果分析
C工作者经常遇到需要在C程序中执行shell命令并获取返回结果的情况,一般我们用popen函数来完成,程序如下#include <stdio.h>#include <stdlib.h>#include <unistd.h>int get_pipeStr(char* cmd, char *res){ int len = 0; if(strlen(cmd) <= 0) return len; FILE *fp = NULL; ch...原创 2020-07-19 15:16:23 · 2297 阅读 · 0 评论 -
设置开启自启服务
一、配置systemctl服务/lib/systemd/system下创建supervisor.service, 是开机自启服务1> 进入/lib/systemd/system目录,并创建supervisor.service文件[Unit]Description=supervisorAfter=network.target[Service]Type=forkingExecStart=/usr/bin/supervisord -c /etc/supervisor/supervis原创 2020-07-03 16:37:44 · 1107 阅读 · 0 评论 -
【转】prctl()函数应用
prctl()函数应用 转载 ...转载 2020-04-08 21:40:32 · 144 阅读 · 0 评论 -
shell脚本写作技巧
1. 将if ...then..fi 写在一行(相比多行写,加了分号)#!/bin/bashfullpcapflag=0if [ $fullpcapflag == 0 ]; then extraceinfo='fullpcap-enabled=0';elif [ $fullpcapflag == 1 ]; then extraceinfo='fullpcap-enabled=1';...原创 2020-03-31 00:19:58 · 345 阅读 · 0 评论 -
Logstash 使用过程介绍
下面的链接解释的很好:https://blog.csdn.net/kebexue/article/details/89504992转载 2020-03-18 12:12:21 · 76 阅读 · 0 评论 -
linux time详解
非常详细的博客https://blog.csdn.net/u012260238/article/details/78961500原创 2019-12-15 19:33:26 · 138 阅读 · 1 评论 -
sudo su 和 sudo -s区别
一、sudo su和sudo s都是切换到root用户,不同的是:sudo su环境用的是目标用户(root)的环境(及切换shell环境也切换用户身份,默认切换到root身份)sudo s环境用的是当前用户本身的环境(只切换shell环境)二、sudo 与 su的区别su root的权限太大,所以诞生了sudo, sudo 可以通过/etc/sudoer来控制可以执...原创 2019-12-15 19:18:48 · 1963 阅读 · 0 评论 -
scandir函数
在C语言课程的后端,讲完指针和标准文件IO处理,我会做出一个难度较大练习,题目就是,利用标准的目录处理函数 opendir/readdir/closedir实现类似于 scandir的功能。其中接口要scandir 函数一致。 这个题目看起来简单,实现难度相当大,主要采用复杂指针的操作。我第一次拿出来测试,全班大约只一二名实现80%的功能,其余很多觉得无从下手。程序很容易就...转载 2019-12-15 18:39:39 · 2864 阅读 · 0 评论 -
虚拟机与Docker有何不同
译者按:各种虚拟机技术开启了云计算时代;而Docker,作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式。那虚拟机与Docker究竟有何不同呢?原文:Comparing Virtual Machines vs Docker Containers译者:Fundebug为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。首先,大家需要明确...转载 2019-07-22 18:59:23 · 119 阅读 · 0 评论 -
SFTP
SSH协议本身提供了两个服务器功能。一个就是远程连接使用shell的服务器,即俗称的ssh 一个就是类似FTP服务器的sftp-server,提供更安全的FTP服务SFTP可以从远程服务器上下载/上传文件,使用的是SSH的通道(port 22)。操作连接远程服务器:root@localhost:/# sftp 192.168.2.159Connected to 192.168...原创 2019-05-18 15:38:19 · 4776 阅读 · 0 评论 -
ssh
远程连接服务器通过文字或图形接口的方式来远程登录系统,让你在远程的终端前面登录Linux主机以取得可操作主机的接口(shell),而登录后的操作系统感觉上就像坐在系统前面一样。目前远程连接服务器的主要类型有文字接口和图像接口两种:文字接口明文传输:Telnet、RSH等为主。目前非常少用。文字接口加密:ssh为主,已经取代上述的Telnet、RSH等明文传输方式。...原创 2019-05-17 23:59:43 · 134 阅读 · 0 评论 -
Linux 信号 --- 统一事件源
信号是一中异步事件:信号处理函数和程序的主循环是两条不同的执行路线。信号处理函数需要尽可能快地执行完毕,以确保该信 号不会被屏蔽(信号在处理期间,系统不会再触发它)太久。一种典型的解决方案是:把信号的主要处理逻辑放到程序的朱循环中,当信号函数被触发时,他只是简单地通知主循环程序接收信号,并把信号值传递给主循环,主循环再根据接收到的信号值执行目标信号对应的逻辑代码。 信号处理函数通常...原创 2019-05-15 16:04:00 · 483 阅读 · 4 评论 -
Linux 服务器程序规范
一、规范内容Linux服务器除通信外,通常还必须考虑许多其他细节问题,这些细节问题涉及面广且零碎,而且基本上是模板式的,所以我们称之为服务器规范。Linux 服务器一般在后台以守护进程的方式运行。即没有终端,不接收用户输入。守护进程的父进程通常是init进程。 Linux 服务器通常有一套日志系统,可以输出日志到文件中。 Linux 服务器一般以某个专门的非root身份运行。比如nys...原创 2019-05-14 09:06:56 · 418 阅读 · 0 评论 -
定时执行命令Crontab
一、linux下的任务调度 LInux下的任务调度分为两类:系统任务调度和用户任务调度。 系统任务调度:系统周期性索要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有crontab文件,这个就是系统任务调度的配置文件,只有系统管理员可以修改。 前四行是用来配置crond任务于宁的环境变量,原创 2017-03-17 09:34:05 · 359 阅读 · 0 评论 -
linux下数据同步rsync
概述 rsync是一个相当棒的异地备份系统的备份指令。rsync在传输时,可以比对本地端与远程主机欲复制的文件内容,而仅复制两端有差异的文件。rsync的传输方式至少可以通过三种方式来工作:在本机上直接运行,用法和CP一样。rsync -av /etc /tmp(将etc下文件拷贝到tmp下) 通过ssh或rsh的信道在server/client之间进行传输数据 rsyn...原创 2017-05-13 16:03:44 · 595 阅读 · 0 评论 -
debian通过mailx发送邮件
搭建的nagios,邮件报警可以通过以下几种方式: 第一:使用短信通道 第二:使用服务器本身的邮箱进行发邮件(例如centos使用sendmail,debian使用exim4) 第三:使用外部邮箱通过smtp发送。 第一种当然最好,可是需要收费的。 第二种也可以发,可是发出去的邮件都在垃圾箱。 第三种就是建一个企业邮箱,使用简单的smtp发送,本文就是通过第三种方式报警。原创 2017-05-13 17:08:11 · 3362 阅读 · 0 评论 -
linux 抓包命令tcpdump
一、概述顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或者端口的过滤,并提供and\or\not等逻辑语句来帮助你去掉无用的信息。二、选项介绍-a 将网络地址和广播地址转变成名字; -b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。 -c 指定要监听的数据包数量,在收转载 2017-05-13 18:05:05 · 417 阅读 · 0 评论 -
linux 网络的配置
一、DNS配置配置文件在/etc/resolv.conf下面vim /etc/resolv.conf #编辑DNS配置文件,最多可以配置3个DNS配置内容如下:nameserver 202.109.14.5 #配置首选DNSnameserver 219.141.136.10 #配置备选DNSsearch localdomain二、设置IP地址,网关配置文原创 2017-05-13 18:18:12 · 465 阅读 · 0 评论 -
keepalived笔记
一、双机热备双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种原创 2017-05-13 14:37:44 · 609 阅读 · 0 评论 -
文件删除后,inode没有释放,导致磁盘空间被占满
设备跑了一段时间后,磁盘显示被占满定位过程df -h统计/home目录磁盘空间占用100%,du -h找不到大的文件。lsof /home/ | grep -i delete问题原因 百度发现,文件被删除后,inode没有被释放的原因是,文件句柄没有关闭导致。在程序中查找操作info_old和info_new文件的函数,发现果然有两处函数打开文件后,未删除。修改后,问题解决你...原创 2019-03-05 16:35:56 · 3448 阅读 · 0 评论 -
Linux-Inotify
名称inotify - 监视文件系统事件描述Inotify可用于监视单个文件或监视目录。监视目录时,inotify将返回目录本身以及目录内文件的事件。目录的Inotify监视不是递归的:要监视目录下的子目录,必须创建其他监视。inotify API不提供有关触发inotify事件的用户或进程的信息。API#include <sys/inotify.h>inotif...原创 2019-05-03 09:21:59 · 401 阅读 · 0 评论 -
IO复用--select
APIfd_set * rset;FD_ZERO(&rset);FD_SET(int fd, &rset);FD_ISSET(fd, &rset);FD_CRL(int fd, &rset);int select(maxfd+1, fd_set * rfd, fd_set * wfd, fd_set * excepfd, struct timeval...原创 2019-05-03 22:52:05 · 136 阅读 · 0 评论 -
IO复用--poll
APIstruct pollfd { int fd; //文件描述符 short events; //要求查询的事件掩码 short revents; //返回的事件掩码 }; int poll(struct pollfd *ufds, unsigned int nfds, int timeout); poll函数使用pollfd类型的结...原创 2019-05-03 23:09:19 · 180 阅读 · 0 评论 -
IO复用--Epoll
介绍epoll 是linux特有的I/O 复用函数。它在实现和使用上select、poll有很大差异,首先,epoll使用一组函数来完成任务,而不是单个函数。其次,epoll吧用户关心的文件描述符上的事件放在内核里的一个事件表中,从而无须象select和poll那样每次调用都要重复传入文件描述集合或事件集。但epoll需要使用一个额外的文件描述符,来唯一标识内核中的这个事件表。这个文件描述符使用...原创 2019-05-04 18:33:56 · 113 阅读 · 0 评论 -
管道符的一种用法
目的利用shell命令导出/log/log_web.db中web_opeartion_log表中的内容在命令行的操作,正常导出方法原创 2019-05-06 09:48:58 · 491 阅读 · 0 评论 -
多进程---1
今天开始研究多进程。。。。forkLinux下创建一个新进程的系统调用是fork:#include <sys/types.h>#include <unistd.h>pid_t fork(void)fork被调用一次,返回两次,它可能有三种不同的返回值:1)在父进程中,fork返回新创建子进程的进程ID;2)在子进程中,fork返回0;3)如果出现错误,f...原创 2019-05-08 19:28:26 · 91 阅读 · 0 评论 -
多进程--execl
有时我们需要在子进程中执行其他程序,即替换当前进程映像,这就需要exec系列,今天试用一下execl函数原型:int execl(const char *path, const char *arg, …);第一个参数必须是完整路径且包含文件名,第二个参数为文件名excel 调用后,excel之后的代码不会被执行,因为子进程中代码被替换excel 函数不会关闭原进程打开的文件描述符,除非...原创 2019-05-08 20:08:55 · 584 阅读 · 0 评论 -
linux服务启动方式分析
一、启动方式目前有三种启动方式:1. 只从/etc/init.d/文件夹启动 /etc/init.d/mysql start 2. 只从/etc/init/文件夹启动 sudo start mysql 3. 从两个文件夹中启动 service mysql start 二、源渊 简而言之,/etc/init.d/就是旧时代liun原创 2017-03-22 11:08:20 · 373 阅读 · 0 评论