第三章
主导分区(MBR), 当系统在开机的时候会主动去读取这个区块的内容, 必须对硬盘进行分区, 这样硬盘才能被有效地使用.
所谓的分区只是针对 64Bytes 的分区表进行设置.
分区的最小单位为柱面(cylinder).
扩展分区记录区也叫作逻辑分区.
BIOS 是写入到主板上的固件, 开机时计算机会主动执行的第一个程序.
引导加载程序(Boot loader): 一支可读取内核文件来执行的软件.
文件系统与目录树的关系(挂载):
所谓挂载就是利用一个目录当成进入点, 将磁盘分区的数据放置在该目录下.
NAT(达到路由器的功能): Linux 通过 NAT 服务达到路由器.
web(www 服务器),www 服务器几乎是所有网络都会安装的一个功能, www 链接和网络主机上面的软件功能.
Proxy(代理服务器),Proxy 将有效地解决带宽不足的问题.
FTP(文件传输服务器)进行网络数据传输.
第五章
基础命令的操作:
显示日期与时间的命令: date;
date +%Y/%m/%d 格式化日期.
date +%H:%M 格式化时间.
显示日历的命令: cal;
简单好用的计算器: bc;
重要的热键;
TAB 键进行补齐, 包括文件补齐和命令补齐.
Ctrl+C 这个组合键是中断当前程序.
Ctrl+d 这个组合键代表键盘输入结束(End Of File).
在线求助 man page 与 info page:
man 后面的数字的含义:
1 表示用户在 shell 环境中可以操作的命令或可以执行的文件.
2 表示系统内核可调用的函数与工具.
3 表示一些常用的函数与函数库(大部分是 C 的函数库).
4 表示设备文件, 在 / dev 文件夹下.
5 表示配置文件或者是某些文件的格式.
6 表示游戏(games).
7 表示惯例与协议, 诸如 Linux 文件系统, 网络协议, ASCII code 等.
8 系统管理员所用的管理命令.
9 表示与 kernel 有关的文件.
man page 中的查询:
/string 向下查询 string 字符串;
?string 向上查询 string 字符串;
n 继续向下查询, N 继续向上查询;
q 结束这次 man page.
正确的关机方法:
查看系统的使用状态:
查看网络联机状态: netstat -a;
查看后台执行的程序: ps -aux;
将数据写入硬盘中: sync;
惯用的关机命令: shutdown;
shutdown -h now;
重启和关机: reboot, halt, poweroff.
root 权限的密码忘记了, 该怎么办?
使用 grub 引导装载程序.
第六章
Linux 的文件权限与目录配置
Linux 是一个多用户, 多任务的操作系统, 将文件分为 3 个类别: owner/group/others, 且有 read,write,execute 的权限.
用户与用户组:
每个账号都可以有多个用户组的支持.
王大毛的家就是用户组, 王氏三兄弟就是用户.
在 Linux 中的任意一个文件都具有 User,Group 及 Others;
root 权限就是万能的天神;
账户信息都记录在 / etc/passwd 这个文件中, 个人密码记录在 / etc/shaow 文件中, 所有的组名都记录在 / etc/group 内.
文件所有者的权限, 同组用户的权限, 其他非本用户组的权限.
多少文件名连接到此节点(i-node).
所有者, 所属用户组, 文件大小, 修改日期, 文件名.
如何改变文件属性与权限:
chgrp, 改变文件所属用户组;
chown, 改变文件所有者;
将目录下的所有子目录或文件同时更改所有者, 需要添加一个 - R 选项.
chmod root:root install.log
将 install.log 的所有者和用户组都改为 root.
chmod, 改变文件的权限.
r 的值是 4,w 的值为 2,e 执行的值为 1;
u 代表 user,g 代表 group,o 代表 others,a 代表 all.
+ 是加入, - 是去除,= 是设置.
Linux 目录配置标准: FHS:
/usr 软件放置处;
/etc 配置文件;
/opt 第三方软件;
/boot 开机与内核文件;
/bin 在单用户维护模式下还能被操作的命令;
/dev 任何设备与接口都会存在于这个目录下;
/lib 系统开机会用到的库函数;
/media 中放置的是可删除的设备;
/mnt 挂载额外的设备;
sbin 给 root 用户的系统设置;
srv 网络服务的数据目录;
tmp 是用户或程序暂时放置文件的地方;
/var 可变动的文件.
/lost+found 当文件系统发生错误时, 将一些丢失的片段放到这个目录中.
/proc 这是一个虚拟文件系统(virtual filesystem), 它放置的数据都是在内存当中, 系统内核, 进程, 网络状态, 设备状态, 本身不会占用磁盘空间;
/proc/cpuinfo, /proc/dma, /proc/interrupts.
/sys 也是一个虚拟文件系统, 主要记录与内核相关的信息;
目前加载到内核中的内核模块;
内核监测到的硬件设备信息;
与开机相关的目录不能与根目录放到不同的分区中.
第七章
rmdir 删除一个空的目录;
关于执行文件路径的变量: $PATH;
$PATH 中那个目录先被查询, 就会先被执行这个目录下的命令.
basename 就是取得最后的文件名;
dirname 就是取得目录名.
文件内容查阅:
cat 由第一行显示文件内容;
tac 从最后一行开始显示, 是 cat 的倒写形式;
nl 显示的时候随便输出行号;
more 一页一页地显示文件内容;
空格键 (space) 向下翻一页;
Enter 向下滚动一行;
/string, 向下查找 string 的字符串;
:f 立即显示出文件名以及目前显示的行数;
q 离开 more, 不再显示该文件内容;
b 对文件往回翻页;
Less 与 more 类似, 但比 more 更好的是它可以往前翻页;
head 只看头几行;
tail 只看尾几行;
od 以二进制的方式读取文件内容.
修改文件时间或创建新文件: touch 命令.
文件与目录的默认权限与隐藏权限:
文件默认权限: umask;
与一般权限有关的是后面三个数字;
umask -S(Sybolic)以符号类型的方式来显示出权限.
文件隐藏属性: chattr, lsattr;
lsattr 命令显示文件隐藏属性; 使用 chattr 设置后, 利用 lsattr 来查看隐藏属性;
查看文件类型: file 命令;
脚本文件名的查询, which 这个命令查询执行文件;
文件名的查找, whereis, 寻找特定文件;
Linux 系统的所有文件都记录在一个数据库文件里;
locate 查找查找文件的部分名称;
-i 忽略大小写的差异;
-r 后面可接正则表达式的显示方式.
find 命令:
find [PATH] [option] [action]
find 的功能就是能够进行额外的动作(action);
不但可以指定查找的目录, 并且还可以利用额外的参数来找到最正确的文件名.
权限与命令间的关系
让用户进入某目录称为 "可工作目录" 的基本权限是什么:
可使用的命令, cd;
目录所需权限, 至少需要具有 x 的权限;
利用 ls 命令还需要 r 权限;
让一个用户可以创建一个文件的基本权限是需要 w;
文件特殊权限: SUID, SGID, SBIT:
SUID 只能用于二进制程序上, 不能用在 shell script 上面;
SGID(Set GID), 对二进制程序有用, 程序执行者对该程序来说要具有 x 的执行权限;
执行者在执行的过程中将获得该程序用户组的支持;
SBIT(Sticky Bit)只针对目录有效;
4 位 SUID,2 位 SGID,1 为 SBIT.
第八章
inode,block 和 superblock 等文件系统;
super block 记录此文件系统的整体信息, 包括 inode,block 的总量, 使用量和剩余量, 以及文件系统的格式与相关信息;
inode 记录文件属性, 一个文件占用一个 inode, 同时记录此文件的数据所在的 block 号码;
block 实际记录文件的内容, 若文件太大时, 会占用多个 block.
索引式文件系统(indexed allocation), FAT 格式的文件系统(每个 block 号码都记录在前一个 block 当中).
在文件系统中, 文件系统最前面有一个启动扇区(boot sector), 这个扇区可以安装引导装载程序.
数据块(data block), 用来放置文件内容的地方.
每个 block 上最多只能放置一个文件的数据;
inode table(inode 表格): 每个文件都会占用一个 inode 而已;
总额: 将直接, 间接, 双间接, 三间接加总.
Superblock(超级块):Superblock 是记录整个文件系统相关信息的地方, 没有 Superblock 就没有这个文件系统了.
- File system Description(文件系统描述说明);
- block bitmap(块对照表);
- inode bitmap(inode 对照表);
dumpe2fs [-bh] 设备文件名
,dumpe2fs 可以查询到非常多的信息;
df 这个命令可以调出目前挂载的设备;
ls -li 可以查看文件所占用的 inode 号码.
将 inode table 与 data block 称为数据存放区域.
系统会不定时地讲内存中设置为 Dirty 的数据写回磁盘, 以保持磁盘与内存数据的一致性.
挂载点 (mount point) 一定是目录, 该目录是进入该文件系统的入口.
传统文件系统, 日志文件系统, 网络文件系统:
ls -l /lib/modules/$(uname -r)/kernel/fs
--- 查看 Linux 支持的文件系统有哪些.
cat /proc/filesystems
系统目前已加载到内存中支持的文件系统;
Linux VFS(Virtual Filesystem Switch), 整个 Linux 的系统都是通过一个虚拟文件系统的内核功能去读取文件系统, 整个 Linux 认识的文件系统都是 VFS 进行管理, VFS 会帮助用户做好读取的操作.
文件系统的简单操作:
磁盘的目录的内容: df, du;
df: 列出文件系统的整体磁盘使用量;
dh: 评估文件系统的磁盘使用量(常用于评估目录所占容量).
连接文件: ln, 硬连接 (hard link, 实际连接) 和软连接(symbolic link, 符号连接);
文件名只与目录有关, 但文件内容必须由 inode 的记录来指向;
hard link 只是在某个目录下新建一条文件名连接到某 inode 号码的关联记录而已;
hard link 不能跨文件系统, 不能连接到目录.
symbolic link 就是在创建一个独立的文件, 而这个文件会让数据的读取指向它连接的那个文件名, 相当于 Windows 下的快捷方式;
symbolic link 所创建的文件未一个独立的新文件, 所以会占用掉 inode 与 block.
ln -sf 源文件 目标文件
;
磁盘的分区, 格式化, 检验与挂载:
fdisk -l 设备名称; fdisk 还可以直接秀出系统内的所有分区.
partprobe 强制让内核重新找一次分区表;
磁盘格式化: 文件系统的格式化为 mkfs 命令;
mkfs -t 文件系统格式 设备文件名
;
磁盘监测: fsck,badblocks;
fsck [-t 文件系统] [-ACay] 设备名称
;
badblocks -[svm] 设备名称
;
磁盘挂载与卸载:
单一文件系统不应该被重复挂载在不同的挂载点 (目录) 中;
单一目录不应该重复挂载多个文件系统;
作为挂载点的目录理论上应该都是空目录.
mount -a 与
mount [-t 文件系统] [-L Label 名] [-o 额外选项]
;
umount [-fn] 设备文件名或挂载点
.
磁盘参数的修改:
主设备代码(major), 次设备代码(minor), 通过 mknod 命令进行设置.
mknod 设备文件名 [bcp] [Major] [Minor]
;
e2label 命令用于修改卷标;
e2label 设备名称 新的 Label 名称
;
tune2fs -l 设备代号
;
hdparm [-icdmXTt] 设备名称
;
开机挂载:
设置开机挂载可以在 / etc/fstab 中进行设置,(file system table).
特殊设备 loop 挂载:
- mount -o loop /home/loopdev /media/cdrom
- .
内存交换空间:
swap 的功能就是在应付物理内存不足的情况下所造成的内存扩展记录的功能.
free 可以检查 swap 空间的大小.
太多小文件会造成非常多的磁盘空间浪费;
boot sector(启动扇区)与 super block 是独立的, 第一个 block 内就含有一个 boot sector 与 superblock.
GUN 项目的 parted 命令也可以用于分区;
parted [设备] [命令 [参数]]
.
来源: https://www.cnblogs.com/longjiang-uestc/p/10532739.html