前言
很久之前看过这本书,当时居然写了2万字的笔记,而且笔记按照列表的方式写的,很长但是意外的挺好理解(毕竟个人写的),所以发布这篇笔记出来。
第一章:计算机概论
+ CPU + 基本结构 + 控制单元 + 存储单元 + 内存 + 输入单元 + 输出单元 + 内存 + 指令集 + 精简指令集 RISC + SPARC + PowerPC + Cell + 复杂指令集 CISC + AMD + Inter + VIA + X86 的起源 + Bit: CPU一次读取的最大量 + 人体和电脑设备的比喻 + 电脑分类 + 超级计算机 + 大型计算机 + 迷你计算机 + 工作站 + 电脑常用的计量单位 + Mbit + Ghz + CPU的工作频率:外频与倍频 + 外频:CPU与外部组件数据传输的速度 + 倍频:CPU内部加速工作性能的倍数 + 超频 + 内存 + 多通道设计 + DDR + DRAM 和 SRAM + 二级缓存:CPU内部的内存缓存 + ROM + BIOS + 现在已写入到闪存或者硬件中 + 固件 + 显卡 + 主要的连接接口 + D-Sub + DVI + HDMI + DisplayPort + 硬盘: + 组成: + 碟片 + 磁头 + 主轴马达 + 机器手臂 + 最小单元:扇区 + 传输接口: + SATA + USB + SAS + 固态硬盘 + 使用须知 + 扩展接口 + 主板 + 设备IO地址和IRQ中断请求 + 连接外置设备 + 主机电源 + 数据的表示方式 + 数字系统 + 字符编码系统 + 操作系统 + 概念 + 只管理硬件资源 + 内核参考硬件写成 + 应用程序参考操作系统 + 内核功能 + 系统调用 + 进程管理 + 内存管理 + 文件系统管理 + 设备驱动 + 注意点: + 重点回顾 + 计算机定义 + 计算机五大单元 + CPU的作用 + CPU频率,外频和倍频,以及超频 + 新CPU的主要变化 + CPU处理数据 + 内存分类 + 动态随机存取内存 + 静态随机存取内存
第二章:Linux起源
+ Unix的发展背景 + GNU计划,开放源代码 + Minix 的发展 + Linux的雏形 + Minix不满足要求 + 学到的东西 + 基础知识和技能 + 一点成功之后,勇于挑战 + 把“玩具”发扬光大 + 虚拟团队对于LInux的改进 + Linux版本 + 主次版本为奇数:开发中 + 主次版本为偶数:稳定版本 + 主线版本:长期维护 + 判断是否为长期版本的办法 + `uname -r ` + Linux发行版 + Linux应用 + 云端应用 + 虚拟化 + 从头学习Linux + 选择一本好用的工具书 + 推荐的网络书: NETMAN + 发生问题怎么处理 + FAQ: + /usr/share/doc + http://www.tldp.org + 必要掌握点: + 计算机概论与硬件相关知识 + 从Linux安装和命令学起 + Linux操作系统的基本技能 + 学会VI编辑器 + Shell与脚本学习 + 一定要会软件管理 + Tarball + RPM + DPKG + YUM + APT + 网络基础学习 + 网站搭建 + 网络的书推荐 + Http://linux.vbird.org + 实践大于一切 + 习惯: + 有系统的设计文件目录 + 养成做记录的习惯 + 作为用户人迁就机器,作为开发,机器迁就人 + 会“偷”,“偷”了会改,改了会变,变则通 + 兴趣 + 成就感 + 建立兴趣 + 协助回答问题 + 参与讨论 + 不同环境,解决办法很多,只要行得通就是好办法
简答题:
- 你再主机上安装了一块网卡,但是开机之后,系统却无法使用,网卡是好的,可能哪里出问题,如何解决?
链接:https://www.nowcoder.com/questionTerminal/1dc7f18e85e04269b1a355b32692c8ba?orderByHotValue=1&page=1&onlyReference=false 网卡是否启动,是否配置了开机自启。可以修改 /etc/sysconf/network-sripts/ifcfg-ethX,其中X是网卡号, DEVICE=eth0 #网卡对应的设备别名 BOOTPROTO=static #网卡获得ip地址的方式(默认为dhcp,表示自动获取) HWADDR=00:07:E9:05:E8:B4 #网卡MAC地址(物理地址) IPADDR=192.168.100.100 #IP地址 NETMASK=255.255.255.0 #子网掩码 ONBOOT=yes #系统启动时是否激活此设备
2.一个操作系统至少可以完整控制整个硬件,请问操作系统要控制哪些单元
(1)运算单元,用来执行当前指令所规定的算术运算和逻辑运算,具有定点和浮点运算功能;(2)控制单元,指挥微处理器执行指令操作的功能; (3)寄存器组,用来暂存操作数,中间结果和处理结果,它构成了微处理器内部的小型存贮空间,其容量大小影响到微处理器的效率; (4)总线接口单元,提供微处理器与周围其它硬件的接口,有效地将微处理器的地址、数据和控制等信息通过总线和各相关部件接通; (5)输入/输出接口单元。
- window上的游戏能不能到Linux去玩
不能,操作系统不一样
- Unix 是谁写出来的? GNU 计划是谁发起的?
GNU 是 GNU is Not Unix 的简写,是个无穷循环! 另外,这个计划是由自由软件基金会 (Free Software Foundation, FSF) 所支 持的! 两者都是由 Stallman 先生所发起的!
- 何谓多人 ( Multi-user ) 多任务 ( Multitask )?
Multiuser 指的是 Linux 允许多人同时连上主机之外,每个用户皆有其各人的使用环境,并且可以同时使用系统的资源! Multitask 指的是多任务环境,在 Linux 系统下, CPU 与其他例如网络资源可以同时进行多项工作, Linux 最大的特色之一 即在于其多任务时,资源分配较为平均
- Linux 本身仅是一个核心与相关的核心工具而已,不过,他已经可以驱动所有的硬件, 所以,可以算是一 个很阳春的操作系统了。经过其他应用程序的开发之后,被整合成为 Linux distribitions。请问众多的 distributions 之间,有何异同?
相同:(1)同样使用 http://www.kernel.org 所释出的核心; (2)支持同样的标准,如 FHS、LSB 等; (3)使用几乎相同的自由软 件 (例如 GNU 里面的 gcc/glibc/vi/apache/bind/sendmail... ); (4)几乎相同的操作接口 (例如均使用 bash/KDE/GNOME 等等)。 不同:使用的 kernel 与各软件的版本可能会不同;各开发商加入的应用工具不同,使用的套件管理模式不同(dpkg 与 RPM)
- 什么是 POSIX ?为何说 Linux 使用 POSIX 对于发展有很好的影响?
POSIX 是一种标准规范,主要针对在 Unix 操作系统上面跑的程序来进行规范。 若你的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在你的操作系统上面运作。 Linux 由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因 此程序的移植相当简易!也让大家容易转换平台,提升 Linux 的使用率。
第三章:主观规划与磁盘分区
+ Linux和硬件的搭配 + 认识计算机硬件 + 注意硬件的性价比 + 注意电费 + 选择Linux搭配的主机 + CPU + i3最低要求 + 内存 + 越大越好 + 硬盘: + 通常:20G + 高级:磁盘阵列 + 显卡 + 32M + 网卡: + 网络IO频繁要选好网卡 + 各硬件设备在Linux的文件名 + 磁盘分区 + 磁盘连接方式和设备文件名的关系 + 正常:/dev/sd[a-p] + 虚拟化环境:/dev/vd[a-p] + 决定关系:Linux的检测磁盘顺序 + 分区几点: + MBR + 四个主分区和一个扩展分区 + + MBR 与 GPT 磁盘分区表 + MBR + 512字节大小 + 主引导记录:引导程序的地方,446字节 + 分区表:记录整个硬盘分区状态,64字节 + 最多只能有四组记录 + 记录该区开始和结束柱面号码 + 注意点 + 所谓分区仅仅是对于64字节的分区表设置 + 磁盘默认只能写入四组分区信息 + 主要分区和扩展分区 + 最小单位为柱面 + 写入磁盘必须参考分区表才能操作 + 数据安全性 + 系统性能 + GPT + 出现原因 + MBR无法操作2.2T以上磁盘 + MBR只有一个区块,破会后无法恢复 + MBR存放引导程序只有446字节,无法存储较多程序代码 + 分区 + 34个LBA区块记录分区 + LBA0(MBR兼容区块) + 存放引导信息 + LBA1 (GPT表头记录) + 分区表的本身位置和大小 + **后面34个备份GPT分区** + LBA2-33(实际分区信息记录) + 4 * 32 =128 组 + 【2^64 * 512 = 2^63 * 1K字节 = 2^33 * TB = 8ZB】 1ZB = 2^30TB + 现在的内核使用特殊方式没有所谓的主分区,扩展分区和逻辑分区 + 启动程序BIOS和UEFI启动检测程序 + BIOS + 系统启动的第一个程序 + 直接写在硬件上的一个程序 + 启动过程: + BIOS:启动固件,认识第一个可启动设备 + MBR:第一个可启动的设备第一个扇区的主引导记录块,内部引导代码 + 启动引导程序(boot loader):可读内核文件的软件 + 内核文件,开始启动系统 + Boot Loader 作用 + 提供不同选项,多重引导 + 加载内核文件 + 启动管理功能转交给其他引导程序 + **启动引导程序可以装在分个分区的启动扇区** + 多重引导 + 每个分区都有自己启动扇区 + 第一以及第二扇区 + 实际可启动的内核文件放到各个分区 + 功能:认识自己分区的可启动内核文件,其他引导程序 + 直接或者间接管理权给另一个启动引导管理程序 + UEFI 搭配GPT启动流程 + 某些时刻可能需要关闭UEFI 的 secure boot 功能 + 双系统清务必先安装windows + Linux 安装模式分区选择(极其重要) + 目录树结构 + 根目录 + 文件系统与目录树挂载 + 什么是挂载? + 利用目录成为进入点,磁盘分区放置到目录下面 + 进入该目录就可以读取该分区 + 判断文件在哪个分区 + 哪个“进入点”先被查到,被查到的就是进入点 + 规划磁盘分区 + 自定义安装 + 初学: “/” 以及 "swap" 分区即可 + 预备一个备用的剩余磁盘容量 + 安装Linux之前的规划 + 选择适当发行版 + 镜像站 + 主机服务和硬件的关系 + window和Linux共存 + NAT + SAMBA + Mail + Web + DHCP + FTP + 主机硬盘规划 + 主机硬件出问题,文件能否安全保存 + 最简单分区办法 + 如上的新人办法 + 很不靠谱 + 稍微麻烦一些 + 比较符合读写容量大而且读写频繁的场景分区办法 + /boot + / + /home + /var + swap + 注意服务种类 + 两个案例 + 家用小型Linux服务器,IP共享和文件共享中心 + Linux的PC集群
第三章:安装CenterOs7
本章基本全靠实操,务必多操作几遍
+ 练习规划 + 配置 + CPU: I5以上 + 内存:最少提供1.2G以上内存 + 硬盘:40GB Virtio 接口 + 网卡:Bridge 桥接对外网卡 + 显卡:60MB左右显存 + 其他 + 键盘 + 鼠标 + 屏幕 + 磁盘分区参考 + 强制使用GPT模式 + BIOS boot 2MB + /boot + / + /home + swap + 启动引导程序 + 选择软件 + 检查 + 开始安装CenterOs7 + 步骤: + 调整BIOS + 选择安装模式 + 选择语言 + 软件选择 + 磁盘分区 + 启动引导程序 + 安装后的首次设置 + 调整BIOS和虚拟机创建流程 + `dd if=centeros7.iso of=/dev/sdc` + 光盘错误处理 + 硬件不支持 + 光盘跳盘 + 光盘有问题 + 安装模式启动 + 正常安装 + 测试后再安装 + 除错模式 + 图形化界面安装 + 恢复系统 + 运行内存测试程序 + 本地磁盘启动,不使用光盘 + 如何GPT强制执行(关键) + 正常安装CENTERos 7 + 按下Tab键 + 输入参数,自行百度 + 安装过程 + 不记录,请看书 + 其他功能: + RAM测试,安装笔记本的内核参数 + 内存压力测试:memtest86 + 安装笔记本电脑的参数 + 去掉笔记本的一些配置影响 + 正常安装centeros 7 + `nofb apm=off acpi=off pci=noacpi` + nofb 取消缓存检测 + 多重引导安装和管理(可选) + 安装规划
第四章:首次登陆和在线求助
+ 基础命令操作 + date : 时间 + `date +%y/%m/%d` + `date +%H/%m` + cal:日历 + cal 年份 + cal 月份 年份 + cal 13 2015 错误结果 + bc:计算器 + 重要热键 + Tab + Ctrl-c + Ctrl-d + 相当于 exit + CenterOS7 补全功能有可能补全命令 + Bash-completion + Shift + PageUp 或者 PageDown + 相当于翻页 + Linux 在线求助 man page 和 info page + g 开头命令 + man 的组成 + name + synopsis + description + options + command + files + see also + example + 看帮助文档技巧 + 查看Name部分 + 详细看下Description + 如果熟悉命令,直接看options + see also 查看相关使用 + 列举有关的file 部分 + 查看命令 + 空格:下翻 + page down 下翻 + page up 向上 + Home 第一页 + end 最后一页 + /string 向下查找 + ?string 向上查找 + n,N 继续查询 + q 结束 + man的位置 + `/usr/share/man` + `/etc/man_db.conf` + info + 网页显示 + 默认位置 + /usr/share/info + 内容 + File + Node + Next + Up + Prev + 其他有用的文件 + /usr/share/doc + 例子: + /usr/share/doc/grub2-tools-20.2 + nano + 简单文本编译器 + 正确的关机办法 + 正确使用 + shutdown + /sbin/shutdown [-krhc] [时间] [警告信息] + reboot + 常用 + shutdown + 重启 + rebbot + halt poweroff + 查看状况 + who + 同步写入磁盘 + sync + systemctl 重要命令
练习题
- 终端信息如何来的,/etc/issue 文件当中
结果 \S Kernel \r on an \m 2.
\r 代表内核
\m 硬件等级
- man issue 查找文件的个数
第五章:文件权限和目录
+ linux 用户记录和用户身份的文件 + 记录 `/etc/passwd ` + `/etc/shadow` + linux 文件属性 + drwx------- 5 root root 4096 May 29 16:08 + 第一个栏目代表文件类型和权限 + 第一个字符代表如下 + 文件 + 目录 + 连接 + b 设备文件 + c 串行端口设备 + 接下来设置 + r 读取 + w 写 + x 运行 + 第一组是自己的权限 + 第二组是同用户组的权限 + 第三组为别人的权限 + 第二个大足 5 代表多少个文件名连接到此节点 + 第三个代表当前目录或者文件的所有者 + 第四个代表所在用户组 + 第五个代表文件大小 + 地浏览创建日期或者最近修改日期 + 修改文件属性和权限 + 三个常用命令 + chgrp + 修改所属组 + `chgrp users init-ss.cfg` + chown + `chown [-R] 账号:用户组 ` + chmod + `chmod xyz 文件或者目录` + `chmod ` u=rwx,go=rx 文件或者目录 + `chmod a-x 文件名或者目录` + 权限的延伸意义 + r + 可以ls + w + 建立目录和文件 + 删除已有文件或目录 + 更名 + 移动位置 + x + 目录的x代表能否成为工作目录 + 总结 + 分配权限至少需要 rx 的权限 + 文件种类和扩展名 + 常规文件 + 纯文本 + 二进制 + 数据文件 + 用户登录记录在 /var/log/wtmp + 目录 + 链接 + 设备和设备文件 + 区块设备 + 字符设备 + 数据接口 + /run 或者 /tmp + FIFO 数据传输文件 + 解决并发读写的问题 + Linux文件扩展名 + 文件名字长度限制 + 单一文件目录最大为255字节 + 128个汉字左右 + 避免特殊字符 + FHS 目录配置 + 可分享和不可分享 + 不变和可变动 + 规范 + / : 和系统有关 + /usr : 软件的安装和执行有关 + /var : 系统运行过程有关 + 规范要求的目录 + / + /bin + 单人维护下依然可以使用的命令 + /boot + 内核常用文件 + /dev + 设备 + /etc + 不要放可执行文件 + 系统的主要配置文件 + /lib + 库函数 + /media + 媒体设备 + /mnt + 挂载外部硬盘 + /opt + 第三方软件 + 个人公司的标准 + /run + 新版可以用内存模拟 + /sbin + 只有root 操作的命令 + /srv + service + 网络服务 + /tmp + 临时文件 + /usr + /usr/bin + 一般用户能使用的命令 + /usr/lib + /lib基本相同的功能 + /usr/local + 系统管理员建议安装目录 + /usr/sbin + 非系统正常运行需要的命令 + /usr/share + **只读**数据文件 + /usr/games + /usr/include + c,c++ + /usr/libexec + 不被常用的执行文件或者脚本 + /usr/lib<qual>/ + usr/src + 源代码建议位置 + /var + /var/cache + 程序本身的缓存 + /var/lib + /var/lock + /var/log + /var/mail + /var/run + /var/spool + /home + 用户家目录 + ~:表示目前用户家目录 + ~xxx(用户名):谁的家目录 + /root + 系统管理员的家 + /lost+found + 标准的ext 文件系统的目录 + /proc + 虚拟文件系统 + /sys + 虚拟文件系统 + 早期系统必备五个目录挂载点 + /etc /dev /lib /sbin /bin
练习题
早期的 Unix 系统文件名最多允许 14 个字符,而新的 Unix 与 Linux 系统中,文件名最多可以容许几个 字符?
- 当一个一般文件权限为 -rwxrwxrwx 则表示这个文件的意义为?
- 我需要将一个文件的权限改为 -rwxr-xr-- 请问该如何下达指令?
- 若我需要更改一个文件的拥有者与群组,该用什么指令? chown, chgrp
- 请问底下的目录与主要放置什么数据: /etc/, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/ log, /run
/etc/:几乎系统的所有配置文件案均在此,尤其 passwd,shadow /boot:开机配置文件,也是预设摆放核心 vmlinuz 的地方 /usr/bin, /bin:一般执行档摆放的地方 /usr/sbin, /sbin:系统管理员常用指令集 /dev:摆放所有系统装置文件的目录 /var/log:摆放系统注册表文件的地方 /run:CentOS 7 以后才有,将经常变动的项目(每次开机都不同,如程序的 PID)移动到内存暂存,所以 /run 并不占实 际磁盘容量 - 若一个文件的档名开头为『 . 』,例如 .bashrc 这个文件,代表什么?另外,如何显示出这个文件名与他的 相关属性?
有『 . 』为开头的为隐藏档,需要使用 ls -a 这个 -a 的选项才能显示出隐藏文件的内容,而使用 ls -al 才能显示出属性。
第六章 Linux文件与目录管理
- 目录和路径
- 相对路径和绝对路径
- 目录相关操作
- . 代表当前
- ..
- - 前一个工作目录
- ~account 代表账号对应的家目录
- cd
- pwd
- mkdir
- rmdir
- 执行路径的变量($PATH)
- 为什么我可以在任何地方执行 ls
echo $PATH
- PATH="${PATH}:/root" 添加环境变量
- 不要用 "." 作为环境变量
- 可以做的事
- 不同身份用户默认PATH不一样
- PATH可以修改
- 使用绝对或者相对指定某个文件的文件名来执行,比PATH准确 ** 因为环境变量的命令存在重名优先级的问题
- 本目录不要放到环境变量
- ls
ls --full-time ~
- cp rm mv
- cp
- cp 源文件 目标文件
- -a 相当于 -dr---preserve=all 保留指定的属性(默认值:mode,ownership,timestamps)(如果可能)传统属性:上下文,链接,xattr,所有
- -d 与--no-dereference --preserve = links相同。源文件为链接,则复制文件属性而非文件
- -f 如果无法打开现有目标文件,将其删除,然后重试(此选项为 当同时使用-n选项时,将被忽略)
- -i 覆盖前提示(覆盖先前的-n选项)
- -p 连同文件的属性一起复制,而非默认(备份常用)
- -r 递归复制
- -s 复制为链接形式
- -t 根据时间排序
- 注意需要多文件复制,最后一个一定是目录
- 执行cp前的思考
- 是否需要保留完整源文件信息
- 源文件是否为符号链接
- 源文件是否是特殊文件
- 源文件是否为目录!
- rm
- rm 文件或者目录
- 超级危险的命令
- mv
- mv source des
- -f 强制
- -i 询问
- -u 只有新文件才能更新
- 获取路径的文件名和目录名称
- basename
- dirname
- 文件内容的读取
- cat 第一行开始
- tac 最后一行开始
- nl 显示行号
- more 一页一页
- less 和More差不多,但是可以往前翻页
- head 只看前几行
- tail 只看后几行
- od 以二进制读取
- 直接查看内容
- cat
- -A 列出一些空白字符不是空白而已
- 空格和制表符分别代表如下
- 制表符: ^I
- -b 列出行号
- -n 空白行也有行号
- -E 结尾换行符显示
- -v 特殊字符显示
- tac
- 反向显示
- nl
- -b 指定行号的格式
- -b a 是否空行都有行号
- -b t 如果有空行,空行不显示
- -n 列出行号的方法
- -n ln 左对齐
- -n rn 右对齐
- -n rz 自己栏位的最右方显示
- -w 行号栏位占用字符数
nl -b a -n rz /etc/issue
nl -b a -n rz -w 3 /etc/issue
- more
- 空格 下一页
- /字符串
- :f 立刻显示文件名和显示行数
- q
- b 回翻
- less
- page up 前翻
- page down 后翻
- N 反向重复前一个查找
- g 前进到这个数据前一行
- G 前进到这个数据最后一行
- q 离开
- head
- -n 显示几行
- tail
- 取后面几行
- -n 行数
- 如何去除10到20行的数据
head -n 20 /etc/man_db.conf | tail -n 10
cat -n /etc/man_db.conf | head -n 20 | tail -n 10
- od 非纯文本文件
- a 默认字符
- c ascii
- d 十进制
- f 浮点数
- 修改文件或者创建新文件
- 修改时间 mtime
- 内容修改的时候:如增加或者删除字符
- 状态时间 ctime
- 状态被改变:如权限被改了
- 读取时间 atime
- 只要被读取
- ls 默认为 m time
- touch 命令
- -a 仅自定义access time
- -c 修改文件的时间,不存在不建立新文件
- -d 后面可以接预定义的日期而不用目前的时间,
- -m 仅修改mtime
- -t 后面接预定义时间 [YYYYMMDDhhmm]
- 案例
date ; ll --time=atime .; ll --time=ctime .; ll --time=mtime .
- 常用情况
- 建立空文件
- 某个日期改成目前(mtime, atime)
- 文件和目录隐藏权限
- 新增文件和目录之后,默认的权限是什么?
- umask
- -S 使用字符表示权限
- 指的是需要减掉的权限
- 如0 就是所有权限都不要减掉
umask 002
- umask 在搭建文件服务器的作用很大
- 文件隐藏属性
- 注意必须在 ext 2 3 4 的系统上完全生效
- chattr [+-=] 文件和目录
- + 增加一个特殊参数
- - 删除特殊参数
- = 直接设置
- A 设置这个属性的时候。atime 不会改动、避免过度读写磁盘
- S 非同步写磁盘,修改文件会同步写入磁盘
- a 设置之后只能增加数据,不能删除和修改,只有root有权限
- c 默认对文件压缩存储
- d 阻止dump程序dump文件
- i 让文件不能删除,改名,设置连接也无法写入或者新增, 只有root有权限
- s 如果设置s,文件被删除,完全从磁盘删除
- u 相反,被删除了,内容还在磁盘,用于文件恢复
- 注意点:
- a 和 i 比较常用
- xfs 文件系统仅仅支持 AadiS
- lsattr [-adR] 文件或者目录
- -a 隐藏文件也显示
- -d 如果是目录,仅仅列出目录
- -R 子目录一起列出来
- 文件特殊权限
- SUID
- 只对二进制文件有效
- 执行者对于该程序具有x可执行权限
- 仅在执行过程中有效
- 执行者具有拥有者的权限
- 处理密码这种机密文件只能让root修改,但是又要让用户可以修改自己密码的时候这种情况的处理方式
- 案例
- /etc/bin/passwd
- 用户对于passwd 有执行权限,所以是执行者
- passwd 拥有者是root
- 用户执行passwd的时候,会得到root权限
- 由于有暂时的root权限,所以可以修改密码,但是只能修改自己的那部分
- 只能是二进制文件,只能是二进制文件,只能是二进制文件
- SGID
- ls -l /usr/bin/local
- 文件的情况
- 对于二进制有用
- 程序执行者对于程序来说是 x权限
- 执行者在执行过程中获得用户组的支持
- 目录的情况
- r和x权限,可以进入此目录
- 此目录的有效用户组,会变成改目录的用户组
- 如果在此目录新建文件,该文件的用户组会和此目录的用户组相同
- 举例
sudo ls -l /usr/bin/locate /var/lib/mlocate/mlocate.db
- SBIT
- 用户对于此目录具有w,x权限的时候,具有写入的权限
- 该目录新建文件的时候,仅有自己和root有权利删除该文件
- 后面的章节再来回顾,请看16章
- 观察文件类型 file 命令
- 案例
file /etc/bin/passwd
- 文件的查找
- which
- -a 将所有由PATH 环境变量可以找到的列出来
- 注意是以 PATH为环境变量起点的
- find
- 能不用就不用
- whereis
- -l 列出会去查看的几个主要目录
- -b 只看二进制文件
- -m 只查找说明文件Manual 路径的文件( man 记录的)
- -s 执照源文件
- -u 查找不在上述文件的三个文件
- 案例
- 找出 ifconfig 文件名
- 执照出和passwd有关的说明文件
- locate/ updatedb
- -I 忽略大小写
- -c 不输出文件名,只输出数量
- -l 输出几行,五行就是 -l 5
- -S 输出locate 使用的数据库信息
- -r 正则方式
- 案例
- 找出系统中和passwd 相关的所有文件名,只需要5个
- 列出locate查询使用的信息和列出数据的数量
- 注意点
- 新文件有可能找不到,因为数据库一般是一天更新一次
- 更新方法:updatedb
- 原理
- 按照 /var/lib/mlocate 数据库近路,找出关键词的文件名
练习题
情境模拟题一:假设系统中有两个账号,分别是 alex 与 arod ,这两个人除了自己群组之外还共同支持一个名为 project 的群组。假设这两个用户需要共同拥有 /srv/ahome/ 目录的开发权,且该目录不许其他人进入查阅。 请问 该目录的权限设定应为何?请先以传统权限说明,再以 SGID 的功能解析。 目标:了解到为何项目开发时,目录最好需要设定 SGID 的权限! 前提:多个账号支持同一群组,且共同拥有目录的使用权! 需求:需要使用 root 的身份来进行 chmod, chgrp 等帮用户设定好他们的开发环境才行! 这也是管理员的 重要任务之一!
简答题
什么是绝对路径与相对路径 绝对路径的写法为由 / 开始写,至于相对路径则不由 / 开始写!此外,相对路径为相对于目前工作目录的路径! 如何更改一个目录的名称?例如由 /home/test 变为 /home/test2 mv /home/test /home/test2 PATH 这个环境变量的意义? 这个是用来指定执行文件执行的时候,指令搜寻的目录路径。 umask 有什么用处与优点? umask 可以拿掉一些权限,因此,适当的定义 umask 有助于系统的安全, 因为他可以用来建立默认的目录或文件的权限。 当一个使用者的 umask 分别为 033 与 044 他所建立的文件与目录的权限为何? 在 umask 为 033 时,则预设是拿掉 group 与 other 的 w(2)x(1) 权限,因此权限就成为『文件 -rw-r--r-- , 目录 drwxr--r-- 』 而当 umask 044 时,则拿掉 r 的属性,因此就成为『文件 -rw--w--w-,目录 drwx-wx-wx』 什么是 SUID ? 当一个指令具有 SUID 的功能时,则: o SUID 权限仅对二进制程序(binary program)有效; o 执行者对于该程序需要具有 x 的可执行权限; o 本权限仅在执行该程序的过程中有效 (run-time); o 执行者将具有该程序拥有者 (owner) 的权限。 当我要查询 /usr/bin/passwd 这个文件的一些属性时(1)传统权限;(2)文件类型与(3)文件的隐藏属性,可以使 用什么指令来查询? ls -al file lsattr 尝试用 find 找出目前 linux 系统中,所有具有 SUID 的文件有哪些? find / -perm +4000 -print 找出 /etc 底下,文件大小介于 50K 到 60K 之间的文件,并且将权限完整的列出 (ls -l): find /etc -size +50k -a -size -60k -exec ls -l {} \; 注意到 -a ,那个 -a 是 and 的意思,为符合两者才算成功 找出 /etc 底下,文件容量大于 50K 且文件所属人不是 root 的档名,且将权限完整的列出 (ls -l); find /etc -size +50k -a ! -user root -exec ls -ld {} \; find /etc -size +50k -a ! -user root -type f -exec ls -l {} \; 上面两式均可!注意到 ! ,那个 ! 代表的是反向选择,亦即『不是后面的项目』之意! 找出 /etc 底下,容量大于 1500K 以及容量等于 0 的文件: find /etc -size +1500k -o -size 0 相对于 -a ,那个 -o 就是或 (or) 的意思啰!
写在最后
下篇的内容在后续会讲述后面到第十个章节的内容。