Linux 基础(下)

89 阅读4分钟

四、Linux 系统结构

4.2 文件系统

文件读取流程

image.png

  1. 用户空间

用户空间包括用户进程和用户缓冲区,用户进程通过系统调用发起文件读取请求,读取的数据存储在用户缓冲区中。

  1. 内核空间

内核空间包括内核缓存区和Socket缓冲区,当用户进程发起文件读取请求后,操作系统内核会将文件内容从磁盘中读取到内核缓存区中,并将数据从内核缓存区复制到Socket缓冲区。

  1. 硬件空间

硬件空间包括磁盘和网卡,当内核缓存区中的数据被复制到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)、执行(×)

image.png

用户权限操作指令

# 在根目录创建一个文件夹,查看当前用户拥有文件夹的权限
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

image.png