一、Linux基础

一、Linux

1.1 Linux 的应用领域

1.1.1 个人桌面领域的应用

  • 此领域是 Linux 比较薄弱的环节
  • 但是随着发展,近几年 linux 在个人桌面领域的占有率在逐渐提高

1.1.2 服务器领域

  • linux 在服务器领域的应用是最高的

  • linux 免费、稳定、高效等特点在这里得到了很好的体现

  • 尤其在一些高端领域较为广泛

1.1.3 嵌入式领域

  • linux 运行稳定,对网络的支持也特别好
  • 并且可以根据需要进行软件裁剪,内核最小可以达到几百 KB
  • 因为内核比较小,所以可以很轻松的将内核移植到嵌入式的环境下进行运行

1.2 Linux 入门

1.2.1 Linux 概述

  • linux 是一个开源、免费的操作系统

  • 其稳定性、安全性、处理多并发已经得到业界的认可

  • linux 的主要发行版:Ubuntn(乌班图)、RedHat(红帽)、CentOS

  • linux 和发行版的关系

    • linux 主要是一个内核
    • 在这个内核上有不同的人对这个内核进行包装
    • 或是在内核的基础上软件包或工具
    • 包装后的就被称为 linux 的发行版

1.3 VM 和 Linux 的安装

  • 学习 Linux 需要一个环境
  • 需要创建一个虚拟机,然后再虚拟机上安装 Linux 操作系统
  • VM 指的就是虚拟机
  • 而下面我所用的 Linux 发行版 为 CentOS系统

1.3.1 VM 和 Linux 的关系

image-20240114171032500

  • 先在我们自己的电脑上安装 VM虚拟机
  • 之后再在 VM虚拟机上 安装 Linux操作系统
  • VM虚拟机上可以安装多个操作系统

1.3.2 安装 vmware (虚拟机)

  • 官网下载地址:https://www.vmware.com/cn.html

  • image-20240114171723228

  • 进入官网主页,点击上方的 资源, 之后在点击下方的 产品下载

  • image-20240114171919894

  • 在上方的搜索框内搜索要下载的版本:vmware workstation pro 17 for linux

  • 回车键搜索

  • image-20240114172012478

  • 根据自己的需要进行下载

  • 不需要一定下载 17.0 版本的,也可以根据自己的需要进行不同版本的下载

1.3.3 VM 安装步骤

  • 安装之前需要先在 BIOS 里修改设置,开启虚拟化设备支持(某些设备不开启会安装不上)

  • 开启虚拟化设备支持具体参考:https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.html

  • image-20240114172539974

  • 下载好安装包后,右键以管理员身份运行

  • 无脑下一步即可安装成功

1.3.4 Linux 操作系统 CentOS 下载

  • CentOS-7-x86_64-DVD-2009.iso 安装地址: http://mirrors.aliyun.com/centos/7/isos/x86_64/

  • CentOS-8.3.2011-x86_64-dvd1.iso 安装地址: http://mirrors.aliyun.com/centos/8/isos/x86_64/

  • image-20240114173512154

  • 根据自己所需要的版本,进行下载

  • 只需要下载一个后缀为 .iso 的即可

1.3.5 在虚拟机中安装 CentOS 操作系统

  • image-20240114174146724

  • 打开 VM虚拟机,点击文件 -> 新建虚拟机

  • image-20240114174256341

  • 选择 典型,然后点击下一步

  • image-20240114174414628

  • 选择 稍后安装操作系统,然后点击下一步

  • image-20240114174528686

  • 客户机操作系统选择 Linux

  • **版本选择 红帽7,因为 CentOS 本身就是红帽的一个分支 **

  • image-20240114174751335

  • 为虚拟机命名,之后在设置虚拟机所存放的位置(尽量选择内存比较的磁盘)

  • 然后点击下一步

  • image-20240114174927043

  • 设置虚拟机的磁盘空间

  • 设置的内存并不会一下全部占完,它会根据你使用的内存慢慢占用

  • 这里选择 将虚拟磁盘拆分成多个文件

  • 然后点击下一步

  • image-20240114175213568

  • 这边选择 自定义硬件

  • image-20240114175300811

  • 内存选择 2GB 即可

  • image-20240114175446386

  • 处理器数量 以及 每个处理器的内核数量 根据自己的电脑 CPU 进行分配

  • image-20240114175546861

  • 网络适配器我们这边先选择 NAT模式

  • 之后会针对网络适配器专门做讲解

  • image-20240114175657062

  • 设置完后点击 关闭 即可

  • image-20240114175733603

  • 然后点击完成即可

  • image-20240114175829531

  • 右键刚刚创建好的虚拟机

  • 点击设置

  • image-20240114182853043

  • 选择刚刚安装好的后缀为 .iso 的文件

  • 然后点击确定即可

  • image-20240114183051334

  • 选择你的虚拟机,点击 开启此虚拟机

  • image-20240114183208367

  • 鼠标双击黑色区域,进入虚拟机选择

  • 使用上下键,选择第一个 Install CentOS 7 然后按下回车键

  • image-20240114183419966

  • 进入此界面,再次按一下回车键,进行等待即可

  • image-20240114183611703

  • 进入此界面,选择语言

  • 滑到下方,选择 中文 -> 简体中文,然后点击继续

  • image-20240114183720021

  • 进入此界面,不要乱点!!!慢慢等待

  • image-20240114183801240

  • 等待图标颜色从灰色变成黑色即可(不包括右下角那个 KDUMP

  • image-20240114184026772

  • 点击软件选择

  • image-20240114184120876

  • 在开发过程中我们一般选择最小安装

  • 在此刻是学习过程,需要安装一些环境

  • 所以需要选择 GNOME 桌面

  • 然后选择 传统 X Windows 系统的兼容性兼容性程序库开发工具

  • 选择上开发工具后,他就会默认帮你安装 gcc,JDK,MySQL

  • 然后点击完成

  • image-20240114184420869

  • 点完完成后,进入此界面不要乱点!!!,等待这两个从灰色变成黑色

  • 因为此时正在检查软件依赖和关系,需要等待

  • image-20240114184549567

  • 等待变成这个样子即可

  • image-20240114184632366

  • 点击 安装位置,对磁盘进行分区

  • image-20240114184712233

  • 选择 我要配置分区,之后点击 完成

  • linux 分区一般分为三部分

    • boot分区
      • 一般为 1个g的大小
    • 交换分区 swap
      • 交换分区可以临时的充当内存
      • 当实际内存被占满时,会先将程序放在交换分区当中
      • 一般跟你分配的类型大小一致
      • 例如刚刚我们分配的是 2g
    • 根分区
      • 将剩余的内存全部分配给根分区
      • 例如我们的磁盘的内存为20g,则这里为 17g
  • image-20240114185003298

  • 点击左下角的 + 添加分区 -> 挂载点选择 /boot -> 期望内容为 1G => 添加挂载点

  • image-20240114185418324

  • 设备类型选择 标准分区

  • 文件系统选择 ext4

  • image-20240114185656650

  • 点击左下角的 + 添加分区 -> 挂载点选择 swap -> 期望内容为 2G => 添加挂载点

  • image-20240114190039055

  • 设备类型选择 标准分区

  • 文件系统选择 swap

  • image-20240114185831550

  • 点击左下角的 + 添加分区 -> 挂载点选择 / -> 期望内容为 17G(剩余内存全部分配给它) => 添加挂载点

  • image-20240114185920653

  • 设备类型选择 标准分区

  • 文件系统选择 ext4

  • image-20240114190136189

  • image-20240114190203386

  • 点击完成,之后点击接收更改

  • image-20240114190307662

  • 点击 KDUMP

  • image-20240114190353594

  • 取消 启用 Kdump,然后点击完成

  • 一般在工作中,正在的生成环境中,会开启

  • 但是现在只是用于学习,以防占内存,所以取消了

  • image-20240114190546433

  • 选择 网络和主机名

  • image-20240114190658626

  • 打开以太网

  • 重新命名一下主机名,如图,然后点击应用

  • 最后点击完成

  • image-20240114190809619

  • 点击开始安装

  • image-20240114190911471

  • 之后设置一个 ROOT 密码

  • image-20240114190959193

  • 设置完后点完成即可

  • 在实际工作中要将密码设置的复杂一些

  • 生成随机密码 - 密码生成器 - 密码批量生成器 (bmcx.com)

  • 生成的密码自己一定要记住!

  • image-20240114191244868

  • 之后再创建一个新的用户

  • image-20240114191401403

  • 设置完后,点击完成即可

  • 现在我们就已经存在两个用户了

    • 第一个 ROOT 用户
      • 即上面你设置的 ROOT 密码
      • 用户名为 ROOT
      • 密码为你自己设置的密码
    • 第二个用户则是你新创建的用户
      • 例如我自己的
      • 用户名为 qiaoer
      • 密码为我自己设置的密码
  • ROOT 用户的权限比较高一点

  • 然后等待安装完成

  • 安装完成后点击重启

  • image-20240114195130725

  • image-20240114195214470

  • 接受一下许可

  • image-20240114195254522

  • 点击完成配置

  • image-20240114195334299

  • 这边使用的是你刚刚创建的普通用户,可以使用普通用户登录

  • image-20240114195428193

  • 如果想使用 ROOT 用户,则点击下面的未列出

  • image-20240114195459142

  • image-20240114195519718

  • 输入root 用户名和你设置的 root 密码 点击登录即可

  • image-20240114195643441

  • 如果有这个图标,则代表你的网络以及成功连接

1.4 网络适配器的三种模式

在上方设置网络适配器时,有三种网络连接的模式

桥接模式,NAT模式,仅主机模式

1.4.1 桥接模式

  • 虚拟系统可以和外部系统通讯
  • 但容易造成网络 IP 冲突

1.4.2 NAT 模式

  • 网络地址转换模式
  • 虚拟系统可以和外部系统通讯
  • 不会造成 IP 冲突

1.4.3 主机模式

  • 独立的系统
  • 不和外部发生联系

1.5 虚拟机的一些操作

1.5.1 虚拟机的克隆

如果你已经安装了一台 linux 操作系统,还需要更多的话,只需要使用克隆即可

  • 方法一:
    • 直接拷贝一份安装好的虚拟机文件
    • 然后用 VM 打开即可
  • 方法二
    • 使用 vmware 的克隆操作
    • 克隆前需要先关机虚拟机
    • 右键你需要克隆的虚拟机 -> 管理 -> 克隆 即可
    • image-20240115003414105

1.5.2 虚拟机快照

虚拟机快照可以回到原先的某一个状态

也就是说你担心可能有些误操作造成系统异常,需要回到某个原先正常运行的状态

vmware提供了这样的功能,就叫做快照管理

应用示例

1、安装好系统后,先做一个快照A

  • 右键操作的虚拟机 -> 快照 -> 拍摄快照

  • image-20240115004349156

2、进入系统,创建一个文件夹,再保存快照 B

3、回到系统刚刚安装好的状态,即快照 A

  • image-20240115005324930

  • image-20240115005352105

4、然后再试着跳转到快照B

1.5.3 虚拟机的迁移和删除

  • 虚拟系统安装好了,它的本质就是文件(放在文件夹的)。

  • 因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体烤考贝或者剪切到另外位置使用。

  • 删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可

  • 或者直接手动删除虚拟系统对应的文件夹即可。

1.6 安装 vmtools

1.6.1 vmtools介绍

  • 可以让我们在 windows 下更好的管理 vm虚拟机
  • 可以设置 windows(主机) 和 centos(虚拟机) 共享文件夹

1.6.2 安装 vmtools 步骤

  • 安装 vmtools 前需要有 gcc

  • gcc 在前面安装 CentOS 操作系统的进行软件选择时,选择的开发工具就有包含 gcc 所以不用担心

  • 在终端输入 gcc -v 判断是否有安装 gcc,如果没有安装,则会提示找不到

  • image-20240115211040223

  • 下面开始进行 vmtools 的安装

  • 打开虚拟机,centos

  • 右键 centos -> 弹出

  • image-20240115203620565

  • 点击 vm 菜单的 install vmware tools

  • 如果你的 install vmware tools 是灰色的,先把 cd改为自动检测

  • image-20240115203916035

  • 设置cd为自动检测,先把虚拟机关机

  • 点击你的虚拟机 -> CD/DVD 双击打开

  • image-20240115204032185

  • 选择物理驱动

  • image-20240115204155078

  • 然后再重新打开虚拟机,安装 install vmware tools

  • 如果开机之后还是灰色,那么就在点击开机后,虚拟机还没完全开机时安装

  • image-20240115204538019

  • image-20240115204611087

  • 桌面上出现 VMware Tools 文件则代表安装成功

  • image-20240115204719584

  • 打开 VMware Tools 光盘,将里面的一个名为 VMware tools 文件拷贝到 /opt 目录下

  • 复制该文件夹

  • image-20240115204950090

  • 打开主文件夹 -> 其他位置 -> 计算机

  • image-20240115205049705

  • 打开 opt 文件,将刚刚复制的 VMware Tools 文件粘贴进去

  • image-20240115205147038

  • image-20240115205221703

  • 使用解压命令 tar,得到一个安装文件

  • 首先在桌面右键,打开终端 -> 使用指令 cd /opt 进入到 /opt 文件夹

  • image-20240115205450916

  • image-20240115205519089

  • 使用 tar -zxvf 刚刚复制的那个文件的文件名 例如 tar -zxvf VMwareTools-10.3.23-17030940.tar.gz 解压文件

  • image-20240115205747331

  • 使用 ls 指令查看 /opt 目录下的文件

  • image-20240115205854238

  • vmware - tools -distrib 目录就是刚刚解压的目录

  • **进入到刚刚解压的目录 vmware - tools -distrib 下 **

  • image-20240115210019938

  • 使用 ls 指令查看 vmware - tools -distrib 目录下的文件

  • image-20240115210140488

  • vmware-install.pl 文件就是安装文件

  • 使用 ./ 指令安装这个文件

  • 使用 ./vmware-install.pl 指令进行安装,然后一直点回车即可

  • 中间有些地方可能需要等待一会

  • image-20240115210421054

1.6.3 设置共享文件夹(测试是否安装成功)

  • 首先在 windows(你的主机)上创建一个文件夹

  • 在文件夹内创建一个文件,并随意写入一些数据

  • 我这边是在 D盘中创建了一个 myshare 文件夹

  • image-20240115211347232

  • 在创建好的文件夹下创建一个文件,随意写入一些数据

  • image-20240115211539689

  • 设置虚拟机中的共享文件夹

  • 右键我们要设置的虚拟机 -> 设置

  • image-20240115211708335

  • 点击选项 -> 共享文件夹 -> 总是启用 ->添加

  • image-20240115211810931

  • 设置你刚刚在主机中创建的文件夹的路径

  • image-20240115211917461

  • image-20240115211935496

  • 在虚拟机中找到在主机中创建的共享文件夹

  • 主文件夹 -> 其他位置 -> 计算机

  • image-20240115212234324

  • 找到 mnt文件夹 -> hgfs文件夹 ->你创建的共享文件夹

  • 里面的文件夹就是共享文件夹

  • 你在主机对这个文件夹内进行的读写操作,在虚拟机也会看到,反之也一样

  • image-20240115212443000

1.7 Linux 目录结构

1.7.1 linux 目录结构介绍

  • linux 的文件系统采用层级的树状目录结构
  • 此结构中最上层的是根目录 /
  • 然后在此目录下在创建其他的目录
  • linux 的文件目录中每个文件都由它的作用,所以你的文件不能随意存放
  • linux 文件一定要背熟,因为在实际开发中我们并不能看到页面,只有控制台

1.7.2 linux 目录具体结构

具体的目录结构(了解即可)

目录说明
/bin 常用存放一些经常使用的指令
/sbin存放系统管理员使用的系统管理程序
/home 常用存放普通用户的主目录
在 linux 中每个用户都有一个自己的目录,一般该目录以用户的账户名命名
/root 常用为系统管理员,也称作超级权限者的用户主目录
/lib系统开机所需要最基本的动态连接共享库
类似于 Windows 里的 DLL 文件
几乎所有的程序都要用到这个共享库
/lost + found一般情况下该目录为空
当非法关机时,会存放一些文件
/etc 常用所有的系统管理员所需要的配置文件和子目录
比如安装了 mysql数据库,那么mysql的配置文件则会放在该目录下
/usr 常用用户的应用程序和文件放在该目录下
/boot 常用存放的是启动 linux 时使用的一些核心文件,包括一些连接文件和镜像文件
/proc一个虚拟目录
它是系统内存的映射,访问这个目录来获取系统信息
/srv该目录存放一些服务启动后需要提取的数据
/sys该目录下安装了 linux2.6 内核中新出现的一个文件系统 sysfs
/tmp这个目录用来存放一些临时文件
/dev类似于 windows 的设备管理器,把所有的硬件以文件的形式存储
/media 常用linux 系统会自动识别一些设备,例如 U盘、光驱等
linux 会把识别的设备挂载到这个目录下
/mnt 常用系统提供该目录是为了让用户临时挂载别的文件系统
该目录可以查看用户挂载的外部存储
/opt主机安装额外软件所存放的目录
存放的是软件的安装包
/user/local 常用这是另一个给主机额外安装软件所安装的目录
存放最终安装成功后的软件
/var存放着不断扩充着的东西
习惯将经常修改的目录放在这个目录下
包括各种日志文件
/selinux用来保证系统安全的目录

1.8 远程登录到 linux 服务器

1.8.1 为什么需要远程登录 linux

  • 实际开发中,liunx 开发是小组共享的,是小组的人共同在使用

  • 正式上线的项目是运行在公网的

  • 因此程序要需要远程登录到 linux 进行项目管理或开发

  • 远程登录的客户端有 Xshell,Xftp

    • Xshell 用于远程登录
    • Xftp 用于文件传输
  • 因为这两个软件是免费的,所以学习的时候使用,其他软件大同小异

1.8.2 远程登录Linux-Xshell

  • 首先在主机上安装 Xshell

  • 下载地址:Free for Home/School - Xshell and Xftp Free Licensing (netsarang.com)

  • image-20240116010213361

  • 下载完成后无脑下一步即可

  • image-20240116010405344

  • 远程连接之前,需要先知道 linux 系统的 ip 地址

  • 使用指令 ifconfig 查看

  • image-20240116011227062

  • 知道 linux系统的 ip 地址后,还需要查看主机是否可以ping通 linux 系统

  • 在主机终端使用ping linux系统ip地址 来查看

  • image-20240116011419068

  • 打开 Xshell 软件进行远程连接

  • 文件 -> 新建

  • image-20240116011555199

  • 随意起个名字,并输入刚刚的 linux系统的ip地址

  • image-20240116011828377

  • 一次性接收 表示以后每次访问都要输入用户名和密码

  • 接收并保存 表示之后不用在输入用户名和密码

  • 这个时候就可以远程操作 linux 系统了

  • image-20240116012122621

1.8.3 远程传输文件 Linux-Xttp

  • 在主机上安装 Xttp

  • 下载地址:https://www.netsarang.com/en/free-for-home-school/

  • image-20240117143014537

  • 下一步即可

  • image-20240117143133508

  • 输入名字和邮箱提交即可

  • image-20240117143258100

  • 进入 Xttp 软件

  • 点击文件 -> 新建

  • image-20240117143459890

  • 随便起个名字

  • 主机输入你的 linux 系统的ip地址(ip地址是什么上面有讲到)

  • 协议最好选择 SFTP

  • image-20240117143854637

  • image-20240117143946803

  • 输入你 Linux 系统的登录名和密码

  • image-20240117144018201

  • image-20240117144036923

  • 如果是乱码的话,像这样

  • image-20240117144131348

  • 点击左上角文件 -> 当前会话属性 -> 选择 -> 编码换成 UTF-8

  • image-20240117144251405

  • image-20240117144311177

  • image-20240117144343079

  • 左边就是 Windows,右边就是 Linux

  • image-20240117144514974

  • 想要传输某个文件,直接右键 ->传输 即可

  • image-20240117144639371

  • 这边也可以切换要传输的文件位置

  • image-20240117144712354

1.9 vi 和 vim

1.9.1 vi 和 vim 介绍

  • Linux 系统内会内置 vi 文本编辑器
  • vi 文本编辑器 类似于 windows 的记事本
  • Vim 具有编程的能力,可以看作是 vi 的加强版
  • Vim 可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补全

1.9.2 vi 和 vim 常用的三种模式

  • 正常模式
    • 以 vim 打开一个档案直接就会进入正常模式
    • 正常模式中,可以使用 上下左右 按键来移动光标
    • 也可以使用 删除字符 或 删除整行 来 整理文档
    • 也可以使用 复制 粘贴 来处理文件的数据
  • 插入模式
    • 按下 iIoOaArR 等任何一个字母之后才会进入编辑模式
    • 一般来说按下 i 即可
    • 插入模式简单来说就是你可以在文档中写你入你的内容
  • 命令行模式
    • 点击 esc,然后再输入:,则会进入命令行模式
    • 或者点击 esc ,然后再输入 /,也会进入命令行模式
    • :/ 的使用场景是不一样的,因为有些指令需要使用 :,而有些则需要使用 /
    • 因为有些指令是以 :开头的,而有些则是以 /开头的
    • 在这个模式中,你可以提供你相关的指令
    • 指令可以完成读取、存盘、替换、离开 Vim、显示行号等操作

1.9.3 vi 和 vim 的基本使用

使用 Vim 开发一个 Hello.java 程序,输出 Hello Word,并且保存

  • 我们这边使用软件 Xshell 来模拟远程编写
  • 打开 Xsehll,连接你的 Linux 系统
  • 在终端输入指令 vim Hello.java,表示使用 vim 开发 Hello.java的一个程序
  • image-20240117152443049
  • image-20240117152459188
  • 然后我们输入 i 键,从正常模式进入插入模式,才可以编写内容
  • image-20240117152538403
  • 编写程序,输出 Hello word
  • image-20240117152700528
  • 编写完后需要进行保存
  • 保存的前提需要先进入命令行模式
  • 按下 esc ,然后输入冒号,从插入模式进入 命令行模式
  • image-20240117152848295
  • 然后在输入 wq
  • 命令行模式中 ,wq 代表,写入并且退出,即保存
  • image-20240117152934074

1.9.4 vi 和 vim 各种模式之间的切换

image-20240117181411733

  • 一般模式即正常模式,编辑模式即插入模式,命令模式即命令行模式
  • 编辑模式切换为一般模式,使用 Esc 键 即可
  • 命令模式进入一般模式,按下 Esc 键 ,然后按下 :键,然后删除命令行输入的命令即可

1.9.5 vi 和 vim 的快捷键

下面这些快捷键是在不同的模式下使用的

快捷键说明
yy(正常模式)拷贝当前行
nyy(正常模式)拷贝当前向下的n行
n表示要拷贝的行数
例如 5yy 则表示拷贝当前向下的5行
p(正常模式)粘贴复制的数据
dd(正常模式)删除当前行
ndd(正常模式)删除当前向下的n行
n表示要删除的行数
例如 5dd 表示删除当前向下的5行
/关键字 (命令行模式)在文件中查找某个单词
关键字则为你要查找的单词
按下回车查找,输入 n 就是查找下一个
:set nu (命令行模式)设置文件的行号
:set nonu (命令行模式)取消文件的行号
G(正常模式)直接定位到文件的最末尾行
gg(正常模式)直接定位到文件的首行
u(正常模式)撤销
比如在文件中输入了一个 “hello”
在正常模式下按下 u 键则会撤回这个动作
n shift+g(正常模式)定位到指定的行号
n 代表你要定位的行号
例如你要定位到 55行
则先按下55,在按下 shift + g 即可
  • 注意:如果涉及到输入数字的快捷键,要避免使用小键盘的数字,因为小键盘的数字表示的是英文
  • 快捷键要区分大小写!

1.10 关机、重启和用户登录注销

1.10.1 关机&重启命令

命令说明
shutdown -h now立刻执行关机
shutdown -h nn分钟之后再执行关机
n代表几分钟后
例如五分钟后关机 shutdown -h 5
shutdown -r now立刻重启计算机
shutdown - r nn分钟之后再执行重启
n代表几分钟后
例如五分钟后重启 shutdown -r 5
halt立刻执行关机
reboot立刻重启计算机
sync把内存的数据同步到磁盘
  • 不管是重启还是关机,首先要运行 sync 指令,把内存中的数据读写到磁盘上
  • 虽然目前的命令会在已经关机前会自动运行一遍 sync 指令,但为了保险,在重启或关机前手动运行一下 sync 指令

1.11.2 用户登录和注销

  • 登录时尽量少使用 root 账户,因为他是系统管理员,最大的权限,避免操作失误
  • 可以使用普通用户,在需要权限时,使用命令切换为管理员
  • 用户登录和注销命令
命令说明
su - 用户名将当前用户切换为指定用户
切换的时候需要输入用户的密码
例如 su - root ,则是切换到 root 用户
logout注销当前用户
如果你使用 su - 指令切换过用户,那么则会用户则会变为你切换前的用户
  • logout 注销指令在图形运行级别无效,在 运行级别 3 下有效
  • 运行级别的知识后面会补充

1.11 用户管理

Linux 是一个多用户多任务的操作系统

任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号

然后以这个账号的身份进入系统

1.11.1 添加用户,指定密码

添加用户,指定密码的一些指令

指令说明
useradd 用户名添加一个新用户
useradd -d 指定目录名 新的用户名添加一个新用户,并且指定用户的家目录
例如在 home 目录下创建一个新用户 king,用户目录名为 text
useradd -d /home/text king
passwd 用户名为指定的用户设置密码
pwd显示当前用户所在的目录
  • 当一个用户创建成功时,会自动在 /home 文件夹下创建一个与用户同名的目录,我们称为家目录
  • 也可以通过 useradd -d 指定目录名 用户名 来给新创建的用户指定家目录

1.11.2 删除用户

删除用户的一些指令

指令说明
userdel 用户名删除指定用户,但会保留家目录
userdel -r 用户名删除指定用户,包括用户的家目录
  • 在实际开发中,家目录建议保留下来
  • 假设这个用户要被删除了,但是这个用户的工作资料,成功都在自己的家目录,所以不建议删除用户的家目录

1.11.3 与用户信息相关的一些指令

与用户信息操作相关的一些指令

指令说明
id 用户名查询用户信息
会显示用户的 id 、用户组id 以及所在的用户组
su - 用户名切换用户
低权限的用户切换高权限用户需要输入密码
高权限的用户向低权限的用户切换不需要输入密码
who am i查看当前的登录用户
如果你使用 su - 指令切换了用户
那么显示的用户是你第一次登录的用户信息

1.11.4 用户组

  • 类似于角色,系统可以对具有共性的多个用户进行统一管理

  • 简单来说就是,可以将多个用户放进一个用户组,进行统一管理

  • 在创建用户时,如果没有指定用户组,那么会生成一个与用户名相同的用户组

用户组操作的相关指令

指令说明
groupadd 组名新增用户组
groupdel 组名删除已存在的用户组
useradd -g 用户组 用户名在创建用户时指定用户的用户组
usermod -g 用户组 用户名修改用户的用户组

1.11.5 用户和组相关文件

1、/etc/passwd 文件

  • 用户的配置文件,记录用户的各种信息
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 用户名
    • 口令(一般不显示或显示x)
    • 用户标识号,即用户 id
    • 组标识号,即组 id
    • 主目录,就是用户的家目录
    • 登录 shell
      • 登录 shell 就类似于一个翻译官
      • 我们发送的指令如果直接到 linux 内核,内核会无法识别
      • 所以需要使用 shell 在中间翻译一下在转交给 linux 内核

2、/etc/shadow

  • 口令配置文件
  • 即文件中每行当中的口令,会在这里显示出来
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 用户名
    • 加密口令
    • 最后一次修改时间
    • 最小时间间隔
    • 最大时间间隔
    • 警告时间
    • 不活动时间
    • 失效时间
    • 标志
  • 上方每行数据当中,斜体的都是以特殊的标识来表示的,我们是看不懂的

3、/etc/group

  • 组的配置文件,记录 Linux 包含的组的信息
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 组名
    • 口令(一般不显示或显示x)
    • 组标识号(即组id)
      ---- | ---------------------------- |
      | groupadd 组名 | 新增用户组 |
      | groupdel 组名 | 删除已存在的用户组 |
      | useradd -g 用户组 用户名 | 在创建用户时指定用户的用户组 |
      | usermod -g 用户组 用户名 | 修改用户的用户组 |

1.11.5 用户和组相关文件

1、/etc/passwd 文件

  • 用户的配置文件,记录用户的各种信息
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 用户名
    • 口令(一般不显示或显示x)
    • 用户标识号,即用户 id
    • 组标识号,即组 id
    • 主目录,就是用户的家目录
    • 登录 shell
      • 登录 shell 就类似于一个翻译官
      • 我们发送的指令如果直接到 linux 内核,内核会无法识别
      • 所以需要使用 shell 在中间翻译一下在转交给 linux 内核

2、/etc/shadow

  • 口令配置文件
  • 即文件中每行当中的口令,会在这里显示出来
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 用户名
    • 加密口令
    • 最后一次修改时间
    • 最小时间间隔
    • 最大时间间隔
    • 警告时间
    • 不活动时间
    • 失效时间
    • 标志
  • 上方每行数据当中,斜体的都是以特殊的标识来表示的,我们是看不懂的

3、/etc/group

  • 组的配置文件,记录 Linux 包含的组的信息
  • 每行的含义( 每行不同的数据之间会以: 来分隔):
    • 组名
    • 口令(一般不显示或显示x)
    • 组标识号(即组id)
    • 组内用户列表(一般不会显示出来)
  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值