1、自建yum仓库,分别为网络源和本地源
1.1配置网络源
centos7
vim /etc/yum.repo.d/base.repo
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch/
https://repo.huaweicloud.com/centos/$releasever/os/$basearch/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=0
enable=1
[epel]
name=epel
baseurl=https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0
enable=1
[extras]
name=extras
baseurl=https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/
gpgcheck=0
enabled=1
centos8
vim /etc/yum.repo.d/base.repo
[baseos]
name=baseos
baseurl=https://repo.huaweicloud.com/centos/$releasever/BaseOS/$basearch/os/
https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearchos/
https://mirrors.cloud.tencent.com/centos/$releasever/BaseOS/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
[appstream]
name=appstream
baseurl=https://repo.huaweicloud.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/AppStream/$basearch/os/
gpgcheck=0
enabled=1
[epel]
name=epel
baseurl=https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch
gpgcheck=0
enabled=1
[extras]
name=extras
baseurl=https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os/
gpgcheck=0
enabled=1
1.2 本地源
[root@centos7 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
AppStream AppStream 5,684
BaseOS BaseOS 1,694
base7 base7 4,070
repolist: 11,448
[root@centos7 yum.repos.d]#
[root@centos7 yum.repos.d]#
[root@centos7 yum.repos.d]#
[root@centos7 yum.repos.d]#
[root@centos7 yum.repos.d]# cat local7.repo
[base7]
name=base7
baseurl=file:///var/www/html/centos/7
enabled=1
gpgcheck=0
[root@centos7 yum.repos.d]# cat local8.repo
[AppStream]
name=AppStream
baseurl=file:///var/www/html/centos/8/AppStream
enable=1
[BaseOS]
name=BaseOS
baseurl=file:///var/www/html/centos/8/BaseOS
enable=1
[root@centos7 yum.repos.d]#
1.3 建立私有yum仓库
centos7
直接挂载光盘模拟本地仓库
yum install -y httpd
systemctl enable --now httpd
cd /var/www/html
mkdir centos/{7,8} -p
[root@centos7 yum.repos.d]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 10G 0 part /
├─sda3 8:3 0 5G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sr0 11:0 1 4.4G 0 rom
sr1 11:1 1 8.6G 0 rom
**#挂载7的目录**
[root@centos7 ~]# mount /dev/sr0 /var/www/html/centos/7
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7-test 7]# ls 7
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL
**#挂载8的目录**
[root@centos7 local]# mount /dev/sr1 /var/www/html/centos/8
mount: /dev/sr1 is write-protected, mounting read-only
[root@centos7-test centos]# ls 8
AppStream BaseOS EFI images isolinux LICENSE media.repo TRANS.TBL
**#查看挂载情况**
[root@centos7-test centos]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda2 9.8G 5.8G 3.5G 64% /
/dev/sda1 976M 108M 801M 12% /boot
/dev/sda3 4.8G 20M 4.6G 1% /data
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /var/www/html/centos/7
/dev/sr1 8.7G 8.7G 0 100% /var/www/html/centos/8
浏览器输入url:http://192.168.234.131/centos/
编辑配置文件
centos7
[base]
name=base
baseurl=http://192.168.234.131/centos/7/
gpgcheck=0
centos8
[baseos]
name=baseos
baseurl=http://192.168.234.131/centos/8/BaseOS
gpgcheck=0
enabled=1
[appstream]
name=appstream
baseurl=http://192.168.234.131/centos/8/AppStream
gpgcheck=0
enabled=1
配置本地epel源和extras源,以centos8为例:
[18:38:20 root@localhost yum.repos.d]#yum repolist
repo id repo name
appstream appstream
baseos baseos
epel epel
extras extras
[17:06:04 root@localhost yum.repos.d]#dnf reposync --repoid=epel --download-metadata -p /var/www/html/centos
epel 40 kB/s | 4.7 kB 00:00
epel 6.1 MB/s | 23 MB 00:03
(1/7772): 3proxy-0.8.13-1.el8.x86_64.rpm 707 kB/s | 175 kB 00:00
(2/7772): AusweisApp2-1.22.2-3.el8.x86_64.rpm 1.8 MB/s | 1.0 MB 00:00
(3/7772): BackupPC-4.4.0-1.el8.x86_64.rpm 1.9 MB/s | 489 kB 00:00
......
[17:07:51 root@localhost yum.repos.d]#dnf reposync --repoid=extras --download-metadata -p /var/www/html/centos
extras 38 kB/s | 10 kB 00:00
extras 53 kB/s | 15 kB 00:00
(1/37): centos-release-ceph-nautilus-1.2-2.el8.noarch.rpm 67 kB/s | 8.8 kB 00:00
(2/37): centos-release-ansible-29-1-2.el8.noarch.rpm 52 kB/s | 8.4 kB 00:00
(3/37): centos-release-advanced-virtualization-1.0-3.el8.noarch.rpm 96 kB/s | 16 kB 00:00
......
[17:08:08 root@localhost centos]#ls
epel extras
通过http发布:
dnf install -y httpd
systemctl enable --now httpd
访问url:http://192.168.234.129/centos/
编辑配置文件
[epel]
name=epel
baseurl=http://192.168.234.129/centos/epel/
[extras]
name=extras
baseurl=http://192.168.234.129/centos/extras/
2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。
#!/bin/bash
#安装依赖
dnf install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config
#下载源码包
wget https://dlcdn.apache.org//httpd/httpd-2.4.49.tar.gz
#解压到指定目录
tar xvf httpd-2.4.49.tar.gz -C /usr/local/src/
#进入目录编译安装
cd /usr/local/src/httpd-2.4.49/
./configure
#./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
make
make install
#设置变量
cd /usr/local/apache2/bin/
ls
echo 'PATH=/usr/local/apache2/bin/:$PATH' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh
#启动验证
apachectl start
ps aux
打开url:192.168.234.129
#查看进程是daemon用户运行的 ,改成apache用户运行
[21:22:48 root@localhost local]#ps aux
root 29141 0.0 0.0 0 0 ? I 21:21 0:00 [kworker/0:2-ata_sff]
root 29151 0.0 0.2 98216 4592 ? Ss 21:22 0:00 /usr/local/apache2/bin/httpd -k start
daemon 29152 0.0 0.2 873896 5492 ? Sl 21:22 0:00 /usr/local/apache2/bin/httpd -k start
daemon 29153 0.0 0.2 873896 5492 ? Sl 21:22 0:00 /usr/local/apache2/bin/httpd -k start
daemon 29154 0.0 0.2 873896 5492 ? Sl 21:22 0:00 /usr/local/apache2/bin/httpd -k start
#新建用户和组
groupadd -r -g 99 apache
useradd -r -g apache -s /usr/sbin/nologin -d /var/www apache
#进配置文件修改用户组配置
cd usr/local/apache2/conf
vim httpd.conf
User apache
Group apache
apachectl restart
#查看身份已切换成apache
[21:27:46 root@localhost conf]#ps aux
apache 29282 0.0 0.2 858076 5508 ? Sl 21:27 0:00 /usr/local/apache2/bin/httpd -k start
apache 29283 0.0 0.2 858076 5508 ? Sl 21:27 0:00 /usr/local/apache2/bin/httpd -k start
apache 29284 0.0 0.2 858076 5508 ? Sl 21:27 0:00 /usr/local/apache2/bin/httpd -k start
3、利用sed 取出ifconfig命令中本机的IPv4地址
#非数字开头,[把0到9或者.],+代表1个以上匹配ip地址,然后分组,后面用.*匹配,取第1组
[21:48:24 root@localhost conf]#ifconfig ens32 | sed -rn '2s/[^0-9]+([0-9.]+).*/\1/p'
192.168.234.129
#以任意字符开头都inet空格,然后匹配ip地址,在加2个空格,匹配netmask后面的,分组取值
[21:55:33 root@localhost conf]#ifconfig ens32 | sed -rn '2s/.*inet ([0-9.]+) netmask.*/\1/p'
192.168.234.129
#以非数字开头数量1个以上,匹配0-9和. 数量7-15个,(IP地址的最短和最长),分组取值
[22:44:35 root@localhost conf]#ifconfig ens32 | sed -rn '2s/^[^0-9]+([0-9.]{7,15}).*/\1/p'
192.168.234.129
#以非数字开头,匹配ip地址,后面全用.*表示,分组取值
[22:48:22 root@localhost conf]#ifconfig ens32 | sed -rn '2s/[^0-9]+([0-9.]+).*$/\1/p'
192.168.234.129
#匹配前面字符,ip地址,以及最后面字符,分3组取值
[22:49:54 root@localhost conf]#ifconfig ens32 | sed -rn '2s/(.*inet )([0-9.]+) (netmask.*)/\2/p'
192.168.234.129
#匹配前面字符加空格,然后ip地址到netmask,(这样会包括中间空格,重定向到文件 使用set list可以看到空格)
[22:50:30 root@localhost conf]#ifconfig ens32 | sed -rn '2s/(.*inet )([0-9.].*)(netmask.*)/\2/p'
192.168.234.129
改为:ifconfig ens32 | sed -rn '2s/(.*inet )([0-9.].*)( netmask.*)/\2/p'
4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[23:27:10 root@localhost home]#sed -r '/^#/s@^#[[:space:]]?(.*)@\1@' fstab
/etc/fstab
Created by anaconda on Sat Jul 31 12:10:02 2021
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.
After editing this file, run 'systemctl daemon-reload' to update systemd
units generated from this file.
/dev/mapper/cl-root / xfs defaults 0 0
UUID=8be19319-a9f6-4189-89cb-cf5c3c229480 /boot ext4 defaults 1 2
/dev/mapper/cl-data /data xfs defaults 0 0
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
[22:14:47 root@localhost home]#echo "/etc/fstab" | sed -rn 's@^(/.*/)(.*)@\1@p'
/etc/
[22:14:56 root@localhost home]#echo "/etc/fstab" | sed -rn 's@^(/.*/)(.*)@\2@p'
fstab
6、列出ubuntu软件管理工具apt的一些用法(自由总结)
apt命令 | 功能 |
---|---|
apt install | 安装软件包 |
apt remove | 移除软件包 |
apt purge | 移除软件包及配置文件 |
apt update | 刷新存储库索引 |
apt upgrade | 更新升级已安装的软件包 |
apt show | 显示安装细节 |
apt autoremove | 自动删除不需要的包 |
apt search | 搜索软件包 |
apt list | 列出包含条件的包 |