Shell
Linux 的启动过程
- BIOS-MBR-BootLoader(grub)-kernel-systemd-系统初始化-shell
- BIOS BIOS引导,基本输入输出系统,在主板上,引导硬盘或光盘
- MBR 硬盘主引导
- BootLoader 启动和引导内核的工具,选择哪一个内核以及版本
- kernel 内核,驱动硬件,然后初始化环境
- systemd 1号进程,加载内核模块
- 查看硬主引导记录
- dd if=/dev/sda of=mbr/bin bs=446 count=1
- hexdump -C mbr.bin 以十六进制方式查看,记录中有 55 aa 这个标记,说明硬盘是可引导的
shell 脚本的执行方式
-
组合命令 用分号隔开:cd /var ; ls
-
为了组合命令和多次执行,使用脚本文件来保存需要执行的命令,然后赋予该文件执行权限(chmod u+rx filename)
-
用文件编写脚本,一般在第一行编写:#!/bin/bash 声明脚本使用什么解释器进行解释
-
标准Shell脚本包含哪些元素
- Sha-Bang 在第一行用 #! 开头
- 命令
- “#”号开头的注释
- chmod u+x filename 可执行权限
- 执行命令
- bash ./filename.sh 会在当前bash进程下边创建一个子进程执行脚本。不用给脚本赋予执行权限也可以执行,执行完回到原目录
- ./filename.sh 也会产生一个子进程,使用Sha-Bang说明的解释器。需要对脚本赋予权限才可以执行,执行完回到原目录
- source ./filename.sh 在当前的进程中执行,需要对脚本赋予权限才可以执行,执行完停留在脚本的目录下
- . filename.sh 在当前的进程中执行,执行完停留在脚本的目录下
-
内建命令和外部命令的区别
- 内建命令不需要创建子进程,内建命令对当前Shell生效