linux
qingcunsuiyue
集美貌、智慧、才华于一身的女子。
展开
-
【Linux】排查crontab任务没有执行的问题?
前介在Linux系统中,经常使用crontab命令来实现定时任务,因此会有定时任务没有执行的问题。排查思路(1)查看crond进程是否启动/sbin/service crond status -> crond dead but pid file exists(2)重启crond进程/sbin/service crond restart...原创 2020-06-13 15:39:16 · 935 阅读 · 0 评论 -
Linux-sed命令(基础和高级用法)
1、sed是流编译器,是文本处理非常常用的工具,也是使用正则表达式进行匹配,默认为基准模式。基本格式为:(1)sed option 'script' file 其中script为:/pattern/action //pattern为正则表达式,action为编辑操作。如果没有pattern,则对所有行进行action操作。(2)sed option -f scri原创 2017-09-01 18:39:25 · 541 阅读 · 0 评论 -
Linux-grep命令(介绍了正则表达式和选项)
grep是一种强大的文本搜索工具,它使用正则表达式来进行匹配。原创 2017-09-01 15:23:52 · 307 阅读 · 0 评论 -
Linux-awk命令
1、awk是以行为单位处理文件,还能以列为单位处理文件,默认的列分割符为空格和Tab。基本命令:(1)awk option 'script' filescript:/pattern/{action} //pattern为正则表达式,action为一系列的操作。(2)从scriptfile文件中读取命令,对file文件进行操作。awk -f scriptfile fil原创 2017-09-01 19:17:23 · 185 阅读 · 0 评论 -
Cookie和Session的区别与联系
1、为什么会有Cookie和Session的出现:因为当我们在访问浏览器时,服务器不会为客户端保存它上一次访问的内容,每一次访问都是独立的。为了方便用户的访问,所以就出现了这两个机制,使访问服务器时可以保存以前访问的内容。2、Cookie:Cookie是由服务器端生成的,并发送给客户端,然后保存在本地。Cookie可以让原创 2017-09-05 17:26:30 · 236 阅读 · 0 评论 -
shell脚本编程(二)------面试题
1、指定目录下的所有的文件名#!/bin/bashdata=$(find ~ -name $1) //找到文件夹所在的目录echo $datacd $datals2、统计日志文件a.log中有多少行包含error#!/bin/bashcat $1 | grep -i -c '\' 注意:-i :忽略大小写的匹配 -c:输出总共匹配到多少行原创 2017-09-04 16:18:18 · 381 阅读 · 0 评论 -
shell脚本编程(一)
1、注意:(1)在shell脚本中退出码为0,表示执行成功,非0表示执行不成功(与C语言相反)。(2)内置命令:执行时不会创建子进程,相当于执行函数(cd ../echo)。(3)shell脚本中变量没有类型,默认都是字符串。(4)$?表示上条指令的退出码。2、条件测试:test/[ (1)测试一个条件是否成立,成立该命令的退出码为0,否则为1。(2)eq:相等 ne原创 2017-09-04 12:39:35 · 370 阅读 · 0 评论 -
线程池的实现
为什么要使用线程池:因为线程的创建和销毁占了大量的CPU等系统资源,使用线程池可以解决这种情况,提高服务器的性能。线程池的思想:(1)先在内存中开辟出一些数目固定的线程。(2)当请求到达时,从线程池中选择一个空闲的线程来服务,服务完成时,线程放入线程池。(3)当请求到答时,没有空闲的线程,将请求放到任务队列中,等有空闲的线程时在处理。原创 2017-07-29 14:47:35 · 232 阅读 · 0 评论 -
为什么fork()2次会避免产生僵尸进程
什么是僵尸进程:用fork()创建子进程后,子进程已终止但父进程没有对它进行善后处理,那么子进程的进程描述符就一直保存在内存中,子进程就是僵尸进程。怎么产生僵尸进程:1.父进程没有SIGCHLD信号处理函数,也就是没有调用wait()/waitpid()来获取子进程的退出状态,也就没存对进程描述符进行处理。2.父进程有调用wait()/waitpid()函数,但当子进程已终止时父进程还原创 2017-07-07 00:46:04 · 1000 阅读 · 0 评论 -
socketpair
1.int socketpair(int domain, int type, int protocol, int fd[2]); //创建未命名的全双工管道,可以在一个主机上通信,也可以在网络上通信domain(套接字的域):AF_LOCAL 用于在一个主机上通信 AF_INET 用于在网络上通原创 2017-07-05 00:28:07 · 372 阅读 · 0 评论 -
可重入函数与线程安全的区别与联系
可重入函数:主要用于多任务环境中,在函数执行任何时刻中断它,操作系统转而执行其他程序,从其他程序返回,继续执行这个函数并且不会出现错误。也就是它只使用自身栈上的数据,并不依赖任务环境(全局变量,static)。如果使用全局变量,当多个进程调用这个函数,会产生不可预估的结果。特点:(1)多次调用不会出错,不用担心数据被破坏。(2)任何时刻都可以被中断。数据不会丢失。(3)只使用局部变原创 2017-07-13 18:10:08 · 333 阅读 · 0 评论 -
文件I/O(不带缓存)++标准I/O(带缓存)
概念: 不带缓冲I/O:指每个read和write都调用内核中的一个系统调用。也指在用户区没有缓存,在内核还是有缓存。在进行写操作时,将数据先复制到内核的缓冲区,然后排入对鞋。最后再写到磁盘。比如:要写20个字节,将要调用20次的write。 产生的问题:一次写多,多次调用系统调用,效率低下。 带缓冲I/O:指在系统调用上多加了一个缓冲区,来减少系统调用。原创 2017-07-04 00:08:13 · 399 阅读 · 0 评论 -
进程程序替换------>exec 函数家族
调用exec并不创建新进程,只是用磁盘上的新程序替换了当前进程的正文段,数据段,堆段,栈段。1.int execl(const char* pathname,const char* arg,....../* (char*)0 */);int main(){ pid_t id=fork(); if(id==0) { execl("/bin/ls","ls","-a","-l原创 2017-07-02 13:36:18 · 288 阅读 · 0 评论 -
剑指offer----链表中环的入口节点
题目:一个链表中包含环,找出环的入口点。1.判断链表是否带环??定义一个快指针,每次走两步;定义一个慢指针,每次走一步,如果他们相遇,就说明链表带环。2.在求环的入口点??L-a-x为快指针到入口点的距离。如公式可知:即让慢指针从链表头结点开始走,快指针不变,当他们相遇时,就是环的入口点。ListNode* EntryNodeOfLoop(ListNode* p原创 2017-04-24 01:28:32 · 267 阅读 · 0 评论 -
工具篇1------sed
1、sed:流编辑器,从文件中一行一行的读取,读到模式空间中,然后进行正则匹配,如果匹配到,就进行相应的action;如果不匹配,就显示或扔掉;然后继续读取...2、sed为Basic模式。(+ ? () | {} 为普通字符含义)选项/动作:p: 打印,把匹配到的和没匹配到的都显示。-n: 只显示匹配到的。d: 删除满足正则匹配的那一行。-i: sed不会修改文件原创 2017-04-22 20:23:41 · 191 阅读 · 0 评论