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