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配置文件的格式记录安装过程中设置的选项信息 |
|