【01】《UNIX高级环境编程》全书精华集锦

这篇博客汇总了《UNIX高级环境编程》的关键知识点,包括操作系统概念、UNIX、Linux的关系,Shell及其内置变量,常用Shell命令,内部命令与外部命令的区别,C语言头文件,程序结构,gcc编译选项,动态链接库与静态链接库,文件系统,文件访问权限,文件描述符属性,会话、进程组的概念,以及父子进程的关系。通过阅读,读者将对UNIX操作系统有更深入的理解。
摘要由CSDN通过智能技术生成

1 引子

众所周知,Linux系列知识极其重要,公司面试、实际开发都需要用到。最近看了一些资料之后,发觉自己很多地方没有掌握到位,于是开始逐一查阅,顺便整理了这个懒人版供大家参考。

每个需要详细了解问题下面需要的信息都给出了相应的参考链接,有些还配上了实际操作,相信你认真看完本文之后对于UNIX操作系统基础能有一个更加清晰的认识。

2 正文

(1)什么是操作系统?什么是UNIX操作系统?什么是Linux操作系统?它们之间的关系是怎样的?
  • 操作系统:控制计算机硬件和软件资源,对作业进行合理的调度,以供用户方便使用的一组软件的集合。
  • UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
  • Linux,即GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
  • Linux继承了Unix以网络为核心的设计思想,它能运行主要的UNIX工具软件、应用程序和网络协议。
(2)UNIX操作系统有哪些典型的分支?

Linux,Mac OS X,BSD系列与 Solaris

(3)什么是Shell?内置变量$$、$*、$@、$?、$#的具体含义是什么?

shell是一个命令语言解释器,是用户和UNIX内核直接的接口,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给UNIX核心。

  • $$ 是shell脚本运行的当前进程ID号
  • $* 是以一个单字符串显示所有向shell脚本传递的参数
  • $@ 是传递给shell脚本的所有参数列表
  • $? 显示最后命令的退出状态,0表示没有错误,其他表示有错误
  • $# 是传给脚本的参数个数
(4)常用的Shell命令,如ls、cd、dd、pwd、ps、cp、chown、chmod、mkdir等的具体用法。
  • Unix常用命令: http://kimi.it/23.html

  • ls 列出目录下的文件

  • cd 改变当前目录
  • dd 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换(cc已被用来代表CComplier)
  • pwd 查看当前工作目录
  • ps显示系统中当前运行的进程状态
  • cp 复制文件
  • chown 更换所有者
  • mkdir 创建一个目录
  • chmod 改变文件访问权限
(5)什么是内部命令?什么是外部命令?它们的区别是什么?

内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。

本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、 进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库, PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威, 概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士 —都是一本无价的参考书籍。 目 录 译者序 译者简介 前言 第1章 UNIX基础知识 1 1.1 引言 1 1.2 登录 1 1.2.1 登录名 1 1.2.2 shell 1 1.3 文件和目录 2 1.3.1 文件系统 2 1.3.2 文件名 2 1.3.3 路径名 2 1.3.4 工作目录 4 1.3.5 起始目录 4 1.4 输入和输出 5 1.4.1 文件描述符 5 1.4.2 标准输入、标准输出和标准 出错 5 1.4.3 不用缓存的I/O 5 1.4.4 标准I/O 6 1.5 程序和进程 7 1.5.1 程序 7 1.5.2 进程和进程ID 7 1.5.3 进程控制 7 1.6 ANSI C 9 1.6.1 函数原型 9 1.6.2 类属指针 9 1.6.3 原始系统数据类型 10 1.7 出错处理 10 1.8 用户标识 11 1.8.1 用户ID 11 1.8.2 组ID 12 1.8.3 添加组ID 12 1.9 信号 12 1.10 UNIX时间值 14 1.11 系统调用和库函数 14 1.12 小结 16 习题 16 第2章 UNIX标准化及实现 17 2.1 引言 17 2.2 UNIX标准化 17 2.2.1 ANSI C 17 2.2.2 IEEE POSIX 18 2.2.3 X/Open XPG3 19 2.2.4 FIPS 19 2.3 UNIX实现 19 2.3.1 SVR4 20 2.3.2 4.3+BSD 20 2.4 标准和实现的关系 21 2.5 限制 21 2.5.1 ANSI C限制 22 2.5.2 POSIX限制 22 2.5.3 XPG3限制 24 2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 第3章 文件I/O 35 3.1 引言 35 3.2 文件描述符 35 3.3 open函数 35 3.4 creat函数 37 3.5 close函数 37 3.6 lseek函数 38 3.7 read函数 40 3.8 write函数 41 3.9 I/O的效率 41 3.10 文件共享 42 3.11 原子操作 45 3.11.1 添加至一个文件 45 3.11.2 创建一个文件 45 3.12 dup和dup2函数 46 3.13 fcntl函数 47 3.14 ioctl函数 50 3.15 /dev/fd 51 3.16 小结 52 习题 52 第4章 文件和目录 54 4.1 引言 54 4.2 stat, fstat和lstat函数 54 4.3 文件类型 55 4.4 设置-用户-ID和设置-组-ID 57 4.5 文件存取许可权 58 4.6 新文件和目录的所有权 60 4.7 access函数 60 4.8 umask函数 62 4.9 chmod和fchmod函数 63 4.10 粘住位 65 4.11 chown, fchown和 lchown函数 66 4.12 文件长度 67 4.13 文件截短 68 4.14 文件系统 69 4.15 link, unlink, remove和rename 函数 71 4.16 符号连接 73 4.17 symlink 和readlink函数 76 4.18 文件的时间 76 4.19 utime函数 78 4.20 mkdir和rmdir函数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值