浅墨浓香

想要天亮进城,就得天黑赶路。
随笔 - 743, 文章 - 16, 评论 - 87, 阅读 - 53万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

01 2017 档案

摘要:5. 贯穿案例2:mini shell(2) (1)己经完成的功能:pwd、cd、exit命令 (2)阶段性目标: ①env、export、echo及其他命令 ②标准输入、输出重定向">"、"<"、">>" ③设置后台进程 (3)存在问题:当mshell(后台进程)要读写终端时(如执行date时), 阅读全文

posted @ 2017-01-31 23:57 浅墨浓香 阅读(284) 评论(0) 推荐(0) 编辑

摘要:4. 前台进程组 (1)前台进程组 ①自动接受终端信号的组称为前台进程组 ②在终端通过ctrl+c等动作产生的信号首先被前台进程组接受。 ③在shell启动的若干个进程组默认是父进程所在的组为前台进程组,其他进程组则为后台进程组 ④除非是默认,否则都要通过调度才能成为前台进程组 (2)获取/设置前台 阅读全文

posted @ 2017-01-31 17:25 浅墨浓香 阅读(390) 评论(0) 推荐(0) 编辑

摘要:3. 进程组和组长进程 (1)进程组 ①一个或多个进程的集合; ②可以接受同一终端的各种信号,同一个信号发送进程组就等于发送给组中的所有进程。 ③每个进程组有唯一的进程组ID ④进程组的消亡要等到组中所有的进程结束; ⑤kill发送信号组进程组:kill -9 -进程组号(注意进程组号前的“-”) 阅读全文

posted @ 2017-01-30 23:07 浅墨浓香 阅读(279) 评论(0) 推荐(0) 编辑

摘要:2. 进程链和进程扇 (1)创建进程链 ①进程链:就是父进程创建一个子进程,创建的子进程再次创建出属于自己的子进程,这样依次往下循环,如下图所示。 ②关键实现:判断出如果是父进程则退出,保证父进程只会创建一个子进程。如果是子进程继续创建接下来的进程再退出。 【编程实验】构建进程链 //process 阅读全文

posted @ 2017-01-30 20:17 浅墨浓香 阅读(611) 评论(0) 推荐(0) 编辑

摘要:1. 守护、孤儿和僵尸进程 (1)守护进程 ①守护进程(daemon)是生存期长的一种进程。它们常常在系统引导装入时启动,在系统关闭时终止。 ②所有守护进程都以超级用户(用户ID为0)的优先权运行。 ③守护进程没有控制终端 ④守护进程的父进程都是init进程(1号进程)。 (2)孤儿进程:父进程先结 阅读全文

posted @ 2017-01-30 11:25 浅墨浓香 阅读(314) 评论(0) 推荐(0) 编辑

摘要:5. 等待函数 (1)wait和waitpid 头文件 #include <sys/types.h> #include <sys/wait.h> 函数 pid_t wait(int* status); pid_t waitpid(pid_t pid, int* status, int options 阅读全文

posted @ 2017-01-30 10:10 浅墨浓香 阅读(384) 评论(0) 推荐(0) 编辑

摘要:4. 创建进程 4.1 fork、vfork函数 (1)函数原型 头文件 #include<unistd.h> #include<sys/types.h> 函数 pid_t fork(void); pid_t vfork(void) 返回值 子进程中为0,父进程中为子进程ID,出错为-1 功能 创建 阅读全文

posted @ 2017-01-29 16:42 浅墨浓香 阅读(474) 评论(0) 推荐(0) 编辑

摘要:1. 进程查看 (1)ps命令:通常可以查看到:进程ID、进程的用户ID、进程状态和进程的COMMAND ①#ps aux //使用Unix操作系统的BSD格式,其中a表示所有前台,x表示后台进程,u表示显示创建进程的用户。 ②#ps -lef //使用linux标准命令格式,其中l表示详细信息,e 阅读全文

posted @ 2017-01-29 12:19 浅墨浓香 阅读(1051) 评论(0) 推荐(0) 编辑

摘要:6. 非局部跳转 (1)setjmp和longjmp语句 头文件 #include<setjmp.h> 函数 int* setjmp(jum_buf env); 返回值 直接调用返回0,若从longjmp调用返回则返回非0值 功能 设置非局部跳转的跳转点 函数 void longjmp(jmp_bu 阅读全文

posted @ 2017-01-28 20:42 浅墨浓香 阅读(265) 评论(0) 推荐(0) 编辑

摘要:5. 进程资源限制 (1)getrlimit、setrlimit函数 头文件 #include<sys/resource.h> 函数 int* getrlimit(int resource, struct rlimit* rlptr); 返回值 成功返回0,出错返回非0 功能 获得资源限制,存放在r 阅读全文

posted @ 2017-01-28 20:36 浅墨浓香 阅读(573) 评论(0) 推荐(0) 编辑

摘要:3. 环境表 (1)每个进程都有一个独立的环境表(字符指针数组) (2)初始的环境表继承自父进程 (3)两种访问方式: ①int main(int argc, char* argv[], char* envp[]); //第3个参数 ②extern char** environ; //全局变量 4. 阅读全文

posted @ 2017-01-27 22:38 浅墨浓香 阅读(449) 评论(0) 推荐(0) 编辑

摘要:2. 进程启动和终止 2.1 C程序启动过程 (1)启动例程 ①是一段程序代码,放置在/lib/libc.so.***中。编译器在编译时会将启动例程的代码编译进可执行文件中。 ②可执行程序将这段嵌入的启动例代码指代为程序的起始地址。 ③当内核执行C程序时(使用exec函数),在调用main前先执行启 阅读全文

posted @ 2017-01-27 18:13 浅墨浓香 阅读(456) 评论(0) 推荐(0) 编辑

摘要:1. 进程的概念和进程结构 1.1 进程 (1)程序(program):是一些保存在磁盘上有序指令的集合,是存放在磁盘文件中的可执行文件。但没有任何执行的概念,它是静态的。 (2)进程(process) ①程序的执行实例被称为进程,是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡。 ②进程 阅读全文

posted @ 2017-01-27 11:31 浅墨浓香 阅读(876) 评论(0) 推荐(1) 编辑

摘要:6. 贯穿案例2:mini shell(1) 【阶段性任务】实现cd、pwd和quit命令 //job.h //job.c //mshell.c 阅读全文

posted @ 2017-01-27 00:55 浅墨浓香 阅读(350) 评论(0) 推荐(0) 编辑

摘要:4. 目录操作函数 (1)mkdir和rmdir函数 头文件 #include<sys/types.h> #include<sys/stat.h> 函数 int mkdir(const char* pathname, mode_t mode); int rmdir(const char* pathn 阅读全文

posted @ 2017-01-26 17:01 浅墨浓香 阅读(260) 评论(0) 推荐(0) 编辑

摘要:3. Linux文件系统结构 3.1 文件系统结构 (1)超级块 文件系统中的第一个块被称为超级块。这个块存放文件系统本身的信息。比如,记录了每个区域的大小,也存放了未被使用的磁盘块的信息。其包含的信息如下: 主要域 含义 Magic Number 用来检验是否是一个真正的EXT2文件系统超级块 R 阅读全文

posted @ 2017-01-26 00:32 浅墨浓香 阅读(546) 评论(0) 推荐(0) 编辑

摘要:2. 文件权限及操作函数 (1)9种文件访问权限位 权限 权限常量(宏) 用户权限 S_IRUSR、S_IWUSR和S_IXUSR 组权限 S_IRGRP、S_IWGRP和S_IXGRP 其它权限 S_IROTH、S_IWOTH和S_IXOTH 备注 文件权限通过按位或的方式构造。如: int fd 阅读全文

posted @ 2017-01-25 17:35 浅墨浓香 阅读(837) 评论(0) 推荐(0) 编辑

摘要:1. 文件属性及文件类型 (1)文件属性:stat结构体 (2)文件类型:Linux中的7种文件和宏 文件类型 宏 备注 ①普通文件(regular file) S_ISREG() 如:touch filename ②目录文件(directory file) S_ISDIR() 如:mkdir di 阅读全文

posted @ 2017-01-25 11:54 浅墨浓香 阅读(314) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-24 21:10 浅墨浓香 阅读(61) 评论(0) 推荐(0) 编辑

摘要:9. 贯穿案例:构建标准IO函数库 //mstdio.h //mstdio.c //mstdio_test.c 阅读全文

posted @ 2017-01-23 22:33 浅墨浓香 阅读(224) 评论(0) 推荐(0) 编辑

摘要:8. 高级文件操作:存储映射 (1)概念: 存储映射是一个磁盘文件与存储空间的一个缓存相映射,对缓存数据的读写就相应的完成了文件的读写。 (2)mmap和munmap函数 头文件 #include<sys/types.h> #include<sys/mman.h> 函数 void* mmap(voi 阅读全文

posted @ 2017-01-23 20:27 浅墨浓香 阅读(373) 评论(0) 推荐(0) 编辑

摘要:7. 高级文件操作:文件锁 (1)文件锁分类 分类依据 类型 说明 按功能分 共享读锁 文件描述符必须读打开 一个进程上了读锁,共它进程也可以上读锁进行读取 独占写锁 文件描述符必须写打开 一个进程上了写锁,其它进程就不能上写锁和读锁进行读写操作 按类型分 建议锁 要求上锁文件的进程都要检测是否有锁 阅读全文

posted @ 2017-01-23 17:45 浅墨浓香 阅读(279) 评论(0) 推荐(0) 编辑

摘要:6. I/O处理方式(5种I/O模型) 6.1 几个概念的辨析 (1)同步和异步 ①是访问数据的方式,主要是针对IO(资源、数据)而言的。关键在于I/O操作完成后,有没有提供通知机制。 ②同步的IO,要求进(线)程主动去读写数据,在读写过程还是会阻塞。而异步I/O操作时,进程不主动读写数据,而是内核 阅读全文

posted @ 2017-01-22 20:17 浅墨浓香 阅读(445) 评论(0) 推荐(0) 编辑

摘要:5. 其它I/O系统调用 (1)dup和dup2函数 头文件 #include<unistd.h> 函数 int dup(int oldfd); int dup2(int oldfd, int newfd); 返回值 若成功返回新文件描述符,出错返回-1 功能 文件描述符的复制(将oldfd复制给n 阅读全文

posted @ 2017-01-22 19:51 浅墨浓香 阅读(546) 评论(0) 推荐(0) 编辑

摘要:3. 文件I/O的内核数据结构 (1) 内核数据结构表 数据结构 主要成员 文件描述符表 ①文件描述符标志 ②文件表项指针 文件表项 ①文件状态标志(读、写、追加、同步和非阻塞等状态标志) ②当前文件偏移量 ③i节点表项指针 ④引用计数器 i节点 ①文件类型和对该文件的操作函数指针 ②当前文件长度 阅读全文

posted @ 2017-01-21 23:11 浅墨浓香 阅读(456) 评论(0) 推荐(0) 编辑

摘要:2. 文件I/O系统调用及文件描述符 2.1 文件I/O系统调用 (1)主要函数 函数 功能 函数 功能 open() 打开文件 read() 读取文件 creat() 创建文件 write() 写入文件 close() 关闭文件 lseek() 文件定位 注意 这些不带缓存的函数都是内核提供的系统 阅读全文

posted @ 2017-01-21 16:57 浅墨浓香 阅读(672) 评论(0) 推荐(0) 编辑

摘要:1. 标准C的I/O和FILE结构体 1.1 标准C的I/O库函数 (1)char *fgets( char *string, int n, FILE *stream );//从流中获取字符串 (2)int printf( const char *format [, argument]... ); 阅读全文

posted @ 2017-01-20 21:15 浅墨浓香 阅读(365) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-19 20:06 浅墨浓香 阅读(48) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-18 20:21 浅墨浓香 阅读(48) 评论(0) 推荐(0) 编辑

摘要:1. Linux操作系统的构成 (1)内核(kernel) ①操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统。 ②控制系统和硬件之间的相互通信。 ③决定着系统的性能和稳定性。 (2)Shell (3)文件系统 ①文件:数据或设备的一种逻辑组织 ②文件系统:文件间关系管理的一种 阅读全文

posted @ 2017-01-15 10:27 浅墨浓香 阅读(367) 评论(0) 推荐(0) 编辑

摘要:1. 计算机的简介 1.1 计算机的基本组成 (1)处理器(processor) (2)主存储器(main memory) ①易失性;②也称为“Real memory” OR “primary memory” (3)输入输出模块(I/O modules) ①二级存储设备;②通信设备;③终端 (4)系 阅读全文

posted @ 2017-01-15 10:21 浅墨浓香 阅读(471) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-13 13:27 浅墨浓香 阅读(54) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-12 23:17 浅墨浓香 阅读(45) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-12 21:54 浅墨浓香 阅读(48) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-12 20:10 浅墨浓香 阅读(28) 评论(0) 推荐(0) 编辑

摘要:1. 备份概述 (1)Linux系统需要备份的数据 ①/root/目录 ②/home/目录 ③/var/spool/mail/目录 ④/etc/目录 ⑤其他目录 (2)安装服务的数据 ①apache需要备份的数据:配置文件、网页主目录、日志文件等 ②mysql需要备份的数据:源码包安装的mysql: 阅读全文

posted @ 2017-01-07 19:20 浅墨浓香 阅读(300) 评论(0) 推荐(0) 编辑

摘要:3. 系统修复模式 3.1 单用户模式 (1)在grub界面中选择第2项,并按“e键”进入编辑。并在“…quiet”后面加入“ 1”,即“…quiet 1”其中的1表示单用户模式。然后重启就可以进入单用户模式(注意,此时无须输入用户名和密码即可进入)。 (2)单用户模式常见的错误修复 ①遗忘root 阅读全文

posted @ 2017-01-07 19:04 浅墨浓香 阅读(997) 评论(0) 推荐(0) 编辑

摘要:2. 启动引导程序grub 2.1 Grub配置文件 (1)grub中分区的表示 硬盘 分区 Linux设备文件名 Grub中设备文件名 第1块SCSI硬盘 第1个主分区 /dev/sda1 hd(0,0) 第2个主分区 /dev/sda2 hd(0,1) 扩展分区 /dev/sda3 hd(0,2 阅读全文

posted @ 2017-01-07 18:53 浅墨浓香 阅读(275) 评论(0) 推荐(0) 编辑

摘要:1. CentOS 6.x 启动管理 (1)系统运行级别 ①运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复。(但不是Linux的安全模式) 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界面 4 系统保留 5 图形 阅读全文

posted @ 2017-01-07 18:48 浅墨浓香 阅读(277) 评论(0) 推荐(0) 编辑

摘要:1. 日志管理 (1)简介 在CentOS 6.x中日志服务己经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd相兼容的。 (2)rsyslogd的新特点 ①基于TCP网络协议传输日志信息 阅读全文

posted @ 2017-01-07 18:27 浅墨浓香 阅读(314) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-06 22:47 浅墨浓香 阅读(30) 评论(0) 推荐(0) 编辑

摘要:1. 进程管理 1.1 进程查看 (1)进程简介 进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。 (2)进程管理的作用 ①判断服务器健康状态 ②查看系统中所有进程 ③杀死进程 (3)查看系统中所有的进程 #ps aux 阅读全文

posted @ 2017-01-06 13:23 浅墨浓香 阅读(241) 评论(0) 推荐(0) 编辑

摘要:1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中。当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快。但不利之处是系统中服务越多,消耗的资源越多。 ②xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻 阅读全文

posted @ 2017-01-06 13:05 浅墨浓香 阅读(185) 评论(0) 推荐(0) 编辑

该文被密码保护。

posted @ 2017-01-05 21:03 浅墨浓香 阅读(25) 评论(0) 推荐(0) 编辑

摘要:5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else #程序 fi if[ 条件判断1 ];then #程序 elif [ 条件判断2 ];then #程序 阅读全文

posted @ 2017-01-04 16:55 浅墨浓香 阅读(181) 评论(0) 推荐(0) 编辑

摘要:3. 字符处理命令 3.1 排序命令:sort (1)sort命令:#sort [选项] 文件名 选项 作用 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -r 反向排序 -t 指定分隔符,默认的分隔符是制表符 -k n[,m] 按照指定的字段范围排序,从第n字段开始,m字段结束( 阅读全文

posted @ 2017-01-02 23:26 浅墨浓香 阅读(205) 评论(0) 推荐(0) 编辑

摘要:2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列; -d 分隔符:按照指定分隔符分割列,默认是制表符分隔。 (2)应用举例 //测试文件(student.txt) ①#cut –f 2 stu 阅读全文

posted @ 2017-01-01 22:12 浅墨浓香 阅读(181) 评论(0) 推荐(0) 编辑

摘要:1. 基础的正则表达式 1.1 正则表达式与通配符 (1)正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。 (2)通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的 阅读全文

posted @ 2017-01-01 19:33 浅墨浓香 阅读(228) 评论(0) 推荐(0) 编辑

摘要:5. Bash的运算符 5.1 数值运算与运算符 5.1.1 declare 声明变量类型:#declare [+/-] [选项] 变量名 选项 说明 - 给变量设定类型属性 + 取消变量的类型属性 -i 将变量声明为整数型(integer) -x 将变量声明为环境变量 -p 显示变量被声明的类型。 阅读全文

posted @ 2017-01-01 12:20 浅墨浓香 阅读(367) 评论(0) 推荐(0) 编辑

摘要:4. Bash的变量 4.1 用户自定义变量 4.1.1 什么是变量 变量是计算机的内存单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以 阅读全文

posted @ 2017-01-01 12:00 浅墨浓香 阅读(317) 评论(0) 推荐(0) 编辑

摘要:3. Bash的基本功能 3.1 历史命令与命令补全 (1)历史命令:#history [选项] [历史命令保存文件] ①选项:-c:清空历史命令; -w:把缓存中的历史命令写入文件~/.bash_history (2)历史命令的保存:默认会保存1000条,可修改环境变量配置文件/etc/profi 阅读全文

posted @ 2017-01-01 11:45 浅墨浓香 阅读(307) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示