上课练习环境:
RHEL8.0系统镜像下载:
链接1:https://pan.baidu.com/s/1wX2j-aTO1VRcHQYpCDYnEg 提取码:6buv
链接2:https://ws28.cn/f/32i4oq8p5r1
(下载完2个文件后只需要解压001,推荐压缩软件bandizip)
CENTOS7-8
RHEL7-8
虚拟机vmware-workstation软件下载:
https://my.vmware.com/cn/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
服务器:
CPU:多核心多线程
内存:容量较大
主板:扩展性比较好
硬盘:数量多,容量大
环境安装步骤:
后面的步骤是一直下一步直到完成
然后确定,开启虚拟机
安装完后重启
系统如何登录:
使用管理员root用户登录
关闭自动锁屏
Linux系统一切皆文件
Linux严格区分大小写
Linux文档=文件+目录
Linux中以颜色字体来区分不同的文档属性:
白色:文本文件
绿色:可执行文件(程序、脚本、代码)
蓝色加粗字体:目录
蓝绿色:快捷方式
红色:压缩包、iso镜像文件
shell:Linux系统的指令解释器:有很多种
其中默认使用的shell是BASH
[root@localhost ~]#
[当前登录的用户@主机名 当前所在目录的名称]#或$
~当前用户的家目录
#当前用户是管理员root
$当前用户是普通用户
补充快捷键(Linux一般不使用小键盘):
ctrl shift + 增大字体
ctrl - 缩小字体
一条命令的组成:
命令字 [选项] [参数]
自定义格式查看时间日期:
date +"自定义格式"
%Y年
%m月
%d日
%H时
%M分
%S秒
/etc/passwd:用于存放用户信息,一个用户在文件中占一行
wc -l /etc/passwd
Linux操作系统的关机与重启
reboot:重启
poweroff:关机
shutdown常用用法:
shutdown -h now 立即关机
shutdown -h 10:10 10:10分关机
shutdown -h +10 10分钟后关机
shutdown -r now 立即重启
init 0 关机
init 6 重启
常用用法:
init 3 切换到字符界面
init 5 切换到图形界面
练习的时候,mv命令的使用对象,建议使用前面cp命令的复制品,防止移动了系统重要文件导致系统宕机
练习的时候,rm命令的使用对象,建议使用前面cp命令的复制品,防止移动了系统重要文件导致系统宕机
[root@localhost/]# vim /root/test.txt
vim编辑器:
按i键
命------------------------------------------------>编辑模式(插入模式)
令
模 按:键
式------------------------------------------------>末行模式
进入到vim编辑器默认的模式是命令模式(输入各种快捷键完成一些列的操作)
命令模式无法编辑文本内容:如果想要编辑文本内容,需要先进入编辑模式
编辑模式与末行模式之间无法直接切换,需要先按Esc回到命令模式再切换
末行模式可以保存文档
末行模式:wq保存并退出
末行模式:q!强制不保存并退出
[root@localhost/]# cat /root/test.txt
第二天:存储管理
文件系统原理
添加一块磁盘用于实验
除了磁盘类型需要选择为SATA,其它一直点下一步直到完成
查看硬盘:
[root@localhost ~]# lsblk
#sdb即为新添加的磁盘
[root@localhost ~]# fdisk /dev/sdb
①添加一个主分区:按n,然后连续按4次回车,然后+size{K,M,G,T,P},再回车
命令(输入 m 获取帮助):【n,回车】
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):【直接回车】
将使用默认回应 p。
分区号 (1-4, 默认 1): 【直接回车】
第一个扇区 (2048-41943039, 默认 2048): 【直接回车】
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 【+1G,回车】
创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。
【重复①添加主分区步骤三次,分别添加大小为1G、2G、1G的三个主分区】
②添加扩展分区:按n,然后按四次回车
命令(输入 m 获取帮助):【n,回车】
分区类型
p 主分区 (3个主分区,0个扩展分区,1空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 e):【直接回车】
将使用默认回应 e。
已选择分区 4
第一个扇区 (8390656-41943039, 默认 8390656): 【直接回车】
上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-41943039, 默认 41943039): 【直接回车】
创建了一个新分区 4,类型为“Extended”,大小为 16 GiB。
【##扩展分区为了不造成空间的浪费,所以需要把所有剩余空间划分完】
③添加逻辑分区:按n,然后按2次回车,然后+size{K,M,G,T,P},再回车
命令(输入 m 获取帮助):【n,回车】
所有主分区都在使用中。
添加逻辑分区 5
第一个扇区 (8392704-41943039, 默认 8392704): 【直接回车】
上个扇区,+sectors 或 +size{K,M,G,T,P} (8392704-41943039, 默认 41943039): 【+1G,回车】
创建了一个新分区 5,类型为“Linux”,大小为 1 GiB。
【##逻辑分区是在扩展分区的基础上划分的,逻辑分区的总大小不能超过扩展分区】
完成分区后,需要确认(p指令可以查看分区列表)所有的分区是没有问题的,如果发现有问题,则q退出(只要没有保存,分区都还未生效),重新分区;如果没问题,则w保存并退出
[root@localhost ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 1G 0 part
[root@localhost ~]# mkfs.xfs /dev/sdb1
###格式化的命令:mkfs.文件系统类型 /dev/分区路径
[root@localhost ~]# mount /dev/sdb1 /mnt/ ###这是临时挂载
临时挂载:重启失效
永久挂载:开机自动挂载
[root@localhost ~]# umount /mnt ###先卸载原有的临时挂载
[root@localhost ~]# vim /etc/fstab ###在文件中添加以下一行
/dev/sdb1 /part1 xfs defaults 0 0
分区路径 挂载点 文件系统类型 挂载参数(默认写defaults) 0 0
[root@localhost ~]# mkdir /part1 ###创建挂载点
[root@localhost ~]# mount -a ###检查/etc/fstab文件中是否有格式错误,并挂载未被挂载的设备
[root@localhost ~]# df -Th
/dev/sdb1 xfs 1014M 40M 975M 4% /part1
[root@localhost ~]# touch /part1/1.txt
[root@localhost ~]# blkid /dev/sdb1 ###查看分区的uuid号和文件系统类型(格式化之后才能看到)
交换分区(交换空间)
第一步:添加一个分区(512M):分区的大小决定了交换空间的大小
第二步:格式化成交换空间
[root@localhost ~]# mkswap /dev/sdb6
第三步:临时启用交换分区(重启失效)
[root@localhost ~]# swapon /dev/sdb6
[root@localhost ~]# swapon -s
[root@localhost ~]# swapoff /dev/sdb6 ###停用交换分区
第四步:设置交换空间开机自动启用
[root@localhost ~]# vim /etc/fstab ###往配置文件中添加以下的一行
/dev/sdb6 swap swap defaults 0 0
###交换空间在文件系统类型那个字段填写swap即可
[root@localhost ~]# swapon -a ###类似于mount -a,是swap专用
[root@localhost ~]# swapon -s
逻辑卷分区:
第一步:标准分区(200M)
第二步:创建卷组
[root@localhost ~]# vgcreate vg1 /dev/sdb7
Physical volume "/dev/sdb7" successfully created.
###创建卷组时,会自动创建对应的物理卷
Volume group "vg1" successfully created
第三步:划分逻辑卷
[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
第四步:逻辑卷格式化挂载使用
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
[root@localhost ~]# vim /etc/fstab
/dev/vg1/lv1 /part2 ext4 defaults 0 0
[root@localhost ~]# mkdir /part2
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th
扩大逻辑卷的空间:
情况1:卷组剩余空间足够
[root@localhost ~]# lvextend -L +50M /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1
刷新文件系统:
①ext文件系统:resize2fs /逻辑卷分区路径
②xfs文件系统:xfs /逻辑卷分区路径
情况2:卷组剩余空间不够
(1)扩大卷组的空间
[root@localhost ~]# vgextend vg1 /dev/sdb2
(2)按照第一种情况操作
卷组划分空间的最小单位PE:默认大小4M
修改已存在卷组的PE大小
[root@localhost ~]# vgchange -s 2M vg1
要求:
PE大小必须为2的n次幂
PE大小必须能被基于这个卷组创建的逻辑卷大小整除
创建卷组时指定PE大小
[root@localhost ~]# vgcreate -s 8M vg2 /dev/sdb3
[root@localhost ~]# vgdisplay vg2
[root@localhost ~]# lvcreate -l 20 -n lv2 vg2
###-l:可以指定逻辑卷大小为多少个PE
高级存储功能:
准备工作:
[root@localhost ~]# mount /dev/sr0 /mnt/
[root@localhost ~]# mount /dev/sr0 /mnt/
[root@localhost ~]# ls /mnt/
[root@localhost ~]# rpm -ivh /mnt/BaseOS/Packages/dnf-utils-4.0.2.2-3.el8.noarch.rpm
[root@localhost ~]# yum-config-manager --add file:///mnt/BaseOS
[root@localhost ~]# yum-config-manager --add file:///mnt/AppStream
[root@localhost ~]# vim /etc/yum.conf
gpgcheck=1改成gpgcheck=0
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
Stratis配置
①安装软件包
[root@localhost ~]# yum -y install stratis-cli stratisd
②启动服务并设置服务开机自启
[root@localhost ~]# systemctl enable --now stratisd
③添加一块硬盘,方法参考上面的笔记
[root@localhost ~]# stratis pool create pool1 /dev/sdc
④查看可用池的列表
[root@localhost ~]# stratis pool list
⑤添加一个物理设备(块设备)到已存在的存储池
[root@localhost ~]# stratis pool add-data pool1 /dev/sdd
⑥查看存储池有哪些块设备
[root@localhost ~]# stratis blockdev list
⑦创建动态、灵活的文件系统
[root@localhost ~]# stratis filesystem create pool1 fs1
⑧查看文件系统
[root@localhost ~]# stratis filesystem list
⑨挂载文件系统
[root@localhost ~]# blkid /stratis/pool1/fs1
/stratis/pool1/fs1: UUID="8e01f884-1d75-4f2d-a77f-8564568d7f7a" TYPE="xfs"
###查看UUID及文件系统类型
[root@localhost ~]# vim /etc/fstab
UUID="8e01f884-1d75-4f2d-a77f-8564568d7f7a" /part3 xfs defaults,x-systemd.requires=stratisd.service 0 0
[root@localhost ~]# mkdir /part3
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th
⑩创建测试文件
[root@localhost ~]# vim /part3/file1
hello world
⑾创建快照
[root@localhost ~]# stratis filesystem snapshot pool1 fs1 snap1
[root@localhost ~]# stratis filesystem list
[root@localhost ~]# rm -rf /part3/file1
[root@localhost ~]# mount /stratis/pool1/snap1 /part3/
[root@localhost ~]# cat /part3/file1
hello world
VDO卷的配置:
①安装软件包(默认已安装)
[root@localhost ~]# yum -y install vdo kmod-kvdo
②添加一块硬盘,创建vdo卷,指定逻辑大小50G
[root@localhost ~]# vdo create -n vdo1 --device /dev/sde --vdoLogicalSize 50G
③查看vdo卷的属性与状态
[root@localhost ~]# vdo status -n vdo1
④显示vdo卷列表
[root@localhost ~]# vdo list
⑤停止和启动vdo卷
[root@localhost ~]# vdo stop -n vdo1
[root@localhost ~]# vdo start -n vdo1
⑥查看是否启用了压缩和重复数据删除的功能
[root@localhost ~]# vdo status -n vdo1 | grep Dedu
Deduplication: enabled
[root@localhost ~]# vdo status -n vdo1 | grep Com
Compression: enabled
⑦格式化vdo卷
[root@localhost ~]# mkfs.xfs -K /dev/mapper/vdo1
-K:加快格式化的速度
⑧检查设备事件(第⑦格式化)处理是否完成
[root@localhost ~]# udevadm settle
⑨挂载使用
[root@localhost ~]# blkid | grep vdo1
/dev/mapper/vdo1: UUID="fb6083b5-29cf-4d8b-8d81-f687b883cfbf" TYPE="xfs"
复制UUID
[root@localhost ~]# vim /etc/fstab
UUID="fb6083b5-29cf-4d8b-8d81-f687b883cfbf" /part4 xfs defaults,x-systemd.requires=vdo.service 0 0
[root@localhost ~]# mkdir /part4
[root@localhost ~]# mount -a
⑩查看卷的初始信息
[root@localhost ~]# vdostats --human-readable
⑾准备一个大文件用于测试
[root@localhost ~]# dd if=/dev/urandom of=/root/testfile1 bs=1M count=300
⑿把文件复制到vdo卷的挂载目录
[root@localhost ~]# cp testfile1 /part4/testfile1.1
[root@localhost ~]# vdostats --human-readable
⒀重复多次操作,观察Used与saving%变化
[root@localhost ~]# cp testfile1 /part4/testfile1.2
[root@localhost ~]# vdostats --human-readable
[root@localhost ~]# cp testfile1 /part4/testfile1.3
[root@localhost ~]# vdostats --human-readable
WEB服务器:
准备工作:设置防火墙放行所有服务
[root@localhost ~]# firewall-cmd --set-default-zone=trusted
[root@localhost ~]# mount /dev/sr0 /mnt/
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
xshell实现图形工具调用:
①配置简单的httpd服务:
(1)装包:安装httpd软件包
[root@localhost ~]# yum -y install httpd
(2)起服务:启动服务并设置服务开机自启
[root@localhost ~]# systemctl enable --now httpd
(3)本机访问测试
[root@localhost ~]# firefox http://127.0.0.1
(4)书写一个自己的页面文件
httpd默认网页文件根目录:/var/www/html
默认主页文件名称要求:index.html
[root@localhost ~]# vim /var/www/html/index.html
<marquee> <font color=red> <h1>TEST
滚动 红色字体 字体变大
再次本机测试:
[root@localhost ~]# firefox http://127.0.0.1
httpd的默认配置:
Listen:监听地址:端口号(默认:80)
ServerName:本站点注册的DNS名称(域名或网址)
DocumentRoot:网页文件根目录(默认:/var/www/html)
DirectoryIndex:首页、主页文件名称(默认:index.html)
##########################################################################
物理机准备:
一、修改windows中的hosts文件(需要使用管理员身份进行修改)
(1)在windows-开始菜单-附件-记事本-右击:管理员身份打开
(2)点击打开
(3)
(4)
添加一行:172.25.0.11 www0.example.com server0.example.com webapp0.example.com
(5)保存
二、控制面板\网络和 Internet\网络连接
修改的ip地址
验证:
虚拟机准备:
配置临时IP地址(重启失效)
[root@localhost ~]# ifconfig ens160 172.25.0.11/24
访问测试:使用物理机浏览器访问:http://www0.example.com/
##########################################################################
自定义网页文件根目录:
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
将这一行配置修改成:DocumentRoot "/var/www/myweb"
[root@localhost ~]# mkdir /var/www/myweb
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# vim /var/www/myweb/index.html
myweb
虚拟web主机:在一台服务器上提供多个不同的web站点
(只要使用了虚拟web主机,主配置文件中配置的站点就会失效)
构建方式:
基于域名的虚拟主机(主流)
基于端口的虚拟主机
基于IP地址的虚拟主机(淘汰)
[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /var/www/myweb
</VirtualHost>
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/qq
</VirtualHost>
[root@localhost ~]# mkdir /var/www/qq
[root@localhost ~]# vim /var/www/qq/index.html
这是qq的网站
[root@localhost ~]# systemctl restart httpd
物理机浏览器访问测试:http://www0.example.com/和http://server0.example.com/
动态网站:
[root@localhost ~]# mkdir /var/www/webapp
手写一个php测试页面
[root@localhost ~]# vim /var/www/webapp/test.php
<?php
phpinfo();
?>
[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf
修改配置文件成这个样子
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /var/www/myweb
</VirtualHost>
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/webapp
</VirtualHost>
[root@localhost ~]# systemctl restart httpd
物理机访问测试:
[root@localhost ~]# yum -y install php
[root@localhost ~]# systemctl restart httpd
物理机访问测试:http://webapp0.example.com/test.php
[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/webapp
Alias / /var/www/webapp/test.php ###添加这一行配置
</VirtualHost>
[root@localhost ~]# systemctl restart httpd
物理机再次访问测试:http://webapp0.example.com/
安全web服务:
(1)安装支持https安全网站服务的模块
[root@localhost ~]# yum -y install mod_ssl
[root@localhost ~]# ls /etc/httpd/conf.d/ssl.conf
(2)生成加密私钥
[root@localhost ~]# openssl genrsa -out server.key 2048
(3)生成证书请求文件;按照以下方法填写国家名、省市、公司等信息
[root@localhost ~]# openssl req -new -key server.key -out server.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GuangDong
Locality Name (eg, city) [Default City]:GuangZhou
Organization Name (eg, company) [Default Company Ltd]:XunFang
Organizational Unit Name (eg, section) []:Zhyx
Common Name (eg, your name or your server's hostname) []:localhost
Email Address []:redhat@xunfang.com
A challenge password []:redhat
An optional company name []: 直接回车
(4)生成自签名证书类型为x509,有效期3650天
[root@localhost ~]# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
(5)修改配置文件
[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf
新开终端:
[root@localhost ~]# cp server.crt /etc/pki/tls/certs/server0.crt
[root@localhost ~]# cp server.key /etc/pki/tls/private/server0.key
(6)重启服务
[root@localhost ~]# systemctl restart httpd
(7)访问测试:物理机浏览器访问:https://www0.example.com/
http协议:默认端口号80
https协议:安全http默认端口号是443
MariaDB数据库:
(1)安装软件包
[root@localhost ~]# yum -y install mariadb mariadb-server
[root@localhost ~]# ls /var/lib/mysql/
[root@localhost ~]# systemctl enable --now mariadb
[root@localhost ~]# ls /var/lib/mysql/
(2)数据库初始化配置
[root@localhost ~]# mysql ###空密码登录数据库
MariaDB [(none)]> SHOW DATABASES; ###列出所有的数据库
MariaDB [(none)]> CREATE DATABASE linux; ###新建一个数据库linux
MariaDB [(none)]> DROP DATABASE linux; ###删除一个数据库linux
MariaDB [(none)]> exit
[root@localhost ~]# mysqladmin -u root password 'redhat' ###初始化设置密码
[root@localhost ~]# mysqladmin -u root -p password ###交互式修改密码更安全
Enter password:【原密码,回车】
New password: 【新密码,回车】
Confirm new password: 【新密码,回车】
[root@localhost ~]# mysql -uroot -p密码 ###非交互式登录数据库
[root@localhost ~]# mysql -uroot -p ###也可以使用交互式登录更安全
(3)数据库基本操作
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE mysql; ###切换到某一个数据库
MariaDB [mysql]> SHOW TABLES; ###列出当前所在库的所有表
MariaDB [mysql]> SELECT * FROM user; ###查看一张表的所有内容
MariaDB [mysql]> DESC user; ###描述表,筛选出想要看的字段
MariaDB [mysql]> SELECT Host,User,Password FROM user; ###查询列出想要看的字段
MariaDB [mysql]> SELECT Host,User,Password FROM user WHERE Password='';
###条件查询,筛选出符合条件“密码Password字段为空”的记录
MariaDB [mysql]> DELETE FROM user WHERE Password='';
###删除空密码用户
(4)数据库授权
需求:创建一个数据库mydb,该库允许lisi查询,此用户的密码为redhat
MariaDB [mysql]> CREATE DATABASE mydb;
MariaDB [mysql]> GRANT SELECT ON mydb.* TO lisi@localhost IDENTIFIED BY 'redhat';
MariaDB [mysql]> SELECT Host,User,Password FROM user;
LAMP论坛搭建:
安装软件包:
[root@server0 ~]# yum–y install httpd php php-xml php-mysqlnd mariadb-server
部署论坛:
(1)数据库准备
MariaDB [(none)]> CREATE DATABASE bbsdb;
MariaDB [(none)]> GRANT ALL ON bbsdb.* TO runbbs@localhost IDENTIFIED BY 'pwd123';
MariaDB [(none)]> SELECT Host,User,Password FROM mysql.user;
MariaDB [(none)]> exit
(2)代码准备
[root@server0 ~]# yum -y install lrzsz
把代码压缩包拉到xshell窗口,松手完成上传
或者
先使用ftp软件将代码从windows共享给linux系统
[root@server0 ~]# wget ftp://172.25.0.44/Discuz_X3.3_SC_UTF8.zip
(3)解压代码
[root@server0 ~]# mkdir dir
[root@server0 ~]# unzip Discuz_X3.3_SC_UTF8.zip -d dir/
[root@server0 ~]# rm -rf /var/www/html/*
[root@server0 ~]# cp -r dir/upload/* /var/www/html/
[root@server0 ~]# chown -R apache:apache /var/www/html/
[root@server0 ~]# setenforce 0
[root@server0 ~]# systemctl restart httpd
(4)修改httpd的配置
[root@localhost ~]# vim /etc/httpd/conf.d/web01.conf
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /var/www/myweb改成DocumentRoot /var/www/html
</VirtualHost>
[root@server0 ~]# systemctl restart httpd
(5)安装论坛:
物理机浏览器访问:http://172.25.0.11
根据提示,类似于windows安装软件那样完成论坛安装
安装完成后,点击右下角