《Linux与Unix Shell 编程指南》权限与安全解析

5星 · 超过95%的资源 需积分: 10 22 下载量 63 浏览量 更新于2024-09-20 1 收藏 364KB PDF 举报
"《Linux与Unix Shell 编程指南》是一本深入讲解Shell编程的书籍,作者通过笔记的形式分享了关于文件安全与权限、Shell脚本编写等方面的知识。" 在Linux和Unix系统中,Shell编程是系统管理和自动化任务的核心部分。这本书的读书笔记首先介绍了文件安全和权限这一基础概念。文件的三种基本访问方式——读(r)、写(w)和执行(x)决定了用户对文件的操作权限。读权限允许查看文件内容,写权限则允许修改或删除文件,而执行权限适用于能够运行的shell脚本或程序。 文件的权限可以分为三个类别:文件属主(创建文件的用户)、同组用户(与文件属主同组的用户)和其他用户。这些不同的权限类别确保了系统的安全性和数据的保护。使用`ls -l`命令可以查看文件的详细信息,包括文件类型、权限、属主、组、大小、修改时间以及文件名。 `ls -l`命令的输出包含了丰富的信息: 1. 第一个字符表示文件类型,如d代表目录,l代表符号链接,b和c分别代表块设备和字符设备,p代表命名管道,s代表套接字,-代表普通文件。 2. 接下来的九个字符分为三组,每组三个,分别对应属主、同组用户和其他用户的读写执行权限。 3. 硬链接数、属主、属主组、文件大小、最后修改日期和时间,以及文件名依次排列。 文件的权限位用九个字符表示,每个字符代表一个权限,rwx的组合代表读、写、执行。例如,rwxr-xr-x意味着属主有读、写和执行权限,同组用户有读和执行权限,其他用户只有读和执行权限。 除此之外,《Linux与Unix Shell 编程指南》还深入讲解了Shell脚本的编写,包括变量、控制结构、函数、输入/输出重定向、管道和过滤器等主题。Shell编程能够帮助用户自动化日常任务,提升工作效率,同时也是系统管理员必备的技能之一。通过学习本书,读者将能够熟练地利用Shell进行系统管理、脚本编写和数据处理。
2014-08-07 上传
前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52 7.6 使用[]匹配一个范围或集合 52 7.7 使用\{\}匹配模式结果出现的次数 53 7.8 小结 55 第8章 grep家族 56 8.1 grep 57 8.1.1 双引号引用 57 8.1.2 grep选项 57 8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 5