1、云计算学习:ADMIN

文章目录

一、TCP/IP协议及配置

1、主机与主机之间通信的三个要素

  • IP地址(IP address)
  • 子网掩码(subnet mask)
  • IP路由(IP router)网络设备 路由器

2、 IP地址(IP address)

  • 作用: 用来标识一个节点(连网设备)的网络地址
  • 地址组成(点分十进制):
      1) 一共32个二进制位
      2) 表示为4个十进制数,以 . 隔开
    在这里插入图片描述
  • IP地址的分类: 判断的依据只需要查看IP地址的第一个十进制数( 192.168.1.1   18.19.20.21)
      1)用于一般计算机网络(网:网络位;主:主机位)
         A类:1 ~ 127     网+主+主+主
         B类:128 ~ 191   网+网+主+主
         C类:192 ~ 223   网+网+网+主
      2)组播及科研专用(了解即可)
         D类:224 ~ 239   组播
         E类:240 ~ 254    科研

3、 IP地址的组成:网络位与主机位

  • 网络位 = 类似身份证开头的6个数字,起到作用为标识一个地理区域
  • 主机位 = 编号
  • 示例:192.168.1.1 = 192.168.1区域,编号为1的主机
          192.168.2.1 = 192.168.2区域,编号为2的主机
  • 表示一个网络(区域)的规则:网络位不变,主机位全为0
    相同网络(区域)通信:
    192.168.1.1= 来自 192.168.1.0网络,编号为1的主机
    192.168.1.2= 来自 192.168.1.0网络,编号为2的主机
    不相同网络(区域)通信:
    192.168.2.1= 来自 192.168.2.0网络,编号为1的主机
    192.168.3.1= 来自 192.168.3.0网络,编号为1的主机

4、子网掩码

  • 作用: 为计算机标识IP地址的网络位与主机位,利用二进制的1标识网络位,利用二进制的0标识主机位。
    192.168.1.1 = 11000000.10101000.00000001.00000001
    子网掩码 = 111111111.11111111.11111111.00000000
  • IP地址的另外一种写法:
    (192.168.1.1 255.255.255.0) = 192.168.1.1/24 (24表示该IP地址有24个网络位)

5、测试网络通信的命令 ping

  • 格式: ping 对方的IP地址(默认进行4次通信)

6、网关概念与DNS服务器的概念

  • 配置IP地址方式: 1、手工配置 2、DHCP自动获取(前提是网络中有dhcp服务器)

  • 网关: 一个网络到另一个网络的关口地址,涉及到网络设备路由器
    一个网络的出口地址
    一个网络的入口地址
    (不同网络之间的通信才会用到网关)

  • DNS服务器: 域名解析系统,提供域名解析的机器。
    域名解析: 能够将域名解析为IP地址
    示例: www.baidu.com--------》DNS服务器-------》 IP地址 --------》 百度的服务器

二、 Linux 预备知识

1、Linux目录结构

  • / 根目录: Linux系统的起点(所有的数据存放的目录)
    在这里插入图片描述

2、磁盘表示
在这里插入图片描述
在这里插入图片描述

  • 示例
    /dev/sda:SCSI接口的硬盘,第一块
    /dev/sdb:SCSI接口的硬盘,第二块

3、Linux基本操作

  • 获得命令终端:
    右键“打开终端”
    字体变大:ctrl shift +
    字体变小:ctrl -
  • 命令提示符:
    [当前登录的用户@主机名 当前所在的目录]
    以#结尾表示当前登录的身份为root
    以$结尾表示当前登录的身份为普通用户
    示例:[root@localhost ~]#
  • 补充内容:
    (1)绝对路径:以根开始的路径;相对路径:以当前为参照的路径
    (2)目录:蓝色;文本文件:黑色;绿色:可以执行的程序;青色:快捷方式
    在这里插入图片描述
    (3)Tab:键自动补全
    (4)Ctrl + c:结束正在运行的命令
    (5)Esc+ . 或Alt+ . :粘贴上一个命令的参数
    (6)Ctrl + l:清空整个屏幕
    (7)Ctrl + u:从光标处清空至行首
    (8)Ctrl + w:往回删除一个单词(以空格界定)
    (9)命令加 -help表示查看命令的帮助信息

三、 Linux 命令

  • 用来实现某一类功能的指令或程序,在Linux中执行大多数命令时,都要找到命令所对应的程序。
  • 命令的执行依赖于解释器(默认解释器/bin/bash)用户—>解释器—>内核—>硬件

1、pwd:显示当前所在位置

[root@localhost ~]# pwd
/root

2、cd:切换工作目录

  • 格式:
    cd [目标文件夹位置]
    cd  . . 返回上级目录
    cd  . 当前目录
    cd  ~:表示家目录
[root@localhost /]# cd /etc
[root@localhost etc]# cd ..
[root@localhost /]# cd .
[root@localhost dvd]# cd ~lisi
[root@localhost lisi]# 
  • 补充说明:
    家目录:专门存放用户个性化信息的目录
    ~user:用户user的家目录
    /root:是Linux管理员的家目录
    /home:存放所有普通用户的家目录

3、ls:列出目录中的内容

  • 格式:
    ls [目录或文件名]
    ls -l(也可写成:ll):以长格式显示,显示详细信息
    ls -lh:提供易读的容量单位(K、M等)
    ls -A:显示所有内容包含隐藏数据
    ls -ld:显示目录本身(而不是内容)的属性
    ls -R:递归显示内容
  • 说明:
    (1)以点开头的是隐藏文件(示例:.dbus)。
    (2)-l和-ld后面接目录时,前者展示目录内的所有文件及目录的详细信息,后者展示的是目录本身的详细信息;两者接文件时,展示的内容是一致的。
[root@localhost ~]# ls /opt
a.txt  b.txt  p.txt  rh
[root@localhost ~]# ls -l /opt
总用量 12
-rw-r--r--. 1 root root   11 518 22:08 a.txt
-rw-r--r--. 1 root root   12 518 22:01 b.txt
-rw-r--r--. 1 root root 2126 518 21:59 p.txt
drwxr-xr-x. 2 root root    6 97 2017 rh
[root@localhost ~]# ls -ld /opt
drwxr-xr-x. 3 root root 55 518 22:08 /opt
[root@localhost ~]# ls -l /opt/a.txt
-rw-r--r--. 1 root root 11 518 22:08 /opt/a.txt
[root@localhost ~]# ls -ld /opt/a.txt
-rw-r--r--. 1 root root 11 518 22:08 /opt/a.txt

     (3)-l和-lh的区别是后者所展示数据的大小的可读性更好。

[root@localhost ~]# ls /home
lisi
[root@localhost ~]# ls -l
-rw-------. 1 root root 1685 57 20:17 anaconda-ks.cfg
[root@localhost ~]# ls -lh
-rw-------. 1 root root 1.7K 57 20:17 anaconda-ks.cfg
[root@localhost ~]# ls -A
anaconda-ks.cfg  .bashrc  .dbus                 .local   视频  音乐

4、cat:查看文本文件内容,适合查看内容较少文件

  • 格式:
    cat [文件名]
    cat -n:显示行号
[root@localhost ~]# cat  /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# cat -n /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin

  • 列出内存信息: cat /proc/meminfo
[root@localhost ~]# cat /proc/meminfo 
MemTotal:         997956 kB
MemFree:           67076 kB
MemAvailable:      68032 kB
Buffers:              40 kB
Cached:           102600 kB
SwapCached:        11768 kB

5、less:查看文本文件内容,适合查看内容较多文件

  • 格式:
    less [文件名]
  • 说明:
    (1)按上、下键进行滚动;
    (2)查询关键字:输入 /bin,即代表全文查找bin关键字,查询关键字时按n进行向下匹配项跳转,按N进行向上匹配项跳转;
    (3)按q键进行退出。
[root@localhost ~]# less /etc/passwd

6、hostname:查看主机名

  • 说明:
    (1)[hostname] 查看当前的主机名;
    (2)[hostname 名字] 修改主机名,这个修改需要重新打开终端才能验证,如果关机之后再开机则主机名会恢复至原始的主机名,是一个临时的修改;
    (3)主机名只显示第一个“.”前面的内容,例如:主机名是haha.xixi.hehe,则只显示为haha。
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname weihua.tang
[root@localhost ~]# hostname
weihua.tang

7、hostnamectl:设置永久主机名

  • 格式:
    hostnamectl set-hostname [主机名]
[root@localhost ~]# hostnamectl set-hostname weihua.tang.tang
[root@localhost ~]# hostname
weihua.tang.tang
  • 说明:
    再次开机时依然是修改之后的主机名。

8、lscpu:列出CPU处理器信息

[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1

9、 ifconfig:查看网卡的IP地址

  • 格式:
    ifconfig 查看网卡的IP地址
    ifconfig ens33 [IP] 临时设置IP(示例:ifconfig ens33 192.168.1.1)
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:d3:46:82  txqueuelen 1000  (Ethernet)
        RX packets 1010  bytes 60984 (59.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
[root@localhost ~]# ifconfig ens33 192.168.1.1
[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:d3:46:82  txqueuelen 1000  (Ethernet)
        RX packets 1100  bytes 66384 (64.8 KiB)
[root@localhost ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.039 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.095 ms
  • 说明:
    (1)lo:本机回环接口 IP永远为127.0.0.1
    (2)127.0.0.1:永远代表本机
    (3)Ctrl+c:结束正在运行命令

10、mkdir:创建目录

  • 格式:
    mkdir [目录名]
    mkdir -p [路径/目录名]:连同父目录一并创建
[root@weihua ~]# mkdir /opt/test
[root@weihua ~]# ls /opt
rh  test
[root@localhost lisi]# mkdir -p /opt/aa/bb
[root@localhost lisi]# ls -R /opt/aa
/opt/aa:
bb

/opt/aa/bb:
[root@localhost lisi]# 

11、touch:创建文本文件

  • 格式:
    touch [文件名]
[root@weihua ~]# touch /opt/1.txt
[root@weihua ~]# ls /opt
1.txt  rh  test

12、head、tail: 查看文本文件部分信息

  • 格式:
    head  -n 数字 文件名(查看文件的前n行)
    tail -n 数字 文件名(查看文件的倒数n行)
[root@weihua ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@weihua ~]# tail -3 /etc/passwd
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lisi:x:1000:1000:lisi:/home/lisi:/bin/bash

13、grep:过滤文本文件内容

  • 作用:
    输出包含指定字符串的行
  • 格式:
    grep [字符串] [指定文件路径]
    grep -v     取反匹配
    grep -i      忽略大小写
    grep ^word   以字符串word开头
    grep word$   以字符串word结尾
[root@weihua ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@weihua ~]# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
lisi:x:1000:1000:lisi:/home/lisi:/bin/bash
[root@localhost opt]# grep -v root /etc/passwd #不包含root
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost opt]# grep -i ROOT /etc/passwd #忽略大小写
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost opt]# grep ^root /etc/passwd #以root开头
root:x:0:0:root:/root:/bin/bash
[root@localhost opt]# grep bash$ /etc/passwd #以bash结尾
root:x:0:0:root:/root:/bin/bash
lisi:x:1000:1000:lisi:/home/lisi:/bin/bash
[root@localhost opt]# 
  • 高级使用情形:

(1)^$:表示空行,去除以#开头的注释行以及空行并将过滤后的内容写入到其它文件中。

[root@localhost /]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
[root@localhost /]# cat /opt/log.txt
MAIL_DIR	/var/spool/mail
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0

14、vim:修改文本文件内容(文本编辑器)

  • 格式:
    vim [文件名]
    示例:vim /opt/2.txt
  • 基本使用说明:
    (1)三个模式:命令模式、插入模式、末行模式;
    (2)vim当文件不存在时,会自动创建此文件;vim不能创建目录;
    (3)通过vim进入文件时是命令模式:
         命令模式下,输入 i 或 o 进入插入模式(此模式下可以编辑文本);
         插入模式下,输入 esc 回到命令模式;
         命令模式下,输入英文冒号 : 进入末行模式;
         末行模式下,输入 wq 意为保存并退出,输入 q! 意为强制不保存并退出。
  • 使用技巧:

(1)命令模式操作

    1)光标跳转

操作类型按键指令用 途
移动光标↑、↓、←、→上、下、左、右
光标行内跳转Home 键 或 ^、数字 0跳转到行首
End 键 或 $ 键跳转到行尾
全文翻页PgUp 键、PgDn 键向上翻页、向下翻页
光标行间跳转1G 或 gg跳转到文件的首行
G跳转到文件的末尾行

    2)复制/粘贴/删除

操作类型按键指令用 途
复制yy、3yy复制光标处的一行、3行
粘贴p、P粘贴到光标处之后、之前
删除x 或 Delete键删除光标处的单个字符
dd、3dd删除光标处的一行、3行
d^或d0从光标处之前删除至行首
d$或D(大写)从光标处删除到行尾

    3)查找/撤销/保存

操作类型按键指令用 途
文本查找/a向后查找字符串“a”
n、N跳至后/前一个结果
撤销编辑u撤销最近的一次操作
U撤销对当前行的所有修改
Ctrl + r取消前一次撤销操作
保存退出ZZ(大写)保存修改并退出
  • 补充说明:
    在命令模式下大写的C,可以删除光标之后,并且进入插入模式。

(2)末行模式操作

    1)保存/退出/文件操作

操作类型按键指令用 途
存盘及退出:w保存当前文件
:q!放弃已有更改后强制退出
:wq或:x保存已有修改后退出
文件操作:w /root/newfile另存为其它文件
:r /etc/filesystems读入其它文件内容
[root@localhost opt]# echo aaaaaaaaaa > a.txt
[root@localhost opt]# ls
a.txt  p.txt  rh
[root@localhost opt]# vim a.txt

在这里插入图片描述

[root@localhost opt]# ls
a.txt  b.txt  p.txt  rh
[root@localhost opt]# cat b.txt
aaaaaaaaaa

    2)字符串替换

操作类型按键指令用 途
行内替换:s/root/new替换光标所在行第一个“root”
:s/root/new/g 替换光标所在行所有的“root”
区域内替换:1,10s/root/new/g 替换第1-10行所有的“root”
:%s/root/new/g替换文件内所有的“root”
    3)开关参数的控制
操作类型按键指令用 途
编辑器设置:set nu或nonu显示/不显示行号
:set ai或noai启用/关闭自动缩进

15、poweroff:关机;reboot:重启

[root@localhost opt]# poweroff
[root@localhost opt]# reboot

16、which:查询命令对应的程序

[root@localhost ~]# which hostname
/usr/bin/hostname

17、mount:挂载操作,让目录成为设备的访问点;umount:卸载操作

  • 格式:
    mount 设备路径 挂载点目录
    umount 挂载点目录
    以挂载、卸载光驱设备为例:
[root@localhost ~]# mkdir /dvd
[root@localhost ~]# ls /dvd
[root@localhost ~]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /dvd
CentOS_BuildTag  LiveOS
EFI              Packages
EULA             repodata
GPL              RPM-GPG-KEY-CentOS-7
images           RPM-GPG-KEY-CentOS-Testing-7
isolinux         TRANS.TBL
[root@localhost ~]# umount /dvd
[root@localhost ~]# ls /dvd
  • 补充说明:

(1)光驱设备的实际名字是sr0,为了方便记忆创建了一个快捷方式是cdrom。
(2)卸载:当前所在的路径是挂载点目录时执行卸载会提示目标正忙。

[root@localhost ~]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /dvd
[root@localhost dvd]# umount /dvd
umount: /dvd:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@localhost dvd]# 

(3)挂载允许一个设备,挂载到不同的挂载点目录。

[root@localhost ~]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost dvd]# mkdir /mydvd
[root@localhost dvd]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost dvd]# ls /dvd
CentOS_BuildTag  LiveOS
EFI              Packages
EULA             repodata
GPL              RPM-GPG-KEY-CentOS-7
images           RPM-GPG-KEY-CentOS-Testing-7
isolinux         TRANS.TBL
[root@localhost dvd]# ls /mydvd
CentOS_BuildTag  LiveOS
EFI              Packages
EULA             repodata
GPL              RPM-GPG-KEY-CentOS-7
images           RPM-GPG-KEY-CentOS-Testing-7
isolinux         TRANS.TBL

(4)挂载不允许一个挂载点目录,挂载多个设备。
(5)建议挂载点目录,最好自行创建,因为挂载之后目录下面原有的内容会消失。
(6)挂载成功之后,挂载点目录会变为只读的。

18、alias:定义别名,简化复杂的命令

  • 格式:
    alias  查看所有的别名
    alias  [别名名称] 查看已设置的别名
    alias  别名名称= ‘实际执行的命令行’ 定义新的别名
    unalias  [别名名称]  取消已设置的别名
[root@localhost lisi]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost lisi]# alias cp
alias cp='cp -i'
[root@localhost lisi]# alias hn='hostname'
[root@localhost lisi]# hostname
localhost.localdomain
[root@localhost lisi]# hn
localhost.localdomain
[root@localhost lisi]# unalias hn
[root@localhost lisi]# hn
bash: hn: 未找到命令...

19、rm:删除

  • 格式:
    rm [文件名]
    rm -f [文件名]
    rm -r [目录名或文件名]
    rm -rf [目录名或文件名]
[root@localhost ~]# ls /opt
aa  a.txt  b.txt  c.txt  rh
[root@localhost ~]# rm /opt/a.txt
rm:是否删除普通空文件 "/opt/a.txt"?y
[root@localhost ~]# rm -f /opt/b.txt
[root@localhost ~]# ls /opt
aa  c.txt  rh
[root@localhost ~]# rm /opt/aa
rm: 无法删除"/opt/aa": 是一个目录
[root@localhost ~]# rm -f /opt/aa
rm: 无法删除"/opt/aa": 是一个目录
[root@localhost ~]# rm -rf /opt/aa
[root@localhost ~]# rm -rf /opt/c.txt
[root@localhost ~]# ls /opt
rh

[root@localhost ~]# rm -r /opt/aa
rm:是否删除目录 "/opt/aa"?y
[root@localhost ~]# 

  • 说明:
    rm 只能删除文件不能删除目录,加上 -r 既能删除文件也能删除目录(而且能递归删除多级目录),加上 -f 不会提示是否确认删除。

20、mv:移动,源数据会消失

  • 格式:
    mv [原文件] 目标路径
[root@localhost ~]# ls /opt
rh
[root@localhost ~]# mkdir /opt/aa
[root@localhost ~]# touch /opt/1.txt
[root@localhost ~]# ls /opt
1.txt  aa  rh
[root@localhost ~]# mv /opt/1.txt /opt/aa
[root@localhost ~]# ls /opt
aa  rh
[root@localhost ~]# ls /opt/aa
1.txt
[root@localhost ~]# 
[root@localhost ~]# mv /opt/aa /opt/bb 重命名
[root@localhost ~]# ls /opt
bb  rh
[root@localhost ~]# mv /opt/bb /mnt/cc 复制到其它目录下并便命名
[root@localhost ~]# ls /mnt
cc
[root@localhost ~]# 
  • 说明:
    路径不变的移动可以起到重命名的作用

21、cp :复制,源数据不会消失

  • 格式:
    cp 原文件 目标路径
    cp -r 原文件 目标路径
    注:-r ,代表递归,复制目录时必须有此选项
[root@localhost ~]# cp /etc/passwd /opt
[root@localhost ~]# cp /etc/passwd /opt/p.txt 起到了重命名的效果
[root@localhost ~]# ls /opt
passwd  p.txt  rh
[root@localhost ~]# cp -r /opt /mnt/opp 起到了重命名的效果
[root@localhost ~]# ls /mnt
cc  opp
[root@localhost ~]# cp -r /opt /mnt
[root@localhost ~]# ls /mnt
cc  opp  opt
  • 其他使用场景说明:

(1)重名进行强制覆盖,不提示是否覆盖

[root@localhost ~]# ls /opt
passwd  p.txt  rh
[root@localhost ~]# cp /etc/passwd /opt
cp:是否覆盖"/opt/passwd"? y
[root@localhost ~]# \cp /etc/passwd /opt 这样操作不会再有是否覆盖的提示,直接强制覆盖了
[root@localhost ~]# 

(2)复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据

[root@localhost ~]# cp -r /home /etc/passwd /boot/ /etc/shells /opt/bb
[root@localhost ~]# ls /opt/bb
boot  home  passwd  shells

(3)复制与一个点进行连用,将数据复制到当前路径下

[root@localhost opt]# cp /etc/passwd .
[root@localhost opt]# ls /opt
bb  passwd  rh

22、tar :集成备份工具,可制作压缩包,也可释放压缩包

  • 归档及压缩介绍:
    作用:1.减小占用空间大小 2.整合分散的数据
    (1)归档的含义:将许多零散的文件整理为一个文件,文件总的大小基本不变。
    (2)压缩的含义:按某种算法减小文件所占用空间的大小,恢复时按对应的逆向算法解压。
  • 常见的压缩格式及命令工具:
    .gz → gzip
    .bz2 → bzip2
    .xz → xz
  • tar 集成备份工具,选项介绍:
    -c:创建归档
    -x:释放归档
    -f:指定归档文件名称, 必须在所有选项的最后
    -z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理
    -t:显示归档中的文件清单
    -C:指定释放路径
  • tar 制作压缩包(tar打包):
    格式: tar 选项 /路径/压缩包名字 /源数据
          tar -zcf (.gz格式打包)
          tar -jcf (.bz2格式打包)
          tar -zcf (.xz格式打包)
    压缩包名字命名规则: xxxx.tar.gz;xxxx.tar.bz2;xxxx.tar.xz
[root@localhost /]# ls /opt
rh
[root@localhost /]# tar -zcf /opt/xixi.tar.gz /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost /]# tar -jcf /opt/haha.tar.bz2 /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost /]# tar -Jcf /opt/hehe.tar.xz /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost /]# ls /opt
haha.tar.bz2  hehe.tar.xz  rh  xixi.tar.gz
  • tar 释放压缩包(tar解包):
    格式: tar 选项 /路径/压缩包名字 选项 释放的位置
          tar -xf /路径/压缩包名字 -C 释放的位置 (.gz格式打包)
[root@localhost /]# mkdir /opt/aa
[root@localhost /]# ls /opt
aa  haha.tar.bz2  hehe.tar.xz  rh  xixi.tar.gz
[root@localhost /]# tar -xf /opt/xixi.tar.gz -C /opt/aa
[root@localhost /]# ls /opt/aa
etc
[root@localhost /]# ls /opt/aa/etc
passwd
[root@localhost /]# 

23、>:覆盖重定向;>>:追加重定向

  • 作用:
    将前面命令的输出,作为内容,写入到后面的文件
[root@localhost /]# head -3 /etc/passwd > /opt/yy.txt
[root@localhost /]# ls /opt
rh yy.txt
[root@localhost /]# cat /opt/yy.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost /]# echo 1234 >> /opt/yy.txt 在原文件的基础上追加内容
[root@localhost /]# cat /opt/yy.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
1234
[root@localhost /]# > /opt/yy.txt 清空文件所有内容
[root@localhost /]# cat /opt/yy.txt
[root@localhost /]# 

24、echo:输出内容

[root@localhost /]# echo 12345678
12345678
[root@localhost /]# 

25、| :管道,将前面命令的输出,传递给后面命令,作为后面命令的参数

[root@localhost /]# head -4 /etc/passwd |tail -1
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@localhost /]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pppp.txt
[root@localhost /]# cat /opt/pppp.txt 
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
    11	games:x:12:100:games:/usr/games:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
  • 说明:
    如果写入的文件不存在时,会自动创建该文件。

25、wc:统计行数

  • 格式:
    wc -l 文件名
[root@localhost /]# wc -l /etc/passwd
42 /etc/passwd
[root@localhost /]# 

25、find:精确查找

  • 格式:
    find 目录 条件1
  • 常用条件:

(1)-type 类型(f文本文件、d目录、l快捷方式)
(2)-name “文档名称”
(3)-size +或- 文件大小(k、M、G),加号代表大于,减号代表小于
(4)-user 用户名 (按照数据的所有者)
(5)-mtime 修改时间 (所有的时间都是过去时间)
    示例:【-mtime +90】代表90天之前的数据;【-mtime -90】代表最近90天之内的数据

[root@localhost /]# find /opt -type f
/opt/rh/c.txt
/opt/a.txt
[root@localhost /]# find /opt -type d
/opt
/opt/rh
/opt/aa
[root@localhost /]# find /etc -type l
/etc/mtab
/etc/fonts/conf.d/65-0-lohit-bengali.conf
/etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
/etc/fonts/conf.d/57-dejavu-sans.conf
[root@localhost /]# find /etc -name "*tab" | wc -l
9
[root@localhost /]# ls /mnt
cc  nsd01  nsd02  nsd03.txt  opp  opt
[root@localhost /]# find /mnt -name "nsd*" -type d
/mnt/nsd01
/mnt/nsd02
[root@localhost /]# find /mnt -name "nsd*" -type f
/mnt/nsd03.txt
[root@localhost /]# find /boot -size +300k
/boot/grub2/fonts/unicode.pf2
/boot/System.map-3.10.0-862.el7.x86_64
[root@localhost /]# find /boot -size +10M
/boot/initramfs-0-rescue-8b15530aa87d47989a809511cccc1f55.img
/boot/initramfs-3.10.0-862.el7.x86_64.img
[root@localhost /]# find /boot -size +1M
/boot/grub2/fonts/unicode.pf2
[root@localhost /]# find /boot/ -size -2M
在这里插入代码片[root@localhost /]# find /home -user natasha
/home/natasha
/home/natasha/.mozilla
/home/natasha/.mozilla/extensions
/home/natasha/.mozilla/plugins
...
[root@localhost /]# find /root -mtime +90
/root/.bash_logout
[root@localhost /]# find /root -mtime +1000
/root/.bash_logout
[root@localhost /]# find /root -mtime -2
/root
/root/.cache/imsettings
/root/.cache/imsettings/log.bak
...
  • find 高级使用:
    作用:处理find找到的数据,每查找到一个就传递一次
    find 范围 条件 -exec 处理命令 {}  \;
    -exec 额外操作的开始
    {} 永远表示前面find查找的结果
    \; 额外操作的结束
[root@localhost /]# find /boot -size +10M
/boot/initramfs-0-rescue-8b15530aa87d47989a809511cccc1f55.img
/boot/initramfs-3.10.0-862.el7.x86_64.img
[root@localhost /]# find /boot -size +10M -exec ls -lh {} \;
-rw-------. 1 root root 71M 57 20:14 /boot/initramfs-0-rescue-8b15530aa87d47989a809511cccc1f55.img
-rw-------. 1 root root 31M 57 20:17 /boot/initramfs-3.10.0-862.el7.x86_64.img
[root@localhost /]# find /boot -size +10M -exec cp {} /mnt \;
[root@localhost /]# ls /mnt
cc                                                       initramfs-3.10.0-862.el7.x86_64.img  nsd02      opp
initramfs-0-rescue-8b15530aa87d47989a809511cccc1f55.img  nsd01                                nsd03.txt  opt
[root@localhost /]# 

26、man:获取命令帮助

  • 格式:
    man 命令
    注:按 q 可以退出。命令加 -help也表示查看命令的帮助信息
    man 5 passwd 显示passwd配置文件的帮助信息
    man passwd 显示passwd命令的帮助信息
    注:数字5表示帮助的类型,表示配置文件类型,一共有1~9 九种类型

27、history:历史命令,管理/调用曾经执行过的命令

  • 格式:
    history 查看历史命令列表
    history -c 清空历史命令
    !n 执行命令历史中的第n条命令
    !str 执行最近一次以str开头的历史命令
[root@localhost ~]# history 
    1  ls
    2  ls /
...
   61  hostname
   62  ls /etc
   63  man cat
   64  history 
[root@localhost ~]# !61
hostname
localhost.localdomain
[root@localhost ~]# !h   执行最近一次以h开头的历史命令
hostname
localhost.localdomain
[root@localhost ~]# history -c
[root@localhost ~]# history 
    1  history 

28、du:统计文件的占用空间

  • 格式:
    du -s [目录或文件] 只统计每个参数所占用的总空间大小
    du -h [目录或文件] 提供易读容量单位(K、M等)
    注:通常的用法是 du -sh 。一般用于统计目录的大小。
[root@localhost ~]# du -sh /root
4.2M	/root
[root@localhost ~]# du -sh /etc
37M	/etc

29、date:查看/调整系统日期时间

  • 格式:
    date 显示当前时间
    date +%F 显示年-月-日
    date  +%R 显示时:分
    date +“%Y-%m-%d %H:%M:%S” 显示年月日和时分秒
    date -s “yyyy-mm-dd HH:MM:SS”  修改时间
[root@localhost ~]# date
2022年 05月 21日 星期六 13:12:31 CST
[root@localhost ~]# date +%Y
2022
[root@localhost ~]# date +%m
05
[root@localhost ~]# date +%d
21
[root@localhost ~]# date +%H
13
[root@localhost ~]# date +%M
14
[root@localhost ~]# date +%S
15
[root@localhost ~]# date +%F
2022-05-21
[root@localhost ~]# date +%R
13:14
[root@localhost ~]# date  +"%Y-%m-%d %H:%M:%S"
2022-05-21 13:16:29

30、ln:制作链接文件(制作快捷方式)

  • 格式:
    ln -s /路径/源数据 /路径/快捷方式的名称 软链接
    ln /路径/源数据 /路径/快捷方式的名称 硬链接
[root@localhost ~]# ln -s /etc/sysconfig/network-scripts/ /ns 给目录创建快捷方式ns
[root@localhost ~]# ls /   根目录下多了一个快捷方式 ns
bin   etc   lib64  ns    root  srv  usr
boot  home  media  opt   run   sys  var
dev   lib   mnt    proc  sbin  tmp
[root@localhost ~]# ls -l /ns  查看快捷方式的信息,结尾不要有/
lrwxrwxrwx. 1 root root 31 521 13:26 /ns -> /etc/sysconfig/network-scripts/
[root@localhost ~]# ls -l /ns/  结尾有/看得是快捷方式里的所有内容
总用量 248
-rw-r--r--. 1 root root     0 521 13:26 haha.txt
-rw-r--r--. 1 root root   279 57 20:16 ifcfg-ens33
-rw-r--r--. 1 root root   254 13 2018 ifcfg-lo
...
[root@localhost ~]# touch /ns/haha.txt 在快捷方式里创建文件就是在源目录上创建
[root@localhost ~]# ls /etc/sysconfig/network-scripts/
haha.txt         ifup-bnep
ifcfg-ens33      ifup-eth
ifcfg-lo         ifup-ib
ifdown           ifup-ippp
  • 说明:
    软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
    软链接缺点:源数据消失,快捷方式失效
    硬链接优势:源数据消失,快捷方式仍然有效
    硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
    在这里插入图片描述

30、zip:归档工具,跨平台

  • 格式:
    zip -r 备份文件.zip 被归档的文档 归档+压缩操作
    unzip 备份文件.zip -d 目标文件夹 释放归档+解压操作
    注:被归档的数据有目录,必须加上 -r ,如果是文件可以不加。
[root@localhost ~]# zip -r /opt/abc.zip /etc/passwd /home
  adding: etc/passwd (deflated 61%)
  adding: home/ (stored 0%)
  adding: home/lisi/ (stored 0%)
  adding: home/lisi/.mozilla/ (stored 0%)
  adding: home/lisi/.mozilla/extensions/ (stored 0%)
  adding: home/lisi/.mozilla/plugins/ (stored 0%)
  adding: home/lisi/.bash_logout (stored 0%)
  adding: home/lisi/.bash_profile (deflated 21%)
  adding: home/lisi/.bashrc (deflated 23%)
[root@localhost ~]# ls /opt
abc.zip  B.txt  C.txt
[root@localhost ~]# mkdir /nsd20
[root@localhost ~]# unzip /opt/abc.zip -d /nsd20
Archive:  /opt/abc.zip
  inflating: /nsd20/etc/passwd       
   creating: /nsd20/home/
   creating: /nsd20/home/lisi/
   creating: /nsd20/home/lisi/.mozilla/
   creating: /nsd20/home/lisi/.mozilla/extensions/
   creating: /nsd20/home/lisi/.mozilla/plugins/
 extracting: /nsd20/home/lisi/.bash_logout  
  inflating: /nsd20/home/lisi/.bash_profile  
  inflating: /nsd20/home/lisi/.bashrc  
[root@localhost ~]# ls /nsd20
etc  home
[root@localhost ~]# ls /nsd20/etc
passwd
[root@localhost ~]# ls /nsd20/home
lisi

31、* ? [] {} 通配符:针对不确定的文档名称,以特殊字符表示

  • 说明:
    * :任意多个任意字符
    ? :单个字符
    [a-z] :多个字符或连续范围中的一个,若无则忽略
    {a,min,xy} :多组不同的字符串,全匹配
[root@localhost lisi]# ls /root/a*
/root/anaconda-ks.cfg  /root/a.txt
[root@localhost lisi]# ls /etc/*.cnf
/etc/my.cnf
[root@localhost lisi]# ls /etc/??tab
/etc/fstab  /etc/rwtab
[root@localhost lisi]# ls /dev/tty[3-9]
/dev/tty3  /dev/tty4  /dev/tty5  /dev/tty6  /dev/tty7  /dev/tty8  /dev/tty9
[root@localhost lisi]# ls /dev/tty{3,6,9}
/dev/tty3  /dev/tty6  /dev/tty9
[root@localhost lisi]# 

四、RPM软件包管理

内容包括:装包、卸包、查询软件是否安装(是从光盘中获得软件包)。

1、环境准备

  • 挂载光驱设备:
    软件包都在光盘的 Packages 目录里
[root@localhost ~]# ls /mnt
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost ~]# 

2、RPM包管理机制

2.1 常见的软件封包类型

rpm 软件包是最常见的

封包类型说明
rpm 软件包扩展名为.rpm ,适用于RedHat系列
deb 软件包扩展名为.deb,适用于Debian系列
源代码软件包通常以.tar.gz、.tar.bz2格式的压缩包提供包含程序的原始代码文件
其他提供install.sh、setup、*.bin、*.pl等安装文件
绿色免安装、提供已编译好的程序及相关文件

2.2 RPM软件包简介

  • RPM Package Manager
    由红帽公司提出,RedHat、SUSE等系列采用;
    建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系 。
  • RPM包文件名特征
    软件名-版本信息.操作系统.硬件架构.rpm
    firefox-52.7.0-1.el7.centos.x86_64.rpm
    软件名: firefox
    软件包名: firefox-52.7.0-1.el7.centos.x86_64.rpm
  • RPM包的一般安装位置(分散)
    程序一般安装在带 bin 的目录下
文件类别默认安装位置
普通执行程序/usr/bin/ 、/bin/
服务器程序、管理工具/usr/sbin/ 、/sbin/
配置文件/etc/、/etc/软件名/
日志文件 /var/log/、/var/log/软件名/
程序文档、man帮助手册页/usr/share/doc/ 、/usr/share/man/

2.3 rpm命令

  • 查询已安装的RPM软件包的信息
    rpm -q [软件名] 查看已安装软件所对应的软件包名,也可用来检验软件是否安装
    rpm -qa [软件名] 列出已安装的所有软件包
    rpm -qi [软件名] 查看已安装的指定软件的详细信息
    rpm -ql [软件名] 查看已安装的指定软件的文件安装清单
    rpm -qf [文件路径] 查看某个目录或文件是哪个RPM包带来的
    注: rpm -qf 在查询时即使目标文件被删除,也可以查询,因为是依赖于数据库去查询的
[root@localhost ~]# rpm -q firefox 查看firefox是否安装
firefox-52.7.0-1.el7.centos.x86_64
[root@localhost ~]# rpm -q httpd 软件未安装使用命令会显示提示
未安装软件包 httpd
[root@localhost ~]# rpm -qa | wc -l
1301
[root@localhost ~]# rpm -qi firefox
Name        : firefox
Version     : 52.7.0
Release     : 1.el7.centos
Architecture: x86_64
...
[root@localhost ~]# rpm -ql firefox
/etc/firefox/pref
/usr/bin/firefox
/usr/lib64/firefox
...
[root@localhost ~]# which vim 查询命令对应的程序文件
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
  • 查询RPM软件包的信息(参数为软件包名)
    rpm -qpi [软件包文件] 查看未安装的指定软件的详细信息
    rpm -qpl [软件包文件] 查看未安装的指定软件的文件安装清单
    注: 参数是需要具体到软件包名
[root@localhost ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 下方的警告是因为未导入红帽签名
警告:/mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : vsftpd
Version     : 3.0.2
Release     : 22.el7
Architecture: x86_64
...
[root@localhost ~]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 
警告:/mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
...
  • 导入红帽签名信息(了解)
[root@localhost ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7
[root@localhost ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 导入红帽签名后没有警告了
Name        : vsftpd
Version     : 3.0.2
Release     : 22.el7
Architecture: x86_64

五、Yum软件包管理

1、准备Yum软件包仓库(服务端)

服务端需要有:1、众多的软件;2.仓库数据文件(repodata);3.FTP协议 或 http 协议。
本机作为服务端时,本机的Yum仓库就是光盘里的内容。

  • YUM机制概述
    YUM,Yellowdog Updater
    基于RPM包构建的软件更新机制
    自动解决软件包依赖关系
    所有软件包由集中的YUM软件仓库提供
    在这里插入图片描述

  • 准备本地YUM仓库
    软件仓库的提供方式:
    (1)本地目录:file: / /…
    (2)FTP或HTTP服务:ftp:/ /… 、 http: //…
    本阶段是以本地光驱设备作为软件包仓库,已将光驱设备挂载到 /mnt 目录下。
    在这里插入图片描述

2、配置Yum客户端

  • 配置文件说明:
    需要给客户端指定服务端Yum仓库的位置。
    Yum仓库配置文件:/etc/yum.repos.d/*.repo
    (该位置是固定的,必须在这个路径下,后缀也是固定的)
  • 客户端文件配置内容:
    [源名称] :自定义名称,具有唯一性
    name:仓库的描述信息
    baseurl:指定YUM服务端的位置
    enabled:是否启用
    gpgcheck:是否验证红帽签名
    gpgkey:用于RPM软件包验证的密钥文件
    配置示例:
[root@localhost ~]# vim /etc/yum.repos.d/mydvd.repo
[centos7]                #仓库的名称
name=centos7.5           #仓库描述信息
baseurl=file:///mnt      #指定服务端位置file://表示本地为服务端
enabled=1                #本文件启用
gpgcheck=0               #不检测红帽签名信息
[root@localhost ~]# yum repolist  #列出仓库信息
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
centos7                        | 3.6 kB     00:00     
(1/2): centos7/group_gz          | 166 kB   00:00     
(2/2): centos7/primary_db        | 5.9 MB   00:00     
源标识                 源名称                    状态
centos7                centos7.5                 9,911
repolist: 9,911
  • 补充说明:
    如果目录:/etc/yum.repos.d 下有错误的文件影响了正确的文件,常的操作是在这个目录下创建一个 bak 目录,然后将错误文件移动到这个目录下。
[root@localhost ~]# ls /etc/yum.repos.d
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost ~]# mkdir /etc/yum.repos.d/bak
[root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
[root@localhost ~]# ls /etc/yum.repos.d
bak
[root@localhost ~]# ls /etc/yum.repos.d/bak
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost ~]# 
  • 总结:
    本地Yum仓库构建方法(自己为自己提供服务)
    1.服务端:显示光盘的内容,挂载光驱设备
    2.客户端:书写客户端配置文件,指定服务端位置
    3.执行流程: yum命令—>/etc/yum.repos.d/*.repo—>baseurl=file:///mnt

3、yum命令

  • 安装软件
    yum install 软件名
    yum -y install 软件名
    注: 两者的区别是加 -y 不会提示是否要安装,会直接安装。
[root@localhost ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
  • 卸载软件
    yum remove 软件名
    yum -y remove 软件名
    注: 两者的区别是加 -y 不会提示是否要卸载,会直接卸载。
[root@localhost ~]# yum remove httpd
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
...
  • 查询
    yum list 软件名 查询仓库是否有该软件
    yum search 软件名 模糊查询仓库中软件名包括该软件名的软件
    yum provides 文件名 仓库中那个软件包产生该文件
    yum repolist 文件名 列出仓库信息
[root@localhost ~]# yum list ftp   #查询仓库是否有ftp软件
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包  #表示当前系统没有安装该软件
ftp.x86_64             0.17-67.el7             centos7
[root@localhost ~]# 
[root@localhost ~]# yum search ftp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
================== N/S matched: ftp ==================
ftp.x86_64 : The standard UNIX FTP (File Transfer
           : Protocol) client
lftp-scripts.noarch : Scripts for lftp
...
yum provides /usr/bin/hostname
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
hostname-3.13-3.el7.x86_64 : Utility to set/show the
                           : host name or domain name
源    :@anaconda
匹配来源:
文件名    :/usr/bin/hostname
[root@localhost ~]# yum repolist  #列出仓库信息
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
centos7                        | 3.6 kB     00:00     
(1/2): centos7/group_gz          | 166 kB   00:00     
(2/2): centos7/primary_db        | 5.9 MB   00:00     
源标识                 源名称                    状态
centos7                centos7.5                 9,911
repolist: 9,911
  • yum的强制安装、覆盖安装
    yum -y reinstall 软件名
    应用场景:误删除一些文件之后,可将产生这文件的包重新安装一下。如果直接yum -y install 会提示该软件包已安装,所以应该用yum -y reinstall 强制安装
[root@localhost ~]# which hostname
/usr/bin/hostname
[root@localhost ~]# rm -rf /usr/bin/hostname
[root@localhost ~]# hostname
bash: hostname: 未找到命令...
[root@localhost ~]# yum provides /usr/bin/hostname
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
hostname-3.13-3.el7.x86_64 : Utility to set/show the
...
[root@localhost ~]# yum -y install hostname
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 hostname-3.13-3.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# yum -y reinstall hostname
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
...                      
完毕!
[root@localhost ~]# hostname
localhost.localdomain
  • 清空缓存
    yum clean all 
    应用场景:linux在读取硬盘数据时比较慢,所以会将读取完的硬盘内容放到内存里,然后去读内存里的数据会比较快,当改变配置文件/etc/yum.repos.d/mydvd.repo内容时,而内存里的文件内容并未改变,所以需要清空一下缓存。

六、用户管理

1、其本知识介绍

1.1 用户账户

  • 作用:1、可以登陆操作系统 2、不同的用户具备不同的权限
  • 唯一标识:UID(编号从0开始的编号,默认最大60000)
  • 管理员root的UID:永远为0
  • 系统用户(为程序运行与服务运行提供身份)为1~999
  • 普通用户的UID:默认从1000开始

1.2 组账户

  • 作用:方便管理用户
  • 唯一标识:GID(编号从0开始的编号,默认最大60000)
  • 原则:Linux一个用户必须至少属于一个组
  • 组账户的分类:
    基本组(家目录):系统创建与用户同名
    附加组(从属组):由管理员创建,由管理员进行加入

1.3 本地账户的数据文件

  • /etc/passwd:存放用户基本信息配置文件
    每个用户记录一行,以:分为7个字段
[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# 

在这里插入图片描述

  • /etc/shadow:保存用户密码字串/有效期等信息
    每个用户记录一行,以:分割为9个字段
    字段1:用户帐号的名称
    字段2:加密后的密码字符串
    字段3:上次修改密码的时间(自1970-1-1到达上一次修改密码的时间,所经历的天数)
    字段4:密码的最短有效天数,默认0,代表随时可以修改
    字段5:密码的最长有效天数,默认99999
    字段6:密码过期前的警告天数,默认7
    字段7:密码过期后多少天禁用此用户账号
    字段8:帐号失效时间,默认值为空
    字段9:保留字段(未使用)
[root@localhost ~]# grep nsd02 /etc/shadow
nsd02:$6$DW/2yIZJ$.nviK151P.K5Z1VYDf0.TcV57nOJh9xW1QZcUta49JL6pS4cR5KdN1JE3EPtiBibaa51MmENWf4rye9LiZ9Rh1:19134:0:99999:7:::
  • /etc/skel:用户初始配置文件的来源
    新建用户时,系统自动创建的用户同名的家目录里的内容是根据 /etc/skel 模板目录复制的。
[root@localhost ~]# ls -A /etc/skel
.bash_logout  .bash_profile  .bashrc  .mozilla
[root@localhost ~]# useradd nsd19
[root@localhost ~]# ls -A /home/nsd19
.bash_logout  .bash_profile  .bashrc  .mozilla
[root@localhost ~]# useradd -d /opt/aaaaaaaaaaa nsd20
[root@localhost ~]# ls -A /opt/aaaaaaaaaaa
.bash_logout  .bash_profile  .bashrc  .mozilla

主要的初始配置文件说明:
(1)~/.bash_profile:每次登录系统时执行,定义初始变量值
(2)~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)
代码在 root 家目录下的 .bashrc 文件中 定义永久别名为例来说明 ~/.bashrc 文件(在谁的家目录下修改了.bashrc 文件,谁就能应用这些修改)。

[root@localhost ~]# vim /root/.bashrc

在这里插入图片描述

[root@localhost ~]# haha
bash: haha: 未找到命令...   需要开启新的终端进行测试
新的终端:
[root@localhost ~]# haha
haha

/etc/bashrc: 全局配置文件,影响全体用户 (开启新的终端有效)

[root@localhost ~]# vim   /etc/bashrc 
alias   xixi='echo xixi'
开启新的终端进行测试:
[root@localhost ~]# xixi
[root@localhost ~]# su  -  nsd20      #相当于开启新的终端
[nsd20@localhost ~]$ xixi
xixi
[nsd20@localhost ~]$ exit
登出
  • /etc/group:保存组帐号的基本信息
    每个组记录一行,以:分割为4个字段
    字段1:组名
    字段2:组密码占位符 x 
    字段3:组的GID
    字段4:组成员列表
[root@localhost ~]# groupadd tarena   新建一个组
[root@localhost ~]# grep tarena /etc/group   查看组信息
tarena:x:1604:
  • /etc/gshadow:组的管理信息配置文件
    可以看到一个组的管理员是谁
    每个组记录一行,以:分割为4个字段
    字段1:组名
    字段2:密码加密字符串,没有密码显示为!
    字段3:组的管理员列表
    字段4:组成员列表
[root@localhost ~]# grep tarena /etc/gshadow
tarena:!:nb:kaka
  • 总结:
    /etc/passwd:存放用户基本信息
    /etc/shadow:存放用户密码信息
    /etc/group:存放组基本信息
    /etc/gshadow:存放组的管理信息

2、用户账号创建

2.1 useradd:创建用户

  • 格式:
    useradd 用户名 创建用户
    useradd -u UID号 用户名 创建用户时指定 UID 编号
    useradd -d 家目录 用户名 创建用户时指定宿主目录(家目录),缺省为 /home/用户名
    useradd -G 附加组名 用户名 创建用户时指定所属的附加组
    useradd -s 解释器 用户名 创建用户时指定用户的登录解释器
    注:-s 的全称是 shell 代表解释器。用户所敲的命令需要由解释器解释给内核,然后内核再去调用硬件的程序。解释器是指在用户登录后,所敲的命令是由谁解释给内核,默认的是 /bin/bash 。Linux的解释器一般存放在 /etc/shells 中。(用户---->解释器---->内核---->硬件)
    在这里插入图片描述
[root@localhost ~]# useradd nsd01
[root@localhost ~]# ls /home
lisi  nsd01
[root@localhost ~]# grep nsd01 /etc/passwd
nsd01:x:1001:1001::/home/nsd01:/bin/bash
[root@localhost ~]# id nsd01   #查看nsd01用户基本信息
uid=1001(nsd01) gid=1001(nsd01)=1001(nsd01)
[root@localhost ~]# useradd -u 1500 nsd02
[root@localhost ~]# id nsd02
uid=1500(nsd02) gid=1500(nsd02)=1500(nsd02)
[root@localhost ~]# grep nsd02 /etc/passwd
nsd02:x:1500:1500::/home/nsd02:/bin/bash
[root@localhost ~]# useradd -d /opt/nsd03 nsd03
[root@localhost ~]# grep nsd03 /etc/passwd
nsd03:x:1501:1501::/opt/nsd03:/bin/bash
[root@localhost ~]# ls /opt
abc.zip  B.txt  C.txt  nsd03
[root@localhost ~]# groupadd stugrp
[root@localhost ~]# useradd -G stugrp nsd06
[root@localhost ~]# id nsd06
uid=1502(nsd06) gid=1503(nsd06)=1503(nsd06),1502(stugrp)
[root@localhost ~]# useradd -s /sbin/nologin nsd07  /sbin/nologin:禁止用户登录操作系统
[root@localhost ~]# grep nsd07 /etc/passwd
nsd07:x:1503:1504::/home/nsd07:/sbin/nologin
[root@localhost ~]# 

2.2 usermod:修改用户

  • 格式:
    usermod -l 新用户名 用户名 修改改用户帐号的登录名称
    usermod -u 新UID号 用户名 修改用户的UID
    usermod -d 新家目录 用户名 修改用户家目录路径(不会自动创建家目录)
    usermod -G 新附加组名 用户名 修改用户的附加组,重置附加组
    usermod -s 新解释器 用户名 修改用户的解释器程序
[root@localhost ~]# useradd nsd13
[root@localhost ~]# id nsd13
uid=1504(nsd13) gid=1505(nsd13)=1505(nsd13)
[root@localhost ~]# usermod -l stu13 nsd13  修改用户名字
[root@localhost ~]# id nsd13
id: nsd13: no such user
[root@localhost ~]# grep stu13 /etc/passwd
stu13:x:1504:1505::/home/nsd13:/bin/bash
[root@localhost ~]# 
[root@localhost ~]# usermod -u 1600 stu13  修改用户的UID
[root@localhost ~]# id stu13
uid=1600(stu13) gid=1505(nsd13)=1505(nsd13)
[root@localhost ~]# useradd nsd15
[root@localhost ~]# grep nsd15 /etc/passwd
nsd15:x:1601:1601::/home/nsd15:/bin/bash
[root@localhost ~]# ls /home
lisi  nsd01  nsd02  nsd06  nsd07  nsd13  nsd15
[root@localhost ~]# usermod -d /etc/abc nsd15  修改用户家目录路径
[root@localhost ~]# grep nsd15 /etc/passwd
nsd15:x:1601:1601::/etc/abc:/bin/bash
[root@localhost ~]# ls /etc/abc   不会自动创建家目录
ls: 无法访问/etc/abc: 没有那个文件或目录
[root@localhost ~]# useradd nsd16
[root@localhost ~]# id nsd16
uid=1602(nsd16) gid=1602(nsd16)=1602(nsd16)
[root@localhost ~]# usermod -G stugrp nsd16 修改用户的附加组,重置附加组
[root@localhost ~]# id nsd16
uid=1602(nsd16) gid=1602(nsd16)=1602(nsd16),1502(stugrp)
[root@localhost ~]# usermod -s /sbin/nologin nsd16  修改用户的解释器程序
[root@localhost ~]# grep nsd16 /etc/passwd
nsd16:x:1602:1602::/home/nsd16:/sbin/nologin

2.3 passwd:设置密码

  • 格式:
    passwd 普通用户修改自己的密码
    passwd 用户名 root用户为别人修改密码
    passwd --stdin 从标准输入(比如管道)取密码,只用root才能用
    注:前两个格式是交互式设置密码,最后一个是非交互式设置密码。
  • 补充命令:
    su - 用户名;
    应用场景 :当前是root用户切换成普通用户,或者由普通用户切换到另外的用户但是需要输入密码。
    exit
    应用场景 :当前是其它用户退出切换到root用户
[root@localhost ~]# passwd nsd01
更改用户 nsd01 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - nsd06
[nsd06@localhost ~]$ passwd
更改用户 nsd06 的密码 。
为 nsd06 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# echo 123 | passwd --stdin nsd01
更改用户 nsd01 的密码 。
passwd:所有的身份验证令牌已经成功更新。

2.4 userdel:删除用户

  • 格式:
    userdel 用户名 不删除家目录,只删除用户信息
    userdel -r 用户名 宿主目录(家目录)/用户邮件也一并删除
[root@localhost ~]# userdel nsd01
[root@localhost ~]# userdel -r nsd20
[root@localhost ~]# id nsd01
id: nsd01: no such user
[root@localhost ~]# id nsd20
id: nsd20: no such user
[root@localhost ~]# ls /home  nsd01的家目录还有,但是nsd20的家目录被删除了
lisi   nsd02  nsd07  nsd15  nsd19
nsd01  nsd06  nsd13  nsd16
[root@localhost ~]# grep nsd20 /etc/passwd
[root@localhost ~]# grep nsd01 /etc/passwd

3、组账号创建

3.1 groudadd:创建组

  • 格式:
    groupadd 组名
[root@localhost ~]# groupadd tarena   新建一个组
[root@localhost ~]# grep tarena /etc/group   查看组信息
tarena:x:1604:

3.2 gpasswd:组成员的操作

  • 格式:
    groupadd -a 用户名 组名 添加组成员,每次只能加一个,不会覆盖之前的组成员
    groupadd -d 用户名 组名 删除组成员,每次只能删一个
    groupadd -M ‘用户名1、用户名2…’ 组名 定义组成员用户列表,可设置多个,会把之前的组成员覆盖
    groupadd -A 用户名 组名 定义组管理员列表
[root@localhost ~]# gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[root@localhost ~]# grep tarena /etc/group
tarena:x:1604:kaka
[root@localhost ~]# id kaka
uid=1604(kaka) gid=1605(kaka)=1605(kaka),1604(tarena)
[root@localhost ~]# grep tarena /etc/group
tarena:x:1604:kaka,nb
[root@localhost ~]# gpasswd -M 'jack,kenji' tarena
[root@localhost ~]# grep tarena /etc/group
tarena:x:1604:jack,kenji
[root@localhost ~]# gpasswd -d nb tarena
正在将用户“nb”从“tarena”组中删除
[root@localhost ~]# grep tarena /etc/group
tarena:x:1604:jack,kenji
[root@localhost ~]# gpasswd -M '' tarena  删除组中所有成员
[root@localhost ~]# grep tarena /etc/group 
tarena:x:1604:
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
gpasswd:没有权限。
[nb@localhost ~]$ exit
登出
[root@localhost ~]# gpasswd -A nb tarena   设置组管理员
[root@localhost ~]# su - nb
上一次登录:日 522 12:51:44 CST 2022pts/0 上
[nb@localhost ~]$ gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[nb@localhost ~]$ exit
登出
[root@localhost ~]# grep tarena /etc/group
tarena:x:1604:kaka

3.3 groupdel:删除组账号,删除组的时候,不可以删除基本组

  • 格式:
    groupdel 组名
[root@localhost ~]# groupdel tarena
[root@localhost ~]# grep tarena /etc/group  此时已查不到tarena组的信息
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值