slacr_

Just to record my life and thoughts.
笔记/编程/杂乱/极简

[Linux]初识

Sep 7, 2023Linux7113 words in 47 min

初识

显示日期与时间的指令: date
显示日历的指令: cal
简单好用的计算机: bc

获取帮助

–help 和 man page

man 中 代号

man page 中组成部分

操作

1
2
3
4
man -f man
man 7 mando

man -k date

info page

其他有用的文件

/usr/share/doc 有有许多说明文档

nano

正确的关机方法

观察系统的使用状态: 如果要看目前有谁在线上,可以下达“who”这个指令,而如果要看网络的连线状态,可以下达 “ netstat -a ”这个指令,而要看背景执行的程序可以执行“ ps -aux ”这个指令
通知线上使用者关机的时刻: 要关机前总得给线上的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别指令来达到此一功能。
正确的关机指令使用: 例如 shutdown 与 reboot 两个指令!

  • 将数据同步写入硬盘中的指令: sync
  • 惯用的关机指令: shutdown
  • 重新开机,关机: reboot, halt, poweroff
1
2
3
shutdown -h now
shutdown -r +30 'The system will reboot'
shutdown -k now 'This system will reboot'

实际使用管理工具 systemctl 关机

  • halt 进入系统停止的模式,屏幕可能会保留一些讯息,这与你的电源管理模式有关
  • poweroff 进入系统关机模式,
  • reboot 直接重新开机
  • suspend 进入休眠模式

或者 init 命令切换执行等级, 0 关机, 6重启

Linux 文件权限 与 目录配置

Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限

/etc/passwd == > 账号信息
/etc/shadow == > 个人密码
/etc/group == > 群组名称

第一个字符:

  • d ==> 目录
  • ‘-’ ==> 文件
  • l ==> 链接文件(link file)
  • b ==> 则表示为设备文件里面的可供储存的周边设备(可随机存取设备)
  • c ==> 表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。

后面字符三个一组:

  • r ==> read
  • w ==> write
  • x ==> execute
  • ‘-’ ==> 无权限

locale ==> 当地习惯

改变文件属性与权限

chgrp :改变文件所属群组
chown :改变文件拥有者
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

1
2
3
4
5
6
7
8
9
chgrp [-R] dirname/filename ...

chown [-R] 帐号名称 文件或目录
chown [-R] 帐号名称:群组名称 文件或目录

chmod [-R] xyz 文件或目录
chmod | u g o a | +(加入) -(除去) =(设置) | r w x | 文件或目录 |
chmod u=rwx,go=rx .bashrc
chmod a+w-x .bashrc

chown也可以使用 chown user.group file

linux 文件种类与扩展名

文件种类

  • ‘-’ 正规文件(regular file )
    • 纯文本文件(ASCII)
    • 二进制档(binary)
    • 数据格式文件(data)
  • d 目录(directory)
  • l 链接文件(link)
  • 设备与设备文件(device)
    • b 区块(block)设备文件
    • c 字符(character)设备文件
  • s 数据接口文件(sockets)
  • p 数据输送档(FIFO, pipe)

扩展名

  • .sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的
  • Z, .tar, .tar.gz, .zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar
    等等的,由于不同的压缩软件,而取其相关的扩展名
  • .html, .php:网页相关文件

单一文件或目录的最大容许文件名为 255Bytes
文件名称的开头为小数点“.”时, 代表这个文件为隐藏文件

linux 目录配置

Filesystem Hierarchy Standard (FHS)

FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态

FHS订定出来的四种目录特色为:shareable, unshareable, static, variable等四类;
FHS所定义的三层主目录为:/, /var, /usr三层
Linux文件名的限制为:单一文件或目录的最大容许文件名为 255 Bytes

事实上,FHS针对目录树架构仅定义出三层目录下面应该放置什么数据而已,分别是下面这三个目录的定义:
/ (root, 根目录):与开机系统有关;
/usr (unix software resource):与软件安装/执行有关;
/var (variable):与系统运行过程有关。

FHS建议所有软件开发者,应该将他们的数据合理的分别放置到/usr这个目录下的次目录,而不要自行创建该软件自己独立的目录。

Linux Standard Base (LSB) 的标准
https://wiki.linuxfoundation.org/lsb/start

1
2
3
4
uname -r # 查看核心版本
uname -m # 查看操作系统的位版本
yum install redhat-lsb
lsb_release -a

Linux 文件与目录管理

1
2
3
4
5
.       代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前使用者身份”所在的主文件夹
~account 代表 account 这个使用者的主文件夹(account是个帐号名称)
1
2
3
4
cd  :变换目录
pwd :显示目前的目录
mkdir :创建一个新的目录
rmdir :删除一个空的目录

可执行文件路径的变量 $PATH

1
2
3
4
5
echo $PATH
# $ 符表示变量, 显示出的路径之间用 : 分隔

# 添加PATH参数
export PATH=/usr/local/bin:$PATH

ls

1
2
3
4
ls -al
ls -laF --color=never
ls -la --full-time
# ll == ls -a

cp rm mv

1
2
3
4
5
6
7
8
sudo copy -i /home/centos/Desktop/text.txt /home/slacr/Desktop/text_from_centos.txt
# -i 参数会询问确认
sudo rm -rf /*
# -rf 强制force, recursive 递归
rm -- -aaa.txt
rm -- ./-aaa.txt
mv f1 f2 d
# 移动多个文件最后一个一定是目标文件夹

dirname basename

1
2
dirname ~/centos/Desktop/d/b1
basename ~/centos/Desktop/d/b1

cat tac nl more less head tail od 文件内容查阅

  • cat [-AbEnTv]
    选项与参数:
    -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
    -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
    -E :将结尾的断行字符 $ 显示出来;
    -n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
    -T :将 [tab] 按键以 ^I 显示出来;
    -v :列出一些看不出来的特殊字符

  • tac 反向显示,由最后一行到第一行反向在屏幕上显示出来

  • nl (添加行号打印)
    nl [-bnw] 文件
    选项与参数:
    -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
    -n :列出行号表示的方法,主要有三种:
    -n ln :行号在屏幕的最左方显示;
    -n rn :行号在自己字段的最右方显示,且不加 0 ;
    -n rz :行号在自己字段的最右方显示,且加 0 ;
    -w :行号字段的占用的字符数。

  • more (一页一页翻动)
    空白键 (space):代表向下翻一页;
    Enter :代表向下翻“一行”;
    /字串 :代表在这个显示的内容当中,向下搜寻“字串”这个关键字;
    :f :立刻显示出文件名以及目前显示的行数;
    q :代表立刻离开 more ,不再显示该文件内容。
    b 或 ctrl + b :代表往回翻页,不过这动作只对文件有用,对管道无用

  • less (一页一页翻动)
    pagedown:向下翻动一页;
    pageup :向上翻动一页;
    /字串 :向下搜寻“字串”的功能;
    ?字串 :向上搜寻“字串”的功能;
    n :重复前一个搜寻 (与 / 或 ? 有关!)
    N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    g :前进到这个数据的第一行去;
    G :前进到这个数据的最后一行去 (注意大小写);
    q :离开 less 这个程序;

  • head (取出前面几行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
head [-n number] 文件
head -n 20 /etc/man_db.conf | tail -n 10
cat -n /etc/man_db.conf | head -n 20 |tail -n 10
```

### od 非纯文本文件

```shell
od [-t TYPE] 文件
选项或参数:
-t :后面可以接各种“类型 (TYPE)”的输出,例如:
a :利用默认的字符来输出;
c :使用 ASCII 字符来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size Bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size Bytes ;
o[size] :利用八进位(octal)来输出数据,每个整数占用 size Bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size Bytes ;

od -t c /usr/bin/passwd
od -t oCc /etc/issue
echo password | od -t oCc

touch 修改文件时间或创建新文件

modification time (mtime)更改文件内容
change time (ctime)权限与属性更改
access time (atime)文件被访问

1
date; ll /etc/man_db.conf; ll --time=atime /etc/man_db.conf; ll --time=ctime /etc/man_db.conf
1
2
3
4
5
6
7
8
touch [-acdmt] 文件
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]

touch -t "200320240101" ./test

文件与目录的默认权限与隐藏权限

chattr lsattr 更改 查看所有属性

umask 文件默认权限

1
2
3
umask # 显示的是被拿去的权限, 第一位对应隐藏权限
umask -S
umask 002 # 更改

文件默认权限 666, 目录默认权限 777, 然后减去umask拿去的权限

文件隐藏属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+ :增加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :设置一定,且仅有后面接的参数
A :当设置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime 将不会被修改,
可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)
S :一般文件是非同步写入磁盘的, ,如果加上 S 这个属性时,当你进行任何文件的修改,该更动会“同步”写入磁盘中。
a :当设置 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设置这属性
c :这个属性设置之后,将会自动的将此文件“压缩”,在读取的时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存
d :当 dump 程序被执行的时候,设置 d 属性将可使该文件(或目录)不会被 dump 备份
i :这个 i 可就很厉害了!他可以让一个文件“不能被删除、改名、设置链接也无法写入或新增数据!” 对于系统安全性有相当大的助益!只有 root 能设置此属性
s :当文件设置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,所以如果误删了,完全无法救回来了喔!
u :与 s 相反的,当使用 u 来设置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中,可以使用来救援该文件

chattr +i ./test.c
lsattr ./test.c

文件特殊权限: SUID, SGID, SBIT

文件具有SUID的特殊权限时,代表当使用者执行此一binary程序时,在执行过程中使用
者会暂时具有程序拥有者的权限
目录具有SGID的特殊权限时,代表使用者在这个目录下面新建的文件之群组都会与该目
录的群组名称相同。
目录具有SBIT的特殊权限时,代表在该目录下使用者创建的文件只有自己与root能够删
除!

  • Set UID
    当 s 这个标志出现在文件拥有者的 x 权限上时,例如刚刚提到的 /usr/bin/passwd 这个文件的
    权限状态:“-rwsr-xr-x”,此时就被称为 Set UID,简称为 SUID 的特殊权限。

SUID 权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限。

  • Set GID
    当 s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID
    执行者在执行的过程中将会获得该程序群组的支持

  • Sticky Bit
    SBIT 目前只针对目录有效:

当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件

  • SUID/SGID/SBIT 权限设置
1
2
3
4
chmod 4755 test; ll test
chmod 6755 test
chmod u+s,g+s,o+t test
# 大写表示无此权限, 需要现有x才能有s和t

file 观察文件类型

1
2
file ~/.bashrc
file /usr/bin/passwd

指令与文件搜寻

which 寻找可执行文件(PATH中)

1
2
which ipconfig
which -a which

whereis (由一些特定的目录中寻找文件文件名)

1
2
3
4
5
6
7
8
9
10
11
whereis [-bmsu] 文件或目录名
选项与参数:
-l :可以列出 whereis 会去查询的几个主要目录而已
-b :只找 binary 格式的文件
-m :只找在说明文档 manual 路径下的文件
-s :只找 source 来源文件
-u :搜寻不在上述三个项目当中的其他特殊文件

whereis -l
whereis -m ifconfig
whereis whereis

locate / updatedb

1
2
3
4
5
6
7
8
9
10
[root@study ~]# locate [-ir] keyword
选项与参数:
-i :忽略大小写的差异;
-c :不输出文件名,仅计算找到的文件数量
-l :仅输出几行的意思,例如输出五行则是 -l 5
-S :输出 locate 所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等
-r :后面可接正则表达式的显示方式

locate -l 5 passwd
locate -S

locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/, ,而数据库的创建默认是在每天执行
一次
updatedb指令会去读取 /etc/updatedb.conf 这个配置文件的设置,然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件

find

对整个磁盘进行搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
find [PATH] [option] [action]
选项与参数:
1\. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的“一天之内”被更动过内容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件文件名;
-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件文件名。
-newer file :file 为一个存在的文件,列出比 file 还要新的文件文件名

find / -mtime 0
find /etc -newer /etc/passwd

2\. 与使用者或群组名称有关的参数:
-uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID ,这个 UID 是记录在
/etc/passwd 里面与帐号名称对应的数字。这方面我们会在第四篇介绍。
-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在
/etc/group,相关的介绍我们会第四篇说明~
-user name :name 为使用者帐号名称喔!例如 dmtsai
-group name:name 为群组名称喔,例如 users ;
-nouser :寻找文件的拥有者不存在 /etc/passwd 的人!
-nogroup :寻找文件的拥有群组不存在于 /etc/group 的文件!
当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,
这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。

find /home -user slacr
fine / -nogroup


3\. 与文件权限及名称有关的参数:
-name filename:搜寻文件名称为 filename 的文件;
-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:c: 代表 Byte, k: 代表 1024Bytes。所以,要找比 50KB还要大的文件,就是“ -size +50k ”
-type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f), 设备文件 (b, c),目录 (d), 链接文件 (l), socket (s), 及 FIFO (p) 等属性。
-perm mode :搜寻文件权限“刚好等于” mode 的文件,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
-perm -mode :搜寻文件权限“必须要全部囊括 mode 的权限”的文件,举例来说,我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
-perm /mode :搜寻文件权限“包含任一 mode 的权限”的文件,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在!


find / -name passwd
find / -name "*passwd*"
find /run -type s
find / -perm /7000

4\. 额外可进行的动作:
-exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。
-print :将结果打印到屏幕上,这个动作是默认动作

find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \; # \;跳脱
find / -size +1M

Linux 磁盘与文件管理系统

Linux 最传统的磁盘文件系统 (filesystem) 使用的是 EXT2(Linux second extendedfile system, ext2fs)
windows 98以前的微软操作系统主要利用的文件系统是 FAT (或 FAT16),windows 2000 以后的版本有所谓的 NTFS 文件系统

较新的操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文
件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等

  • superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
  • inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block号码;
  • block:实际记录文件的内容,若文件太大时,会占用多个 block 。

Ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每个区块群组都有独立的 inode/block/superblock 系统。

磁盘的分区、格式化、检验与挂载

lsblk 列出系统上的所有磁盘列表

1
2
3
4
5
6
7
8
9
10
11
lsblk [-dfimpt] [device]
选项与参数:
-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p :列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等

lsblk -f

blkid 列出设备的 UUID 等参数

1
2
3
4
5
6
blkid
/dev/sda2: UUID="7b6e477b-a8f4-4bd4-a2fb-ae927d565b4f" TYPE="xfs"
/dev/sda3: UUID="v8e1de-uRvc-vMiY-TDBP-07aw-jMUp-XEHh7N" TYPE="LVM2_member"
/dev/mapper/centos_bogon-root: UUID="28387426-1228-4728-928e-ac7f86113d80" TYPE="xfs"
/dev/mapper/centos_bogon-swap: UUID="a0c21ea8-3a1a-48f3-8d43-3088d68a984c" TYPE="swap"
/dev/mapper/centos_bogon-home: UUID="c40ebf04-2b17-4197-b3ca-fd4b5d1634bf" TYPE="xfs"

UUID 是全域单一识别码(universally unique identifier),Linux 会将系统内所有的设备都给予一个独一无二的识别
码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。

parted 列出磁盘的分区表类型与分区信息

1
2
3
4
5
6
7
8
9
10
11
parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system 标志
1 1049kB 3146kB 2097kB primary
2 3146kB 1077MB 1074MB primary xfs 启动
3 1077MB 33.3GB 32.2GB primary lvm

磁盘分区: gdisk/fdisk

1
fdisk /dev/sda

cat /proc/partitions # 核心的分区纪录

磁盘格式化(创建文件系统)

XFS 文件系统 mkfs.xfs

1
2
3
4
5
mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \
[-r parms] 设备名称

mkfs.xfs /dev/sda5
blkid /dev/sda5

EXT4 文件系统 mkfs.ext4

1
mkfs.ext4 [-b size] [-L label] 设备名称

mkfs 更多

1
2
3
4
5
6
7
8
mkfs -t xfs # 获取格式xfs有关参数
mkfs tab tab # 列出更多文件系统选项

mkfs -t vfat /dev/sda5
blkid /dev/sda5

mkfs -t xfs -f /dev/sda5
blkid /dev/sda5

文件系统检验

xfs_repair 处理 XFS 文件系统

当有 xfs 文件系统错乱才需要使用这个指令

1
2
3
4
5
xfs_repair [-fnd] 设备名称

-f :后面的设备其实是个文件而不是实体设备
-n :单纯检查并不修改文件系统的任何数据 (检查而已)
-d :通常用在单人维护模式下面,针对根目录 (/) 进行检查与修复的动作!很危险!不要随便使用

fsck.ext4 处理 EXT4 文件系统

1
2
3
4
5
6
fsck.ext4 [-pf] [-b superblock] 设备名称

-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时,通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在:1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768

文件系统挂载与卸载

不过要进行挂载前,你最好先确定:

  • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
  • 单一目录不应该重复挂载多个文件系统;
  • 要作为挂载点的目录,理论上应该都是空目录才是。
1
2
3
4
5
6
用法:
mount [-lhV]
mount -a [选项]
mount [选项] [--source] <源> | [--target] <目录>
mount [选项] <源> <目录>
mount <操作> <挂载点> [<目标>]

其他

快捷键

  • Ctrl + Alt + F2 ~ F7 :切换终端tty
  • tab : 补全
  • ctrl + L : 清空 or clear
  • ctrl + D : 退出

MBR

MBR(Master Boot Record)是计算机硬盘的一部分,位于磁盘的第一个扇区(编号为0)。MBR包含了引导加载程序(Boot Loader)和分区表(Partition Table)。

MBR的主要作用是引导计算机启动操作系统。当计算机开机时,BIOS(Basic Input/Output System)会读取硬盘的第一个扇区,即MBR,将控制权转交给MBR中的引导加载程序。引导加载程序负责加载操作系统的核心文件,并将控制权传递给操作系统。

MBR还包含了分区表,用于记录硬盘上的分区信息。分区表将硬盘划分为多个逻辑区域,每个区域可以独立地存储文件系统和数据。分区表中的每个条目描述了一个分区的起始位置、大小和类型。

然而,MBR有一些局限性。由于MBR的限制,最多只能支持4个主分区或3个主分区和1个扩展分区。扩展分区可以进一步划分为逻辑分区。此外,MBR不支持超过2TB的硬盘容量。

随着技术的发展,UEFI(Unified Extensible Firmware Interface)取代了传统的BIOS,并引入了GPT(GUID Partition Table)作为新的分区方案。GPT使用更现代的方法来管理硬盘分区,并支持更大的硬盘容量。

分区和文件系统

一个分区可以包含一个文件系统,但一个文件系统不一定局限于一个分区。

一个分区是硬盘上的一个逻辑区域,它可以用于存储一个文件系统。分区将硬盘划分为不同的区域,每个区域可以独立地格式化为一个文件系统,并用于存储文件和数据。

一个文件系统是用于组织和管理存储设备上的数据的方法。一个文件系统可以跨越多个分区,或者一个分区可以包含多个文件系统(例如,在一个扩展分区中创建多个逻辑分区,每个逻辑分区都可以格式化为一个文件系统)。

文件系统的作用是提供对存储设备上数据的访问、管理和操作。它定义了文件和目录的结构、访问权限、文件的存储方式以及文件的元数据等信息。


不同分区可以使用不同的文件系统。

文件系统是用于组织和管理存储设备上的数据的方法。不同的文件系统具有不同的特性和适用场景。常见的文件系统包括FAT32、NTFS、ext4、APFS等。

在一个硬盘上,可以将其划分为多个分区,并在每个分区上使用不同的文件系统。例如,您可以在一个硬盘上创建一个使用NTFS文件系统的分区,用于存储Windows操作系统的数据,同时创建另一个使用ext4文件系统的分区,用于存储Linux操作系统的数据。

使用不同的文件系统可以根据特定的需求选择最适合的文件系统。不同的文件系统可能具有不同的性能、兼容性、安全性和功能等特点。因此,在选择文件系统时,需要考虑操作系统的支持性、数据的重要性、文件大小限制等因素。

需要注意的是,不同操作系统对不同文件系统的支持可能有所差异。例如,Windows系统对NTFS和FAT32文件系统有较好的支持,而Linux系统对ext4文件系统有较好的支持。因此,在选择文件系统时,需要确保操作系统能够正确地读写和管理该文件系统。

参考

  1. [鸟哥linux基础学习篇4th]
  2. linux命令
  3. 开源许可证总览
  4. LSB标准
  5. 硬盘结构
  • Author:

    slacr_

  • Copyright:

  • Published:

    September 7, 2023

  • Updated:

    September 7, 2023

Buy me a cup of coffee ☕.

1000000