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生效
  • 相关阅读:
    201521123076《java程序设计》第12周学习总结
    个人作业4——alpha阶段个人总结
    软工网络15个人作业3——案例分析
    软件工程网络15结对编程作业(201521123083)
    软件工程网络15个人阅读作业2-提出问题
    软件工程第一次个人阅读作业
    java课程设计——博客作业教学数据分析系统(201521123083 戴志斌)
    201521123083《Java程序设计》第13周学习总结
    201521123083《Java程序设计》第12周学习总结
    201521123083《Java程序设计》第11周学习总结
  • 原文地址:https://www.cnblogs.com/chenri/p/12649967.html
Copyright © 2011-2022 走看看