1.挂载光驱设备
[root@localhost ~]# mkdir /mydvd
[root@localhost ~]# mount /dev/cdrom /mydvd [root@localhost ~]# ls /mydvd
2.书写客户端配置文件
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=file:///mydvd
enabled=1
gpgcheck=0
[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# rpm -q xorg-x11-apps

3.完成开机自动挂载
]# blkid /dev/cdrom #查看 光驱设备文件系统类型
]# vim /etc/fstab
/dev/cdrom /mydvd iso9660 defaults 0 0
]# umount /mydvd
]# mount -a
]# ls /mydvd
]# yum -y install bind #测试安装软件包

4.开机自动挂载修改UUID内容
[root@localhost ~]# df -h /boot
文件系统 容量 已用 可用已用% 挂载点
/dev/sda1 1014M 172M 843M 17% /boot
[root@localhost ~]# blkid /dev/sda1
/dev/sda1: UUID=”8e57ee09-0d60-4da9-87a0-83bb4a62587d” TYPE=”xfs”
[root@localhost ~]# vim /etc/fstab #vmware虚拟机
/dev/sda1 /boot xfs defaults 0 0

[root@localhost ~]# vim /etc/fstab #KVM虚拟机
/dev/vda1 /boot xfs defaults 0 0
[root@localhost ~]# reboot #重启系统
[root@localhost ~]# yum repolist #检测yum仓库

网络Yum仓库
构建网络服务,利用网络服务提供仓库内容
网络服务:FTP服务与Web服务

  • 网络Yum仓库:(重点知识)

虚拟机A:提供仓库内容
虚拟机B:进行访问仓库内容

虚拟机A:提供仓库内容(FTP服务)
1.构建FTP服务
[root@server ~]# yum -y install vsftpd
[root@server ~]# systemctl restart vsftpd
[root@server ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

2.通过FTP提供仓库内容
[root@server ~]# mkdir /var/ftp/dvd
[root@server ~]# mount /dev/cdrom /var/ftp/dvd
[root@server ~]# curl ftp://192.168.88.240/dvd/

[root@server ~]# vim /etc/fstab
/dev/cdrom /var/ftp/dvd iso9660 defaults 0 0

[root@server ~]# umount /var/ftp/dvd
[root@server ~]# ls /var/ftp/dvd
[root@server ~]# mount –a
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~]# ls /var/ftp/dvd

[root@server ~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=file:///var/ftp/dvd
enabled=1
gpgcheck=0

虚拟机B:进行访问仓库内容
[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=ftp://192.168.88.240/dvd
enabled=1
gpgcheck=0
[root@pc2 ~]# yum clean all
[root@pc2 ~]# yum repolist
虚拟机C:进行访问仓库内容
[root@pc3~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=ftp://192.168.88.240/dvd
enabled=1
gpgcheck=0
[root@pc3 ~]# yum clean all
[root@pc3 ~]# yum repolist

关闭三台机器拍摄快照
############################################################

虚拟机A:提供仓库内容(Web服务)
1.构建Web服务
[root@server ~]# yum -y install httpd
[root@server ~]# systemctl restart httpd
[root@server ~]# systemctl enable httpd

2.通过Web提供仓库内容
[root@server ~]# mkdir /var/www/html/dvd
[root@server ~]# mount /dev/cdrom /var/www/html/dvd

虚拟机B:进行访问仓库内容
[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=http://192.168.88.240/dvd
enabled=1
gpgcheck=0
[root@pc2 ~]# yum repolist

虚拟Web主机:
[root@server ~]# vim /etc/httpd/conf.d/nsd01.conf

ServerName www.qq.com
DocumentRoot /var/www/qq


ServerName www.baidu.com
DocumentRoot /var/www/baidu


Options Indexes FollowSymLinks #显示目录内容

[root@server ~]# mkdir /var/www/qq /var/www/baidu
[root@server ~]# echo wo shi QQ > /var/www/qq/index.html
[root@server ~]# echo wo shi baidu > /var/www/baidu/index.html
[root@server ~]# systemctl restart httpd

[root@server ~]# mkdir /var/www/qq/dvd
[root@server ~]# mount /dev/cdrom /var/www/qq/dvd

总结:请您使用FTP服务

#############################
RPM软件包—-》rpm 命令 yum
源码包—gcc与make—》可以执行的程序—-》运行安装

一、源码编译安装
RPM软件包:rpm -ivh 或者 yum -y install
源码包——开发工具gcc与make——》可以执行的程序——-》运行安装

•主要优点
–获得软件的最新版,及时修复bug
软件功能可按需选择/定制,有更多软件可供选择
–源码包适用各种平台
–……

步骤1:安装开发工具gcc与make,释放源代码至指定目录
步骤2:tar解包,释放源代码至指定目录
步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录

  • 真机传递数据到虚拟机

真机为Linux:
]# ls /linux-soft/1
]#scp /linux-soft/1/tools.tar.gz root@192.168.88.240:/root
1.安装开发工具
[root@server ~]# yum -y install gcc make
[root@server ~]# rpm -q gcc
gcc-4.8.5-28.el7.x86_64
[root@server ~]# rpm -q make
make-3.82-23.el7.x86_64
[root@server ~]#

2.进行解压缩
[root@server ~]# tar -xf /root/tools.tar.gz -C /
[root@server ~]# ls /tools/
inotify-tools-3.13.tar.gz
3.进行tar解包
[root@server ~]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local/
[root@server ~]# ls /usr/local/
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server inotify-tools-3.13]# ls

4.运行configure脚本
作用1:检测当前系统是否安装gcc
作用2:指定安装位置与功能
作用3:生成makefile文件(制作程序的大纲,做菜的菜谱)

]# cd /usr/local/inotify-tools-3.13/
]# ./configure –help #查看帮助信息
]# ./configure —prefix=/opt/myrpm #指定安装位置,此步骤不产生相应的目录

常见的报错信息:gcc开发工具没有安装
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.

5.进行make编译,变成可以执行的程序(放在内存中)
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server inotify-tools-3.13]# make
6.进行make install安装
[root@server ~]# cd /usr/local/inotify-tools-3.13/
[root@server inotify-tools-3.13]# make install
[root@server inotify-tools-3.13]# ls /opt/
[root@server inotify-tools-3.13]# ls /opt/myrpm/
[root@server inotify-tools-3.13]# ls /opt/myrpm/bin/

  1. 数据同步
  • 命令用法
    1. rsync [选项…] 源目录 目标目录
  • 同步与复制的差异

    1. 复制:完全拷贝源到目标
    2. 同步:增量拷贝,只传输变化过的数据
  • rsync操作选项

    1. -n:测试同步过程,不做实际修改
    2. —delete:删除目标文件夹内多余的文档
    3. -a:归档模式,相当于-rlptgoD
    4. -v:显示详细操作信息
    5. -z:传输过程中启用压缩/解压
  • 本地同步

[root@server ~]# mkdir /mydir /todir
[root@server ~]# cp /etc/passwd /mydir
[root@server ~]# touch /mydir/1.txt
[root@server ~]# ls /mydir

[root@server ~]# rsync -av /mydir /todir #同步目录本身
[root@server ~]# ls /todir

[root@server ~]# rsync -av /mydir/ /todir #同步目录内容
[root@server ~]# ls /todir

[root@server ~]# touch /mydir/2.txt
[root@server ~]# rsync -av /mydir/ /todir #同步目录内容
[root@server ~]# ls /todir
[root@server ~]# echo 123 > /mydir/1.txt
[root@server ~]# rsync -av /mydir/ /todir #同步目录内容
[root@server ~]# ls /todir

[root@server ~]# rsync -av —delete /mydir/ /todir/
[root@server ~]# ls /mydir/
[root@server ~]# ls /todir/

[root@server ~]# touch /todir/a.txt
[root@server ~]# ls /todir/
[root@server ~]# rsync -av —delete /mydir/ /todir/
[root@server ~]# ls /todir/
[root@server ~]# ls /mydir/

  • 远程同步
  • 与远程的 SSH目录保持同步
    1. 下行:rsync […] user@host:远程目录 本地目录
    2. 上行:rsync […] 本地目录 user@host:远程目录

虚拟机A的/mydir目录的内容与虚拟机B的/mnt进行同步
虚拟机A:
]# rsync -av —delete /mydir/ root@192.168.88.2:/mnt
……..connecting (yes/no)? yes
root@192.168.88.2’s password: #输入密码
虚拟机B:
]# ls /mnt
1.txt haha passwd

  1. 实时数据同步

虚拟机A的/mydir/目录的内容与虚拟机B的/mnt进行同步

  • 实现ssh无密码验证(公钥与私钥)

虚拟机A
1.生成公钥与私钥
[root@server ~]# ssh-keygen #一路回车
[root@server ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub(公钥) known_hosts(记录曾经远程管理过的机器)
2.虚拟机A将公钥传递给虚拟机B
]# ssh-copy-id root@192.168.88.2
]# rsync -av —delete /mydir/ root@192.168.88.2:/mnt

  • 监控目录内容变化工具

将真机的tools.tar.gz传递数据到虚拟机A
3. 源码编译安装、rsync本地同步、rsync远程同步、数据库基础、命令补充 - 图1
[root@server ~]# ls /root
tools.tar.gz 下载
公共 音乐
[root@server ~]#

源码编译安装步骤:
步骤一:安装开发工具
]# yum -y install make
]# yum -y install gcc
]# rpm -q gcc
]# rpm -q make
步骤二:进行tar解包
]# tar -xf /root/tools.tar.gz -C /usr/local/
]# ls /usr/local/
]# ls /usr/local/tools/

]# tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/
]# ls /usr/local/

步骤三:运行configure脚本进行配置
作用1:检测系统是否安装gcc
作用2:可以指定安装位置及功能
]# cd /usr/local/inotify-tools-3.13/
]# ./configure —prefix=/opt/myrpm #指定安装位置

常见错误:没有安装gcc
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.

步骤四:make进行编译,产生可以执行的程序
]# cd /usr/local/inotify-tools-3.13/
]# make

步骤五:make install进行安装
]# cd /usr/local/inotify-tools-3.13/
]# make install
]# ls /opt/
]# ls /opt/myrpm/
]# ls /opt/myrpm/bin/

  • 基本用法
    1. inotifywait [选项] 目标文件夹
  • 常用命令选项
    1. -m,持续监控(捕获一个事件后不退出)
    2. -r,递归监控、包括子目录及文件
    3. -q,减少屏幕输出信息
    4. -e,指定监视的 modify、move、create、delete、attrib 等事件类别

inotifywait 监控目录内容变化
rsync -av —delete /mydir/ root@192.168.88.2:/mnt

  • 书写shell脚本(了解)

脚本:可以运行一个文件,实现某种功能
中文:新建用户zhangsan shell: useradd zhangsan

[root@s。erver /]# vim /root/hello.sh
echo hello world
hostname
id root
ifconfig | head -2
[root@server /]# chmod +x /root/hello.sh
[root@server /]# /root/hello.sh

重复性:循环解决
格式:
while 条件
do
重复执行的事情
done

[root@server /]# vim /etc/rsync.sh
while /opt/myrpm/bin/inotifywait -rqq /mydir/
do
rsync -a —delete /mydir/ root@192.168.88.2:/mnt
done
[root@server /]# chmod +x /etc/rsync.sh #赋予执行权限

[root@server /]# /etc/rsync.sh & #运行脚本程序
[root@server /]# jobs -l
[1]+ 17707 运行中 /etc/rsync.sh &
[root@server /]# kill 17707 #停止脚本

  1. 数据库服务基础(数据库系统)

数据库:存放数据的仓库
在数据库系统中,有很多的数据库,在每一个库中有很多的表格

  • 常见的关系型 数据库管理系统
    1. 微软的 SQL Server
    2. IBM的 DB2
    3. 甲骨文的 Oracle、MySQL
    4. 社区开源版 MariaDB
    5. ……
  • 部署MariaDB 数据库系统

[root@server /]# yum -y install mariadb-server
[root@server /]# systemctl restart mariadb

  • MariaDB基本使用
  1. Linux系统的管理指令不能使用
  2. 所有的数据库系统指令都必须以 ; 结尾
  3. 数据库系统的指令大部分不支持tab补全

[root@server /]# mysql #进入数据库系统
> create database nsd01; #创建nsd01数据库
> show databases; #查看所有数据库
> drop database nsd01; #删除数据库nsd01
> show databases; #查看所有数据库
> exit;
Bye
[root@server ~]#

[root@server /]# mysql #进入数据库系统
> use mysql; #切换到mysql数据库
> show tables; #查看当前库中所有表格
> show databases; #查看所有数据库
> use test; #切换到test数据库
> exit;

  • 恢复数据到数据库中

1.真机传递备份好的数据文件users.sql到虚拟机A中
3. 源码编译安装、rsync本地同步、rsync远程同步、数据库基础、命令补充 - 图2
[root@server /]# ls /root
abc02 users.sql 图片 桌面
[root@server /]#
3.恢复数据到数据库
]# mysql test < /root/users.sql
]# mysql
MariaDB [(none)]> use test; #切换到数据库test
MariaDB [test]> show tables; #查看当前库有哪些表格
+—————————-+
| Tables_in_test |
+—————————-+
| base |
| location |
+—————————-+

  • 表格操作:
  • 增(insert) 删(delete) 改(update) 查(select)
  • 表字段、表记录 | 编号 | 姓名 | 住址 | | —- | —- | —- | | 1 | Dc | 东村 | | 2 | Tc | 西村 |
  • 查(select)

格式: select 表字段,表字段,…… from 库名.表名;
[root@server /]# mysql
> use test;
> select * from base; #查看base所有表字段内容
> select * from location; #查看location所有表字段内容

use mysql;
> select * from test.base;

use test;
> select id,name from base;

[root@server /]# mysql
> use test;
> select from base where password=’456’;
> select
from base where id=’4’;
> select from base where id=’4’ and password=’123’;
> select
from base where id=’4’ or password=’123’;

  • 增(insert)

格式:insert 表名 values (‘值’,‘值’,‘值’);
MariaDB [test]> insert base values(‘10’,’dc’,’789’);

MariaDB [test]> insert base values(‘11’,’tcc’,’369’);

MariaDB [test]> select * from base ;

  • 改(update)

格式:
update 表名 set 表字段=‘新值’ where 表字段=’值’;

select from base ;
> update base set password=’8888’ where id=’1’;
> select
from base ;

update base set password=’9999’ where id=’2’;
> select * from base ;

  • 删(delete)

use test;
> delete from base where id=’4’ ;
> select * from base ;

delete from base where id=’3’ ;
> select * from base ;

  • 为数据库系统管理员设置密码
    1. mysqladmin [-u用户名] [-p[旧密码]] password ‘新密码’

数据库系统管理员:对于数据库系统有最高权限,名字为root,能够登陆数据系统的用户信息有mysql库中user表进行储存

Linux系统管理员: 对于Linux系统有最高权限,名字为root,能够登陆Linux系统的用户信息/etc/passwd进行储存

[root@server /]# mysqladmin -u root password ‘456’
[root@server /]# mysql -u root -p #交互式进行登录
Enter password:

[root@server /]# mysql -u root -p456 #非交互式进行登录
已知旧密码修改新密码
]# mysqladmin -u root -p456 password ‘123’
]# mysql -u root -p123

###################################
命令补充
  • 获取命令帮助

方式一:命令 —help
[root@localhost ~]# cat —help
方式二:man 命令
[root@localhost ~]# man cat #按q退出
[root@localhost ~]# man passwd #显示passwd命令帮助
[root@localhost ~]# man 5 passwd
数字5表示帮助的类型,表示配置文件类型

  • 历史命令

管理/调用曾经执行过的命令

  • history:查看历史命令列表
  • history -c:清空历史命令
  • !n:执行命令历史中的第n条命令
  • !str:执行最近一次以str开头的历史命令

[root@server ~]# vim /etc/profile
HISTSIZE=1000 #默认记录1000条

[root@localhost ~]# history #显示历史命令列表
[root@localhost ~]# history -c #清空历史命令
[root@localhost ~]# history
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# ls /root
[root@localhost ~]# history

[root@localhost ~]# !cat #指定最近一条以cat开头的历史命令
[root@localhost ~]# !ls #指定最近一条以ls开头的历史命令

  • du,统计文件的占用空间
    • du [选项]… [目录或文件]…
    • -s:只统计每个参数所占用的总空间大小
    • -h:提供易读容量单位(K、M等)

[root@localhost ~]# du -sh /root
[root@localhost ~]# du -sh /etc
[root@localhost ~]# du -sh /boot
[root@localhost ~]# du -sh /

  • date,查看/调整系统日期时间
    • date +%F、date +%R
    • date +”%Y-%m-%d %H:%M:%S”
    • date -s “yyyy-mm-dd HH:MM:SS”

]# date
]# date -s “2008-9-6 11:11:11” #修改系统时间
]# date

]# date -s “2020-9-5 15:37:11”
]# date

[root@localhost ~]# date +%Y #显示年
[root@localhost ~]# date +%m #显示月
[root@localhost ~]# date +%d #显示日期

[root@localhost ~]# date +%H #显示时
[root@localhost ~]# date +%M #显示分
[root@localhost ~]# date +%S #显示秒

[root@localhost ~]# date +%F #显示年-月-日
[root@localhost ~]# date +%R #显示时:分

  • 制作连接(链接)文件(制作快捷方式)

格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软连接
]# ln -s /etc/sysconfig/network-scripts/ /ns
]# ls /
]# ls -l /ns #查看快捷方式的信息

]# touch /ns/haha.txt
]# touch /ns/maohehaozi.txt
]# touch /ns/shukehebeita.txt
]# ls /etc/sysconfig/network-scripts/

软连接优势:可以针对目录与文件制作快捷方式,支持跨分区
软连接缺点:源数据消失,快捷方式失效

格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# echo 123 > /opt/A.txt
[root@localhost ~]# ln -s /opt/A.txt /opt/B.txt #软连接
[root@localhost ~]# ls /opt/

[root@localhost ~]# ln /opt/A.txt /opt/C.txt #硬链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt
[root@localhost ~]# cat /opt/C.txt

[root@localhost ~]# rm -rf /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt #软连接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@localhost ~]# cat /opt/C.txt #硬链接仍然有效

  • zip归档工具,跨平台
  • 归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档…

[-r]:被归档的数据有目录,必须加上此选项
]# zip -r /opt/abc.zip /etc/passwd /home
]# ls /opt/

  • 释放归档+解压操作: unzip 备份文件.zip [-d 目标文件夹]

]# mkdir /nsd20
]# unzip /opt/abc.zip -d /nsd20
]# ls /nsd20
]# ls /nsd20/etc/
]# ls /nsd20/home/