zoukankan      html  css  js  c++  java
  • Linux学习-Shell-系统启动过程与执行方式

    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 或 sh ./filename.sh ,会在当前bash进程下边创建一个子进程执行脚本。不用给脚本赋予执行权限也可以执行,执行完回到进程,该方法是将脚本文件作为参数传给sh(bash)命令来执行的,是被调用执行,执行完后回到父shell。

        • ./filename.sh “./”的意思是说在当前的工作目录下执行脚本,也会产生一个子进程,在子shell环境中执行,使用Sha-Bang说明的解释器。需要对脚本赋予权限才可以执行,执行完后返回父进程,所以父进程无法获取子进程中的变量。当前路径若不在环境变量PASH的内容之中,所以必须加上“./”才可以执行,否侧报错。

        • source filename.sh 在当前的进程中执行,不需要对脚本赋予权限就可以执行。

        • . filename.sh 在当前的进程中执行,不需要对脚本赋予权限就可以执行。

        • 以绝对路径方式执行:/data/finename/afile.sh 需要对文件赋予权限才可以执行,会在当前bash进程下边创建一个子进程执行脚本。

    • 内建命令和外部命令的区别

      • 内建命令不需要创建子进程,内建命令对当前Shell生效
  • 相关阅读:
    实现Bootstrap表格拖拽
    鼠标悬停显示气泡
    JS实现当前选择日期是星期几
    JS实现双击编辑可修改
    数组累计-reduce
    vuex——action,mutation,getters的调用
    正则 二
    常用正则 一
    vuex 的使用 mapState, mapGetters, mapMutations, mapActions
    正则替换所有的 ‘ / ’
  • 原文地址:https://www.cnblogs.com/chenri/p/12649967.html
Copyright © 2011-2022 走看看