Linux |青训营笔记

197 阅读6分钟

Linux入门

01计算机硬件

控制器:协调和指挥计算机其他部件进行工作

存储器:逻辑运算 (控制器,存储器共同组成CPU)

存储控制单元:内存,外存(磁盘光驱)

输入:鼠标,键盘

输出:音响

02 计算机操作系统

操作系统:管理和控制计算机中硬件软件资源,用于在用户与

              系统硬件间传递信息(承上启下中间层)
复制代码

管理:处理器,存储器,设备,文件管理

接口:命令,图形用户,程序接口

操作系统实现开机自启动:

Power up->BIOS->BIOS自检->Bootloader->OS

Power up->UEFI->Bootloader->OS

BIOS自检会对硬件进行检查,影响启动速度

BIOS和UEFI:固化在主板上的一段程序,能够让计算机在 开机的时候执行这段程序,进行初始化动作,然后找到并运行Bootloader(操作系统引导程序),通过起加载和运行操作系统

UEFI可以简单理解为BIOS优化升级的版本

03 Linux系统概览

版本:内核版本+常用软件=发行版本

uname -a(cat/proc/version):查询内核版本信息 cat/etc/os-release:查看系统linux的发行版本

linux系统应用领域

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

04 Linux系统架构

Linux基本组成

内核:内存,进程,文件系统,硬件资源的管理

shell:命令解释器

文件系统:用户文件存储磁盘硬件中去

应用程序:软件

linux体系结构

用户空间:应用程序,C Library(封装好的系统标准应用库)

内核空间(最高级权限,访问硬件设备的所有权限):系统调用,内核(系统调用接口,进程管理,内存管理,虚拟文件系统,网络堆栈,设备驱动程序),平台架构相关代码

PS:用户空间奔溃对内核空间没有影响,二者本质上相互隔离

应用程序发起系统调用,通过C Library调用,程序会从用户态切换为内核态,任务完成后切回用户态

Linux系统结构——进程管理

进程是正在执行的一个程序或命令

进程有自己的地址空间,占用一定的系统资源

一个CPU核同一时间只能运行一个进程

进程由它的进程ID(PID)和它父进程的进程ID (PPID)唯一识别

查看启动的nginx进程:ps -ef | grep nginx

查看某进程的具体信息:top -p 93824(进程PID)don

关闭进程:kill 93824

全部动态实时视图:top

系统如何同时运行多个程序:进程调度

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

R(TASK_RUNNING),可执行状态

S(TASK_INTERRUPTIBLE),可中断的睡眠状态

D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态

T(TASK_STOPPED or TASK_TRACED) ,暂停状态或跟踪状态

Z(TASK_DEAD- EXIT_ZOMBIE),退出状态,进程成为僵尸进程

X(TASK_DEAD 一EXIT_DEAD),退出状态,进程即将被销毁

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

Linux系统结构——文件系统(Linux中一切皆文件)

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

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

Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的?

虚拟文件系统(VFS) 对应用层提供一个标准的文件操作接口。 对文件系统提供一个标准的文件接入接口。

#df命令报告文件系统磁盘空间利用率:df -T

#mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息:mount

文件基本操作: ls #查看文件夹下内容

mkdir demo #创建文件夹

mv demo / home #移动demo文件夹到/home

rm-r demo #删除demo文件夹

touch file.txt #创建空文件

cp file.txt file_bak .txt #复制文件

Linux系统结构——用户权限

用户账户:

普通用户账户:在系统中进行普通作业

超级用户账户:在系统中对普通用户和整个系统进行管理

组账户:

标准组:可以容纳多个用户

私有组:只有用户自己

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

所有者:文件的所有者

所在组:文件的所有者所在的组

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

每个用户对于文件都有不同权限,包括读(R)、写(w)、执行(×)

#在根目录创建一个文件夹,查看当前用户拥有文件夹的权限 cd/ && mkdir demo && ls -ld demo

drwxr-xr-x 2 root root 4096 Nov 28 15:55 demo

sudo useradd ceshi#创建一个用户,并赋予可写操作sudo passwd ceshi#设置用户密码
su ceshi#切换ceshi用户登录
cd demo #进入 demo文件夹
touch index.js #创建 index . js文件,提示无权限,需要给ceshi 用户demo文件夹的权限
sudo chown -R ceshi:ceshi ./demo # demo文件夹权限给ceshi用户
su ceshi#切换ceshi 用户登录
cd demo #进入demo文件夹
touch index.js #仓战建 index . js文件成功
复制代码

05 linux 软件包的管理

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

软件包管理

底层工具:主要用来处理安装和删除软件包文件等任务
DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

RPM(Red Hat Package Manager) ,为 Red hat操作系统的包管理系统
DPKG (Debian package),为Debian操作系统的包管理系统
复制代码

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