欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux笔记 Day06---(通配符、系统管理命令、配置yum源)

程序员文章站 2022-06-17 22:21:10
一、命令行通配符通配符含义*匹配任意长度的任意字符?匹配任意单个字符[]匹配制定范围内的单个字符[^]匹配指定范围外的单个字符字母:小写字母:[a-z]或[[:lower:]]非小写字母:[^ a-z]或[^ [:lower:] ]大写字母:[A-Z]或[[:upper:]]非大写字母:[^ A-Z]或[^ [:upper:] ]所有字母:[[:alpha:]]非字母:[^ [:alpha:] ]数字:一位数字:[0-9]两位数字:[0...

一、命令行通配符

通配符 含义
* 匹配任意长度的任意字符
匹配任意单个字符
[] 匹配指定范围内的单个字符
[^] 匹配指定范围外的单个字符

1. 字母

小写字母:[a-z]或[[:lower:]]
非小写字母:[^ a-z]或[^ [:lower:] ]
大写字母:[A-Z]或[[:upper:]]
非大写字母:[^ A-Z]或[^ [:upper:] ]
所有字母:[[:alpha:]]
非字母:[^ [:alpha:] ]

2. 数字

一位数字:[0-9]
两位数字:[0-9][0-9]
三位、四位……以此类推
所有数字:[[:digit:]]
非数字:[^ 0-9]或[^ [:digit:] ]

3. 空白字符

一个空白字符:[[:space:]]
非空白字符:[^ [:space:] ]

4. 标点符号

所有标点符号:[[:punct:]]
非标点符号:[^ [:punct:] ]

举例:

1:显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;

[root@admin ~]# ls /var/l?[[:lower:]]
或者:
[root@admin ~]# ls /var/l?[a-z

2:显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

[root@admin ~]# ls /etc/[0-9]*[^0-9][root@admin ~]# ls /etc/[[:digit:]]*[^[:digit:]][root@admin ~]# ls /etc/[[:digit:]]*[^0-9][root@admin ~]# ls /etc/[0-9]*[^[:digit:]]

3:显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录;

[root@admin ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

4:复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/magedu.com目录;

[root@admin ~]# cp -r /etc/m*[^0-9]  /tmp/magedu.com/[root@admin ~]# cp -r /etc/m*[^[:digit:]]  /tmp/magedu.com/

5:复制/usr/share/man目录下,所有以man开头,后跟一位数数字结尾的文件或目录至/tmp/man/目录下;

[root@admin ~]# cp -r /usr/share/man/man[0-9]  /tmp/man/[root@admin ~]# cp -r /usr/share/man/man[[:digit:]]  /tmp/man/

那如果该题换成这样:
复制/usr/share/man目录下,所有以man开头,后跟两位数数字结尾的文件或目录至/tmp/man/目录下:

[root@admin ~]# cp -r /usr/share/man/man[0-9][0-9]  /tmp/man/[root@admin ~]# cp -r /usr/share/man/man[[:digit:]]  /tmp/man/

再改:
复制/usr/share/man目录下,所有以man开头,后跟数字结尾的文件或目录至/tmp/man/目录下:

#那就只能这样写了
[root@admin ~]# cp -r /usr/share/man/man[[:digit:]]  /tmp/man/

6:复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下;

[root@admin ~]# cp -r /etc/[mnrp]*.conf  /tmp/conf.d/

7.显示当前目录下以第一个以标点符号开头,第三个为空格,第四个为字母,最后以.txt结尾的文件

[root@admin test]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月  11 22:36 !2 linux     2.txt
-rw-r--r--. 1 root root 0 7月  11 22:36 ,2 linux2.txt
-rw-r--r--. 1 root root 0 7月  11 22:45 ,t  pox.txt
[root@admin test]# ll [[:punct:]]?[[:space:]][[:alpha:]]*.txt
-rw-r--r--. 1 root root 0 7月  11 22:36 !2 linux     2.txt
-rw-r--r--. 1 root root 0 7月  11 22:36 ,2 linux2.txt

二、常见系统管理类命令

(一)显示指定工作目录下内容的命令 ls

ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似。当执行ls命令时,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示。当不加参数时,默认列出当前目录的列表信息。ls命令使用频率非常高,选项也非常多,这里介绍一部分常用的参数,其他参数可以通过man命令查看帮助手册。
说明:在linux下,文件名以点.开头表示该文件为隐藏文件,如.bashrc

dir命令与ls命令功能及用法类似,但稍有差别
Linux笔记 Day06---(通配符、系统管理命令、配置yum源)

命令格式
ls [选项] [目录或文件名]

命令选项
-a:–all的缩写,显示所有的文件,包括隐藏文件(以.开头的文件),

[root@admin ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .lesshst  test
..  .bash_history    .bash_profile  .cshrc   .tcshrc   .viminfo

-A:–almost-all的缩写,显示所有的文件,包括隐藏文件,但不包括表示当前目录.和上级目录…这两个文件

[root@admin ~]# ls -A
anaconda-ks.cfg  .bash_logout   .bashrc  .lesshst  test
.bash_history    .bash_profile  .cshrc   .tcshrc   .viminfo

-l:列出长数据串,显示出文件的属性与权限等数据信息(常用)

#ll是ls -l 的别名
[root@admin ~]# ls
anaconda-ks.cfg  test
[root@admin ~]# ll
总用量 4
-rw-------. 1 root root 1588 6月  29 17:12 anaconda-ks.cfg
drwxr-xr-x. 2 root root   84 7月  11 22:47 test

-d:–directory的缩写,仅列出目录本身,而不是列出目录里的内容列表

[root@admin sysconfig]# ls -d
.
[root@admin sysconfig]# ll -d
drwxr-xr-x. 6 root root 4096 7月  10 10:07 .

-f:直接列出结果,而不进行排序(ls默认会以文件名排序)

[root@admin ~]# ls -f
.             .bash_profile  .tcshrc          .lesshst
..            .bashrc        anaconda-ks.cfg  test
.bash_logout  .cshrc         .bash_history    .viminfo
[root@admin ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .lesshst  test
..  .bash_history    .bash_profile  .cshrc   .tcshrc   .viminfo
[root@admin ~]# ls
anaconda-ks.cfg  test

–color[=WHEN]:是否根据文件类型显示颜色,WHEN可以为never、always或者auto
(ls默认显示文件的颜色)
Linux笔记 Day06---(通配符、系统管理命令、配置yum源)
–full-time:以完整的实际模式显示(包含年月日时分),类似与ls -l --time-style=full-iso

[root@admin ~]# ls --full-time
总用量 4
-rw-------. 1 root root 1588 2020-06-29 17:12:43.748423188 +0800 anaconda-ks.cfg
drwxr-xr-x. 2 root root   84 2020-07-11 22:47:12.039921907 +0800 test
[root@admin ~]# ll
总用量 4
-rw-------. 1 root root 1588 6月  29 17:12 anaconda-ks.cfg
drwxr-xr-x. 2 root root   84 7月  11 22:47 test

-g:列表显示结果,和-l类似,但是不显示文件所属者。

[root@admin ~]# ll
总用量 4
-rw-------. 1 root root 1588 6月  29 17:12 anaconda-ks.cfg
drwxr-xr-x. 2 root root   84 7月  11 22:47 test
[root@admin ~]# ls -g
总用量 4
-rw-------. 1 root 1588 6月  29 17:12 anaconda-ks.cfg
drwxr-xr-x. 2 root   84 7月  11 22:47 test

-h:·的方式显示
使用“-h”参数时,会根据文件的大小选择显示的单位是“K”、“M”还是“G”。如果希望指定显示的单位,可以使用“–block-size=[k,m,g,t……]”参数,单位 不分大小写

[root@admin ~]# ll
总用量 760836
-rw-------. 1 root root      1588 6月  29 17:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 115343360 7月  12 10:28 mydem1o
-rw-r--r--. 1 root root 314572800 7月  12 10:27 mydemo
-rw-r--r--. 1 root root 349175808 7月  12 10:29 mydemo2
[root@admin ~]# ll -h
总用量 744M
-rw-------. 1 root root 1.6K 6月  29 17:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 110M 7月  12 10:28 mydem1o
-rw-r--r--. 1 root root 300M 7月  12 10:27 mydemo
-rw-r--r--. 1 root root 333M 7月  12 10:29 mydemo2
[root@admin ~]# ll --block-size=G
总用量 1G
-rw-------. 1 root root 1G 6月  29 17:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 1G 7月  12 10:28 mydem1o
-rw-r--r--. 1 root root 1G 7月  12 10:27 mydemo
-rw-r--r--. 1 root root 1G 7月  12 10:29 mydemo2

#这里要注意的是:单位不够1都会进1,单位没有显示的情况下默认是B(字节)

-i:结合-l参数,列出每个文件的inode

[root@admin ~]# ll -i
总用量 4
201326659 -rw-------. 1 root root 1588 6月  29 17:12 anaconda-ks.cfg
134839643 drwxr-xr-x. 2 root root   84 7月  11 22:47 test
[root@admin ~]# ll
总用量 4
-rw-------. 1 root root 1588 6月  29 17:12 anaconda-ks.cfg
drwxr-xr-x. 2 root root   84 7月  11 22:47 test

-n:和-l类似,-n只是显示的所属用户和组所对应的id,而-l只是显示所属用户和组所对应的名称
Linux笔记 Day06---(通配符、系统管理命令、配置yum源)
-r:–reverse,将排序结果以倒序方式显示

[root@admin ~]# ls
anaconda-ks.cfg  mydem1o  mydemo  mydemo2
[root@admin ~]# ls -r
mydemo2  mydemo  mydem1o  anaconda-ks.cfg

-S:以文件大小排序

[root@admin ~]# ll
总用量 760836
-rw-r--r--. 1 root root 314572800 7月  12 10:27 ademo
-rw-r--r--. 1 root root 115343360 7月  12 10:28 amydemo
-rw-------. 1 root root      1588 6月  29 17:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 349175808 7月  12 10:29 mydemo2
[root@admin ~]# ls
ademo  amydemo  anaconda-ks.cfg  mydemo2
[root@admin ~]# ls -S
mydemo2  ademo  amydemo  anaconda-ks.cfg

-t:以修改时间排序

[root@admin ~]# ll
总用量 760836
-rw-r--r--. 1 root root 314572800 7月  12 10:27 ademo
-rw-r--r--. 1 root root 115343360 7月  12 10:28 amydemo
-rw-------. 1 root root      1588 6月  29 17:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 349175808 7月  12 10:29 mydemo2
[root@admin ~]# ls
ademo  amydemo  anaconda-ks.cfg  mydemo2
[root@admin ~]# ls -t
mydemo2  amydemo  ademo  anaconda-ks.cfg

-c:和-lt一起使用:显示列表并且以ctime(文件状态最后改变时间)排序。和-l一起使用:显示ctime并且以文件名排序。其他情况,以ctime排序。

[root@admin ~]# ls -clt
总用量 760836
-rw-r--r--. 1 root root 115343360 7月  12 10:54 amydemo
-rw-r--r--. 1 root root 314572800 7月  12 10:54 ademo
-rw-r--r--. 1 root root 349175808 7月  12 10:29 mydemo2
-rw-------. 1 root root      1588 6月  29 17:12 anaconda-ks.cfg

(二) 显示当前工作目录的命令 pwd

pwd 是 Print Working Directory 的缩写,其功能是显示当前所在工作目录的全路径。主要用在当不确定当前所在位置时,通过 pwd 来查看当前目录的绝对路径

命令格式
pwd [选项]

命令选项

-L:–logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式)

-p:–physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件。 当包含多层连接文件时,显示连接文件最终指向的文件

[root@admin httpd]# ll
总用量 0
drwxr-xr-x. 2 root root  37 7月  10 10:07 conf
drwxr-xr-x. 2 root root  82 7月  10 10:07 conf.d
drwxr-xr-x. 2 root root 146 7月  10 10:07 conf.modules.d
lrwxrwxrwx. 1 root root  19 7月  10 10:07 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root  29 7月  10 10:07 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root  10 7月  10 10:07 run -> /run/httpd
[root@admin httpd]# cd modules
[root@admin modules]# pwd
/etc/httpd/modules
[root@admin modules]# pwd -L
/etc/httpd/modules
[root@admin modules]# pwd -P
/usr/lib64/httpd/modules

(三)改变当前工作目录的命令 cd

cd 是 Change Directory 的缩写,这是用来切换工作目录的命令。

命令格式
cd [相对路径或绝对路径或特殊符号]

说明: 不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录。如root用户的HOME变量为/root,那么cd命令不带参数时便切换到/root目录下;普通用户的HOME变量为/home/用户名,那么cd命令不带参数时便切换到/home/用户名目录下
特殊符号包括~、-、…等。

~表示用户主目录 即HOME变量指定的目录,如root用户的主目录为/root;普通用户为/home/用户名

[root@admin sysconfig]# cd ~
[root@admin ~]# pwd
/root
[dxk@admin bin]$ cd ~
[dxk@admin ~]$ pwd
/home/dxk

-表示前一个工作目录 (返回进入此目录之前所在目录)
l

[root@admin ~]# pwd
/root            #当前在/root下
[root@admin ~]# cd /etc/sysconfig/network-scripts      #当前在/root目录下,使用绝对路径直接进入/etc/sysconfig/network-scripts目录下
[root@admin network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@admin network-scripts]# cd -   # 返回进入此目录之前所在目录,在进入这个目录之前的所在目录是/root,所以返回到/root下
/root
[root@admin ~]# pwd
/root
[root@admin ~]# cd -     #刚才是从/etc/sysconfig/network-scripts目录下进入到/root目录下,所以返回进入此目录之前所在目录就是/etc/sysconfig/network-scripts
/etc/sysconfig/network-scripts

… 表示上级目录

[root@admin sysconfig]# pwd
/etc/sysconfig
[root@admin sysconfig]# cd ..
[root@admin etc]# pwd
/etc
[root@admin etc]# cd ..
[root@admin /]# pwd
/
#/目录(根目录)是系统的一级文件结构,不能再返回上一级了

.表示当前目录

[dxk@admin ~]$ cd /bin
[dxk@admin bin]$ pwd
/bin
[dxk@admin bin]$ cd .
[dxk@admin bin]$ pwd
/bin
[dxk@admin bin]$ cd ..
[dxk@admin /]$ pwd
/
[dxk@admin /]$ cd .
[dxk@admin /]$ pwd
/

cd 路径

切换到 /etc/sysconfig目录下

[root@admin ~]# cd /etc/sysconfig
[root@admin sysconfig]# pwd
/etc/sysconfig

cd
不加参数,是进入用户目录

Ⅰ.root用户的主目录是/root

[root@admin network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@admin network-scripts]# cd
[root@admin ~]# pwd
/root

Ⅱ.普通用户的主目录是/home/用户名

[dxk@admin bin]$ pwd
/bin
[dxk@admin bin]$ cd
[dxk@admin ~]$ pwd
/home/dxk

注意:家目录和主目录一般是相同的

(四)显示或修改系统时间与日期的命令 date

命令语法

date [OPTION]… [+FORMAT]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss为秒数

命令选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT或UTC;

说明:
UTC时间:世界协调时间(UTC)是世界上不同国家用来调节时钟和时间的主要时间标准。也就是零时区的时间

UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。UTC与GMT含义完全相同。

CST(Central Standard Time 国家标准时间)
CST(可以理解为当地时间)同时代表了下面4个时区:
  CST:Central Standard Time (USA) 中部标准时间(美国) UTC -6:00
  CST:Central Standard Time (Australia) 中部标准时间(澳大利亚) UTC 9:30
  CST:China Standard Time 中国标准时间(北京时间) UTC 8:00
  CST: Cuba Standard Time 古巴标准时间 UTC -4:00CST (时区缩写)
  CST可视为美国、澳大利亚、古巴或中国的标准时间。

计算:UTC + 时区差=本地时间

北京时区是东八区,领先UTC 8个小时

日期格式字符串列表 FORMAT
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 时区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)

格式化输出

[root@admin modules]# date +%Y-%m-%d
2020-07-12
[root@admin modules]# date "+%Y-%m-%d"
2020-07-12
[root@admin modules]# date "+%Y-%m-%d %H:%M:%S"
2020-07-12 11:31:38

输出昨天日期:

[root@admin modules]# date -d "1 day ago"  +"%Y-%m-%d %H:%M:%S"
2020-07-11 11:34:17
[root@admin modules]# date -d yesterday  +"%Y-%m-%d %H:%M:%S"
2020-07-11 11:35:2

10秒、10分,10小时后的时间:

[root@admin modules]# date
2020年 07月 12日 星期日 11:39:01 CST
[root@admin modules]# date -d "+ 10 second"
2020年 07月 12日 星期日 11:39:13 CST
[root@admin modules]# date -d "+ 10 minute"
2020年 07月 12日 星期日 11:49:05 CST
[root@admin modules]# date -d "+ 10 hour"
2020年 07月 12日 星期日 21:39:10 CST
[root@admin modules]# date -d "- 5 hour"
2020年 07月 12日 星期日 06:40:38 CST

传说中的 1234567890 秒:

#显示从1970年1月1日0时0分开始后经过1234567890秒后的日期和时间
[root@admin modules]# date -d "1970-01-01 1234567890 second"
2009年 02月 13日 星期五 23:31:30 CST
#就相当于日历的作用,比如我们要查指定日期的星期
[root@admin modules]# date -d "2222-02-22"
2222年 02月 22日 星期五 00:00:00 CST
[root@admin modules]# date -d "2222-02-22 22:22"
2222年 02月 22日 星期五 22:22:00 CST

普通转格式:

[root@admin modules]# date -d "2020-07-12" +"%Y/%m/%d %H:%M.%S"
2020/07/12 00:00.00

格式转换:

[root@admin modules]# date -d "July 12 ,2020 11:56:33 AM" +"%Y-%m-%d %H:%M.%S"
2020-07-12 11:56.33

格式转换后时间:

[root@admin modules]# date -d "July 12 ,2020 11:56:33 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2018-07-12 11:56.33

以指定格式显示当前时间

date “+%Y%m%d”
date “+%Y-%m-%d”
date “+%Y-%m-%d %H-%M-%S”
date “+%Y/%m/%d %H:%M:%S”
格式可以自己定
加减操作:
date -d “+1 day” +%Y%m%d #显示后一天的日期
date -d “-1 day” +%Y%m%d #显示前一天的日期
date -d “-1 month” +%Y%m%d #显示上一月的日期
date -d “+1 month” +%Y%m%d #显示下一月的日期
date -d “-1 year” +%Y%m%d #显示前一年的日期
date -d “+1 year” +%Y%m%d #显示下一年的日期

设定时间
date -s #设置当前时间,只有root权限才能设置,其他只能查看

date -s 20000101 #把当前系统日期设置为2020年1月1日,这样会把具体时间设置成空00:00:00

[root@admin ~]# date -s 20000101
2000年 01月 01日 星期六 00:00:00 CST
[root@admin ~]# date
2000年 01月 01日 星期六 00:00:02 CST

date -s 01:01:01 #设置具体时间,不会对日期做更改

[root@admin ~]# date -s 12:12:12
2000年 01月 01日 星期六 12:12:12 CST
[root@admin ~]# date
2000年 01月 01日 星期六 12:12:15 CST

date -s “01:01:01 2018-12-01” #这样可以设置全部时间
date -s “01:01:01 20181201” #这样可以设置全部时间
date -s “2018-12-01 01:01:01” #这样可以设置全部时间
date -s “20182101 01:01:01” #这样可以设置全部时间

[root@admin ~]# date -s "20080808 08:08:08"
2008年 08月 08日 星期五 08:08:08 CST
[root@admin ~]# date -s "2008-08-08 08:08:08"
2008年 08月 08日 星期五 08:08:08 CST
[root@admin ~]# date -s "08:08:08 20080808"
2008年 08月 08日 星期五 08:08:08 CST
[root@admin ~]# date -s "08:08:08 2008-08-08"
2008年 08月 08日 星期五 08:08:08 CST

注意:如果日期和时间同时都要修改必须给参数加上双引号,单个修改时间或者日期双引号可加可不加。修改完系统时间后,如果没有将系统时钟同步到硬件时钟,那么重新登录后设置的时间会失效

在Linux中有硬件时钟与系统时钟两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。

当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。

在Linux中,用于时钟查看和设置的命令主要有datehwclockclock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还会去读取硬件时间,这就是为何date设置失效到原因。
因此,需要在设置系统时间后,将系统时间同步到硬件时钟

(五)硬件时钟的命令 hwclock或clock

用于显示或设定硬件时钟 (只有超级用户才能设置硬件时钟)

命令选项 :

-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同(即将系统时间同步到硬件时间)
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同(即将硬件时间同步到系统时间)

#查看系统时间和硬件时间

[root@admin ~]# date     #系统时间
2018年 11月 11日 星期日 03:08:07 CST
[root@admin ~]# clock	 #硬件时间
2020年07月12日 星期日 14时34分41秒  -0.263281 秒
[root@admin ~]# hwclock	 #硬件时间
2020年07月12日 星期日 14时34分44秒  -0.977904 秒

#以硬件为准,把系统调整为与硬件时间相同clock -s 或hwclock -s

[root@admin ~]# date
2018年 11月 11日 星期日 03:09:53 CST
[root@admin ~]# clock
2020年07月12日 星期日 14时36分27秒  -0.603692 秒
[root@admin ~]# clock -s     #或者hwclock -s
da[root@admin ~]# date
2020年 07月 12日 星期日 14:36:38 CST

#以系统为准,把硬件时间调整为与系统时间相同 clock -w或hwclock -w

[root@admin ~]# date
2018年 11月 11日 星期日 03:05:10 CST
[root@admin ~]# clock
2020年07月12日 星期日 14时40分33秒  -0.303201 秒
[root@admin ~]# clock -w
[root@admin ~]# clock
2018年11月11日 星期日 03时05分33秒  -0.339284 秒

这样我们就彻底将时间改了,将会一直生效

以上的时间是我们随便给的,那么现在系统时间和硬件时间都已经和当前时间不一样了,这个时候应该怎么办呢?

有一个方法就是我们看一下手机上现在的时间,然后将当前系统时间修改过来再将系统时间写入硬件时间。可是,这样做有一个缺点,肯定会和标准当地时间有误差,因为你在前一秒看的时间,你还要进行操作改时间,写入时间等等一系列操作,这样你在改时间的时候到底写多少?大概估计一下过了多久,然后加上刚才看的时间?如果预估不准呢?

#同步网络时间到系统时间
同步时钟源服务器到当前系统时间,这里我们用阿里云linux时钟服务器,地址为ntp1.aliyun.com(从网上找到这个服务器地址)
①首先,我们需要安装ntpdate包

[root@admin ~]# yum install ntpdate -y

②安装好以后:

[root@admin ~]# ntpdate ntp1.aliyun.com
12 Jul 15:00:40 ntpdate[1718]: step time server 120.25.115.20 offset 52659330.491733 sec

③这时候我们查看系统时间:

[root@admin ~]# date
2020年 07月 12日 星期日 15:01:17 CST
[root@admin ~]# clock
2018年11月11日 星期日 03时26分58秒  -0.859929 秒

④但是硬件时间还没改过来,这时候我们需要将系统时间同步到硬件时间就好了:

[root@admin ~]# clock -w  		#也可以  hwclock -w
[root@admin ~]# clock
2020年07月12日 星期日 15时03分30秒  -0.579661 秒
[root@admin ~]# date
2020年 07月 12日 星期日 15:03:32 CST

(六)设置用户口令的命令 passwd

关于用户信息的两个文件:

1. /etc/passwd文件

Linux 系统中的 /etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作

首先我们来打开这个文件,看看到底包含哪些内容,执行命令如下:

[dxk@admin ~]$ vi /etc/passwd   #查看文件内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dxk:x:1000:1000::/home/dxk:/bin/bash
Bob:x:1002:1002::/home/Bob:/bin/bash
……省略部分输出……

可以看到,/etc/passwd 文件中的内容非常规律,每行记录对应一个用户

这些用户中的绝大多数是系统或服务正常运行所必需的用户,这种用户通常称为系统用户或伪用户。系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。

不仅如此,每行用户信息都以 “:” 作为分隔符,划分为 7 个字段,每个字段所表示的含义如下:

用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

具体字段所代表的含义我们以后慢慢了解

2. /etc/shadow文件

/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”

前面所说的 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中

/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

我们先看看此文件,执行如下命令

[root@admin ~]# vim /etc/shadow    #查看该文件内容
root:$6$gBpH.w6Y$zC4WlobJdWQ4y4MnUdJX.jEG2DDBdZgiOFq09Rv78SwKCT9E
uAU8hZU3kJgjk33xmtiwJvPFya3klhZc6qEF0.:18455:0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
sshd:!!:18442::::::
dxk:$6$oJauh31p$38INgybvDI/Z8h/XOlDVt63fsZZ7hdgdqHAfJ0r.UA3HsJ528
owlUb3R3upHw/GD43EeX97jH4GBVbDOuHCgl.:18455:0:99999:7:::
……省略部分输出……

同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 “:” 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

接下来,分别介绍这 9 个字段。

用户名

用户名,就是一串代表用户身份的字符串

加密密码

这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。

注意:这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效

所有伪用户的密码都是 “!!” 或 “*”,代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。

最后一次修改时间

此字段表示最后一次修改密码的时间,可是,为什么 root 用户显示的是 18455 呢?

这是因为,Linux 计算日期的时间是以 1970 年 1 月 1 日作为 1 不断累加得到的时间。这里显示 18455 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 18455 天修改的 root 用户密码

可以使用如下命令进行换算:

#只能精确到天
[root@admin ~]# date -d "19700101 +18455 day" "+%Y年%m月%d日"
2020年07月12日

修改密码的最小时间间隔

最小修改间隔时间,也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码

密码有效期

经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期

密码需要变更前的警告天数

与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 “再过 n 天你的密码就要过期了,请尽快重新设置你的密码!”。

该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 “修改密码” 的警告信息。

密码过期后的宽限天数

也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。

比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

账号失效时间

同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用
预留
这个字段目前没有使用,为新功能所预留

对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码

根据以上各字段的含义,root用户可以根据需要对相应用户的密码信息进行修改,以达到限制或约束的目的。一种方式是直接修改该文件相应用户的字段值,另一种方式是root用户使用passwd命令进行修改,passwd命令用法如下:

3. 命令用法

命令格式
passwd [选项][] [ username]

root用户可以修改普通用户的密码

[root@admin ~]# passwd 用户名

root用户无论是修改自己的密码还是普通用户的密码,都没有什么复杂性要求,即使是修改成一位字符也可以,系统只有所提示,而没有硬性规定

普通用户只能修改自己的密码,而且在修改时系统会对你的密码进行硬性的复杂性要求

[root@admin ~]# passwd 自己的用户名
或者:
[root@admin ~]# passwd

命令选项

-k:保留即将过期的用户在期满后能仍能使用
-d:删除用户密码(仅限root用户)

[root@admin ~]# passwd -d dxk
清除用户的密码 dxk。
passwd: 操作成功
#用户dxk便无法登录,通过root用户 再为其 更改密码,就可以登录了

-l:锁住用户并使该用户无权更改其密码(仅限root用户。使用后会在密码的起始位置加上“!”,当密码被锁定时,用户将不能更改它的密码且无法登录)

[root@admin ~]# passwd -l dxk
锁定用户 dxk 的密码 。
passwd: 操作成功
#若该普通用户在线就不能修改密码,如果不在线要登录的话就无法登陆进去

-u:解除锁定(仅限root用户)

[root@admin ~]# passwd -u dxk
解锁用户 dxk 的密码。
passwd: 操作成功
#当该用户被解锁后,便可以正常登录

-f:强制操作(仅限root用户)

-x:两次密码修改的最大天数,后面接数字 (仅限root用户)

[root@admin ~]# passwd -x 100 dxk

-n:两次密码修改的最小天数,后面接数字 (仅限root用户)

[root@admin ~]# passwd -n  50 dxk
调整用户密码老化数据dxk。
passwd: 操作成功

-w:在距多少天提醒用户修改密码,后面接数字 (仅限root用户)

[root@admin ~]# passwd -w 10 dxk
调整用户密码老化数据dxk。
passwd: 操作成功

-i:在密码过期后多少天,用户被禁掉,后面接数字 (仅限root用户)

[root@admin ~]# passwd -i 100 dxk
调整用户密码老化数据dxk。
passwd: 操作成功

-S:查询用户的密码状态 (仅限root用户)

[root@admin ~]# passwd -S root
root PS 2020-07-13 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@admin ~]# passwd -S dxk
dxk PS 2020-07-13 50 100 10 100 (密码已设置,使用 SHA512 算法。)

–stdin :从标准输入获取密码 (仅限root用户)

[root@admin ~]# echo "123456" | passwd --stdin dxk
更改用户 dxk 的密码 。
passwd:所有的身份验证令牌已经成功更新。

passwd 未加任何选项指修改当下用户自己的密码

[root@admin ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

修改用户密码过期时间: chage -M 天数 用户名 (仅限root用户)

[root@admin ~]# chage -M 1000 dxk
[root@admin ~]# chage -M 10000  root

以上通过命令修改后的信息都会在/etc/shadow文件中对应于各用户的字段也随之更改并保存

三、Yum源

(一)Yum概述

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

说到yum源就必须说到linux系统中特有的依赖关系问题,yum就是为了解决依赖关系而存在的。yum源就相当是一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。

YUM是“Yellow dog Updater, Modified”的缩写,是一个软件包管理器,YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。

可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。

YUM的基本工作机制

服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

yum需要一个yum仓库,也就是yum源。默认情况下,CentOS就有一个yum源(官方源),在/etc/yum.repos.d/目录下有一些默认的配置文件

yum源有三种:网络yum源(官方yum源,国内第三方yum源)、本地yum源

首先要找一个yum库(源),然后确保本地有一个客户端(yum这个命令就是客户端),由yum程序去连接服务器。连接的方式是由配置文件决定的。通过编辑/etc/yum.repos.d/CentOS-Base.repo文件,可以修改设置。

在/etc/yum.repos.d 目录下存放的以.repo为后缀的文件就是yum源的配置文件

[root@admin yum.repos.d]# ls /etc/yum.repos.d/
CentOS-Base.repo       CentOS-Media.repo
CentOS-CR.repo         CentOS-Sources.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo
CentOS-fasttrack.repo  CentOS-x86_64-kernel.repo

我们可以打开一个配置文件看看(其实这是系统自带的网络官方yum源配置文件):

[root@admin yum.repos.d]# vim CentOS-Sources.repo 
#这里复制部分进行分析,其他基本都是类似的 ,内容如下:
[extras-source]    #yum源的名称,起到标记yum源的作用
name=CentOS-$releasever - Extras Sources   #对yum的描述,作用是使用户可以更容易的读懂该文件
baseurl=http://vault.centos.org/centos/$releasever/extras/Source/    #指定的查找依赖关系软件的路径,(该路径可以是一个网址路径,也可以是采用本地连接时本机上的一个file路径)
gpgcheck=1    #gpgcheck表示是否进行gpg检测,0表示不进行,1表示进行。gpg检查就是在使用yum安装软件是对软件输入公钥进行验证,看是否来源安全
enabled=0    #enabled 是使能够的意思,0表示baseurl定义的路径是不可用的,1表示定义的路径是可用的。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    #进行gpg检查时,使用file协议导入公钥,后面接的路径就是系统自带的公钥存放路径

(二)配置yum源

两种yum源:本地yum源和网络yum源

1. 网络yum源配置

一般情况下,只要你的主机网络正常,可以直接使用网络 yum 源,不需要对配置文件做任何修改

所有 yum 源配置文件(也称为yum源容器)均位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件)

上面所看到的该目录下有8个yum配置文件,通常情况下 CentOS-Base.repo 文件生效,上面我们也简单介绍了配置文件中各个参数的含义,这里我们进行总结:

  • [base]:容器名称,一定要放在[]中。
  • name:容器说明,可以自己随便写。
  • mirrorlist:镜像站点,这个可以注释掉。
  • baseurl:yum 源服务器的地址。默认是 CentOS 官方的 yum 源服务器,是可以使用的。如果你觉得慢,则可以改成国内的第三方 yum 源地址(比如阿里云)
  • enabled:此容器是否生效,如果不写或写成 enabled或enabled=1 则表示此容器生效,写成 enable=0 则表示此容器不生效。
  • gpgcheck:如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。
  • gpgkey:数字证书的公钥文件保存位置。不用修改。
    每个容器中的参数都是类似的,不外乎这些

这里的网络yum源地址都是CentOS官方网站,那么我们在下载 rpm软件包时可能会比较慢,那么我们就可以使用国内的第三方yum源地址

配置国内网络yum源
这里我们以阿里云为例,介绍如何操作:

第一步:先下载安装wget包

wget 是一个从网络上自动下载文件的*工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理

[root@admin ~]# yum install wget -y

第二步:备份官方的yum源配置文件
(也可以删除或移动到其他目录下,备份主要是为了以备不时之需)

#这里就举一个例子,每个人的官方yum源配置文件可能不同,全部都备份(这里后缀名随便改只要不是.repo就行 )
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第三步:下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

wget -O /etc/yum.repos.d/*****.repo URL
(这个文件一定要保存到/etc/yum.repos.d/下,至于这个URL自己可以在阿里云开发者社区找到自己对应版本的)

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#下载完后,我们可以看下就会有一个下载好的yum源配置文件
[root@admin yum.repos.d]# ls
CentOS-Base.repo

第四步:清理缓存

[root@admin yum.repos.d]# yum clean all

第五步:生成缓存

就是把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存
以后用install时就在缓存中搜索,提高了速度

[root@admin yum.repos.d]# yum makecache

这样就国内网络yum源就配置好了,如果想换回官方yum源就将该配置文件删除或备份,将备份的官方配置文件移动到该目录下并 将后缀名改为.repo,最后清理、生成缓存就好了

2. 本地yum源配置

在无法联网的情况下,yum 可以考虑用本地光驱作为 yum 源

我们在安装Linux 系统的时候基本上都是使用iso镜像文件进行引导安装,其实在该iso镜像中就含有常用的 RPM 包

如果你下载的是everything iso镜像文件那么几乎所有的RPM包都会有,如果是其它的可能会有所减少,但是常用的基本都会有

配置步骤

第一步:把iso镜像挂载到虚拟机的虚拟光驱设备上 如下:
Linux笔记 Day06---(通配符、系统管理命令、配置yum源)

第二步:将此设备进行挂载

此时会有一个光驱设备文件/dev/sr0就是我们装有iso镜像文件的光驱设备文件,然后我们将此设备文件挂载到一个目录下(这个目录可以自行指定)

在linux中,一切皆文件,所以光驱也是一个文件

#这里我挂载到/etc/data/目录下
[root@admin ~]# mkdir /data/
[root@admin ~]# mount /dev/sr0 /data/
mount: /dev/sr0 写保护,将以只读方式挂载   

上述步骤执行完了,我们可以在挂在后的目录下的Packages目录下查看iso镜像文件中所有的RPM包

[root@admin ~]# ls /data/Packages
#可以看到特别多

第三步 :在目录/etc/yum.repos.d下配置本地yum源文件

在该目录下要确保没有其他配置文件(即以.repo结尾的文件),如果有可以修改后缀名进行备份或者移动到其他目录下

因为只有后缀名是".repo"的文件才能被系统当作yum 源配置文件。当然可以删除其他几个 yum 源配置文件,但是如果删除了,当又想用网络作为 yum 源时,就没有了参考文件,所以最好还是修改扩展名进行备份

[root@admin yum.repos.d]# cd /etc/yum.repos.d/     #进入该目录下
[root@admin yum.repos.d]# ls			#查看是否有其他配置文件
CentOS-Base.repo
[root@admin yum.repos.d]# mv CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup   #对该配置文件进行重命名备份
[root@admin yum.repos.d]# ls    #查看是否备份成功
CentOS-Base.repo.backup

然后在该目录下自己写一个yum配置文件,此文件名必须以.repo为后缀,名字自拟

[root@admin yum.repos.d]# vim myyum.repo
#在该文件中写如下内容并保存退出
[myyum]    #容器名称,一定要放在[]中,自拟
name="myyum"     #容器说明,可以自己随便写
baseurl=file:///data  #因为是使用本地文件(光驱中的文件)所以使用的是file协议,指定的路径是挂载后的目录 baseurl=file://挂载后的路径
gpgcheck=0    #本地源不需要数字证书,0表示 RPM 的数字证书不生效
enabled=1     #写成 enable=1 则表示此配置文件生效。
~                                                                
~                                                                
~                                                                
~                                                                
                                                          
:wq 

第五步:清空缓存

[root@admin yum.repos.d]# yum clean all

第六步:重新生成缓存

[root@admin yum.repos.d]# yum makecache

可以用以下命令查看:
yum list 列出所有可安装的安装包
yum list installed 列出已安装的安装包
rpm -qa 列出所有已安装的rpm包

这样,本地yum源就配置完成了

但是这样写存在问题,在重启之后,本地yum源就会失效。必须要再次重新挂载光驱设备(即只要重启系统就必须将第二步再执行一次)那么我们如何挂载将会永久生效呢?

当然就是将挂载的命令写入相应文件中,在系统每次重启之后就会读取该文件进行挂载,不用我们每次再进行手动挂载,两种途径:

第一种:
第一步:将挂载命令写入/etc/fstab文件中

[dxk@admin ~]$ vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Jun 29 16:36:21 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=4dd7e68d-866e-45c4-90fa-a874f9860a3a /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        -1 0
/dev/sr0 /data                                iso9660   defaults        0 0
~                                                             
~                                                             
~                                                             
~                                                             
:wq 

第二步:写入保存后,执行以下命令:

[dxk@admin ~]$ mount  -a   #让文件立即生效同时可以检查是否写入错误

这样本地yum源就可以永久生效

第二种:
第一步:将挂载命令写入/etc/rc.d/rc.local文件中

[dxk@admin ~]$ vim /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
if[ -d /data]
then
mount /dev/sr0 /data
fi
~                                                             
~                                                             
~                                                             
:wq     

第二步:写入保存后,执行以下命令:

chmod +x /etc/rc.d/rc.local

这样就本地yum源也可以永久生效

其实本地yum源就是在没有网络的情况下,从光驱这个存储了很多RPM包的介质中获取我们需要的包进行安装

本文地址:https://blog.****.net/weixin_45880055/article/details/107290586