Linux&&操作系统
文章平均质量分 90
Julinus
希望在这里和大家一起学习交流。
展开
-
【Linux】Shell复习总结一
一、测试类型: 数测试:-eq -ne -lt -gt -le -gt 字符串测试: ==(=) != -z -n 文件测试:-d -f -b -c二、循环语句1、类C循环 Shell脚本的for循环结构和C语言很不一样, 但是他有类似于C的写法,先来看看这种: for (( i=0;i<10;i++ )) ...原创 2018-08-27 09:01:43 · 263 阅读 · 0 评论 -
【Linux】基础与命令一
一、Linux 系统目录结构 1、 / 根目录 2、/bin bin 是binary 的缩写,这个目录存放着经常的使用命令 3、/dev 是指Device的 缩写,该目录下存放的是Linux的外部设备,在Linux 中访问设备的方式和访问文件的方式是相同的 4、/etc原创 2017-11-23 23:51:11 · 1135 阅读 · 4 评论 -
【Linux】好用的数据处理工具 awk
awk是一个非常棒的数字处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理。运行效率高,而且代码简单,对格式化的文本处理能力超强。先来一个例子: 文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值。用awk来实现只需要一句话就可以搞定$cat a1.021 331#.ll 442.53 6ss 7awk '转载 2017-12-04 13:21:49 · 316 阅读 · 0 评论 -
【Linux】sed工具
sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件 常用选项: -n∶取消默认的输出,使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来 -e∶进转载 2017-12-04 13:17:49 · 614 阅读 · 0 评论 -
【Linux】正则表达式
一、什么是正则表达式? 简单的说,正则表达式就是处理字符串的方法,它是以为单位来进行字符串的处理行为,正则表达式通过一些特殊的符号的辅助,可以让用户轻易达到查找、删除、替换某种特定字符串的处理程序。二、字符类 字符 含义原创 2017-12-04 13:07:04 · 204 阅读 · 0 评论 -
【Linux】系统IO和标准C库IO函数
磁盘为什么这么慢? 大部分硬盘是机械硬盘,读取寻道时间和写入寻道时间都是在毫秒级(ms)、相对于内存来说读写速度都非常快,因为内存术语电子设备,读写速度都是纳秒(ns)级别的。 1s=1000ms 1s=1000,原创 2017-11-13 22:34:41 · 2286 阅读 · 0 评论 -
【Linux】IPC主题三 -------- 信号二(signal)
一、信号的产生 1、终端按键产生信号 Ctrl + c 2) SIGINT (终止/中断) “INT” --------------- Interrupt Ctrl + z原创 2017-12-11 17:51:32 · 1002 阅读 · 0 评论 -
【Linux】IPC主题三 -------- 信号一(signal)
一、信号的概念 信号在我生活中随处可见,如:古代战争摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪 ....... 它们都有共性: 1、简单 2、不能携带大量信息原创 2017-12-10 10:24:07 · 408 阅读 · 0 评论 -
【Linux】IPC主题 二-------- 共享内存(mmap)
一、mmap 函数 1、函数原型: #include void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); 2、返回值: 若执行成功: 返回创建的映射区的原创 2017-12-09 12:05:56 · 542 阅读 · 0 评论 -
【Linux】Shell 编程一(初始 Shell)
一、Shell 历史 shell 的作用是解释执行用户的命令,用户输入一条命令,shell 解释器就执行一条,这种方式成为交互式,shell还有一种执行命令的方式成为批处理(Batch),用户事先写一个shell脚本(Shell Script),其中有很多条命令,让 shell 一次把这些指令执行完,而不必一条条的敲命令,shell脚本和编程语言很相似,也有变量和流程控制语句原创 2017-11-29 21:04:25 · 216 阅读 · 0 评论 -
【Linux】gcc编译过程及操作
一、gcc 编译过程 假设我们已经建立好 一个 hello.c 文件,然后在下面介绍下 gcc 的编译过程原创 2017-11-29 21:34:17 · 353 阅读 · 0 评论 -
【Linux】进程控制—exec函数族
fork 创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种 exec 函数以执行另一个程序。当进程调用一种 exec 函数时,该进程的用户空间代码和数据完全被新的程序替换,从新程序的启动例程开始执行。调用 exec 并不创建新的进程 , 所以调用 exec 前后该进程的 id 并未改变。 将当前进程的 .text、.data 替换为加载原创 2017-11-21 15:05:48 · 1179 阅读 · 0 评论 -
【Linux】IPC主题一 -------- 管道
一、IPC简介 Linux 环境下,进程地址控件相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程 1 把数据从用户空间拷贝到内核缓冲区,进程 2 在从内核缓冲区把数据读走,内核提供的这种机制称为 进程件通信(IPC)。原创 2017-12-06 19:09:41 · 263 阅读 · 0 评论 -
Linux目录操作—函数详解
今天小编在这里给大家详细介绍下Linux里面的木操作函数,这里全都是干货哦哦哦。各位小主赶紧来这里瞧瞧哦哦哦。走过路过千万不要错过。一、chdir 函数 1、作用:修改当前进程的路径 2、函数原型: #include int chdir(const char *path);原创 2017-11-15 20:35:26 · 3317 阅读 · 0 评论 -
【Linux】fork函数的理解
fork 函数理解 先给大家简单介绍下 fork 函数1、函数原型: #include pid_t fork(void);2、函数功能: 创建一个子进程3、返回值: 若函数执行失败,返回 - 1;若执行成功: (1)、父进程返回子进程的ID(非负) (2)、子进程返原创 2017-11-20 18:15:27 · 477 阅读 · 2 评论 -
【Linux】进程总结
一、什么叫做进程和程序? 1、程序: 是指一个已经编译好点的二进、制文件,在磁盘上,不占用系统资源(CPU、内存、打开的文件、设备、锁......) 2、进程:是一个抽象的概念,与操作系统联系紧密。进程是活跃的程序,占用系统资源,在内存中执行(程序运行起来产生一个进程) 进程比较抽象,不容易理解。举个例子给大家分析下:原创 2017-11-19 15:58:46 · 340 阅读 · 0 评论 -
获取文件属性—stat、lstat、fstat
一、函数原型 #include #include #include int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat原创 2017-11-14 14:12:56 · 16716 阅读 · 4 评论 -
【Linux】Shell编程二(shell语法)
一、条件测试 1、test 命令 或 [ test 命令或者 [ 可以测试一个条件是否为成立,如果测试结果为真,则该命令的 Exit Status 为 0。如果测试结果为假,则命令的 Exit Status 为1(注意与 C 语言的逻辑表达式正好相反)。 用法: [ -d DIR ]原创 2017-12-01 12:53:34 · 454 阅读 · 0 评论 -
【Linux】Ubuntu 14.04下搭建 C/C++开发环境
之前写代码都是在 Windows操作系统下开发程序的,也用过很多编辑器例如 Visual Studio 2015/2013/201/2012,Dev,VC6.0,NetBeans。当然前几个是在Windows下的C++开发环境。最后一个是Java的开发环境。但是,使用Linux搭建C/C++环境,好多人都为配置Ubuntu而烦恼。小编之前使用Linux写程序是在 VirtualBox 下搭建的 C原创 2017-11-25 02:24:47 · 11811 阅读 · 2 评论 -
【Linux】基础与命令三—vim的使用
一、vim 的发展 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开原创 2017-11-26 10:57:47 · 297 阅读 · 0 评论 -
UNIX环境编程学习笔记----Libpcap库
.Libpcap简介 Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。 著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。 Libpcap提供了用户级别的网络数据包捕...转载 2018-06-23 12:55:56 · 395 阅读 · 0 评论 -
阻塞和非阻塞,同步和异步 总结
阻塞和非阻塞,同步和异步1 例子故事:老王烧开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。老王想了想,有好几种等待方式1.老王用水壶煮水,并且站在那里,不管水开没开,每隔一定时间看看水开了没。-同步阻塞老王想了想,这种方法不够聪明。2.老王还是用水壶煮水,不再傻傻的站在那里看水开,跑去寝室上网,但是还是会每隔一段时间过来看看水开了没有,水没有开就走人。-同步非阻塞老...转载 2018-05-23 10:44:22 · 2034 阅读 · 0 评论 -
什么是堆和栈,它们在哪儿?
没有看到转载者的源链接地址,所以这里就先直接复制了一下,不过内容很有营养。相信原作者不会计较这些,愿意与大家分享学习所得!!问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(...转载 2018-05-21 20:08:51 · 4896 阅读 · 1 评论 -
Linux下简单实现的线程池
thread_pool.h/************************************************************************* > File Name: thrread_pool.h > Author: arrayli > Mail: 1374367549@qq.com > Created Time...原创 2018-03-04 21:54:16 · 529 阅读 · 0 评论 -
【Linux】多路 IO转接服务器 — select
多路IO转接服务器也叫做多任务IO服务器。该类服务器实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件。主要使用的方法有三种: (1)、select (2)、poll原创 2018-01-10 12:58:03 · 523 阅读 · 0 评论 -
【Linux】高并发服务器模型(多进程模型和多线程模型)
多进程并发服务器使用多进程并发服务器时要考虑以下几点: 1. 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符) 2. 系统内创建进程个数(与内存大小相关) 3. 进程创建过多是否降低整体服务性能(进程调度) 服原创 2018-01-05 20:03:13 · 1726 阅读 · 0 评论 -
【Linux】多路 IO转接服务器 — poll
poll#include int poll(struct pollfd *fds, nfds_t nfds, int timeout); struct pollfd { int fd; /* 文件描述符 */ short events; /* 监控的事件 */ short revents; /* 监控事件中满足条件返回的事件 */ }; POLLIN 普通或带外原创 2018-01-11 16:27:55 · 216 阅读 · 0 评论 -
【Linux】进程间同步(进程间互斥锁、文件锁)
一、互斥量 mutex 进程间也可以使用互斥锁 ,来达到同步的目的。但应在 pthread_mutex_init 初始化之前,修改其属性为进程间共享。mutex 的属性修改函数主要有以下几个。 主要应用函数: 1、pthread_mutexattr_t mutexattr 类型: 用于定义互斥锁的属性。原创 2017-12-31 17:07:53 · 31054 阅读 · 5 评论 -
【Linux】深入理解线程(线程同步、互斥量mutex、死锁、读写锁、条件变量、信号量)
一、同步概念 1、线程同步: 同步即协同步调,按预定的先后次序运行。 线程同步,只一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时,其他线程为保证数据一致性,不能调用该功能。 举例 1 :银行存款 5000。柜台,折:取 3000 ;提款机,卡:取 3000。 剩余:2000。原创 2017-12-30 21:20:06 · 1549 阅读 · 0 评论 -
【Linux】初识线程
一、什么是线程 1、LWP:light weight process 轻量级的进程,本质仍是进程(在 Linux 环境下) 2、进程:有独立地址空间,拥有 PCB 3、线程:也有 PCB,但没有独立的地址空间(共享) 4、区别:在于是否共享地址空间。例如:独居(进程),合租(线程)。 5、在 Linux原创 2017-12-24 10:22:44 · 244 阅读 · 0 评论 -
【Linux】回收子进程—wait/waitpid
一、孤儿进程 父进程先于子进程结束,则子进程称为孤儿进程,子进程的父进程成为 init 进程,称 init 进程领养进程孤儿进程,init 进程称为孤儿院。 #include#include#includeint main(void){ pid_t pid; pid = fork(); if( pid == -1 ) { perror("f原创 2017-12-05 23:43:33 · 3953 阅读 · 0 评论 -
【Linux】终端/进程组/会话/守护进程
一、终端 1、什么是终端? 在 Linux 系统中,用户通过终端登录到系统后得到一个 shell 进程,这个终端成为 shell 进程的控制终端,进程中,控制终端是保存在 PCB 中的信息,而 fork 会复制 PCB 中的信息,因此右 shell 进程启动的其他进程的控制终端也是这个终端。在默认情况下(没有重定向),每个进程的标准输入原创 2017-12-18 17:32:57 · 951 阅读 · 0 评论 -
【Linux】文件操作总结
已经四天都没有更新博客了,今天小编复习下文件操作相关函数的使用。大家可以来这里和小编一起复习哦哦。一、accsee 函数 1、作用: 测试指定文件是否拥有某种权限。 2、函数原型: #include int access(con原创 2017-11-19 09:42:01 · 314 阅读 · 0 评论 -
makefile详解
1、makefile的定义 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。2、makefile的命名 (1)、makefile原创 2017-11-11 20:34:45 · 1709 阅读 · 0 评论 -
Linux之静态库和动态库的制作
静态库 1、静态库的命名规则: (1)、lib+库的名字+.a (2)、libmytest.a 库的名字 红色标记部分为库的名字,左右两边为 静态库的标准格式 2、制作步骤: (1)、生原创 2017-11-11 09:26:20 · 284 阅读 · 0 评论