Linux操作系统基础
实验所用系统为Redhat-rhel8.2。
Linux操作系统基础–linux系统中的文件传输
实验环境
需要两台主机并保证这两台主机可以通信
westos-vmctl creat westosb
nm-connection-editor
---> "-"删除已有ethernet
---> 点击“+”号选择Ethernet点击create
---> 设置name,在device里选择ens3,在Ipv4 Settings下的Method里选择Manual,在Addresses点击“+”,address(172.25.254.209),network(24),geteway(点击)
---> 点击save并关闭
---> ip a 查看状态
---> 链接真实主机ping 172.25.254.9
远程操作主机
ssh 远程主机ip -l 远程主机用户
##wetosa
systemctl set-default multi-user.target ##永久切换到无图形模式(需重启,可使用临时切换)
hostnamectl set-hostname westosa.westos.org ##重命名
nm-connection-editor ##图形方式设定ip
init 3 ##当前临时切换到无图形模式,开机恢复
##westosb
hostnamectl set-hostname westosb.westos.org
##真实主机shell
ssh -l root 172.25.254.109 ##链接虚拟机a
rm -rf .ssh/
ssh -l root 172.25.254.209 ##链接虚拟机b
rm -rf .ssh/
systemctl disable --now firewalld ##关闭火墙
一、scp命令
scp 本地文件 远程主机用户@远程主机ip:远程主机目录的绝对路径 ##上传
scp 远程主机用户@远程主机ip:远程主机文件的绝对路径 本地文件 ##下载
实验步骤:
- 在westosb中建立文件和目录
- 把本地文件复制到远程主机(上传)
- 把远程文件复制到本地(下载)
###westosb
touch westos
mkdir westosdir
###上传
scp westos root@172.25.254.109:/root/Desktop ##在当前主机以超级用户身份将文件westos上传到ip为172.25.254.109的主机/root/Desktop目录里
scp -r westosdir root@172.25.254.109:/root/Desktop ##-r 表示复制目录
scp -q westos root@172.25.254.109:/root/Desktop ##-q 表示传输文件时不显示进度
###westosa 下载
scp root@172.25.254.209:/root/Desktop/westos /root/Dsektop ##在当前主机以超级用户身份将ip为172.25.254.209的主机/root/Desktop目录里westos文件下载到本机目录/root/Dsektop里
#上传文件
#上传目录-r
#上传文件不显示进度-q
#下载文件
二、rsync
1、rsync和scp对比
- 创建测试脚本
vim check_scp.sh
///
time scp -qr /boot root@172.25.254.209:/root/Desktop
vim check_rsync.sh
///
time rsync -raCq /boot root@172.25.254.209:/root/Desktop
- 执行
sh check_scp.sh
sh check_rsync.sh
- 测试结果
#scp
三次执行时间几乎一致
#rsync
执行时间后两次远远小于第一次
scp
慢,但是复制完全
rsync
远程传输:快,但是不准确完整
2、rsync用法
rsync 文件 远程用户@远程主机ip:远程主机目录 ##上传
rsync 远程用户@远程主机ip:远程主机目录 文件路径 ##下载
rsync
-r ##复制目录
-l ##复制链接
-p ##复制权限
-t ##复制时间戳
-o ##复制拥有者
-g ##复制拥有组
-D ##复制设备文件
[注意]
复制远程目录时,“/mnt”表示复制目录本身以及目录里的文件;
“/mnt/”表示复制目录里的文件,不包含目录本身
实验步骤:
###b
touch /mnt/file{1..5}
chmod 777 /mnt/*
chown westos /mnt/*
ln -s /mnt/file /mnt/lee ##创建一个链接
###a
watch -n 1 ls -lR /mnt ##监控
###a另一个shell
rsync -r root@172.25.254.209:/mnt /mnt/ ##复制目录本身以及目录里的文件
rsync -r root@172.25.254.209:/mnt/ /mnt/ ##复制目录里的文件,不包含目录本身
-rlp ##同步权限
-rl ##同步链接
-rlpog ##同步用户组
-rlpogt ##同步时间
-rD ##同步设备文件
#实验环境
#/mnt
和/mnt/
的区别
#复制链接和权限
##复制拥有者和时间
#复制设备文件
三、文件的归档压缩
1、文件归档
tar
c ##创建
f ##指定文件名称
X ##解档
v ##现实过程
t ##查看
r ##向归档文件中添加文件
--get ##解档指定文件
--delete ##删除指定文件
-C ##指定解档路径
-P ##don‘t remove “/”(加P创建的tar文件打开后所有的内容全在根目录下;不加P创建的tar文件里的内容在被打包的目录里)
例:
tar cf etc.tar /etc/ ##将/etc/归档成etc.tar
tar tf etc.tar ##查看etc.tar
tar rf etc.tar westos_rhel8 ##向etc.tar中添加westos_rhel8
tar xf etc.tar ##解档etc.tar
tar f etc.tar --get westos_rhel8 ##解档文件包里的指定文件
tar f etc.tar --delete westos_rhel8 ##删除指定文件
tar xf etc.tar -C /root/Desktop ##指定解档路径
tar Pcf etc.tar /etc ##创建的tar文件里的内容在根目录下
2、文件的压缩
zip
zip (-r) mnt.tar.zip mnt.tar ##zip格式压缩(复制压缩,即原文件还在)
unzip mnt.tar.zip ##zip格式解压缩(解压后压缩文件还在)
gzip
gzip mnt.tar ##gzip格式压缩(直接将原文件压缩,下同)
gunzip mnt.tar.gz ##gzip格式解压缩(将压缩文件直接解压,解压后只剩解压格式的文件,下同)
bzip2
bzip2 mnt.tar ##bzip2格式压缩
bunzip2 mnt.tar.bz2 ##bzip2格式解压缩
xz(压缩后大小最小,不适合压缩图片和音频,只适合压缩文本文档)
xz mnt.tar ##xz格式压缩
unxz mnt.tar.xz ##xz格式解压缩
3、tar+压缩(打包并压缩)
gzip
tar zcf etc.tar.gz /etc ##原文件不会消失,即复制后打包压缩,且并没有形成新的文件
tar zxf etc.tar.gz ##原压缩文件不会消失,解压后也仍然是原文件本身--创建时间未改变
bzip2
tar jcf etc.tar.bz2 /etc
tar jxf etc.tar.bz2
xz
tar Jcf etc.tar.xz /etc
tar Jxf etc.tar.xz
du -sh /etc/ ##查看/etc/的大小
Linux操作系统基础–Linux系统中的软件管理
1、linux中软件包的类型
1.DEB #UBlinux DEBlinux(当前系统不适用)
2.RPM #redhat centOS fadora
3.bz2|gz|xz #1、需要源码安装需要编译
#2、绿色软件,打开可直接用
#ntfs-3g_ntfsprogs-2017.3.23.tgz 需要编译“configure”
#Firefox-latest-x86_64.tar.bz2 绿色软件
[注意] 在rhel8中只能使用绿色软件,源码编译软件和rpm软件
2、软件包的名称结构
[dhcp-server]-[4.3.6-30].[el8].[x84_64].[rpm]
1 2 3 4 5
1、软件名称
2、软件版本
3、软件的授权协议版本
4、软件架构
5、软件类型后缀
3、rpm命令管理软件包
rpm
-ivh ##安装参数组合 -i install -v verbose -h hash
-q ##查询(搭配其他命令使用)
-a(qa) ##所有
-f(qf) +目录 ##文件
-l(ql) ##软件安装文件列表
-e ##卸载
-c(qc) ##配置文件
-d(qd) ##说明
-p ##软件包(现有系统不太能用到)
--info ##软件信息
#例:rpm -q openssh-server-8.0p1-4.el8_1.x86_64 --info
--foece ##强制(只能解决重装时需要强行安装)
#例:rpm -ivh python3-jinja2-2.10.1-2.el8_0.noarch.rpm --force
--nodeps ##忽略依赖性
#例:rpm -ivh python3-jinja2-2.10.1-2.el8_0.noarch.rpm --nodeps
--scripts ##查询软件在安装或卸载过程中的运行脚本
#例:rpm -q python3-jinja2-2.10.1-2.el8_0.noarch.rpm --scripts
--Kv ##检测软件md5校验码
#例:rpm -Kv python3-jinja2-2.10.1-2.el8_0.noarch.rpm
--V ##检测已安装软件在系统中的文件被修改信息
#例:rpm -V linuxqq
拆解rpm包
rpm2cpio google-chrome-stable_current_x86_64.rpm | cpio -id
4、本地文件仓库的搭建
1)在系统中加载安装系统时使用的安装镜像
##下载镜像
172.25.254.250/isos
---> rhel-8.2-x86(copy link location)
---> su -root
---> mkdir /iso
---> cd /iso
---> wget + 复制的网址
##挂载镜像
mount /iso/rhel-8.2-x86_64-dvd.iso /sourcedir(会报错但挂载成功)
wget http://172.25.254.250/isos/rhel-8.2-x86_64-dvd.iso
mkdir /sourcedir
mount /iso/rhel-8.2-x86_64-dvd.iso /sourcedir
2)编写软件仓库文件
/etc/yum.repos.d/ ##软件源指向文件配置目录
##在此目录中不能有无法访问的源指向
vim westos.repo ##软件仓库指向文件
///
[AppStream] ##仓库名称
name=AppStream ##描述
baseurl=file:///sourcedir/AppStream ##地址(第三个“/”表示根目录)
gpgcheck=0 ##不检测gpgkey(跳过授权检测)(对源进行GPG校验,1是开启,0是关闭)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release(校验文件)
enabled=1(启用源)
[BaseOS]
name=BaseOS
baseurl=file:///sourcedir/BaseOS
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1
///
3)检测
dnf list all
4)整体步骤
cd /etc/yum.repos.d/
vim westos.repo(内容在上文)
cat westos.repo
cd
rpm -qa | wc -l
ls -l /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
dnf list all | wc -l
vim /etc/rc.d/rc.local ##开机自启配置文件
///
mount /iso/rhel-8.2-x86_64-dvd.iso /sourcedir/ ##设置开机自动挂载
///
chmod +x /etc/rc.d/rc.local ##增加执行权限
cat /etc/rc.d/rc.local
5、dnf软件管理命令
1)dnf命令
dnf repolist ##列出仓库信息
clean all ##清楚系统中已经加载的仓库缓存信息 /var/cache/dnf
list all ##列出所有软件
list available ##列出未安装软件
list installed ##列出已安装软件
install (-y) ##安装
renmove (-y) ##卸载
reinstall (-y) ##重新安装
search (+ssh等) ##搜索
whatprovides(*/ssh) ##搜索包含某文件的软件包
history ##dnf执行历史
history info +数字 ##某条dnf执行历史详细信息
group list ##列出软件组
group list --installed ##列出已安装软件组
group list --available ##列出未安装软件组
group list --hideen ##列出隐藏软件组
group install "" (-y) ##安装软件组
group info ##查看软件组信息
2)下载安装包
yumdownloader ##下载软件包到本机指定位置
yumdownloader httpd ##下载仓库中指定软件的安装包到当前目录
yumdownloader --destdir=/mnt ##下在仓库中指定软件的安装包到指定/mnt目录
yumdoenloader httpd --destdir=/mnt --resolve ##下载仓库中指定软件安装包和软件依赖性到/mnt目录
3)dnf和rpm区别
dnf
能识别出下载过程中需要的依赖关系并自动解决,但这些依赖关系必须在镜像安装包里
rpm
需要手动处理依赖关系
Linux操作系统基础–linux下的虚拟化部署
一、内核级的虚拟化
内核级的虚拟化
1、inter cpu ----> vmx(需要支持vmx)
2、amd cpu ----> svm查看当前主机有没有指令集
root用户下 cat /proc/cpuinfo | grep vmx
二、kvm虚拟化安装
- 真机
dnf group install "Virtualization Client" “Virtualization Tools" -y
Virtualization Client ##虚拟化客户端(在软件仓库配好的情况下,在隐藏软件组里)
Virtualization Tools ##虚拟化工具
systemctl enable --now libvirtd ##开启服务
- 真机root用户下
virt-manager(关闭已开启的虚拟机)
---> create a new virtual machine(Local install media)
---> iso
---> Memory(2048,内存必须>2g)
---> cpus(2)
---> image(20G,硬盘必须>8g)
---> 默认
---> 时区(上海)
---> 语言(中文和英文)
---> 键盘(默认)
---> Installation Destination(Custom)
---> "+"add a new mount point
---> "/",10G
---> "/boot",500mb
---> "swap",500mb
--->Done
---> Apccept Changes
---> Begin Installation
---> user(设置name,passwd,确认),root(设置passwd,确认)
---> reboot
---> License Information(accept)
--->finish
[注意] 内存>2g,硬盘>8g
三、kvm虚拟化信息
服务名称:
libvird
虚拟化核心
qemu/kvm
虚拟化存储目录(虚拟机硬盘)
/var/lib/libvirt/images/westos.qcow2(硬盘信息-存储数据,安装系统,不可以没有)
虚拟化硬件信息
/etc/libvirt/qemu/westos.xml(存储硬件)
修改硬件信息,比如虚拟机名字
改名需要在虚拟机关闭的情况下完成,之后重启虚拟机
vim /etc/libvirt/qemu/westos.xml
修改名字
systemctl restart libvirtd.service
重新连接
四、虚拟管理命令
virt-viewer westos & ##显示westos虚拟机
virt-manager ##打开虚拟机控制器
virsh list #列出运行的虚拟机
virsh list --all ##列出所有虚拟机
virsh start westos ##开启虚拟机
virsh shutdown westos ##正常关闭虚拟机
virsh destroy westos ##断电westos虚拟机
五、虚拟机快照
cd /var/lib/libvirt/images
qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images/node1.qcow2
##将安装好的虚拟机在/var/lib/libvirt/images下的westos.qcow2文件备份成node1.qcow2
virt-manager(须在虚拟机关闭的情况下)
选择添加已有的镜像(Import existing disk image)
---> forward
---> Browser
---> node1.qcow2
---> rhel 8.2
---> forward
---> memory(1g),cpu(1)
---> forward
---> name(node1)
---> finish
[注意] 快照的作用是在操作的过程中读写的文件不同,读的是westos.qcow2文件,写在快照node1.qcow2里,以保护虚拟机,如果写入过程出现错误,可以删掉快照,重新建一个新的,不会影响虚拟机。
快照不能运行后
rm -rf /var/lib/libvirt/images/node1.qcow2
qemu-img create -f qcow2 -b /var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images/node1.qcow2
##重新建一个快照