第七天(学习线路图对应的第九天)
文本处理sed&软件管理
1、文本处理三剑客之sed的高级用法
2、软件运行和编译过程及库调用机制
3、rpm包管理器常用用法
4、yum实现和配置文件
5、yum的私有仓库和内核升级
6、源码编译安装软件
7、源码编译安装软件实战
第八天(学习线路图对应的第十天)
软件管理2
1、ubunut软件管理
2、磁盘类型和结构
3、MBR和GPT分区类型
4、文件系统管理
5、挂载管理和swap空间管理
6、移动设备和raid初步
7、raid工作原理和特性
1、自建yum仓库,分别为网络源和本地源
本地源:
[root@centos8 ~]# cat /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=file:///misc/cd/BaseOS
gpgcheck=1
gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[AppStream]
name=Appstream
baseurl=file:///misc/cd/AppStream
gpgcheck=0
[root@centos8 ~]# yum repolist -v
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, product-id, repoclosure, repodiff, repograph, repomanage, reposync, uploadprofile
YUM version: 4.2.23
cachedir: /var/cache/dnf
Last metadata expiration check: 0:00:18 ago on Thu 13 Jan 2022 12:36:46 PM CST.
Repo-id : AppStream
Repo-name : Appstream
Repo-revision : 8.3.2011
Repo-distro-tags : [cpe:/o:centos:centos:8]: , 8, C, O, S, e, n, t
Repo-updated : Thu 19 Nov 2020 05:37:48 AM CST
Repo-pkgs : 5,684
Repo-available-pkgs: 4,988
Repo-size : 6.9 G
Repo-baseurl : file:///misc/cd/AppStream
Repo-expire : 172,800 second(s) (last: Thu 13 Jan 2022 12:36:46 PM CST)
Repo-filename : /etc/yum.repos.d/base.repo
Repo-id : BaseOS
Repo-name : BaseOS
Repo-revision : 8.3.2011
Repo-distro-tags : [cpe:/o:centos:centos:8]: , 8, C, O, S, e, n, t
Repo-updated : Thu 19 Nov 2020 05:37:42 AM CST
Repo-pkgs : 1,694
Repo-available-pkgs: 1,692
Repo-size : 1.1 G
Repo-baseurl : file:///misc/cd/BaseOS
Repo-expire : 172,800 second(s) (last: Thu 13 Jan 2022 12:36:45 PM CST)
Repo-filename : /etc/yum.repos.d/base.repo
Total packages: 7,378
网络源:
#添加光盘
添加多一个cdrom,加载centos7光盘
#scandisk扫描光盘
[root@centos8 html]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@centos8 html]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@centos8 html]# echo "- - -" > /sys/class/scsi_host/host2/scan
#安装httpd
[root@centos8 ~]# yum install httpd -y
[root@centos8 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
#创建目录
[root@centos8 cd]# cd /var/www/html
[root@centos8 html]# mkdir centos/{7,8} -pv
mkdir: created directory 'centos'
mkdir: created directory 'centos/7'
mkdir: created directory 'centos/8'
#挂载光盘到var目录下
[root@centos8 html]# mount /dev/sr1 /var/www/html/centos/7
#多行注释:
1. 进入命令行模式,按ctrl + v进入 visual block模式
2. 按大写字母I,再插入注释符,例如#
3. 按esc键就会全部注释了
#切换到centos7测试
[root@centos7 yum.repos.d]# cat base.repo
[base]
name=CentOS
baseurl=http://10.0.0.101/centos/7/
gpgcheck=0
[root@centos7 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base CentOS 10,072
repolist: 10,072
[root@centos7 ~]# yum install vsftpd -y
2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。
#1 安装相关包
[root@centos8 ~]# dnf install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config -y
#2 下载并解压压缩包
[root@centos8 ~]# cd /usr/local/src/
[root@centos8 src]# tar -xvf httpd-2.4.52.tar.bz2
#3 配置
[root@centos8 ~]# cd /usr/local/src/httpd-2.4.52/
[root@centos8 httpd-2.4.52]# ./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
#4 编译并安装
[root@centos8 httpd-2.4.52]# make -j 2 && make install
#5 配置环境
[root@centos8 ~]# echo 'PATH=/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
[root@centos8 ~]# . /etc/profile.d/httpd.sh
#6 运行
[root@centos8 ~]# apachectl start
#7指定用apache用户运行
[root@centos8 ~]# apachectl stop
[root@centos8 ~]# useradd -r -s /sbin/nologin -d /var/www -c apache -u 88 apache
[root@centos8 ~]# vim /etc/httpd/httpd.conf
user apache
group apache
#8 配置生效和验证
[root@centos8 ~]# apachectl start
#9 查看进程
[root@centos8 ~]# ps aux |grep httpd
root 69038 0.0 0.2 119000 5236 ? Ss 16:22 0:00 /apps/httpd/bin/httpd -k start
apache 69039 9.5 0.5 1339616 11756 ? Sl 16:22 0:00 /apps/httpd/bin/httpd -k start
#10 用浏览器打开以下地址,可以查看页面
3、利用sed 取出ifconfig命令中本机的IPv4地址
[root@centos8 ~]# ifconfig eth0 | sed -nr "2s/[^0-9]+([0-9.]+).*/\1/p"
10.0.0.101
[root@centos8 ~]# ifconfig eth0 | sed -En '2s/^[^0-9]+([0-9.]{7,15}).*/\1/p'
10.0.0.101
[root@centos8 ~]# ifconfig eth0 | sed -rn '2s/^[^0-9]+([0-9.]+) .*$/\1/p'
10.0.0.101
[root@centos8 ~]# ifconfig eth0 | sed -n '2s/^.*inet //p' | sed -n 's/netmask.*//p'
10.0.0.101
[root@centos8 ~]# ifconfig eth0 | sed -n '2s/^.*inet //;s/ netmask.*//p'
10.0.0.101
[root@centos8 ~]# ifconfig eth0 | sed -rn '2s/(.*inet )([0-9].*)(netmask.*)/\2/p'
10.0.0.101
4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@centos8 data]# sed -i '/^#/d' fstab
[root@centos8 data]# cat fstab
UUID=e2bec96f-8e60-4bc1-bbc6-031f1cc720d3 / xfs defaults 0 0
UUID=d379715f-8c3e-42be-aac6-1ba6cd051c15 /boot ext4 defaults 1 2
UUID=f63da3a4-f4f9-494f-8a2e-5d91ceef2d71 /data xfs defaults 0 0
UUID=b1a24466-55f3-4822-b313-59ce5276a82a none swap defaults 0 0
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
#取目录名
[root@centos8 ~]# echo /etc/fstab/ | sed -rn 's#(.*)/([^/]+)/?#\1#p'
/etc
#取基名
[root@centos8 ~]# echo /etc/fstab/ | sed -rn 's#(.*)/([^/]+)/?#\2#p'
fstab
6、列出ubuntu软件管理工具apt的一些用法(自由总结)
Debian 使用apt 工具集来管理包系统,apt-get 是其中一个常用的命令行工具,另外一款较为流行的命令行与 GUI 兼顾的工具是 aptitude ,之前最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令中
在 2014 年apt 命令发布第一个稳定版,Ubuntu 16.04 引入新特性之一便是 apt 命令,apt 命令解决了命令过于分散的问题,它包括 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,提供管理软件包所需的必要选项
apt 相当于 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合
apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。此外,启用的几个特性也非常有帮助。例如:可以在使用 apt 命令安装或删除程序时看到进度条,apt 还会在更新存储库数据库时提示用户可升级的软件包个数
apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即可用 apt 替换部分apt-get 系列命令,但不是全部
apt 命令用法
查看帮助:apt help
apt与apt-get命令对比
apt命令 被取代的命令 命令的功能
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show 显示安装细节
apt 特有的命令
apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑源列表
可以修改上面文件为国内的安装源,提高速度
参考链接:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.53322f70fghx56
范例: 修改APT源为阿里源
root@ubuntu1804:~# sed -i 's/hk.archive.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
root@ubuntu1804:~# sed -i 's/security.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
apt命令操作(如安装和删除软件包)日志文件
/var/log/dpkg.log
范例:
#安装包:
apt install tree zip
#安装图形桌面
apt install ubuntu-desktop
#删除包:
apt remove tree zip
#说明:apt remove中添加--purge选项会删除包配置文件,谨慎使用
#更新包索引,相当于yum clean all;yum makecache
apt update
#升级包:要升级系统,请首先更新软件包索引,再升级
apt upgrade
#apt列出仓库软件包,等于yum list
apt list
#搜索安装包
apt search nginx
#查看某个安装包的详细信息
apt show apache2
#在线安装软件包
apt install apache2
#卸载单个软件包但是保留配置⽂件
apt remove apache2
#删除安装包并解决依赖关系
apt autoremove apache2
#更新本地软件包列表索引,修改了apt仓库后必须执⾏
apt update
#卸载单个软件包删除配置⽂件
apt purge apache2
#升级所有已安装且可升级到新版本的软件包
apt upgrade
#升级整个系统,必要时可以移除旧软件包。
apt full-upgrade
#编辑source源⽂件
apt edit-sources
#查看仓库中软件包有哪些版本可以安装
apt-cache madison nginx
#安装软件包的时候指定安装具体的版本
apt install nginx=1.14.0-0ubuntu1.6
#查看文件来自于哪个包,类似redhat中的yum provides <filename>
apt-file search 'string' #默认是包含此字符串的文件
apt-file search -x '正则表达式'
apt-file search -F /path/file