![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 76
fyh508
这个作者很懒,什么都没留下…
展开
-
vim的配置
简单的vim配置:在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,那么我们可以在自己的工作目录下建立一个“.vimrc”文件将配置vim的命令写进去来配置我们的vim。原创 2017-02-18 15:34:09 · 453 阅读 · 0 评论 -
进程的概念及编程1
进程的概念: 进程是程序的一个执行实例,正在执行的程序。进程的两个基本元素是程序代码(可能被执⾏行相同程序的其他进程共享)和代码相关联的数据集。进程是⼀一种动态描述,但是并不代表所有的进程都在运⾏行。(进程在内存中因策略或调度需求,会处于各种状态)内核的观点:担当分配系统资源(CPU时间,内存)的实体。其中子进程id(PID) 父进程id(PPID)进程的描述:原创 2017-08-12 13:46:38 · 490 阅读 · 0 评论 -
Linux编程5中IO模型
5种IO模型阻塞I/O 非阻塞I/O I/O复用 信号驱动I/O 异步I/O 1.阻塞I/O模型 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。如果数据蔑准备好,一直等待。数据准备好了,从内核拷贝到用户空间。IO函数返回成功指示。2.非阻塞I/O模型 我们把一个套接口设置为非阻塞就是告诉内核,当所请求的I/O操作无法完成时,不要将进程睡眠,而是返原创 2017-08-12 13:39:09 · 291 阅读 · 0 评论 -
多线程编程1
线程的概念:我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,在一个进程的地址空间中执行多个控制流程的时候,就用到线程了,如:实现一个图像界面的下载软件,需要和用户交互,等待处理用户的鼠标键盘事件,又需要同时下载多个文件,等待和处理多个网络主机发来的数据,这些任务都需要一个“等待-处理”的循环,可以用多线程实现,一个线程专门负责与用户交互,另几个线程每原创 2017-08-12 13:38:01 · 282 阅读 · 0 评论 -
shell之正则表达式
引言&&grep以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义。其实grep还可以找出符合某个模式(Pattern)的子类字符串。例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、数字、下划线、和数点或减号,email地址的每一部分可以有一个或多个x字符,例如abc.d@ef.com、1_2@987-原创 2017-08-01 17:30:25 · 428 阅读 · 0 评论 -
我是一个进程
我听说我的祖先们生活在专用计算机里, 一生只帮助人类做一件事情,比说微积分运算 了、人口统计了 、生成密码、甚至通过织布机印花 ! 如果你想在这些专用“计算机”上干点别的事儿,例如安装个游戏玩玩, 那是绝对不可能的, 除非你把它拆掉, 然后建一个全新的机器。 而我这些祖先们勉强可以称为“程序”。后来有个叫冯诺依曼的人, 非常了不起, 他提出了“存储程序”的思想, 并且把计算机分为五大部转载 2017-08-01 17:23:28 · 247 阅读 · 0 评论 -
shell脚本语法篇
条件测试:1.条件测试test或[命令test或[测试一个条件是否成立,测试为真为0测试为假为1[传递给各参数之间应该用空格隔开,命令test或[参数形式是相同的,只不过test不需要]参数,常见的命令如下:[ -d DIR ] : 如果DIR存在并且是一个目录则为真[ -f FILE ] : 如果FILE存在且是一个普通文件则为真[ -z STRING ] : 如果STR原创 2017-07-07 23:43:47 · 362 阅读 · 0 评论 -
shell脚本符号篇
hell执行脚本#!/bin/bashEcho “这是一个shell脚本”;shell脚本中用#表示注释,如果#位于第一⾏开头,并且是则例外,它表⽰该脚本使⽤后⾯指定的解释器/bin/sh解释执⾏。 第一种执行方式:chmod +x script.shShell会fork一个子进程并调⽤用exec执行./script.sh这个程序,exec系统调用应该把子进程的代码段替原创 2017-07-07 23:22:57 · 373 阅读 · 0 评论 -
llinux学习之find和touch指令
1.a/c/mtime的意义,如何使用touch更改: . linux的touch命令不常用,一般在使⽤用make的时候可能会用到,用来修改⽂件时间戳,或者新建一个不存在的文件。而每个文件在linux下面都会记录许多时间参数,其实是有三个主要的变动时间。 (1).a:access time (atime)当“该文件的内容被取用”时,就会更新这个读取时间。举例来说,我们使用cat去读原创 2017-02-16 09:27:45 · 1102 阅读 · 0 评论 -
linux下线程原理及实现
什么是线程池? 诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象转载 2017-06-03 15:05:27 · 690 阅读 · 0 评论 -
linux下执行进度条和写makefile
1.在Linux环境下实现进度条,其原理是:用sleep函数或usleep函数控制每隔多长时间输出一次,每次输出字符会比上次输出字符多一个。在此代码中,用\r而不用\n的原因:\n表示换行,即光标移到光标所在行的下一行行首位置处。\r表示回车,即光标回到光标所在行行首位置处。fflush(stdout):立刻清空缓冲区并把缓冲区内容输出。代码实现如下:2原创 2017-02-17 11:50:55 · 717 阅读 · 0 评论 -
Linux之task_struct
在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在linux转载 2017-02-19 13:37:19 · 222 阅读 · 0 评论 -
select编程
多路:多条独立的i/o流,即读是一条流(称之为读流,比如输入流),写是一条流(称之为写流,比如输出流),异常也是一条流(称之为异常流),每条流用一个文件描述符来表示,同一个文件描述符可以同时表示读流和写流。select:系统提供select函数来实现多路复用输入/输出模型。select系统调用是⽤用来让我们的程序监视多个文件句柄的状态变化的。 程序会停在select这里等待,直到被监视转载 2017-08-12 23:25:21 · 740 阅读 · 0 评论