前言:
- Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化、还是容器化环境
- 公司内部服务(TCE、Faas、SCM)统一使用Debian Linux系统
- 熟悉Linux基础指令,熟练应用前端常用服务(Nginx,node.js)
- 加深对操作系统概念和实现的理解,夯实基础知识
计算机基础
硬件五部分:控制器、运算器 、储存单元、输入单元、输出单元
软件部分:操作系统【管理和控制计算机的硬件和软件资源,用于在用户和系统硬件之间传递信息】
- 程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?
Linux版本
查看Linux版本
#方法1
uname -a//显示系统的所有信息,包括内核版本号、操作系统发行版、主机名、处理器类型和架构等等
uname -r//只显示当前Linux系统的内核版本号
#方法2
cat /proc/version
//用于显示当前 Linux 系统内核的版本号、编译者和编译日期。该命令读取 /proc/version 文件的内容并将其输出到终端上。它还提供了有关操作系统的其他信息,例如 GNU 工具链的版本和 CPU 架构信息。
Linux系统应用领域
- IT服务器(操作系统、虚拟化和云计算)
- 嵌入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
Linux四个主要部分
内核、shell、文件系统、应用程序
Linux体系结构
Linux系统结构 --进程管理
进程的特点
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程D(PPID)唯一识别
进程命令
//查看启动的Nginx进程:
ps aux | grep nginx
//查看某个进程:
ps -p <pid> top -p <pid> 命令查看指定进程的系统资源使用情况
//关闭指定的进程:
kill <pid>
//全部进程动态实时视图:(相当于打开任务管理器显示的页面)
top
进程的状态
Linux --文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。【Linux中一切皆文件】
Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的?
- Linux 为不同的文件系统提供了统一的调用接口,这就是虚拟文件系统(Virtual File System,简称 VFS)的概念。
VFS是 Linux 内核的核心模块之一,它提供了一套通用的文件系统接口,为应用程序提供了一种统一的、与底层文件系统无关的文件操作机制。 - 在 VFS 中,对所有的文件系统都采用统一的操作方式,这些操作会被映射到各个具体文件系统所对应的操作函数上。通过这种方式,VFS 能够屏蔽不同文件系统的差异性,为上层应用程序提供了一个统一的视图,使得应用程序不必关心文件的具体存储细节,而只需要关注文件操作本身。
因此,无论是 ext4、NTFS、FAT32 还是其他文件系统,应用程序都可以使用同样的方式来访问它们。这也是 Linux 系统在文件系统方面具有很强可扩展性和兼容性的一个重要原因。
文件操作命令
# 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 #复制文件
权限
-
用户账号
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理
-
组账户
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
-
文件权限关于用户有三个概念:
- 所有者:文件的所有者
- 所在组:文件的所有者所在的组
- 其他人:除文件所有者及所在组外的其他人
-
每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X)
用户操作命令
cd / && mkdir demo && ls -ld demo
#切换到根目录 && 创建名为demo的文件夹 && 查看demo文件夹的详细信息,包括文件夹的权限等
#ls是查看文件和目录的命令,-l选项是显示详细信息,-d选项是显示目录自身信息,非目录内文件信息。
sudo useradd me#创建一个用户,并赋予可写操作
sudo passwd me#设置用户密码
su me#切换 me 用户登录
cd demo#进入demo文件夹
touch index.js#创建index.js文件,提示无权限,需要给me用户demo文件夹的权限
sudo chown -R me:me ./demo#demo文件夹权限给me用户
su me#切换用户登录
cd demo#进入demo文件夹
touch index.js#创建js文件成功
Linux系统软件包管理器
管理工具
- 软件包 : 通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
- 软件包管理 : 底层工具|上层工具
底层工具:主要用来处理安装和删除软件包文件等任务
上层工具:主要用于数据的搜索任务和依赖解析任务
常见的底层工具包括:
- DPKG:Debian Linux 系统的底层软件包管理工具;
- RPM:Red Hat Linux 系统的底层软件包管理工具;
- yum:基于 RPM 的高级包管理器;
- apt:基于 dpkg 的高级包管理器。
常见的上层工具包括:
- Synaptic:适用于 Debian 系统的上层软件包管理工具;
- Yumex:适用于 Red Hat 系统的上层软件包管理工具;
- Apper:适用于 KDE 桌面环境的上层软件包管理工具;
- Gnome-Software:适用于 Gnome 桌面环境的上层软件包管理工具。
常用命令
列出所有可更新的软件清单命令: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