美文网首页
02关于RHCE考试基础命令行操作你需要了解这些

02关于RHCE考试基础命令行操作你需要了解这些

作者: 小宝瓜 | 来源:发表于2023-05-28 11:23 被阅读0次

    一、文章大纲

    • 文章大纲

    • 环境说明

    • 配置类

      • 修改主机名

      • 配置Yum源

      • 安装命令行提醒

      • 配置网络

      • 配置NTP时间同步

      • 配置sudo

    • 命令类

      • 创建多个文件

      • 匹配文件内容

      • 查找文件

      • 创建用户

    • 操作类

      • 找回密码

    二、环境说明

    1. 报考后培训机构老师会提供用于学习和练习的虚拟机环境,老师提供练习环境由一个虚拟机里面嵌套多个子虚拟机,对机器配置要求比较,个人不太喜欢使用,后面操作演示使用自己搭建虚拟机环境。

    2. RHCE考试使用是RHEL8版本操作系统,这里为了测试和方便使用CentOS7版本系统。镜像可以在这里下载:http://mirrors.aliyun.com/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

    3. 虚拟机管理软件使用微软Hyper-V,当然也可以使用VMware或者VirtualBox,使用自己熟悉就好。

    4. 远程终端工具使用免费版本MobaXterm,使用Xshell、Putty、SecureCRT都可以,MobaXterm下载地址:https://mobaxterm-en.mobatek.net/download-home-edition.html

    MobaXterm

    三、配置类

    修改主机名

    修改主机名方式很多常用比如直接修改/etc/hostname文件,这里推荐使用工具修改。

    #查看当前主机名
    [root@localhost ~]# hostname
    localhost.localdomain
    #使用工具hostnamctl set-hostname <主机名>
    [root@localhost ~]# hostnamectl  set-hostname centos7
    #执行bash命令,刷新
    [root@localhost ~]# bash
    #再次查看,主机名称已更改
    [root@centos7 ~]# hostname
    centos7
    #查看etc下文件,主机名称已更改
    [root@centos7 ~]# cat /etc/hostname
    centos7
    [root@centos7 ~]#
    

    配置Yum源

    场景:

    提供BaseOS和AppStream地址,完成服务器Yum配置

    BaseOS:http://xxx/dvd/BaseOS

    AppStream:http://xxx/dvd/AppStream

    #yum源配置在/etc/yum.repos.d/目录下,以repo扩展名结尾
    [root@centos7 ~]# vi /etc/yum.repos.d/rhel.repo
    [rhel-baseos]
    baseurl = http://xxx/dvd/BaseOS
    enabled = true
    gpgcheck = false
    name = rhel baseos
    
    [rhel-appstream]
    baseurl = http://xxx/dvd/AppStream
    enabled = true
    gpgcheck = false
    name = rhel appstream
    
    #配置完毕后对配置进行检查
    yum repolist
    
    yum makecache
    

    这里测试使用centos7环境,我直接配置阿里在线的yum源。阿里镜像源配置地址:https://developer.aliyun.com/mirror/centos

    #切换配置路径
    [root@centos7 yum.repos.d]# cd /etc/yum.repos.d/
    #先备份默认配置
    [root@centos7 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
    #配置阿里源
    [root@centos7 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  2523  100  2523    0     0   7708      0 --:--:-- --:--:-- --:--:--  7739
    #清除已有缓存
    [root@centos7 yum.repos.d]# yum clean all
    Loaded plugins: fastestmirror
    Cleaning repos: base extras updates
    Cleaning up list of fastest mirrors
    #更新缓存
    [root@centos7 yum.repos.d]# yum makecache
    #查看源配置情况
    [root@centos7 yum.repos.d]# yum repolist
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    repo id                                         repo name                                                               status
    base/7/x86_64                                   CentOS-7 - Base - mirrors.aliyun.com                                    10,072
    extras/7/x86_64                                 CentOS-7 - Extras - mirrors.aliyun.com                                     515
    updates/7/x86_64                                CentOS-7 - Updates - mirrors.aliyun.com                                  4,926
    repolist: 15,513
    

    安装命令行提醒

    [root@centos7 ~]# yum install bash-completion
    

    配置网络

    配置网络方式和工具有很多,笔者此前常使用方式是编辑 /etc/sysconfig/network-scripts/下cfg文件,这种方式比较直接,但是容易出错,出错后会导致服务器无法联网,不推荐。

    场景:

    当前服务器IP地址为172.20.186.232,掩码255.255.240.0,网关172.20.176.1,DNS 172.20.176.1将IP修改为172.20.186.233,DNS修改为114.114.114.114

    #查看当前服务器IP,使用nmcli命令,ifconfig命令包会在后续的版本中淘汰
    [root@centos7 ~]# nmcli
    eth0: connected to eth0
            "The Linux Foundation Ethernet"
            ethernet (hv_netvsc), 00:15:5D:1F:39:00, hw, mtu 1500
            ip4 default
            inet4 172.20.186.232/20
            route4 0.0.0.0/0
            route4 172.20.176.0/20
            inet6 fe80::7a48:9fd5:991:9371/64
            route6 fe80::/64
            route6 ff00::/8
    
    lo: unmanaged
            "lo"
            loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
    
    DNS configuration:
            servers: 172.20.176.1
            domains: mshome.net
            interface: eth0
    
    Use "nmcli device show" to get complete information about known devices and
    "nmcli connection show" to get an overview on active connection profiles.
    
    Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
    
    #查看网络配置
    [root@centos7 ~]# nmcli connection
    NAME  UUID                                  TYPE      DEVICE
    eth0  6471e464-b752-4418-97c3-94bac80d8ff9  ethernet  eth0
    
    #查看硬件设备
    [root@centos7 ~]# nmcli device
    DEVICE  TYPE      STATE      CONNECTION
    eth0    ethernet  connected  eth0
    lo      loopback  unmanaged  --
    
    #添加新的网卡配置
    [root@centos7 ~]# nmcli connection add con-name eth0-new ifname eth0 type ethernet ipv4.method manual ipv4.addresses 172.20.186.233/20 ipv4.gateway 172.20.176.1 ipv4.dns 114.114.114.114 autoconnect yes
    Connection 'eth0-new' (e7c5636f-3b2e-4976-a71b-795d1ea1aa59) successfully added.
    #参数说明:
    con-name eth0-new #接口名称,可以随意设置
    ifname eth0 #设备名称
    type ethernet #类型为以太网
    ipv4.method manual #手工指定静态IP
    ipv4.addresses 172.20.186.233/20 #需要配置的静态IP和掩码,千万别忘记了掩码!!! 
    ipv4.gateway 172.20.176.1 #网关地址
    ipv4.dns 114.114.114.114 #DNS服务器地址
    autoconnect yes #是否自动连接
    
    #查看配置
    [root@centos7 ~]# nmcli connection
    NAME      UUID                                  TYPE      DEVICE
    eth0      6471e464-b752-4418-97c3-94bac80d8ff9  ethernet  eth0
    eth0-new  e7c5636f-3b2e-4976-a71b-795d1ea1aa59  ethernet  --
    
    #切换配置为刚添加配置,切换后由于变更IP会断网
    [root@centos7 ~]# nmcli connection up eth0-new
    
    #重新登陆服务器,使用变更后的IP地址
    ssh root@172.20.186.233
    root@172.20.186.233's password:
    '
    #查看配置,可以看到已启用新添加的配置
    [root@centos7 ~]# nmcli connection
    NAME      UUID                                  TYPE      DEVICE
    eth0-new  e7c5636f-3b2e-4976-a71b-795d1ea1aa59  ethernet  eth0
    eth0      6471e464-b752-4418-97c3-94bac80d8ff9  ethernet  --
    #查看network-scripts目录,发现多了一个配置文件
    [root@centos7 ~]# cd /etc/sysconfig/network-scripts/
    [root@centos7 network-scripts]# cat ifcfg-eth0-new
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    IPADDR=172.20.186.233
    PREFIX=20
    GATEWAY=172.20.176.1
    DNS1=114.114.114.114
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=eth0-new
    UUID=e7c5636f-3b2e-4976-a71b-795d1ea1aa59
    DEVICE=eth0
    ONBOOT=yes
    
    #使用delete将旧的配置删除掉
    [root@centos7 network-scripts]# nmcli connection delete eth0
    Connection 'eth0' (6471e464-b752-4418-97c3-94bac80d8ff9) successfully deleted.
    #查看
    [root@centos7 network-scripts]# nmcli connection
    NAME      UUID                                  TYPE      DEVICE
    eth0-new  e7c5636f-3b2e-4976-a71b-795d1ea1aa59  ethernet  eth0
    

    配置NTP时间同步

    配置服务器的时间同步。

    #安装包
    [root@centos7 ~]# yum install chrony
    #配置
    [root@centos7 ~]# vi /etc/chrony.conf
    server ntp.aliyun.com iburst
    server ntp1.aliyun.com iburst
    server ntp2.aliyun.com iburst
    server ntp3.aliyun.com iburst
    #启动服务
    [root@centos7 ~]# systemctl start chronyd
    #配置开机自启,切记,如果忘记配置重启后服务没起来考试不给分
    [root@centos7 ~]# systemctl enable chronyd
    #检查自启配置
    [root@centos7 ~]# systemctl is-enabled chronyd
    enabled
    #检查ntp配置是否生效
    [root@centos7 ~]# chronyc  sources -v
    210 Number of sources = 2
    
      .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
     / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
    | /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
    ||                                                 .- xxxx [ yyyy ] +/- zzzz
    ||      Reachability register (octal) -.           |  xxxx = adjusted offset,
    ||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
    ||                                \     |          |  zzzz = estimated error.
    ||                                 |    |           \
    MS Name/IP address         Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^* 203.107.6.88                  2   6    37    59   +656us[-2276us] +/-   43ms
    ^- 120.25.115.20                 2   6    67    56  +7841us[+7841us] +/-   12ms
    [root@centos7 ~]# ping ntp.aliyun.com
    PING ntp.aliyun.com (203.107.6.88) 56(84) bytes of data.
    64 bytes from 203.107.6.88 (203.107.6.88): icmp_seq=1 ttl=49 time=67.8 ms
    

    配置sudo

    #添加test用户
    [root@centos7 ~]# useradd test
    #切换test用户,并查看用户身份
    [root@centos7 ~]# su test
    [test@centos7 root]$ whoami
    test
    #配置sudo
    [root@centos7 ~]# visudo
    test ALL=(root) NOPASSWD: /usr/bin/whoami
    #用户名   登陆者来源主机名=(可以切换身份:身份所属于组)无需密码:使用命令
    #切换用户并使用sudo免密执行whoami
    [root@centos7 ~]# su test
    [test@centos7 root]$ sudo whoami
    root
    

    四、命令类

    创建多个文件

    #创建文件1,2,3
    [root@centos7 ~]# touch {1..3}
    #创建文件a,b,c,d,e
    [root@centos7 ~]# touch {a..e}
    [root@centos7 ~]# ll
    total 4
    -rw-r--r--. 1 root root    0 May 15 16:54 1
    -rw-r--r--. 1 root root    0 May 15 16:54 2
    -rw-r--r--. 1 root root    0 May 15 16:54 3
    -rw-r--r--. 1 root root    0 May 15 16:54 a
    -rw-------. 1 root root 1258 May 14 09:59 anaconda-ks.cfg
    -rw-r--r--. 1 root root    0 May 15 16:54 b
    -rw-r--r--. 1 root root    0 May 15 16:54 c
    -rw-r--r--. 1 root root    0 May 15 16:54 d
    -rw-r--r--. 1 root root    0 May 15 16:54 e
    

    匹配文件内容

    #匹配文件内容包含root的行
    [root@centos7 ~]# grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    #匹配以root开头的文件行
    [root@centos7 ~]# grep -P "^root" /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    

    查找文件

    #查找/etc目录下,文件名为passwd的文件
    [root@centos7 ~]# find /etc -type f -name 'passwd'
    /etc/pam.d/passwd
    /etc/passwd
    [root@centos7 home]# touch {a..f}
    [root@centos7 home]# ls
    a  b  c  d  e  f
    [root@centos7 home]# mkdir /tmp/test
    #查找/home目录下用户为root的文件,并将文件复制到/tmp/test目录下
    [root@centos7 home]# find /home/ -type f -user root -exec cp -a {} /tmp/test/ \;
    [root@centos7 home]# ls /tmp/test/
    a  b  c  d  e  f
    #查找/usr目录下大小范围在10-50K之间并且组id不为root的文件 
    [root@centos7 home]# find /usr  -size -50k -size +10k -gid +0
    /usr/bin/wall
    /usr/bin/write
    /usr/libexec/utempter/utempter
    #查看文件属性
    [root@centos7 home]# ll /usr/bin/wall
    -r-xr-sr-x. 1 root tty 15344 Jun 10  2014 /usr/bin/wall
    

    创建用户

    [root@centos7 home]# mkdir work
    #添加test用户并指定家目录
    [root@centos7 home]# useradd -d /home/work/ test
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.
    
    [root@centos7 home]# id test
    uid=1000(test) gid=1000(test) groups=1000(test)
    #添加abc用户,并指定为test用户组,不可登陆
    [root@centos7 home]# useradd -G test -s /sbin/nologin abc
    [root@centos7 home]# cat /etc/passwd|grep abc
    abc:x:1001:1001::/home/abc:/sbin/nologin
    [root@centos7 home]#
    #修改用户test密码
    [root@centos7 home]# echo 123456 | passwd --stdin test
    Changing password for user test.
    passwd: all authentication tokens updated successfully.
    

    五、操作类

    找回密码

    1、重启服务器,在开机后的启动项页面按e键

    2、找到linux开头项,从行尾删除直至ro(ro也要删除掉)


    找到对应行

    3、删除完后,添加rd.break。(如下图),添加完成后按ctrl + x

    修改结果

    4、等待一段时间,执行下面命令

    #将分区挂载为可读写
    mount -o rw,remount /sysroot/
    #将sysroot设置为根
    chroot /sysroot/
    #修改密码
    echo 123456 | passwd --stdin root
    #重新生成selinux标签
    touch /.autorelabel
    #退出 
    exit
    #重启
    reboot
    
    修改密码过程

    相关文章

      网友评论

          本文标题:02关于RHCE考试基础命令行操作你需要了解这些

          本文链接:https://www.haomeiwen.com/subject/leqdedtx.html