四、Linux 系统结构
4.2 文件系统
文件读取流程
- 用户空间
用户空间包括用户进程和用户缓冲区,用户进程通过系统调用发起文件读取请求,读取的数据存储在用户缓冲区中。
- 内核空间
内核空间包括内核缓存区和Socket缓冲区,当用户进程发起文件读取请求后,操作系统内核会将文件内容从磁盘中读取到内核缓存区中,并将数据从内核缓存区复制到Socket缓冲区。
- 硬件空间
硬件空间包括磁盘和网卡,当内核缓存区中的数据被复制到Socket缓冲区后,网卡会将数据发送到网络中,同时硬盘控制器从磁盘读取数据并传输到内核缓存区。
4.3 用户权限
用户账户
用户账户
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理
组账户
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
用户相关指令
# 查看当前登录用户信息
w
# 查看当前用户所属的组
groups
# 查看用户uid信息
id xxxx
# 增加用户指令:
useradd -m 用户名
adduser 用户名(推荐)
# 二者区别:
1. 在root权限下,useradd只是创建了一个用户名,如 (useradd +用户名 ),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用 (useradd -m +用户名)的方式创建,它会在/home目录下创建同名文件夹,然后利用( passwd + 用户名)为指定的用户名设置密码。
2. 可以直接利用adduser创建新用户(adduser +用户名)这样在/home目录下会自动创建同名文件夹
# 用户增加密码
passwd 密码
# 删除用户
userdel
userdel -r (慎用)
# 二者区别
另外,删除用户,使用userdel命令。默认情况下,userdel命令只会删除/etc/passwd文件中的信息,而不会删除系统中属于该账户的任何文件。(保留家目录,但无法使用该用户登录 )
如果加上-r,userdel会删除用户的HOME目录以及mail目录。然后,系统上仍可能存有归已删除用户所有的其他文件。这在有些环境中会造成问题。(什么都没了)
# 查看用户信息
id 用户名
# 切换用户
su - 用户名
# 查看第一次的登录用户是谁
who am i # 说明:尽管切换了用户,这个指令显示的内容也不会改变,只会显示第一次登录
# 返回之前用户
exit
logout
# 增加用户组
groupadd 组名
# 删除组
groupdel 组名
# 将用户指定组
useradd -m 用户
useradd -g 用户组 用户名
# 切换用户所在组
usermod -g 用户组 用户名
文件权限
文件权限关于用户有三个概念:
- 所有者:文件的所有者
- 所在组:文件的所有者所在的组
- 其他人:除文件所有者及所在组外的其他人
每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(×)
用户权限操作指令
# 在根目录创建一个文件夹,查看当前用户拥有文件夹的权限
cd / 8& mkdir demo ls -ld demo
sudo useradd ceshi #创建一个用户,并赋予可写操作
sudo pdsswd 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 文件成功
五、Linux 软件包管理
软件包
软件包 通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库
软件包的类型
- rpm包管理:这种包已经使用GCC编译过的
- 二进制包管理:最明显的就是有/bin的二进制目录
- 源码包管理:这种包需要使用到GCC或者c++等编译而成
软件包管理
- 底层工具:主要用来处理安装和删除软件包文件等任务, DPKG, RPM
- 上层工具:主要用于数据的搜索任务和依赖解析任务, 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 配置软件源
软件源,就是类似我们平时使用npm的时候因为网络问题会切换的那个镜像源
通常 Debian 系的 Linux 软件源配置文件路径为:/etc/apt/sources.list
- 镜像地址: mirrors.aliyun.com/
- /dists:查看系统代号
- /pool:查看软件分支