APUE学习笔记-UNIX基础知识

本文详细介绍了UNIX系统的基础概念,包括登录过程、shell类型、文件系统结构、输入输出管理、进程与用户标识等核心内容,为理解UNIX操作系统提供全面视角。

1.登录

1.1 登录名

系统在其口令文件,通常是在/etc/passwd文件中查看登录名。口令文件中的登录项由7个以冒号分隔 的字段组成:登录名、加密口令、数字用户ID(224),数字组ID(20)、注释字段、起始目录(/home/stevens),以及shell程序(/bin/ksh)。

1.2 shell

shell是一个命令行解释器,其读取用户输入,然后执行命令,用户通常使用终端,有时通过文件(shell脚本)向shell输入。
常用的shell有:

  • Bourne shell, /bin/sh
  • C shell, /bin/csh
  • KornShell, /bin/ksh

2.文件和目录

2.1 文件系统

UNIX文件系统是目录和文件的一种层次安排,目录的起点称为根 (root),其名字是一个
字符/。

2.2 文件名

不能出现在文件名中的字符只有两个,斜线(/)和空操作符(null);
当创建一个新目录时,自动创建了两个文件名:.(点)和…(点点)。点引用当前目录,点-点则引用父目录。在最高层次的根目录中,点-点与点相同,都表示当前目录。
某些UNIX文件系统限制文件名的最大长度是14个字符,BSD版本则将这种限制扩展为255个字符。

2.3 路径名
  • 以斜线开头的路径名称成为绝对路径(absolute pathname);
  • 否则称为相对路径(relative pathname);
2.4 工作目录

每个进程都有一个工作目录,所有的相对路径都从该工作目录为起点。可以使用chdir函数更改其工作目录。

2.5 起始目录

登录时,工作目录设置为起始目录,该起始目录从口令文件中的登录项中获取。

3 输入和输出

3.1 文件描述符

文件描述符是一个小的非负整数,内核用于标识一个特定进程正在存访的文件。当内核打开或创建一个文件时,返回一个文件描述符。当读、写文件时,就可以使用它。

3.2 标准输入、标准输出和标准出错

按惯例,每运行一个新程序时,所有的shell都为其打开三个文件描述符:标准输入、标准输出、标准出错。如果像简单命令ls那样没有做特殊的处理,则这三个都连着终端。

4 程序和进程

4.1 进程和进程ID

程序的执行实例被称为进程(process).每个UNIX进程都有一个唯一的数字标识,称为进程ID。进程ID总是一个非负数。

5 用户标识

5.1 用户ID

口令登录项中的用户ID是个数值,它向系统标识各个不同的用户。用户ID为0的用户为根(root)或超级用户。在口令文件中,通常有一个登录项,其登录名为root,我们称这种用户的特权为超级用户特权。

5.2 组ID

组文件将组名映射为数字组ID,它通常是/etc/group

习题

1. 若日历时间存放在带符号的32位整形数中,那么到哪一年它将溢出?
答:首先起始时间T=1970年1月1日 00:00:00,然后带符号的32位所存储的时间t=2^31/(606024*365)=68.0962598年,所以溢出的时间T+t=1970+68=2038年。其溢出的解决办法就是将其定义为time_t 64位整形。

2. 若进程时间存放在带符号的32位的整形数中, 并且每秒100滴答,那么经过多少天后该时间值会溢出?
答:t=2^31/(246060*100)=248.551348天

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值