Linux基础|青训营笔记

51 阅读6分钟

##计算机硬件

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

控制器(计算和协调计算机中其他部件进行工作的地方)
运算器(进行算数和逻辑运算)
(控制器和运算器组成cpu)
存储器单元(分为内存和外存)
输入单元(鼠标、键盘等)
输出单元(显示器、音响等)

##计算机软件

**操作系统OS:管理和控制计算机系统的硬件和软件资源,用于在用户和系统硬件之间传递信息

         作用:1.管理计算机资源(处理器管理、存储器管理、设备管理、文件管理)
               2.提供用户接口(命令接口、图形用户接口、程序接口)

**操作系统的启动模式

                  BIOS  — BIOS自检 — Bootloader — OS
             /
Power up
             \   
                  UEFI  — Bootloader — OS
                    |
          (相当于BIOS的优化)

#Linux版本: 内核版本(作者本人维护的版本,操作系统的一块核心,提供包括进程管理、内存管理、文件系统管理、硬件资源管理等一系列的底层能力)

发行版本(Linux发行版本=Linux内核+常用软件)

*查看Linux系统内核版本

法一:uname -a

法二:cat /proc/version

查看发行版本:cat /etc/qs-release

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

内核
shell(命令解释器,通过shell输入一些指令来实现与Linux内核的交互,从而达到管理或使用Linux中的一些资源)
文件系统(负责管理的子持久数据的子系统,把用户的文件存到磁盘硬件中去)
应用程序(在Linux上运行的一些程序,如vs-code

**Linux体系结构:

用户空间:应用程序(拥有较低级别的权限,只能看到允许使用的部分资源,不能之间访问系统资源和设备)、封装好的系统标准调用库
内核空间:系统调用、内核(拥有最高级别的权限,有访问系统设备的所有权限已经对系统资源管理的权限)、平台架构相关的代码
(两者相互独立、互不影响)

内核是硬件与软件之间的中间层

内核是一个资源管理程序(系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动系统)

内核提供一组面向系统的命令(外部应用程序可以通过这一组的命令直接与内核进行交互)

**Linux系统——进程管理(树形结构)

进程是正在执行的一个程序或命令(动态概念)
进程有自己的地址空间,占用一定的系统资源
一个CPU核同一时间只能运行一个进程
进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别(当Linux启动一个进程时,通过一个父进程来拉起一个子进程的。以父进程为模板创建一个新的进程,然后将子进程自己的一些系统资源内容影射到新创建的进程当中,并不是直接通过接口创建一个全新的进程)
查看启动的nginx进程:ps -ef   grep nginx
查看某个进程:top -p 93824
关闭指定的进程:kill 93824
全部进程动态实时视图:top

**进程调度:操作系统按某种策略或规则选择进程占用CPU进行运行的过程

R,可执行状态
S,可中断的睡眠状态
D,不可中断的睡眠状态
T,暂停状态或跟踪状态
Z,退出状态,进程成为僵尸进程
X,退出状态,进程即将被销毁

**进程调度原则:

一个CPU核同一时间只能运行一个进程
每个进程有近乎相等的执行时间
对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复(操作系统在管理进程的时候会创造一些调度的队列,每个进程都会被放到队列中去,当CPU
开始进行一个调度的时候,它会从队列的第一个开始取直到取完,再开始下一轮操作
进程执行消耗时间和进程量成正比

**进程的系统调用

内核空间:系统内核运行的空间
用户空间:应用程序运行的空间
用户程序(用户态)— 发起系统调用(用户态) — 执行系统调用(内核态) — 系统调用返回(用户态)

**Linux系统结构—文件系统

Linux中一切皆文件
文件系统(是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件)
文件:普通文件、目录、设备、套接字(网络连接字段)
Lunux文件系统是采用树状的目录结构
最上层是/(根)目录

**虚拟文件系统(VFS)

对应层提供一个标准的文件操作接口
对文件系统提供一个标准的文件接入接口
df 命令报告文件系统磁盘空间利用率
mount 命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息

ls 查看文件夹下内容
mkdir demo 创建文件夹
mv demo/home 移动demo文件夹到/home
rm-r demo 删除demo 文件夹
touch file.txt 创建空文件
cp file.txt file_bak.txt 复制文件

**Linux系统结构—用户权限

用户账户:1.用户账号:
                 普通用户账号:在系统中进行普通作业
                 超级用户账户:在系统中对普通用户和整个系统进行管理
         2.组账户:
                 标准组:可以容纳多个用户
                 私有组:只有用户自己
                 
w 查看当前登录用户信息
groups 查看当前用户所属的组
id 查看用户的uid信息

**文件权限关于用户有三个概念:

所有者:文件的所有者
所在组:文件的所有者所在的组
其他人:除文件所有者及所在组外的其他人

每个用户对于文件都有不同的权限,包括读(R)、写(W)、执行(X)
drwxr-xr-x
d表示文件类型
rwx表示所有者所拥有的权限(读权限、写权限、执行权限)
r-x表示所在组所拥有的权限(读权限、执行权限)
r-x表示其他人所拥有的权限(读权限、执行权限)

**软件包通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库

软件包管理:
底层工具:主要用来处理安装和删除软件包文件等任务,DPKG(为Debian操作系统的包管理系统),RPM(为Red hat操作系统的包管理系统)
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

**Debian APT常用命令

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

**Debian 配置软件源

通常Debian系的Linux软件源配置文件:/etc/apt/sources.list
/dists:查看系统代号
/pool:查看软件分支