### Shell编程经典书籍知识点概述 #### 一、Shell编程基础概念 **Shell**是一种用于操作系统交互的命令行解释器,广泛应用于Linux和Unix系统中。它不仅提供了与系统的交互界面,还支持通过编写脚本来自动化任务处理。学习Shell编程对于理解和操作Linux/Unix系统至关重要。 #### 二、文件权限与安全 1. **文件访问方式** - **读(r)**:允许查看文件内容。 - **写(w)**:允许编辑或删除文件。 - **执行(x)**:若文件为脚本或程序,则允许执行。 2. **文件权限分类** - **文件属主**:创建文件的用户。 - **同组用户**:拥有文件的用户组中的任意成员。 - **其他用户**:不属于文件所属用户组的用户。 3. **ls -l 命令解析** - **文件类型**(d, l, b, c, p, s, -) - **权限位**:三个三元组(rwx),分别代表属主(owner)、同组用户(group)和其他用户(other)的权限。 - **硬链接数量**:文件的硬链接数。 - **属主**:文件的所有者。 - **组**:文件所有者的默认组。 - **文件大小**:以字节为单位。 - **最后修改时间**:文件最近被修改的时间。 - **文件名** #### 三、文件类型 - **目录文件(d)**:存储文件和子目录的集合。 - **符号链接(l)**:指向另一个文件的链接。 - **块设备文件(b)**:通常用于硬盘等存储设备。 - **字符设备文件(c)**:用于串行通信设备等。 - **命名管道(p)**:允许进程间通信的特殊文件。 - **套接字文件(s)**:用于网络通信或进程间通信。 - **普通文件(-)**:除上述类型外的文件。 #### 四、特殊权限位 1. **SUID (Set User ID)** - 当文件属主具有执行权限时,运行此文件的用户将暂时获得文件属主的身份。 - 权限位表示为“s”(如果属主有执行权限)或“S”(如果属主无执行权限)。 2. **SGID (Set Group ID)** - 类似于SUID,但适用于用户组。 - 在目录文件上设置SGID,意味着在此目录下创建的所有文件都将继承该目录的组ID。 3. **Sticky Bit (粘性位)**:标识符为“t”,通常用于/tmp目录。 - 只有文件所有者才能删除自己的文件,防止非所有者删除他人文件。 #### 五、改变文件权限 - **符号模式**: - `chmod [who] <operator> <perm> file_name` - **who**:u (user), g (group), o (other), a (all)。 - **operator**:+ (add), - (remove), = (set)。 - **perm**:r (read), w (write), x (execute), s (SUID/SGID), t (sticky bit)。 - **绝对模式**: - `chmod mode file_name` - **mode**:4位八进制数,前两位代表SUID/SGID权限,后三位分别代表属主、同组用户和其他用户的权限。 #### 六、示例应用 假设需要对名为`myfile`的文件进行权限设置: - `chmod u+x,go-w myfile`:为文件所有者添加执行权限,并移除同组用户和其他用户的写权限。 ### 结论 通过理解文件权限的基本概念和如何使用`chmod`命令,我们可以有效地管理和保护Linux/Unix系统中的文件和目录。掌握这些知识点对于日常操作和编写Shell脚本都非常重要。此外,《LINUX与UNIX SHELL编程指南》是一本深入浅出的好书,不仅介绍了基本概念,还提供了大量的实用案例和技巧,非常适合初学者和有一定经验的开发人员阅读。
- sqwh11212018-12-14shell编程基础。
- qhpxy2013-06-12用这个学习一下SHELL编程,太贵了!!
- lebron2008lebron2012-10-25shell编程基础,看看具体是啥内容。
- 粉丝: 0
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助