Linux系统安装与登陆等基础知识讲解

1. 设备文件名

各硬件设备在Linux中的设备文件名如下,

这里需要说明的是两种硬盘的设备文件名确定方式:

① IDE硬盘是根据排线和跳针的连接情况确定

② SATA硬盘是根据内核检测到的顺序来命名,与实际插槽代号无关

2. Linux中磁盘使用步骤

1)磁盘的第一个扇区

A. Boot Sector构成

Boot Sector(引导扇区)通常指设备的第一个扇区(是整个磁盘的第一个扇区,需要区别于分区引导扇区),在PC上BIOS会读取该扇区,并将控制权转交给Boot Sector上的MBR。

Boot Sector包含3部分内容:

MBR(Master Boot Record,主引导记录),446B,实际为bootloader的一部分

DPT(Disk Partition Table,磁盘分区表), 64B

BRID(Boot Record ID,引导记录标识),2B,且必须是0x55AA

B. 开机流程与MBR

① 开机简要流程

注意:BIOS是根据设置去取得能够开机的硬盘设备,然后在该硬盘的第一个扇区的MBR位置取得引导加载程序。当然,用户可以设置不从硬盘启动,但与此类似。

② bootloader的功能

a. 提供菜单:可供用户选择不同的开机选项

b. 载入内核文件:直接指向可开机的程序区段来开始操作系统

c. 转交其他loader:将引导加载功能交给其他loader负责

转交其他loader的功能用于实现多重引导启动,实现原理是Linux的引导加载程序除了可以安装在MBR,还可以安装在每个分区的引导扇区

需要注意的是,安装多重引导时,应该先安装Windows后安装Linux,因为只有Linux可以选择将grub安装到分区的引导扇区

2)分区

A. 分区规定解析

每个表项占用16B,所以DPT最多只能容纳4个分区,因此传统磁盘上引入了扩展分区和逻辑分区的概念。

引入扩展分区的目的就是使用额外的扇区来记录分区信息,因此扩展分区本身不能被格式化与写入数据,只能包含逻辑分区。

Linux中对分区有如下规定:

① 主分区(Primary)最多只有4个(磁盘的限制)

② 扩展分区(Extended)最多只能有1个(操作系统的限制)

③ 主分区 + 扩展分区最多只有4个

④ 逻辑分区数量依操作系统和磁盘类型而定,在Linux中,IDE硬盘最多有59个逻辑分区(5 ~ 63号),SATA硬盘最多11个逻辑分区(5 ~ 15号)

B. 分区设备文件名

① 1 ~ 4号为主分区或扩展分区

② 逻辑分区从5号开始

示例如下,

C. 必须分区与建议分区

① 必须分区

/:根分区

swap分区:交换分区,一般为内存2倍但不超过2G(如果物理内存足够大,不分配swap分区也是可以的)

② 建议分区

/boot:启动分区,200MB。该分区包含了grub、Linux内核镜像、initramfs。/boot分区的关键是将启动扇区所在的分区规范在小于1024个柱面以内

说明:只要设置/boot分区,就会自动被调整为sda1(即分区号为1)。因为硬盘最开始部分有和系统启动相关的信息(e.g. 分区表)

我们最终的分区如下图所示,

3)格式化

此处涉及的格式化是高级格式化又称逻辑格式化,他是指根据用户指定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等)在磁盘的特定区域写入特定的数据,在分区中划出一片用于存放文件分配表、目录表等用于文件系统管理的磁盘空间,同时磁盘被划分为统一大小的数据块(block),Linux中根据存放文件的不同分为1KB和4KB(主要是出于存储效率的考虑,之后有介绍)

补充:所谓低级格式化则是将磁盘内容清空,恢复出厂时的状态,划分出柱面的磁道,一般在硬盘出厂和出现坏道时才会进行

说明:注意PC机和嵌入式设备格式化时的区别。PC机格式化时一般都是直接以分区为单位,因此文件系统的大小和分区大小匹配。嵌入式设备中一般是制作文件系统镜像然后烧写到分区中,因此分区大小和文件系统大小可能不匹配。

4)挂载

挂载就是利用一个目录作为进入点,将磁盘分区的数据放置在该目录下,进入该目录就可以读取该分区的数据。这也就是根目录/ 必须挂载的原因,不然整个目录系统的“大门”都进不去。

说明1:挂载时使用的是分区设备文件名

说明2:可以给子目录挂载分区

虽然/home是/ 的子目录,但可以给其单独挂载硬盘分区。在后续的Linux内核文档中会发现,所谓挂载,就是将一个文件系统的顶层目录与Linux目录树中的一个目录结合起来。

3. 登陆与注销

1)运行等级

纯文本界面:run level 3

图形界面:run level 5

注:可以修改/etc/inittab确定下次启动时的运行等级

可以使用runlevel命令查询系统运行级别,

此处的N是指上一个运行级别,由于我们开机就是图形界面,所以显示为N。

说明1:可以使用init命令切换运行等级(e.g. init 3)

说明2:使用init 0也可以关机,但不会关闭正在运行的服务,所以不推荐使用

2)字符界面登陆时显示的内容

其中前两行的内容来自/etc/issue文件

第1行:Linux发行版本

第2行:内核版本及主机硬件等级(i686)

注:login之前的localhost为主机名

登陆后显示内容如下:

root@localhost:登陆用户名@主机名

#为root用户提示符,其余为$

3)注销命令exit

这是一个bash内建命令,用于注销用户

注:离开系统不是关机,Linux本身已经有很多的工作在进行,你的登陆也仅是其中一个“工作”而已

补充:当使用字符界面登陆时,也可以用logout注销,这也是一个bash内建命令

4. 语系设置

1) 查看当前语系

其中LANG是一个环境变量

2) 修改当前语系

① 在shell中临时修改

本质是修改了环境变量LANG的值,由于修改语系为美国英语,此时中文显示将是乱码

② 修改配置文件

配置文件路径:/etc/sysconfig/i18n

5. Linux命令执行的2种情况

1)直接显示结果后回到命令提示符,等待下一条命令的输入,如ls。

2)进入该命令的环境,直到结束该命令才回到命令提示符环境,如tftp和bc

6. 重要热键

1)[Tab]键:命令/文件名补全

2)[Ctrl] + c:结束当前程序,实际上是发送SIGKILL信号给当前进程

3)[Ctrl] + d:表示End of line,即EOF;也可用于离开文字界面(包括图像界面下的模拟终端),作用相当于exit命令

7. 出现command not found的三种原因

1)命令打错

2)软件没安装

3)这个命令所在路径不在PATH环境变量中

8. 关机与重启

1)正确的关机步骤

A. 查看系统状态

who:查看哪些用户在线

netstat -a:查看网络连接状态

ps -aux:查看主机进程状态

说明:需要上述步骤是因为Linux是多用户多任务操作系统

B. 通知在线用户关机时刻

使用shutdown的特殊功能

C. 使用shutdown或reboot命令关机重启

2)相关命令

A. sync

作用:将数据同步写入磁盘

说明:shutdown/reboot/halt命令均会在关机前调用sync工具

注意:一般账户使用sync只能同步自己的数据,而root用户可以同步系统中所有数据

B. shutdown

作用:惯用的关机命令,可以正确地保存正在运行的服务的状态

说明:除了在图像界面登陆,只有root用户才有关机权限

常见用法:shutdown [-rhkc] 时间 [警告信息]

-h:关机

-r:重启

-k:并不关机,只是发送警告信息

-c:取消之前的shutdown命令

时间:必须参数,可以指定具体时间,也可以用当前时间作基准指定时间间隔

示例:shutdown -h now <---> shutdowm -h 0

shutdown -h 20:15

shutdown -h +10 #10 minutes

shutdown -k now 'system will reboot'

C. reboot,halt,poweroff

poweroff相当于直接断电,不提倡使用

9. 帮助命令

1)man

命令名称:man

命令英文原意:mannual

命令所在路径:/usr/bin/man

执行权限:所有用户

功能描述:查看帮助信息(获得完整帮助)

语法:man [命令或配置文件]

示例:man ls

man inittab

说明1:使用man查询配置文件时不加路径名(如/etc/inittab),只要配置文件名即可

说明2:查询配置文件时注意两点:①该配置文件的用途;②该配置文件中条目的格式

说明3:man手册可分册查看(如man 1 passwd和man 5 passwd),各分册含义如下,

1:shell命令(User Commands)

2:系统内核调用(System Calls)

3:C库函数(C Library Functions)

4:设备/特殊文件,使用时直接用设备文件名,不需要路径,如man sd(Devices and Special Files)

5:配置文件,查询时不需要配置文件的绝对路径,只需要配置文件名,比如man inittab

6:游戏

7:惯例与协议,如Linux文件系统、网络协议(如TCP/IP)等(Miscellanea,杂记)

8:系统管理员可用的管理命令,如man init

说明4:man手册数据一般存放在/usr/share/man目录下

2)whatis & apropos

如果不需要完整的帮助信息,只是需要简短信息,可以使用whatis和apropos

用法:whatis/apropos 命令名称/配置文件名

两者的差别在于,whatis是匹配完整的文件名,而apropos是匹配字符串。可参见下面是示例,一目了然

注意:whatis和apropos均是查询whatis数据库,使用前需要使用makewhatis来生成该数据库

3)查询命令选项

如果只是查询命令选项

命令 --help

4)查询shell内置命令

命令名称:help

命令所在路径:shell内置命令

执行权限:所有用户

功能描述:获得shell内置命令的帮助信息

语法:help 命令

补充:help命令还可以查询shell脚本中的if、while等结构性语句用法,可在编写shell脚本时参考

10. 忘记root密码如何处理

关键:进入单用户模式进行修复

步骤:

① 在开机都秒时打断,进入grub模式

② 点击e,修改该命令行

修改kernel所在行,即启动内核时传递的参数,在最后添加single,即启动后进入单用户模式

③ 进入单用户模式使用passwd命令修改root密码即可

注意:此处修改内核参数在下次启动时会恢复原样,因为系统启动时会从/boot/grub/grub.conf中读取启动参数

11. 系统安装日志

/root/install.log:存储了安装在系统中的软件包及其版本信息

/root/install.log.syslog:存储了安装过程中留下的事件记录

/root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息

相关推荐