Linux
文章平均质量分 82
谷大宝
To be a better man !
展开
-
Linux下文件权限问题
首先,文件权限的访问者分为三类:A:文件和文件目录的所有者,B:文件和文件目录的所有者所在组的用户,C:其他用户。 下面我们来看看文件访问的基本权限:1.读权限:Read对文件而言,具有读取文件内容的权限;对于目录来说,具有浏览该目录信息的权限。2.写权限:Write对于文件而言,具有修改文件内容的权限;对于目录来说具有删除移动目录内文件的权限。3.执行权限:execute对文件而言原创 2017-03-24 11:10:54 · 822 阅读 · 0 评论 -
进程等待及子进程异步等待方式
首先我们来看两个函数,wait和waitpid函数。 一个进程在终止时会关闭所有的文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息;如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。 当一个进程正常或异常终止时,内核就原创 2017-06-15 12:33:22 · 383 阅读 · 0 评论 -
基于TCP协议服务器
socket编程: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思,因此用来描述网络连接的一对一关系。原创 2017-06-25 22:21:17 · 215 阅读 · 0 评论 -
Linux工具之grep&&sed&&awk
grep: grep是一种行过滤工具,我们经常会用grep在一个文件中找出包含某些字符串的行,比如在头文件中中找出一个宏定义。但是grep还可以找出符合某个模式(Pattern)的一类字符串。 grep的一般格式为:grep [选项] 基本正则表达式 [文件]常用的grep选项有:-E:扩展正则匹配-R:递归是查询-i:忽略大小写-q:安静模式匹配,不显原创 2017-07-03 15:56:59 · 392 阅读 · 0 评论 -
eval调研
eval可以将字符串生成执行语句,和SQL的exec()类似。eval是Javascript内置函数,用于计算字符串表达式的值。例如eval("2+3")返回的是5。 Linux中,shell中的eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。原创 2017-06-30 16:10:22 · 219 阅读 · 0 评论 -
进程间通信—信号量
信号量的本质是一种数据结构操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识,信号量在此过程中负责数据结构的互斥,同步等功能。 当请求一个使用信号量来表示的资源时,进程需要先读取信号量的值来判断资源是否可用。大于0,资源可以请求,等于0,无资源可用,进程会进入睡眠状态直至资源可用。当进程不再使用一个信号量控原创 2017-06-19 17:26:22 · 274 阅读 · 0 评论 -
进程间通信—消息队列
消息队列 消息队列提供了一种从一个进程向另一个进程发送数据块的方法。每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。消息队列与命名管道有一样的不足,就是每个消息的最大长度是有上限的,每个消息队列的总的原创 2017-06-27 21:29:55 · 256 阅读 · 0 评论 -
Linux下file_struct以及文件描述符
首先我们来简单看看进程与程序的区别 程序可以理解为硬盘上的普通二进制文件;进程是加载到内存中的二进制文件,除了加载到内存中的二进制文件外,还附有所有对于该二进制文件描述信息的结构体,描述该进程的结构体叫PCB(进程控制块),这在前文中已经介绍,在这就不在讨论。对于程序与进程,也就可以简单地理解为是否有PCB(进程控制块)。下面我们再来讨论PCB与file_struct的关系。原创 2017-05-21 09:51:31 · 3526 阅读 · 0 评论 -
进程死锁
首先,我们来了解一下什么是进程死锁。 所谓进程死锁,就是如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的的发生,也就是进程不能实现同步。 产生死锁的原因: 1.系统资源不同。 2.进程(线程)推进的顺序不当。 3.资源分配不当。 产生死锁的四个必要条件: 1.互斥条件:资源不能共享,只能由一原创 2017-06-15 20:21:51 · 279 阅读 · 0 评论 -
浅谈进程与task_struct
进程的概念 OS:程序的一个执行实例。正在执行的程序。能分配处理器并由处理器执行的实体。 内核观点:担任分配系统资源(CPU时间,内存)的实体。 进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)和代码相关联的数据集。进程是一种动态描述,但是并不代表所有的进程都在运行。进程在内存中因策略或调度需求,会处于各种状态,这个我们到后面再来讨论。原创 2017-04-21 14:23:35 · 349 阅读 · 0 评论 -
Linux中find指令
当我们想要在Linux中查找某个文件,但不知道放哪里了,我们可以使用下面的命令来搜索: which 查找可执行文件位置 whereis 查找文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 当然,这里我们只讨论fi原创 2017-03-29 20:29:15 · 337 阅读 · 0 评论 -
Linux系统下粘滞位的使用
粘滞位(Stickybit),或粘着位,是Unix文件系统权限的旗标。最常见的用法在目录上设置粘滞位,如此一来,只有目录内文件的所有者或者root才可以删除或移动该文件,如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。 如下图所示:原创 2017-03-29 18:00:43 · 302 阅读 · 0 评论 -
进程间通信—管道
进程间通信本质上让不同的进程拥有一份公共的资源。管道则是进程间通信的一种,分为匿名管道和命名管道。 管道特点: 1.管道只能用于单向通信。 2.匿名只能用于有血缘关系之间的通信,命名管道也能用于无血缘关系之间的通信 。 3.面向数据流通信。 4.管道的生命周期随进程。进程退出,管道也随之释放。 5.管道访问资源时按顺序访问,父子进程同步。管道其实是一种最基本的IPC机制原创 2017-06-27 17:20:46 · 287 阅读 · 0 评论