1 实验目的

:cloud_with_lightning: 本次实验并非系统介绍Linux系统理论知识,注重实操 ,而且是针对后续实验需要用到Linux相关知识,而特别设计的实验。

通过本次实验,你应该:

  • 安装Linux系统环境,了解云服务器相关知识;

  • 掌握Linux基本知识,如:vim 的操作使用、Linux系统常用命令、用户与权限相关知识等;

  • 相关工具FTPSSH 等使用。

或许你是第一次接触Linux,相信会给你带来不一样的体验。接下来让我们正式进入实验环节吧。

2 实验准备

2.0 计分说明

在正式开始接触Linux前,我们需要搭建好Linux平台。

一般而言,我们有三种方式选择安装Linux系统。在大家正式选择前,先和同学们罗列一下各个选择的利弊。

Linux平台选择 最高分 优点 缺点 备注
云服务器 - 1.后续所有相关实验最高分按100计算 1.分布式会出现较多的网络、病毒攻击问题
2.会涉及到更多端口、网络问题比较难Debug
推荐
虚拟机VM - 1.后续涉及到分布式实验问题会少很多,特别是网络、端口问题
2.操作相比云服务器更简单
1.最高分按95分计算
2.分布式实验可能会出现资源不足问题,需要自行解决
推荐
双系统 - 1.相比虚拟机资源会更足,减少分布式时资源相关问题 1.后续教程均基于云服务器或者虚拟机,部分操作会不一样,需要自行修改
2. 适合动手能力更强的同学,因此不太推荐

本次实验出于时间考虑只详细介绍 第一种:云服务器 和 第二种:虚拟机 方式,课后大家可选择其它方式。

下面介绍本次实验环境相关准备过程。

2.1 云上Linux

云服务器搭建Linux工作流程如下:

  1. 购买华为云弹性云服务器:<弹性云服务器 - 控制台 (huaweicloud.com)>

2.1.1 购买弹性云服务器

购买数量为N,N为组员人数。

[NEWS] 学院已经和华为云合作,每位同学都有免费的华为云代金卷,如果条件允许,建议大家尽量将配置调高一点

  • 比如,内存4G及以上,CPU2核及以上。

在ex2~ex4可以避免很多不必要的烦扰,e.g.,机器比较卡顿、资源不足等问题。

1.配置所需要的弹性云服务器

基础配置

1

(1)计费模式:按需计费

(2)区域:华南-广州(按需选择)(广州离重庆更近一点,同时要记住自己选的区域)

(3)可用区:一般选择随机分配(可以提高容灾能力。但如果应用要求网络时延较低,建议将资源创建在同一可用区)

(4)CPU架构:选择x86计算即可,如有兴趣,可了解鲲鹏计算。

(5)vCPUs:2核以上,最好四核。内存最好8G。接下来选择规格,就是服务器的型号,不同型号的服务器有不同的功能,你可以根据项目的实际情况选择不同的型号。

2

(6)接下来选择操作系统和操作系统对应的版本号,如果你选择的是linux操作系统,那么建议你选择Centos操作系统。CentOS操作系统版本为:CentOS 7.6.64(8.0版本会报各种各样错误)。安全防护免费即可。

(7)接下来选择系统盘,系统盘的硬盘类型有高效云盘和SSD硬盘(固态硬盘),固态硬盘相对比高效云盘,在各种性能方面都会优于高效云盘,所以价格相对比较贵选择好了硬盘类型,接下来选择硬盘大小。

系统盘可以选的大一些。可以做一些别的操作。

(8)接下来创建数据盘,如果你的系统盘已经够你用了,那么你没必要在去买数据盘了。如果不够你用你可以创建数据盘,并且选择数据盘数量,每块数据盘的硬盘类型和大小。(所以系统盘可以选择大于100G的,也可以分开)

网络配置

(9)虚拟私有云选择,这里就需要去到控制台,选择(1)对应地区的虚拟私有云

其中VPC所在区和所在可用区,必须和服务器所在区和所在可用区一致。

创建完成之后返回原始页面刷新即可。

(10)选择宽带,弹性公网iP选择:现在购买,线路选择:全动态BGP,公网宽带选择:按宽带计费,宽带大小根据项目情况自行设定,一般建议刚上线的项目5兆左右即可

注意释放行为打勾。

高级设置

(11)这里我建议直接设置密码,省了很多事情。云备份根据自行情况设置是否需要购买,如果服务器需要备份则可以购买。然后确认配置即可。

(12)勾选我已阅读并同意《镜像免责声明》并点击立即购买,点击:立即购买。

综上弹性云服务器购买完成。

2.1.2 可视化界面

考虑到此前大部分同学没有接触过Linux,不适应命令行环境。因此该小节将展示如何搭建Linux(CentOS 7)桌面环境。

  1. 选择VNC登录。在弹出的“登录Windows弹性云服务器”窗口中,选择“其他方式”下的VNC方式,单击“立即登录”。

登入后依次输入账号,密码:

  • 初始账号为root,密码是你购买云服务器所设置的。注意密码是看不见的。直接输入即可。

2.安装图形界面

1
2
3
4
5
6
7
8
9
10
11
# yum groupinstall "Server with GUI"

说明:中间需要输入一个 y 代表yes
如果安装结束后提示
Failed : python -urllibs3.noarch 0:1.10.2-7.e17

可以执行以下命令:

mv /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname.bak

yum install python-urllib3 -y

3.安装结束后,执行以下命令设置默认启动级别为graphical.target

1
systemctl set-default graphical.target

4.执行以下命令启动graphical.target

1
systemctl start graphical.target

5.重启服务器

6.通过控制台提供的VNC登录方式连接服务器,并按照桌面启动的提示设置语言、时区、用户名及密码等。(具体可参考<Linux弹性云服务器远程登录(VNC方式)弹性云服务器 ECS用户指南实例登录Linux弹性云服务器_华为云 (huaweicloud.com)>)

2.1.3 SSH工具—-Xshell

每次在浏览器连接云服务器终究还是不太方便,我们可以安装SSH工具 如XshellWindows界面下用来访问远端不同系统下的服务器,从而达到方便操作远程控制终端的目的。

以下是安装使用简单教程:

  1. 下载Xshell

    Xshell下载地址:[Xshell腾讯高速下载](

    )

    安装一直点下一步傻瓜似安装,最后可以看到Xshell界面。

  2. 连接服务器

    选择文件新建

    :slightly_smiling_face: 下图查看公网IP是在阿里云上实例控制台,如果是腾讯云也同样登陆腾讯云控制台查看即可。

    1559037648149

    按照上图填好信息,再点击用户身份验证,输入登陆账号密码(就是我们在购买云服务器时设置的):

    1559037973213

    点击确定。然后在Xshell界面选择:会话管理 - 阿里云服务器 右击 - 打开,便连接到我们的服务器了。

    1559038420911

  3. 测试

    接下来你便可以使用Xshell 而非浏览器登陆,愉快的连接使用我们的Linux服务器了。

    • 注:如果新建会话连接不了,重新打开Xshell即可解决。
  4. 修改主机名

    为了方便区分,请同学们将主机名修改为自己:姓名首字母+学号后四位

    如,张三:zs4321

    1
    vim /etc/hostname

    按下 i 进入插入模式,删除所有内容,然后编辑你的主机名:

    1580876113648

    按下ESC 键进入命令模式,输入 :wq!保存并退出

    最后重启服务器:

    1
    reboot

    等待约1分钟左右,重新连接可发现主机名已经被修改。

2.2 云下Linux

云下Linux推荐虚拟机进行安装,和我们后续的教程可保持一致。

  • 虚拟机安装Linux(推荐)
  • 双系统安装Linux

出于篇幅和后续实验考虑,这里主要介绍如何使用VMware Workstation虚拟机安装CentOS7(Linux发行版本之一)。

2.2.1 虚拟机安装CentOS7

虚拟机安装CentOS7可分为两步:

  1. 安装VMware
  2. 安装CentOS7镜像

安装VMware

  1. 下载VMware Workstation Pro 16

    :key: 密钥激活在 /ex0/src 目录下,请自取。

    • 也可以试试pro 16永久批量密钥:ZF3R0-FHED2-M80TY-8QYGC-NPKYF

    如果链接失效,可自行去官网下载。

  2. 安装&激活

    除了安装路径 一直默认选择(也可根据自己喜好)即可,最后输入激活密钥 安装完成。

安装CentOS7镜像

  1. 准备centos7镜像

    请下载该镜像到合适目录:阿里云镜像

    image-20211221115125401

  2. 创建虚拟机

    以管理员身份运行VMware pro 16 —->主页—->创建新的虚拟机:

    image-20211221115242471

    安装类型选择典型 —->选择稍后安装系统:

    image-20211221115633351

    下一步选择要安装的镜像版本:

    image-20211221115853903

    然后我们开始点击“下一步”进入虚拟机配置环节。

  1. 虚拟机配置

    • 命名虚拟机:名称默认即可,路径请自行选择合适路径

      image-20211221120126721

      开始下一步,进行虚拟机相关配置。

    • 磁盘、内存、网络等配置

      1. 处理器

        • 处理器数量:1
        • 每个处理器内核数:建议2个及以上
      2. 内存:建议2G及以上

      3. 网络类型:选择NAT类型(第二个)

      4. I/O控制器类型、选择磁盘类型:默认即可,下一步

      5. 磁盘:创建新的虚拟磁盘 ——> 建议20G及以上

        image-20211221120303004

      最后点击完成配置。

  2. 正式安装CentOS7

    • 点击编辑虚拟机设置,选择ISO映像文件

      image-20211221121115192

    • 选择之前我们下载CentOS7镜像

      image-20211221121229696

      选择好文件—->确认,回到主页。

    • 开启虚拟机

      image-20211221121322024

  3. 配置CentOS7

    进入虚拟机后,依次进行如下配置

    • 安装语言:中文

    • 安装信息摘要带有叹号的需要点击配置

      • 如,安装位置 —-> 点击—-> 选择“我要配置分区” —-> 完成 —-> 进入手动分区页面

        image

        选择“点击这自动创建他们” —-> 完成—->接受更改

        image

    • 叹号消失开始安装

      • 配置root密码:自定义
      • 许可证:接受许可证

      最近点击完成配置。

  4. 网络设置

    虚拟机有三种网络连接方式:

    • 桥接模式:IP与主机完全相同,相当于用一条网线直接连接在一起
    • NAT模式:相当于以自己PC形成的一个局域网,虚拟机和主机都有自己对应的局域网IP
    • 仅主机模式:虚拟机只能访问主机

    本次我们来进行NAT模式下的网络配置(注意需要管理员权限)。

    1. 基本背景知识

      局域网可使用的网段(私网地址段)有三大段:

      • A类:10.0.0.0~10.255.255.255
      • B类:172.16.0.0~172.31.255.255
      • C类:192.168.0.0~192.168.255.255
    2. VM中编辑网络

      image-20211221122826775

      • 子网设置192.168.45.0

        image-20211221123334832

      • 网关设置192.168.45.1

        image-20211221123450328

      • DHCP设置

        image-20211221123530849

    3. 本机中网络配置

      以上步骤完成后配置本机NAT连接下的IPv4,仅需配置其中的VMnet8。

      image-20211221123637247

      双击VMnet8,点击属性,选择IPv4协议(IP地址尽量不与DHCP配置的区间重复)。

      image-20211221123717083

    4. 修改ens33文件

      当前NAT子网下的网络还连不了网,需如下配置:

      1
      sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

      注意:中间需要空两行。

      image-20211221124025227

2.2.1 可视化界面

  1. 安装GNOME界面

    1
    sudo yum groupintsall "GOME Desktop"
  2. 用命令启动GNOME

    1
    startx
  3. 建议:安装粘贴板共享软件

    1
    sudo yum install open-vm-tools

2.2.3 SSH工具:MobaXterm

  1. 安装ipconfig查询ip

    1
    sudo yum install ifconfig

    假如没有相关的安装包

    1
    yum search ifconfig

    image-20201201001156141

    找到安装包安装

    1
    sudo yum install net-tools.x86_64

    最后记录ip地址,如下红框所示(后面登陆要用到)

    1
    ifconfig

    [注] 这个IP就是ens33文件配置的IPADDR。

    image-20211221124626888

  2. 安装MobaXterm

    下载免费版 , 默认安装即可。

  3. 登陆

    选择Session,配置如下:

    image-20211221125140482

    选择用户为root (我这里是自己新建的hadoop 用户,请修改)。

    image-20211221125232389

    输入root密码后,即可顺利登陆:

    image-20211221125321672

    3 Linux相关知识

通过本节你将掌握后续实验所必须的Linux相关知识。

3.1 Linux 系统目录结构

Linux目录结构如下图:

img

我们必须要知道的根目录 / 相关目录作用:

  • /bin:binary缩写,保存可执行文件,我们敲的命令都在bin中;

  • /boot:引导目录,操作系统需要引导启动的都在其下;

  • /etc:所有的配置文件保存其下,一般以.cof结尾;

  • /home:所有用户家目录(root除外),每个用户都在其下有个对应文件夹保存对应信息;

  • /root:root用户家目录;

  • /var:保存一些经常变换的信息,如服务器网站信息,操作系统日志信息;

  • /tmp:临时目录,会被隔几天自动删除;

  • /proc:系统的实时的信息,不存在硬盘,在内存中。

    1559293203672

    3.2 文件系统相关操作

以下命令,为了更好实践巩固,请务必亲自验证。

  1. ls显示文件

    命令格式:ls <参数(可选)> <目录(可选,默认当前)>

    常用参数解释:

    • ls:显示文件,但不显示隐藏文件

      1580816737694

    • ls -a:可显示隐藏文件

    • ls -l:详细列出文件信息,不显示隐藏文件(加上参数 -a可以)

    • ls -R:递归显示目录结构

    • ls -ld:显示目录和链接信息

  2. cd 切换目录

    常和pwd 命令配合显示当前目录:

    1580817000019

    命令格式:cd <参数(可选)> <目录(可选,默认家目录)>

    常用参数解释:

    • cd .:切换为当前目录
    • cd ..: 切换到上级目录
    • cd ~cd:切换到当前用户 家目录
      • 家目录:普通用户在/home/用户名下,root用户在/root
    • cd - :切换到上一个工作目录
  3. touch/mkdir 创建文件/文件夹

    我们通常使用:

    • touch <文件名> : 创建文件
    • mkdir<目录名>:创建目录

    实践:我们切换到根目录下创建相应文件夹/文件/test/readme.md

    根目录创建文件夹:

    1
    mkdir /test   # 加了/指定在根目录下,不加/默认在当前目录

    创建文件:

    1
    touch /test/readme.md

    我们切换到根目录下进行查看:

    1
    2
    cd / 
    ls -R test

    1580817855228

  4. cp复制文件

    命令格式:cp <参数(可选)> <源文件/文件夹> <目标文件/文件夹(没有会创建>

    常用参数解释:

    • cp -r:递归复制整个目录树(复制文件夹时必须加
    • cp -v :显示详细信息,复制的详细过程

    实践:复制/test/readme.md —> /test/readme1.md

    1
    cp /test/readme.md /test/readme1.md

    切换到 /test 下查看如下:

    1
    2
    cd /test
    ls -l

    1580818248218

  5. mv 移动文件

    命令格式:mv <参数(可选)> <源文件/文件夹> <目标文件/文件夹(没有会创建>

    :warning: 如果是在当前目录移动,则相当是 重命名 文件/文件夹!

    实践:利用mv 命令重名/test/readme1.md/test/readme2.md

    1
    mv /test/readme1.md /test/readme2.md

    1580818517711

  6. rm 删除文件

    命令格式:rm <参数(可选)> <目标文件/文件夹(没有会创建>

    常用参数解释:

    • rm -i:交互式,会提醒你是否删除
    • rm -r:递归删除所有目录中所有内容(删除文件夹一定要
    • rm -f:无任何提示,直接删除

    实践:删除我们此前创建的 /test 文件夹,并要求交互式提醒。

    1
    rm -ir /test

    请再次查看是否还存在 /test 目录。

3.3 Linux常用命令/技巧

3.3.1 Linux常用命令

  1. useradd 创建用户

    命令格式:useradd <参数> <新建用户名>

    常用参数解释:

    • useradd -m :创建新用户同时还在/home 创建用户同名文件夹

    实践:创建用户huihui ,并修改密码为 123456

    1
    2
    useradd  -m huihui     # 创建用户
    passwd huihui # 修改密码

    :warning: 修改密码时,Linux上不会有任何字符提示输入,输入完毕直接回车就好。

    我们还需把用户 huihui 添加到sudo 配置文件中:

    1
    visudo

    进入vim 编辑器,按下i 进入插入模式,输入下面红框字符。

    1580823743819

    输入完毕,按下 ESC , 然后输入 :wq! 保存文件即可。

  2. su切换用户

    命令格式:su <用户名(可选,默认root用户)>

    1
    2
    su huihui     # 切换用户
    id # 显示用户信息

    1580820517045

    特别的,我们切换到huihui 用户是个普通用户,有些命令只能在root 用户权限下执行,我们可以在前加上sudo ,例如:

    1580820366798

    1
    sudo touch /test.txt

    会提示输入root用户密码,输入正确命令便可以被正确执行了。

    最后,你可以切换回root 用户:

    1
    su  # 会要求输入root用户密码
  3. data/cal 日期时间

    命令格式:data <参数(可选)> ,显示时间

    1580820754534

    命令格式:cal <参数(可选)> ,显示日历

    1580820801463

  4. 查看文件

    • cat <文件名>全部显示
    • more <文件名>部分显示,回车一直往下查看
    • less <文件名>部分显示,↑ 、↓ 键进行查看
    • head <参数(可选)> <文件名> :显示文件头部信息
      • 参数,-n 3 :指定显示文件头3行
    • tail <参数(可选)> <文件名>:显示文件尾部部分
      • 参数,-n 3:显示3行
      • 参数,-f:一般用于查看日志,命令不退出,不断显示更新的内容
  5. zip/tar 压缩/打包/解压

    zip 如果没有安装,需要先安装:

    1
    yum instal zip

    [zip]命令格式:<zip> <参数(可选)> <目标文件名> <源文件名>

    • 压缩后源文件会被保留

    实践:家目录下创建文件夹 /test ,并对其进行压缩。

    1
    2
    3
    su huihui
    mkdir ~/test
    zip ~/test.zip ~/test

    查看家目录下文件:

    1580821740854

    [tar] 命令格式:<tar> <参数(可选)> <目标文件名> <源文件名>

    • tar 命令常用户文件 打包/压缩/解压

    实践:打包并压缩目录 ~/test 下所有txt文档

    创建2个txt 文档

    1
    2
    touch ~/test/1.txt
    touch ~/test/2.txt

    打包—> 压缩所有文档(打包只是整理不等于压缩):

    1
    2
    3
    4
    5
    # -c 表示打包文件
    # -z 表示打包后在调用gzip进行压缩
    # -f 必要参数,表示使用档案名字
    cd ~/test
    tar -czf alltxt.tar.gz *.txt # *表示匹配0个或多个字符

    1580822896903

    实践:解压~/alltxt.tar.gz

    1
    2
    3
    4
    5
    # -x 表示解压文件
    # -z 表示使用gzip解压,因为解压的文件被gzip压缩过
    # -f 必要参数,表示使用档案名字
    # -C 指定解压路径,下面指定解压到家目录下
    tar -xzf ~/test/alltxt.tar.gz -C ~

    1580823016123

  6. locate/find查找文件

    locate 命令如果无法使用,请先安装:

    1
    yum  -y install mlocate

    [locate] 命令格式:locate <关键字>

    实践:查找此前创建的 1.txt 在哪

    1
    2
    sudo updatedb  # 先更新下数据库
    locate 1.txt

    1580824094815

    [find] 命令格式:find <查找位置> < 查找参数> <需要查找的文件>

    常用参数解释:

    • <查找位置> : . 表示从当前目录查找;/ 表示从根目录全盘查找
    • <查找参数>:指定以什么方式查找
      • -name:按文件名查找
    • <需要查找的文件>:支持正则表达形式

    实践:查找此前创建的 1.txt 在哪

    1
    sudo find / -name *.txt

    1580824728358

  7. jobs/fg 作业管理

    很多时候,我们会使用ctrl+z 中断当前命令后台运行。比如,我们输入sudo visudo进入编辑模式:

    1580825644578

    但是,这个时候我们又想切换回中端,于是按下ctrl+z

    使用jobs 命令可以查看后台运行的命令:

    1580825772209

    这个时候我们如果还想继续编辑,只需键入:

    1
    fg 5  # 把后台命令前台运行,注意序号可能不是5是1

    当然,如果不需要再编辑,可以直接杀死该进程:

    1
    kill %5 # 注意序号可能不是5是1

3.3.2 常用技巧

本节将介绍linux最常用的技巧。

  1. TAB自动补全

    TAB可使得我们只需键入 命令/文件/文件夹 一部分,便可直接按TAB 键自动补全。

    如果你快速双击两次TAB 还会显示当前可自动补全的全部选择:

    1
    cd /home/h

    1580825096651

  2. 重复命令技巧

    • +回车:执行上一条命令
    • !字符:重复前一个以指定“字符”开头命令
    • !num:按照历史序号执行
    • !?abc:重复之前包含abc的命令
    • Esc+.:复制上一个命令参数
  3. 命令搜索

    • history:显示之前命令

    • ctrl+r :键入关键字后,会自动搜索符合的命令

      1580825340128

  4. 获取帮助

    非常常见的事,你会经常不记得一个命令的参数、用法。除了立即谷歌/百度/冥思苦想/…,你还可以借助Linux系统自带命令来查看相关命令用法。

    我们将主要解释 help / man 两种相关方法查看命令帮助。

    • help

      几乎所有命令都可以使用 --help参数获取使用方法、参数信息等。

      例如:

      1
      ls --help

      1580828331572

    • man

      man命令是Linux 最为常用 的帮助命令。

      命令格式:man <参数(可选)> <命令>

      常用参数:

      • -k :此时<命令> 可以不全,搜索相关相关命令
      1
      man ls

      1580828423093

      :slightly_smiling_face: 快速定位技巧:进入man 文档 —> 输入 / <keywords> 快速搜索/高亮指定关键字。

      例如输入:/ -a 再回车

3.4 vim 基础入门

后续实验多次需要使用vim文本 编辑功能,请仔细按照下述步骤实操。

vim 编辑器有三种模式:

  • 命令模型:默认进入时就是命令模型,此模式下只接受命令对文本进行操作
  • 插入模式:命令模式下按下 iO 键可进入,此模式下可对文本进行编辑、插入
  • EX模式:命令模式下输入 : 便可进入EX模式,用户保存修改或退出vim

3.4.1 vim实践

进入命令模式有两种方式:

  • 初始进入编辑文件时,默认就是命令模式
  • 在其它模式下按下 ESC 键便可进入命令模型

常用命令模式下命令如下:

vim 启动后默认进入的就是命令模式,只接受命令,如输入:

  • i:进入插入模式(Esc 退回到命令模式,下同)
  • dd:删除整行,还是命令模式
  • yy:复制鼠标当前行,还是命令模式
  • p:粘贴复制的行
  • u:撤销上一个操作
  • /:查找关键字,按下n可以不断切换

按下:可进入EX模式,用户保存修改或者退出vim

常用EX模式 下命令如下:

  • :q / :q!:退出 /强制退出(比如文件只读修改时)
  • :w:保存当前文件
  • :wq==:x :保存并退出
  • :set number:显示行号
  • :sh:切换回命令行,ctrl+d>返回vim

实践:在~ 目录下创建hello.txt ,使用vim 编辑。

1
2
touch ~/hello.txt 
vim ~/hello.txt
  1. 插入模式

    按下 i 键插入模式,输入以下字符

    1580827178980

  2. 疯狂复制

    按下ESC 键进入命令模式 —-> 光标移动到 hello linux 那行 —> 按下yy 进行复制 —> 按下p 进行多次复制:

    1580827311122

  3. 显示行号

    按下ESC 键进入命令模式 —-> 输入 :set number —> 显示行号

    1580827739828

  4. 保存退出

    按下ESC 键进入命令模式 —> 输入 :wq! —> 退出

    查看是否保存成功:

    1
    cat -n ~/hello.txt   # 参数n表示同时显示行号

    1580827833838

3.5 用户权限基础

3.5.1 用户与组

[用户] 限制使用者或者进程 可以使用,不可以使用哪些资源 。

  • 用户种类:root用户(ID: 0);系统用户(ID:1~499);普通用户(ID:500以上)

  • 用户与组:每个用户属于一个组,一个或多个附属

  • 用户与shell:每个可登陆用户有一个指定shell

  • 用户相关配置文件

    • /etc/passwd : 保存用户信息

      1559463477365

    • /etc/shadow:保存用户密码(加密的)

      1559463591598

    • /etc/group :保存组信息

[组]用来管理用户,每个组拥有一个GroupID

独立完成以下用户创建及相关操作。

  1. 创建用户

    命令格式:useradd <参数(可选)> <用户名>

    执行useradd 命令,会执行以下默认操作:

    1. /etc/passwd添加用户信息
    2. 为用户建立一个家目录 /home/<username>
    3. /etc/shel(用户刚建立的初始文件) 复制到用户家目录

    常用参数解释:

    • -u :指定userID
    • -g:指定主组,默认会建立一个和用户同名的组,用户默认属于这个组。
    • -G : 指定附属组

    实践:创建一个用户 lxSmile ,并指定userID=555(普通用户id),所属组为 testGroup

    1
    2
    3
    su root              # 切换到root权限
    groupadd testGroup # 创建组testGroup
    useradd -u 555 -g testGroup lxSmile

    查看创建用户信息:

    1
    id lxSmile

    1580873280514

    1
    cat -n -E /etc/passwd   # 在/etc/passwd配置文件查看用户信息

    1580873449521

  2. 修改用户

    命令格式:usermod <参数(可选)> <用户名>

    常用参数解释:

    • -l :修改用户名
    • -u:新userID
    • -g:用户所属组
    • -G:用户所属附属组

    实践:修改用户 lxSmile ,修改userID=666(普通用户id),所属组为 testGroup1

    1
    2
    groupadd testGroup1
    usermod -u 666 -G testGroup1 -g testGroup1 lxSmile

    1580874102378

  3. 删除用户

    命令格式:userdel <参数(可选)> <用户名>

    常用参数解释:

    • -r :同时删除用户家目录(默认不删除)

    实践:删除刚刚创建的用户 lxSmile ,并同时删除其家目录。

    1
    userdel -r lxSmile

    查看是否还存在:
    1580874374129

3.5.2 文件权限实操

[文件权限]用来管理文件读、写、执行 ,每个文件都有特定权限、所属组、所属用户。

  • 权限类型:权限分为读(r)、写(w)、执行(x)

  • UGO权限控制:Linux权限基于UGO模型进行控制

    • UGOUser、Group、Other,每一个文件权限都基于UGO设置(即用户、所属组、和其它用户能操作权限)

    • ls -l <文件/文件夹名> :可查看权限

      根据下图我们可以知道 test

      类型为目录(d),所属用户权限为读写执行 (rwx),所属组权限为读写执行 (rwx),其它用户权限为读执行 (r-x),所属用户为huihui,所属组为huihui,大小为4096B,修改时间为21:26

      1580872154732

独立完成以下文件权限相关操作。

首先我们创建相关测试文件:

1
2
3
4
su
cd /
mkdir test5
touch /test5/5.txt
  1. 修改文件所属用户

    命令格式: chown <参数(可选)> <用户名> <文件/文件夹>

    常用参数:

    • -R :递归的修改文件夹下所有子文件/文件夹的所属用户
    1
    chown -R huihui /test5   # 修改文件夹test5所属用户为huihui

    1580875145288

  2. 修改文件所属组

    命令格式: chgrp <参数(可选)> <组名> <文件/文件夹>

    常用参数:

    • -R :递归的修改文件夹下所有子文件/文件夹的所属组
    1
    chgrp -R huihui /test5   # 修改文件夹test5所属组为huihui

    1580875299501

  3. 修改文件权限

    命令格式: chmod <参数(可选)> <模式> <文件/文件夹>

    常用参数:

    • -R :递归的修改文件夹下所有子文件/文件夹的所属用户

    修改 /test5/5.txt ,权限从rw-r--r-- —-> r--rwxrwx

    1580875509098

    1
    2
    3
    4
    # 用户(U)权限[减去写]权限
    chmod u-w /test5/5.txt
    # 组(G)/其他用户(O)权限[加上写、执行]
    chmod go+wx /test5/5.txt

    1580875689076

4 实验小结

本次实验虽然只是简单地对接下来实验所需的linux操作进行初步熟悉,但是或许第一次接触linux的你还是觉得颇为困难。但是不用担心,后续所有有关linux操作,你在本次实验中已经全部学习过了,相关操作也有详细的实验指导。

接下来,你将正式开始Spark/Hadoop 的学习,希望你能收获满满 : )。