系统硬件知识阶段回顾:
1)硬件分类概念介绍:
硬件外观分类:U(服务器高度)==>1U=4.45cm
机架服务器,刀片服务器,塔式服务器
硬件用途分类:家用主机,企业服务器(物理 云主机)
硬件性能分类:小型机服务器,大型机服务器
2)硬件组成部分说明:
CPU-----------------运算/控制
内存-----------------存储数据(临时存储) 用于网站服务
磁盘-----------------存储数据(永久存储)
网卡-----------------网络通讯
电源-----------------负责供电
风扇-----------------负责散热
阵列卡---------------整合硬盘
远程管理卡------------控制远程开机/批量远程安装系统
主板-----------------串联所有硬件
3)硬件重要组成说明:
CPU信息 型号Xeon(至强系列) 核数(处理多任务能力) 路数(CPU颗数) 主频 缓存(L1/L2/L3)
内存信息 进程信息(运行的程序) 缓冲区(加快存储数据) 缓存区(加快读取数据)
查看进程信息:ps,top
磁盘信息 磁盘容量(B==>KB==>MB==>GB==>TB==>PB)
磁盘接口(SATA==>SCSI==>SAS==>PCI-E)
磁盘转速(10k 15k)
电源 冗余能力(双路电源 UPS 发电机)
阵列卡 整合硬盘(逻辑整合)
①提升单块硬盘容量
②提升硬盘安全性
raid 0:
优势:提升存储数据效率
缺点:安全性低
raid 1:
优势:提高数据存储效率安全性
缺点:存储效率低,存储容量有损失
阵列配置: https://www.cnblogs.com/passzhang/articles/8672029.html
③提升存储数据效率
远程管理卡 网卡网口(管理IP地址)
4)硬件性能指标介绍:
CPU-->内存-->网卡-->固态硬盘-->机械硬盘
5)企业存储数据方案:
高并发:
存储 --> 内存中(缓冲区)(UPS/发电机/专用电) -> 磁盘中
读取 --> 内存中(缓存区) <-- 磁盘中
低并发:
存储 --> 磁盘中
读取 --> 内存中(缓存区) <-- 磁盘中
系统安装部署阶段回顾:
1)操作系统概念介绍:
系统概念:人与计算机硬件交流的中介
系统组成:内核 解释器 外围软件程序
系统特点:开源 多用户 安全性 服务器常用操作系统
2)操作系统发展历史:
unix :贝尔实验室
minix :谭邦宁 教学
GNU : 斯托邦 开发出一个类unix系统
FSF GNU GPL
内核 :托瓦兹 学生 内核+GNU=Linux
3)操作系统版本选择:
centos 7
redhat 7
Debian
ubuntu
4)操作系统安装部署:
虚拟软件概念:虚拟创建多个真实系统环境 共享硬件资源
虚拟软件部署:
创建虚拟主机 如何迁移虚拟主机
编辑虚拟网络
PS:系统虚拟化功能是否开启 bios
虚拟软件服务是否开启
无法运行虚拟主机
5)操作系统安装:
如何下载获取系统镜像
将镜像文件加载到光驱
启动虚拟主机安装系统
centos install 7 ---> 修改网卡: net.ifnames=0 biosdevname=0
修改网卡和主机名 ---> IP地址 10.0.0.200 掩码(规划地址范围) 网关地址(从一个网络到其他网络必经之路)
操作系统分区过程 ---> /dev/sda1-/boot /dev/sda2-swap 8G /dev/sda3-/
系统预装软件选择 ---> 最小化安装 1236
系统用户设置密码 ---> root
系统远程连接阶段回顾:
1)掌握系统网络配置方法
①图形界面配置:
nmtui
提示:网卡地址信息确认正确
确认NetworkManager网络管理服务是否开启
②编辑文件配置:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
确认网络服务是否重启:
systemctl restart network
ip address show
======================================================================
问题说明:
重启网络服务,网卡地址依旧不正确
检查确认网络配置
先将NetworkManager服务关闭
======================================================================
======================================================================
检查确认工作:
测试是否可以访问外网:ping 223.5.5.5 ===> ping 10.0.0.254
测试是否可以域名访问:ping www.baidu.com DNS地址信息
======================================================================
2)掌握远程软件配置方法
3)掌握远程连接配置方法
配置好:地址 端口 协议 用户名 密码
4)掌握远程连接排错思路
确认链路是否畅通
确认安全策略是否阻止
确认服务是否开启
telnet 10.0.0.200 22
systemctl status 服务
ps -ef|grep 服务
netstat 检查网络服务端口信息状态
netstat -ltunp|grep 22
-l 显示详细信息
-n 显示数字形式地址而不是去解析主机、端口或用户名
-t
-u
-p 显示套接字所属进程的PID和名称
======================================================================
强制停止进程方法(三个杀手):
①kill 进程号码----------杀死进程,反复执行命令会有提示
kill -9 进程号码-------强行杀死进程(千万慎用)
②killall 进程名---------杀死进程,反复执行命令会有提示
③pkill 进程名-----------模糊杀进程,反复执行命令没有提示
======================================================================
系统基础命令阶段回顾:
1)掌握系统必知必会内容:
什么是命令提示符
命令语法格式信息 命令 参数 对象
系统目录结构信息 一切从根开始(绝对路径/相对路径)
2)掌握系统运行管理命令:
shutdown -h/-r/-c
3)掌握系统目录相关命令:
1.创建目录: mkdir -p 目录信息
2.查看目录: ls -d 目录信息
3.使用目录: cd ~ cd ../ . cd - cd (绝对路径/相对路径)
4.所在路径: pwd
5.删除目录: rm -rf /目录信息 rm -rf /目录
4)掌握系统文件相关命令:
1.创建文件: touch 文件信息
2.编辑文件:
方法一: vi / vim
三种模式:
a 命令模式 ---> i I a A o O s S C ---> 编辑模式
---> : / ? ---> 底行模式
b 编辑模式 ---> esc ---> 命令模式
c 底行模式 ---> esc ---> 命令模式
======================================================================
使用技巧:
如何快速移动光标:
G/gg --- 上下移动光标
^ 0/$ --- 左右快速移动
如何快速编辑文件:
yy dd p dG r R
底行操作命令信息:
:set nu / :set nonu
:s###g
:wq! :q!
:noh
:6203,6209copy2 vim
:6203,6209move2 vim
======================================================================
======================================================================
批量编辑多行信息 vim
添加注释信息:
第一个历程: 先将光标移动到要编辑内容的第一行
第二个历程: 进入视图块模式
ctrl+v
第三个历程: 移动光标选中多行信息
第四个历程: 进入编辑模式
shift+i --- 编辑信息
第五个历程: 退出编辑模式
esc
======================================================================
======================================================================
取消注释信息:
第一个历程: 先将光标移动到要编辑内容的第一行
第二个历程: 进入视图块模式
ctrl+v
第三个历程: 移动光标选中多行信息
第四个历程: 删除选中的信息
d 或者 x
======================================================================
方法二: echo >/>>
echo oldboy69 > /tmp/oldboy.txt
echo oldboy69 >> /tmp/oldboy.txt
方法三: cat >> <<
cat >>/tmp/oldboy.txt <<EOF
oldboy01
oldboy02
oldboy03
EOF
3.查看文件:
方法一: cat -n
方法二: head / tail -f
方法三: less / more
less 看书(逐行/逐页) 回车逐行 空格逐页
方向键上(返回) 字母B逐页(返回)
more 看书(逐行/逐页)
4.备份文件: cp /etc/文件 /tmp cp -r 目录A /目录/
5.移动文件: mv 数据信息 路径 mv 重命名
5)掌握系统命令获取帮助:
方法一: help
命令 --help --- 获得命令参数帮助
方法二: man
man 命令
方法三: 获取内置命令帮助信息
help 内置命令
6)掌握系统快捷方式使用:
1)利用方向键--------------------------------快速调取历史命令(输入命令会临时存在于内存)
2)快速移动光标---------------Ctrl +a 到行首
Ctrl +e 到行尾
Ctrl +方向键 到中间
3)快速操作命令信息------------Ctrl +u 将光标前的内容剪切
Ctrl +k 将光标后的内容剪切
Ctrl +y 粘贴剪切的内容
Ctrl +w 以空格作为分隔,剪切每个字符串信息
4)特殊功能快捷方式 Ctrl +c 中断正在执行的命令操作
Ctrl +l 清屏操作
Ctrl +s 进入锁定状态
Ctrl +q 退出锁屏状态
Ctrl +r 快速搜索/检索曾使用过的命令
系统目录结构阶段回顾:
1)操作系统挂载概念:
什么是挂载?给存储设备文件创建一个挂载点,将输入存储在挂载点中
实现挂载方式mount 存储设备文件(本地设备 网络存储设备NFS) 挂载点目录(空目录)
实际操作演示:实现光驱挂载
a 系统加载光驱设备
b 可以进行挂载操作
mount /dev/cdrom
c 进入挂载点目录检查
PS: 如何搭建企业本地yum仓库
2)操作系统目录结构:
/bin --> /usr/bin 保存系统命令文件文件信息
/sbin --> /usr/sbin
/boot 负责引导系统启动 (批量安装系统)
/dev 设备文件保存目录
光驱设备: /dev /cdrom --> /dev/sr0
磁盘设备: /dev/sda1
字符流文件:生成随机数
======================================================================
补充:如何在系统中生成随机数
利用tr命令
-c, -C, --complement use the complement of SET1
-d, --delete delete characters in SET1, do not translate
删除指定字符,不做替换
tr -cd 'a-zA-Z0-9' </dev/urandom |head -c 6
echo $RANDOM
======================================================================
/etc 保存系统或者软件服务配置文件信息
/home 用户家目录
/root
/lib --> usr/lib 存放库文件目录
/lib64 -->/usr/slib
/mnt 临时挂载点目录
/opt 存储第三方软件程序信息
/usr 存储第三方软件
/proc 存储内核
/tem 临时回收站
/var 存放经常变化数据文件信息
3)操作系统重要文件:
/etc目录
1. 网卡配置文件
文件路径信息: /etc/sysconfig/network-scripts/ifcfg-eth0
文件内容信息: 地址信息
文件配置生效: 重启网络服务
2. DNS服务配置文件:
文件路径信息: /etc/resolv.conf
文件内容信息: nameserver xxxxxx
文件配置生效: 即时生效
3. 本地解析文件:
文件路径信息: /etc/hosts
文件内容信息: IP地址信息 域名名称
文件配置生效: 即时生效
4. 主机名称配置文件:
文件路径信息: /etc/hostname
文件内容信息: 主机名称
文件配置生效: 重启系统 永久配置
配置临时生效: hostnamectl set-hostname 名称信息
5. 系统自动挂载文件:
文件路径信息: /etc/fstab
文件内容信息: 存储设备信息(文件 UUID) 挂载点信息 文件系统类型(存储数据方式) 挂载参数
文件配置生效: 重启系统 / mount -a
6. 自动执行命令文件:
文件路径信息: /etc/rc.local --> /etc/rc.d/rc.local
文件内容信息: 命令信息
文件配置生效: 设置文件权限具有执行权限 chmod +x /etc/rc.d/rc.local
文件作用说明: 1. 让服务开机自动运行
2. 数据自动备份
7. 配置系统变量/别名文件:
文件路径信息: /etc/profile
文件内容信息: 环境变量(export PATH="环境变量内容信息") 别名设置(alias 别名='命令信息')
环境变量: 对有些特殊变量统称 PATH LANG PS1
文件配置生效: 重新连接 source
8. 系统运行级别文件:
文件路径信息: /etc/inittab
文件内容信息: 设置系统运行级别
运行级别: 系统不同运行启动方式
0 关机运行方式
1 单用户运行方式 修复系统/破解系统密码 (不需要登录/没有网络) windows PE
2 多用户运行方式 没有网络
3 多用户运行方式 具有网络
4 未使用运行方式
5 图形运行方式
6 重启运行方式
运行模式设置: systemctl set-default xxx.target
systemctl get-default
init 级别信息 runlevel
9. 系统提示信息文件:
文件路径信息: /etc/motd /etc/issue /etc/issue.net
需求: 每天看见不同小动物说话
/etc/profile.d --- 存放脚本文件信息, 每次连接登录系统,都会加载此目录中的脚本文件
/var目录
1. 系统服务运行情况日志文件
文件路径信息:/var/log/messages
文件内容信息:服务正常运行情况信息 异常信息
2. 系统服务用户登录信息日志
文件路径信息: /var/log/secure
文件内容信息: 登录系统用户信息(从哪个主机连接登录 以什么用户登录 是否登录成功)
=======================================================================================
如何让其他主机远程连接自己的虚拟主机
vmware软件虚拟网络编辑器中---选择NAT模式虚拟网卡---选择NAT设置
配置端口转发信息---- 端口映射 --- 192.168.20.202:9000 == 10.0.0.200:22
=======================================================================================
日志文件需要做什么处理:
日志文件切割处理: 按照时间(每小时 每天 每周)
vi cut_log.sh ---> 特殊目录
/etc/cron.daily --- 每天执行目录中脚本信息
/etc/cron.hourly --- 每小时执行目录中脚本信息
/etc/cron.monthly --- 每月执行
/etc/cron.weekly --- 每周执行
#!/bin/bash
mv /var/log/messages /var/log/messages_时间信息
systemctl restart rsyslog.service
=======================================================================================
4)操作系统软件安装:
1. 利用yum方式安装软件
安装命令: yum install -y tree
特点说明: 可以解决依赖 所有软件包可以直接下载
缺点说明: 依赖网络
yum list --- 显示yum仓库中所有可用的
yum search/provides --- 搜索每个包里面是否有指定
yum remove/erase --- 卸载软件包(慎用)
yum reinstall --- 重新安装修复程序
yum localinstall --- 本地安装软件程序 并解决
2. 利用rpm方式安装软件
安装命令: rpm -ivh tree.rpm
特点说明: 不依赖网络
缺点说明: 不能解决依赖
rpm -qa --- 查看确认软件是否安装成功
rpm -ql --- 查看软件安装生成数据信息保存路径
3. 编译安装
4. 二进制包
5)操作系统信息查看:
系统基础优化阶段回顾:
1)操作系统用户优化
创建用户: useradd oldboy
设置密码: passwd 用户信息 / echo 123456|passwd --stdin oldboy
切换用户: su - oldboy 将用户环境变量信息做彻底改变
删除用户: userdel -r oldboy
查看用户: id oldboy
2)操作系统下载优化
阿里源下载优化:
①base源优化:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
②epel源优化:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
确认是否更新好了base和epel源
yum repolist
清华源下载优化:
base源优化:
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
epel源优化:
https://mirrors.tuna.tsinghua.edu.cn/help/epel/
yum clean all --- 做yum刷新重置
) 操作系统安全优化
关闭安全服务程序: firewalld
临时关闭: systemctl stop firewalld
永久关闭: systemctl disable firewalld
关闭安全服务程序: selinux
临时关闭: setenforce 0
永久关闭: sed -i '7s#enforcing#disabled#g' /etc/selinux/config
sed命令语法: sed 参数 '' 文件信息
sed 's#enforcing#disabled#g' /etc/selinux/config
) 操作系统时间优化
熟悉时间调整命令: timedatectl
1) 手动调整时间信息: timedatectl set-time 时间信息
2) 自动同步时间信息:
方法一:
第一步: 环境准备
yum install -y chrony
systemctl start chronyd
timedatectl set-timezone Asia/Shanghai
第二步: 开启时间同步功能
timedatectl set-ntp 1
方法二:
ntpdate ntp1.aliyun.com
) 操作系统字符优化
LANG=XXX --- 影响字符信息环境变量
临时设置: export LANG=zh_CN.utf8
永久设置: vim /etc/locale.conf
localectl set-locale LANG=zh_CN.utf8
) 操作系统远程优化
/etc/ssh/sshd_config
79 GSSAPIAuthentication no
115 UseDNS no
systemctl restart sshd
) 操作命令提示优化 ping 10.0.0.1 - 10.0.0.100
PS1=XXX
临时调整: export PS1=XXXX
永久调整: export PS1=XXXX --> /etc/profile
[\[\e[31;1m\]\u\[\e[0m\]@\[\e[34;1m\]\h\[\e[0m\] \[\e[32;1m\]\W\[\e[0m\] \[\e[33;1m\]\t\[\e[0m\]]\$
设置颜色信息,为了产生命令结果更加醒目
测试一个局域网中,有哪些IP地址是可以使用的?
思路一: ping多个地址
for IP in {1..100}
do
ping 192.168.20.$IP
done
思路二: 了解ping命令用法
ping -c 3 -q 192.168.20.52 >>/tmp/ping.log
思路三: 访问通或者不通要有提示说明
如果ping是通: 提示 xxx地址 正在使用 (绿色)
如果ping不通: 提示 xxx地址 未被使用 (红色)
if [ $? -eq 0 ]
then
echo -e "\e[32;1m提示 xxx地址 正在使用\e[0m"
else
echo -e "\e[31;1m提示 xxx地址 未被使用\e[0m"
fi
echo -e "\e[31;1moldboy69\e[0m" 红色
echo -e "\e[32;1moldboy69\e[0m" 绿色
编写脚本:
#!/bin/bash
for IP in {1..100}
do
ping -c 3 -q 192.168.20.$IP >>/tmp/ping.log
if [ $? -eq 0 ]
then
echo -e "\e[32;1m提示信息: 192.168.20.$IP 正在使用\e[0m"
else
echo -e "\e[31;1m提示信息: 192.168.20.$IP 未被使用\e[0m"
fi
done
操作系统文件属性知识:
1)文件属性文件类型信息
在linux系统中, 文件类型不是有文件扩展名称决定的.
linux系统中有哪些类型文件:
普通文件 - 文本文件
二进制文件/命令文件
数据文件 /压缩文件
目录文件 d
链接文件 l
设备文件 b block 存储设备文件 /dev/sda1
c charset 字符流设备文件 /dev/urandom
s socket 网络套接字文件 ???
和文件类型相关命令操作:
1) 如何在系统中找寻文件信息
方法一: 查询命令文件信息
which cp
whereis cp
方法二: 根据文件名称查找到所在路径
locate --> 前提: 更新或者创建数据库文件 updatedb
find 命令语法信息:
find 查找区域目录信息 搜索的条件(参数信息)
搜索的条件:
1) 根据文件类型搜索数据 -type
find /oldboy -type f/d/l/c/b/s
2) 根据文件名称搜索数据 -name
find /oldboy -name "*dog*"
find /oldboy -iname "oldboy.txt"
3) 根据文件大小搜索数据
find /oldboy -size +10k --- 寻找大于10k文件
find /oldboy -size -1G --- 寻找小于1G文件
find /oldboy -size 10 --- 寻找大小正好是10字节文件
======================================================================
补充: find命令根据大小查找数据单位信息
`b' for 512-byte blocks (this is the default if no suffix(角标/下标) is used)
1个块=512字节 +1 > 512字节 ok -2 <1024 (小于一整块) 1 = 512字节 ok
`c' for bytes
最小尺寸单位
`w' for two-byte words
以两个字节作为一个单词找出不同尺寸文件
`k' for Kilobytes (units of 1024 bytes)
依据kb尺寸寻找数据
`M' for Megabytes (units of 1048576 bytes) ****
依据Mb尺寸寻找数据
`G' for Gigabytes (units of 1073741824 bytes)
依据Mb尺寸寻找数据
======================================================================
4) 根据文件路径深度查找
# find /oldboy -maxdepth 1 -name "oldboy01.txt"
/oldboy/oldboy01.txt
-maxdepth --- 查找数据最深深度
# find /oldboy -mindepth 2 -name "oldboy01.txt"
/oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy03/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy01.txt
/oldboy/oldboy01/oldboy01.txt
-mindepth --- 查找数据最小深度, 从最小深度继续向下查找
5) 根据条件逻辑查找数据
1) 请找出文件大小是大于6k 并且 还要找出文件名称是有oldboy开头的文件
并且逻辑关系 -a
find /oldboy -size +6k -a -name "oldboy*"
find /oldboy -size +6k -name "oldboy*"
2) 请找出文件名称是oldboy开头的文件 和 oldgirl开头的文件
find /oldboy -name "oldboy*" -o -name "oldgirl*"
6) 根据时间条件查找数据
find /oldboy -mtime +7 --- 找距离当前时间7天以前的数据
find /oldboy -mtime -7 --- 找距离当前时间7天以内的数据
find /oldboy -mtime 7 --- 找距离当前时间之前正好7天的数据
过去--- +7 ----- 7 ------ -7 -- 当前时间
<=== 7天以前
| <====== -7 -- 7天以内
* 之前正好7天
find /var/ -mmin +1 --- ???
find /var/ -mmin -1 --- ???
find /var/ -mmin 1 --- ???
利用find命令实现批量处理数据
环境准备:
touch oldboy{01..10}.txt
touch oldgirl{01..10}.jpg
touch olddog{01..10}.avi
1. 批量删除指定数据
将oldboy开头的数据全部删除
步骤一: 先将要处理数据找出来
步骤二: 将数据如何批量删除
方法一: 利用find命令参数
find /oldgirl/ -name "oldboy*" -delete
方法二: 利用管道+xargs命令进行处理
find /oldgirl/ -type f -name "olddog*" | xargs rm
xargs
1) 将产生信息进行转换, 转为命令可以识别的 参数或者对象信息
2) 可以进行分组操作/将分组进行整合
[root@oldboy69 oldgirl 00:40:41]# xargs < test.txt
01 02 03 04 05 06 07 08 09 10
[root@oldboy69 oldgirl 00:41:20]# xargs -n3 < test.txt
01 02 03
04 05 06
07 08 09
10
方法三: 利用反引号进行处理
rm -f `find /oldgirl/ -type f -name "olddog*"`
方法四: 利用find命令特殊参数 -exec
find ./ -type f -name "oldboy*" -exec rm -f {} \;
find /oldgirl/ -type f -name "oldboy*" -exec rm {} \; -o -type f -name "oldgirl*" -exec rm {} \;
2. 批量删除指定数据
2) 查看目录文件结构信息
tree
tree -L 3 --- 指定查看目录层级信息
tree -d --- 只查看完整目录结构信息
3) 如何压缩数据信息
tar --- 压缩数据/解压数据
将数据进行压缩:
命令语法: tar zcvf 生成压缩包路径/压缩包.tar.gz 需要进行压缩数据01 需要进行压缩数据02 ..
参数说明:
z --- 数据压缩方式 gzip
c --- 创建一个压缩文件
v --- 显示压缩过程
f --- 指定压缩包路径信息
将链接文件进行压缩处理时:
tar zcvhf 生成压缩包路径/压缩包.tar.gz 需要进行压缩链接文件
h --- 指定压缩链接文件所指定源文件
将数据进行解压:
命令语法: tar xvf 压缩包路径/压缩包.tar.gz (默认解压, 会将数据解压到当前路径)
参数说明:
x --- 提取压缩包中的数据(解压)
指定解压数据路径信息:
tar xf ./sys_backup.tar.gz -C /oldboy
对压缩包中的数据进行查看
tar tf sys_backup_2019-12-13.tar.gz
t --- 查看列表显示压缩包中的数据信息
===================================================================
补充: 提示信息作用:tar: Removing leading `/' from member names
解释: 将绝对路径 / 根目录信息进行移除 , 压缩数据
作用: 对系统数据信息进行保护
不想保护数据, 想解压时将源数据进行覆盖:
压缩时: tar zcvPf ---保留住根目录
解压时: tar xPf ---保留住根目录
===================================================================