Linux基础 | 青训营笔记

111 阅读6分钟

Linux基础

学习Linux的价值

  1. Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  2. 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
  3. 熟悉Linux基础指令,熟练运维前端常用服务(NginX、Node.js)
  4. 加深对操作系统概念和实现的理解,夯实基础知识

为什么选择企鹅为Logo

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家。 Linux选择企鹅图案做标志,其含义也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有

计算机硬件

计算机由五大基本单元组成

1.控制器 2.运算器 3.存储器单元 4.输入单元 5.输出单元

计算机五大单元.png

计算机操作系统

一、操作系统(Operationg System,OS)

管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息 1.png

2.png

问题思考

程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?

操作系统启动流程

3.png

Linux系统概览

Linux发展简史

  1. 1969年,Unix诞生于贝尔实验室
  2. 1984年,贝尔实验室将Unix商业化
  3. 1984年,Tanenbaum开发Minix操作系统用于教学并开放源码
  4. 1984年,Richard M.Stallman发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议 5. 1991年,Linux Torvalds受Minix影响实现初版的Linux内核
  5. 1992年,Linux内核以GPL协议发行V1.0

Linux版本

  1. 内核版本
  2. 发行版本

4.png

5.png

查看Linux系统内核版本

6.png

查看Linux系统版本

7.png

Linux系统应用领域

  • IT服务器(操作系统、虚拟化和云计算)
  • 嵌入式和智能设备
  • 个人办公桌面
  • 学术研究与软件研发

Linux系统结构

Linux基本组成

8.png

Linux系统一般有4个主要部分

  1. 内核
  2. shell
  3. 文件系统
  4. 应用程序

Linux体系结构

9.png

  • 内核是硬件和软件之间的应用层
  • 内核是一个资料管理程序
  • 内核提供一组面向系统的命令

Linux进程管理

10.png

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个CPU核同一时间只能运行一个进程
  • 进程由他的进程ID(PID)和它父进程的进程ID(PPID)唯一识别

查看进程信息

11.png

问题思考

系统中运行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行那么多程序的

linux是个多任务操作系统,支持远大于CPU数量的任务同时进行,但是这里的同时并不是真的同时啊,只是CPU可以快速的转换其他任务,就是让系统在很短的时间内,将CPU轮流分配给它们,让别人以为在同时进行而已。

进程调度

进程调度是指操作系统按某种策略或规则选择进程占用CPu进行运行的过程 12.png

进程调度原则

  • 一个CPU核同一时间只能运行一个进程
  • 每个进程有近乎相等的执行空间
  • 对于罗技CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间和进程量成正比

进程的系统调用

内核空间(Kernal Space):系统内核运行的空间 用户空间(User Space):应用程序运行的空间 13.png

文件系统

文件系统负责管理持久化数据的子系统,负责把用户的文件存放到磁盘硬件中

Linux中一切皆文件

14.png

Linux文件系统采用树状的目录结构,最上层是/(根)目录 15.png

问题思考

Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的?  虚拟文件系统(VFS),这个是用户层和文件系统的中间层,实现了对用户提供统一调用接口。VFS定义了一组所有文件系统都支持的数据结构和标准接口,所以程序员并不需要了解文件系统的工作原理,只需要知道VFS提供的统一接口如何使用即可。 虚拟文件系统在文件系统挂载之后,将文件系统的一些元数据加载到内存中,虚拟文件系统只存在于内存中,VFS作用就是屏蔽给各类文件系统的差异,给用户、应用程序一个统一的接口。

虚拟文件系统

虚拟文件系统(VFS)

  • 对应用层提供一个标准的文件操作接口
  • 对文件系统提供一个标准的文件接入接口

16.png

查看文件系统类型

17.png

文件基本操作

18.png

文件读取流程

19.png

用户权限

用户账户

  • 用户账户 普通用户账户:在系统中进行普通作业 超级用户账户:在系统中对普通用户和整个系统进行管理
  • 用户组 标准组:可以容纳富哦个用户 私有组:只有用户自己

文件权限

文件权限关于用户有三个概念: 所有者:文件的所有者 所在组:文件的所有者所在的组 其他人:除文件所有者及所在组外的其他人

每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X) 20.png

查看用户信息

21.png

用户权限操作

22.png

Linux系统软件包管理

软件包

  • 软件包 通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
  • 软件包管理 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

软件包管理工具

  • RPM(Red Package Manager),为Red hat操作系统的包管理系统
  • DPKG(Debian package),为Debian操作系统的包管理系统

23.png

Debian APT 常用命令

-列出所有可更新的软件清单命令:apt update

  • 安装指定的软件命令:apt install<package_name>
  • 安装多个软件包:apt install <package_1> <package_2> <package_3>
  • 更新指定的软件命令:apt updat<package_name>
  • 删除软件包命令:apt remove <package_name>
  • 查找软件包命令:apt search
  • 列出所有已安装的包:apt list--installed

Debian配置软件源

通常Debian系的Linux软件配置文件:/etc/apt/sources.list 24.png 镜像地址: /dists:查看系统代号 /pool:查看软件分支

nginx安装

25.png

nginx配置修改

26.png