linux
文章平均质量分 52
xtf__moji
这个作者很懒,什么都没留下…
展开
-
国产操作系统和Linux
一,简介现在市面上有很多国产操作系统,都是在linux基础上做二次开发。现在很多单位也在采购,平时也在使用,那就简单了解一下,以下内容,都属于瞎胡说。开发操作系统,有两条路线:1,从底层开始自己设计。那要搞一大堆东西了,任务调度,内存管理,进程管理,文件系统,需要很长时间。2,在开源系统上做二次开发。以现有的Linux为基础,丰富图形界面,模仿windows系统。估计很多人会觉得,这就是换个皮,没什么技术含量。但是,从现实角度考虑,这条路是对的,快速开发出产品,满足使用,然后再去做一些深层次原创 2021-06-09 21:12:22 · 1875 阅读 · 2 评论 -
tomcat部署的一些优化措施:软连接和增量更新
最近遇到2个问题蛮纠结,经蔡老师指点,顺利解决了。^_^tomcat部署过程部署更新的时候,先将eclipse工程打包成war包,在服务器上删除原先整个目录,使用bin/start.sh,解压war包,启动服务。在这个过程中,webContent里面的内容会复制到webapps目录下对应的工程文件夹。矛盾的地方有时候webContent里面的文件很多,有几个GB,如...原创 2019-12-18 17:43:01 · 956 阅读 · 1 评论 -
linux文件 软连接
linux 软连接当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个目录下都放一个相同的文件,我们只要在其它的目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。软连接,也叫符号连接(Symbolic Link)。软链接文件类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。...原创 2019-12-19 11:26:35 · 248 阅读 · 0 评论 -
Linux 执行定时任务的方式-- crontab命令
应用场景在实际工作中,我们往往需要定时做一些任务,例如: 定时重启apache tomcat服务器、定时提供报表、夜间进行交易支付对账等。执行定时任务,有两种方法:第一种方法,自己写个daemon进程,时间到了,执行想要跑的任务。这种方式比较麻烦,需要自己写一大堆程序。第二种方法,使用linux crontab命令。只要一行命令就可以了,方便。crontab介绍Lin...原创 2019-12-09 10:52:33 · 228 阅读 · 0 评论 -
Linux统计文本中某个字符串出现的次数
Linux统计文本中某个字符串出现的次数https://www.cnblogs.com/zhangww/p/10540140.html1.VIM用vim打开文件,然后输入::%s/hello//gn图中的例子就是统计文本中”hello”字符串出现的次数2.GREP配合wc命令 统计在文件中出现的行数grep -o "hello" demo.lo...原创 2019-09-03 18:32:13 · 523 阅读 · 0 评论 -
Linux 输出重定向>和>>的区别是什么?
Linux 输出重定向>和>>的区别是什么?https://zhidao.baidu.com/question/274680094.html>: 会重写文件,如果文件里面有内容会覆盖。>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件。(追加)>>:追加文件,也就是如果文件里面有内容会把新内容追加到文件尾。...原创 2019-09-03 18:30:46 · 3381 阅读 · 0 评论 -
NIO与IO的区别
nio是new io的简称,从jdk1.4就被引入了。现在的jdk已经到了1.6了,可以说不是什么新东西了。但其中的一些思想值得我来研究。这两天,我研究了下其中的套接字部分,有一些心得,在此分享。 首先先分析下:为什么要nio套接字? nio的主要作用就是用来解决速度差异的。举个例子:计算机处理的速度,和用户按键盘的速度。这两者的速度相差悬殊。如果按照经典的方法:一个用户设定一个线程,专门转载 2015-01-15 19:15:28 · 865 阅读 · 0 评论 -
如何实现原子性
为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条指令,保证了原子性,即使是多处理器平台,访问内存的总线周期也有先后,一个处理器上的交换指令执行时另一个处理器的交换指令只能等待总线周期。现在我们把lock和unlock的伪代码改一下(以x86的xchg指令为例):lock: movb $0, %al xchgb原创 2015-02-01 23:16:44 · 1688 阅读 · 0 评论 -
线程同步题目
/*子线程循环5次,接着主线程循环10次,接着又回到子线程循环5次,接着再回到主线程又循环10次,如此循环6次,试写出代码。*/#include #include #include #include #include //如果只有一个mutex,在创建了子线程,主线程休眠后,让子线程执行,子线程执行了10次后,休眠。//过了这个休眠时间,调度线程执行的时候,如果系统任务多原创 2014-02-15 22:42:29 · 1035 阅读 · 0 评论 -
条件变量解惑
条件变量是用来等待而不是用来上锁的,通常条件变量和互斥锁同时使用。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变的互斥锁。那么在另外的线程发出条件改变的信号之后呢?如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,重新获得互斥锁,重新评价条件。(被唤醒原创 2014-02-16 17:05:00 · 771 阅读 · 0 评论 -
进程线程笔试题
原文链接:http://blog.csdn.net/cq20110310/article/details/9140307(网易笔试题)1.请简述使用互斥量(Mutux)和临界区(CriticalSection) 作为同步方法的区别及应用场景解答:互斥量与关键段的行为完全相同。互斥量是内核对象,而关键段是用户模式下的同步对象。(除非对资源的争夺非常激烈,这种情况下转载 2014-02-15 16:19:22 · 4208 阅读 · 0 评论 -
gdb常用命令
调用gdb编译需要在gcc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程转载 2014-02-15 22:19:24 · 630 阅读 · 0 评论 -
linux 查看目录下文件个数
linux 查看目录下文件个数https://blog.csdn.net/caideb/article/details/81204097统计某文件夹下文件的个数 ls -l |grep "^-"|wc -l统计某文件夹下目录的个数 ls -l |grep "^d"|wc -l统计文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc ...原创 2019-09-03 18:33:27 · 290 阅读 · 0 评论 -
linux比较两个文件的不同
linux比较两个文件的不同(6/21) - konglingbin - 博客园https://www.cnblogs.com/klb561/p/9211431.html方法1,common先排序,然后使用common,只显示不同的行。方法2,diff先用sort命令进行排序,接着使用diff,找出不同的行。方法一:使用common命令。comm命令是一个非...原创 2019-09-03 18:35:11 · 11899 阅读 · 0 评论 -
日志跟踪显示,使用tail 命令
Linux tail 命令https://www.runoob.com/linux/linux-comm-tail.htmltail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。...原创 2019-09-03 18:37:43 · 594 阅读 · 0 评论 -
linux 删除行首空格
linux 删除行首空格https://www.cnblogs.com/shiyiwen/p/5609702.html在UNIX上,使用sed命令进行字符串处理中,常常遇到的问题,就是行首行尾的空格怎么删除。下面介绍sed是怎样实现的,当然awk同样可以。1:行首空格sed 's/^[ \t]*//g'说明:第一个/的左边是s表示替换,即将空格替换为空第一个...原创 2019-09-22 13:31:02 · 1663 阅读 · 1 评论 -
linux查找目录下的所有文件中是否含有某个字符串
linux查找目录下的所有文件中是否含有某个字符串https://zhidao.baidu.com/question/1884904753403548188.html1、可以使用grep命令来查找当前目录下所有文件中包含的某个特定字符。2、示例:查找当前目录下所有带有set的文件 。grep -rn "set" *说明:-r 是递归查找-n 是显示行号*...原创 2019-09-22 13:28:46 · 177 阅读 · 0 评论 -
Linux下批量替换文件内容和文件名(转)
Linux下批量替换文件内容和文件名(转)https://www.cnblogs.com/EasonJim/p/7965559.html1、批量替换指定多个文件的文件内容在指定目录/your/path里,查找包含old_string字符串的所有文件,并用new_string字符串替换old_string字符串。sed -i "s/old_string/new_string/...原创 2019-09-22 13:12:21 · 1697 阅读 · 0 评论 -
Linux vi/vim使用方法
Linuxvi/vim使用方法https://www.cnblogs.com/xinbaby829/p/6632117.html1)命令行模式commandmode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到lastlinemode。2)插入模式(Insertmode)只有在Insertmode下,...原创 2019-09-22 13:09:09 · 194 阅读 · 0 评论 -
linux中$()和${}的区别
linux中$()和${}的区别https://zhidao.baidu.com/question/1639184223947684500.html$()是执行里面的代码得到的结果${}是参数,{}是为了避免影响后面的内容,比如参数${a}a这样连着使用。如果不用{},系统就会识别成$aa了。Linux中${}、$()、$(())的功能https://blog.cs...原创 2019-09-05 19:26:07 · 470 阅读 · 1 评论 -
linux中grep命令
linux中grep命令https://www.cnblogs.com/fulucky/p/8023025.htmlgrep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary 文件以 text...原创 2019-09-03 19:00:20 · 162 阅读 · 0 评论 -
linux 管道符 |
linux 中 ‘|’的作用是什么?https://zhidao.baidu.com/question/556066419.html?ivk_sa=1022817r利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面...原创 2019-09-03 18:47:29 · 443 阅读 · 0 评论 -
linux_shell_awk 处理excel
linux_shell_awk 处理 文本文件 并导入excel - dearwind153的专栏 - CSDN博客https://blog.csdn.net/dearwind153/article/details/52046301怎么shell对Excel进入读写数据https://zhidao.baidu.com/question/506383246.html...原创 2019-09-03 18:39:25 · 3685 阅读 · 0 评论 -
什么时候mutex不够,还需要condition variable?
原文链接:http://blog.csdn.net/scanerki/article/details/8850282假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像转载 2014-02-10 20:46:55 · 1350 阅读 · 0 评论 -
同步机制
原文参考:http://www.cnblogs.com/sooner/p/3191931.html为了能够有效的控制多个进程之间的沟通过程,保证沟通过程的有序和和谐,OS必须提供一定的同步机制保证进程之间不会自说自话而是有效的协同工作。比如在共享内存的通信方式中,两个或者多个进程都要对共享的内存进行数据写入,那么怎么才能保证一个进程在写入的过程中不被其它的进程打断,保证数据的完整性呢?转载 2014-02-11 01:04:18 · 804 阅读 · 0 评论 -
linux epoll模型
原文链接:http://yjtjh.blog.51cto.com/1060831/294119Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。1、为什么select落后首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__转载 2014-01-31 21:30:38 · 803 阅读 · 0 评论 -
linux系统编程之错误处理:perror,strerror和errno
原文链接:http://www.cnblogs.com/mickole/p/3181097.html1,在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在头文件中声明如下:extern int errno;errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候转载 2014-02-03 19:53:57 · 904 阅读 · 0 评论 -
Linux启动新进程的几种方法及比较
原文链接:http://blog.csdn.net/ljianhui/article/details/10089345有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。一、system函数转载 2014-02-03 18:53:29 · 810 阅读 · 0 评论 -
linux系统编程之基础必备(七):read/write函数与(非)阻塞I/O的概念
原文链接:http://blog.csdn.net/jnu_simba/article/details/8951098一、read/write 函数read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count);返回值:成功返回读取的字节数,出错返回-1并转载 2014-02-01 16:21:42 · 1562 阅读 · 0 评论 -
Linux进程间通信——使用消息队列
原文链接:http://blog.csdn.net/ljianhui/article/details/10287879下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据转载 2014-02-03 15:13:59 · 682 阅读 · 0 评论 -
Linux进程间通信——使用命名管道
原文链接:http://blog.csdn.net/ljianhui/article/details/10202699在前一篇文章——Linux进程间通信——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介绍进程的另一种通信方式——转载 2014-02-02 23:05:13 · 705 阅读 · 0 评论 -
Linux 文件操作——系统调用和标准I/O库
原文链接:http://blog.csdn.net/ljianhui/article/details/10055665一、什么是文件在讲述文件操作之前,我们首先要知道什么是文件。看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等。但是在Linux中,文件的概念还远不止于这转载 2014-02-02 19:00:41 · 779 阅读 · 0 评论 -
Linux进程间通信——使用信号量
原文链接:http://blog.csdn.net/ljianhui/article/details/10243617这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防转载 2014-02-02 00:54:20 · 892 阅读 · 0 评论 -
Introduction to non-blocking I/O
原文链接:http://www.kegel.com/dkftpbench/nonblocking.htmlIntroduction to non-blocking I/OPrograms that use non-blocking I/O tend to follow the rule that every function has to return immediately, i.e翻译 2014-01-31 17:49:19 · 853 阅读 · 0 评论 -
Linux 句柄是什么 ?
1.句柄就是一个标识符,只要获得对象的句柄,我们就可以对对象进行任意的操作。2.句柄不是指针,操作系统用句柄可以找到一块内存,这个句柄可能是标识符,map的key,也可能是指针,看操作系统怎么处理的了。fd算是在某种程度上替代句柄吧;Linux 有相应机制,但没有统一的句柄类型,各种类型的系统资源由各自的类型来标识,由各自的接口操作。3.http:/转载 2014-01-29 16:49:21 · 3577 阅读 · 0 评论 -
linux系统编程之基础必备(三):文件描述符file descriptor与inode的相关知识
原文链接:http://blog.csdn.net/jnu_simba/article/details/8806654每个进程在Linux内核中都有一个task_struct结构体来维护进程相关的 信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块 (PCB,Process Control Block)。task_struct中有一个转载 2014-02-01 15:50:50 · 860 阅读 · 0 评论 -
Linux进程间通信——使用信号
原文链接:http://blog.csdn.net/ljianhui/article/details/10128731一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。转载 2014-02-02 01:49:20 · 745 阅读 · 0 评论 -
操作系统如何实现mutex
参考 《linux c编程一站式学习》Mutex的两个基本操作lock和unlock是如何实现的呢?假设Mutex变量的值为1表示互斥锁空闲,这时某个进程调用lock可以获得锁,而Mutex的值为0表示互斥锁已经被某个线程获得,其它线程再调用lock只能挂起等待。那么lock和unlock的伪代码如下:lock: if(mutex > 0){ mutex = 0; retu原创 2014-02-10 17:37:52 · 11078 阅读 · 5 评论 -
linux select()函数分析
原文链接:http://blog.csdn.net/zi_jin/article/details/4214359Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某转载 2014-02-08 19:12:55 · 1053 阅读 · 0 评论 -
Linux 进程状态说明
原文链接:http://blog.csdn.net/tianlesoftware/article/details/6457487 Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 在下文将对进程的R、S、D、T、Z、X 六种状态做个说明。 PROCESS STATE CODES转载 2014-02-09 17:57:12 · 910 阅读 · 0 评论