学习Linux系统编程-Day(2)

一、用户和组
1.用户信息记录在Linux系统下的/etc/passwd文件中,其中记载了用户唯一的用户名唯一的整数型用户ID(UID)。还包含以下信息:
组 ID:用户所属第一个组的整数型组 ID。
主目录:用户登录后所居于的初始目录。
登录 shell:执行以解释用户命令的程序名称(我的默认指令解释器是bash)。

2.组:一个用户可以同时属于多个组,关于系统中用户组的信息都记录在/etc/group中,其中包含了以下信息:
组名: (唯一的)组名称。
组 ID( GID):与组相关的整数型 ID。
用户列表:隶属于该组的用户登录名列表(通过密码文件记录的 group ID 字段未能标
识出的该组其他成员,也在此列),以逗号分隔。

二、单根目录层级、目录、链接及文件
1.不同于Windows系统下每一个磁盘都拥有自己的目录层级,Linux系统下只维护着一套单根目录结构,这个结构的根基就是根目录“/”。

2.文件的含义在Linux内涵中非常广泛,因为Linux信奉的信条之一就是万物皆文件。一般语境下我们的文件指代文本文件,而事实上在Linux系统中设备管道套接字目录以及符号链接都被抽象成为文件。

3.目录是文件的一种,它的数据项包含文件名和对应文件的引用。这里有一个定义,我们将文件名和引用构成的组合称为链接。在Linux系统中,一个目录下最少包含两个数据项,也就是“.”和“…(两个点)”,分别表示当前工作目录和上一级工作目录。特别的,根目录的上一级目录是自己。

4.一般不特别说明,就像3中那样,链接一般指硬链接(hard link)。就像3中定义的那样,硬链接的本质是文件名+引用,这里的引用指指向文件数据本身的指针(其实指向的是索引节点,索引节点中存放着数据在磁盘的位置)。如果这个指针指向的不是真实对应的文件数据,而是指向了另一个文件名的字符串,那么这就是一个软链接(soft link),或者叫符号链接。Linux系统调用遇到软链接时,会直接将其替换为等价的文件名,注意这个过程可以重复多次,也就是它是可以递归的,但一般这个递归次数是有上限的。

5.文件名的长度一般最大不超过255,推荐使用可移植文件名字符集( portable filename character set)来对文件进行命名,也就是[-._a-zA-Z0-9]这个字符集,且连字符-不宜作为开头,会被误认为是命令行选项开关。

6.文件路径最后一个“ /”字符之前的部分称为路径的目录部分,将其之后的部分称为路径的文件部分或基础部分。目录部分的文件类型只能是目录,文件部分的文件类型可以是任意类型的文件。路径名也分为两种,绝对路径名相对路径名,前者的参考目标是根目录“/”,写法也一定要以“/”开头,后者的参考目标则是进程的当前工作目录。进程的当前工作目录继承于其父进程

7.关于文件的权限访问,分为3类用户,3种权限共计9个权限位。3种用户分别指:文件的属主、和属主同一组的其他用户、其他用户。3种权限指:读权限写权限执行权限,它们排列组合得到9种权限位。上述这种写法是对于一般的程序或脚本文件而言的(否则执行就没有意义了),对目录而言,读、写、执行分别意味着读取目录信息,对目录中的内容进行修改和对目录中的文件进行访问

猜你喜欢

转载自blog.csdn.net/zzy980511/article/details/113484233