Linux基础|青训营笔记

106 阅读6分钟

前言:

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

计算机基础

硬件五部分:控制器、运算器 、储存单元、输入单元、输出单元

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

09cef1fb325de76dabc7ceb33eb7bec.png

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

a7832c99f7adbcf422b0c3119c02c8b.png

Linux版本

7abecb5cfb4e0582102528064370062.png

查看Linux版本

#方法1
uname -a//显示系统的所有信息,包括内核版本号、操作系统发行版、主机名、处理器类型和架构等等
uname -r//只显示当前Linux系统的内核版本号
​
#方法2
cat /proc/version
//用于显示当前 Linux 系统内核的版本号、编译者和编译日期。该命令读取 /proc/version 文件的内容并将其输出到终端上。它还提供了有关操作系统的其他信息,例如 GNU 工具链的版本和 CPU 架构信息。

Linux系统应用领域

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

Linux四个主要部分

内核、shell、文件系统、应用程序

Linux体系结构

c9f134295e52677f8607b00e0fad42b.png

Linux系统结构 --进程管理

进程的特点

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

进程命令

//查看启动的Nginx进程:
ps aux | grep nginx
//查看某个进程:
ps -p <pid> top -p <pid> 命令查看指定进程的系统资源使用情况
//关闭指定的进程:
kill <pid>
//全部进程动态实时视图:(相当于打开任务管理器显示的页面)
top

进程的状态

0fe3a3f0fe195c2de26a8aefa936f49.png

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 文件夹到 /homerm -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