01.系统构成及shell核心

1.linux系统构成

  从功能维度划分: 

    有两大部分构成:

      系统调用接口:负责跟上层的应用程序打交道

      内核:负责跟下层的硬件打交道

    操作系统的两种工作状态:

      用户态:运行的系统接口代码与应用程序打交道

      内核态:运行的是系统的内核代码与硬件打交道

  从文件维度进行划分:

    操作系统源自于ISO镜像文件,镜像文件本质就是一个压缩包,压缩包里放着一系列的系统的文件

    这些文件分为两大类:bootfs+rootfs

    bootfs:包含启动文件(bootloader程序,硬盘第一个扇区,512字节,mbr,主引导记录,不是以文件的形式存在,是直接写入硬盘的第一个扇区)、内核文件(/boot/vm...)

    rootfs:系统启动后,本质就是一堆文件夹/文件

 

2.linux系统的启动顺序

  进程与程序

    程序:把一个或者多个功能,按照逻辑写到一个或者多个文件代码文件-->静态

    进程:一个程序的运行过程,而负责运行整个过程的是操作系统,所以进程是操作系统最核心的概念。-->动态

  1.加电,先启动bios

  2.bios找到启动盘

  3.bios读取第一个扇区mbr主引导记录,放入内存,让cpu来执行

  4.bootloader启动之后,负责把硬盘中的内核文件读入内存,并启动,此时操作系统就启动起来了

    操作系统起来起来负责管理一系列进程,可分为两类:

      1.内核启动,先启动pid为0,0号进程负责运行两个顶级程序,产生两个顶级进程

        运行init程序,pid号为1,所有用户态进程的祖宗

        运行kthreadd程序,pid号为2,所有内核态进程的祖宗

3.启动级别

  linux分为7个启动级别:

    0:系统停机状态,系统默认运行级别不能设为0,否则不能启动

    1:单用户工作状态,root权限,用于维护系统,禁止远程登录

    2:多用户状态,没有NFS

    3:完全的多用户状态,有NFS,登录后进入控制台命令行模式

    4:系统未使用,保留

    5:X11控制台,登录后进入图形模式

    6:系统正常关闭并重启,默认运行级别不能设为6,否则不停重启

  何时加载启动级别:

    1.加电自检

    2.mbr引导

    3.grub菜单

    4.运行init

      检查/etc/inittab,找到/etc/rc3.d/目录下所有以S开头的服务,并启动

    5.建立终端

    6.用户登录

      运行级别:0 1 2 3 4 5 6

4.shell解释器介绍

  在默认启动级别为3的情况下,linux会默认启动一个命令解释器,linux系统中的命令解释器为shell

  shell分为很多类,默认用bash,还有sh

 

5.posix标准:可移植性的操作系统接口,主要解决应用程序在多个系统中的兼容性问题

 

6.shell交互式环境

  ~:代表当前用户的个人文件夹/家目录  root用户的家目录是/root,    普通用户的家目录是/home/用户名

7.shell脚本

  脚本就是一个简单的程序,把需要执行的某个任务的多条命令组合到一起,写到一个文件中执行,就是一个shell脚本。

8.shell命令的基本语法

  ls -l /boot

  三大组成部分:ls:命令  -l:选项  /boot:参数,目标文件/目录

9.shell命令的种类与优先级

  1.带着路径用命令 /bin/ls   优先级最高

    绝对路径:从根/开始的

    相对路径:不是从根/开始,以当前所在路径开始

  2.别名,用alias命令制作的命令

   (临时) alias xxx="ls -l /root"   unalias xxx 取消 

10.复合命令

  for   if  这种命令

  for((i=0;i<3;i++));do echo $i ;done

 

11.函数命令 function命令

  function f() {

    echo 111;

    echo 222;

  }

f #调用

 

12.built_in命令 内置在shell解释器内的,集成在解释器内部

  type cd

  type pwd

13.hash缓存机制 把敲的命令缓存到内存中,下次直接调用

14.环境变量 PATH   

  变量命名:NAME="slim",取值:$NAME  打印:echo $NAME

  环境变量:在系统任意位置都能访问到,全局有效变量 

  PATH变量的值存的是以冒号分隔开的一堆存放命令的文件夹

 

posted @ 2026-09-09 10:56  slim_liu  阅读(10)  评论(0)    收藏  举报