Linux文本处理和软件包管理

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Linux文本处理和软件包管理相关的知识,希望能为你提供帮助。
Linux文本处理和软件包管理 文本处理

  • sed:流编辑器,可以根据需求逐行处理文本文件,功能强大支持正则表达式 软件包管理
  • redhat系列:
    • 底层rpm
    • 前端工具yum
  • debian系列
    • 底层dpkg
    • 前端工具apt, apt-get....
1、自建yum仓库,分别为网络源和本地源
# 本地yum源,使用光盘里的rpm包,确保光盘已经插上了 # 判断光盘是否已经插上了 judge_cdrom_exist(){ if blkid | grep sr0 & > /dev/null; then echo "Have cdrom" else echo "Dont have cdrom" return 1 fi } # 将光盘挂载到期望的目录 mount_cdrom(){ # 未做幂等性校验,只是写个例子 local mount_point=$1 echo "/dev/cdrom$mount_point iso9660 defaults,ro 0 0" > > /etc/fstab mount -a } # 再加一个yum源本地配置 add_repo(){ local dir=$1 cat > /etc/yum.repos.d/local.repo < < EOF [local] name=local cdrom repo baseurl=file://$dir EOF }# 组织逻辑,main函数 main(){ if [ $# -lt 1 ]; then echo Usage: $0 < MOUNT_POINT> echoMust give a mount point. exit 1 fi dir=$1 if judge_cdrom_exist; then mount_cdrom $dir add_repo $dir fi }# 调用主函数 main /mnt

# 网络yum源,此次默认使用的是aliyun的镜像站点 # 得到当前发行版的大版本号 get_version(){ sed -rn s/VERSION_ID="(.*)"/\\1/p /etc/os-release }# 检测哪个http client工具可用,并下载期望的repo文件 configure_yum_conf(){ local version=$1 if rpm -q wget & > /dev/null; then echo Use wget download repo now wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$version.repo & > /dev/null elif rpm -q curl & > /dev/null; then echo Use curl download repo now curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$version.repo & > /dev/null fi }# 组织逻辑 main(){ local version=`get_version` configure_yum_conf $version }# 调用main函数 main

2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。
# 下载源码包 wget --no-check-certificate https://dlcdn.apache.org//httpd/httpd-2.4.51.tar.gz # 解压 tar xf httpd-2.4.51.tar.gz # 安装依赖 yum install -y apr-devel apr-util-devel gcc pcre-devel # 进入目标目录 cd httpd-2.4.51 # 做校验工作和一些配置,我就都使用默认的值了 ./confiugre # 编译,根据你的cpu核心数设置相应的并发 make -j4 # 安装 make install # 以下内容我就不做了 # 将二进制目录加入到PATH变量中 # 将manual加入到MANPATH # 将配置文件做好等等

3、利用sed 取出ifconfig命令中本机的IPv4地址
# 我机器上没有这个工具了,还得从新装,多老的人还用这个命令啊。。。 yum install -y net-tools ifconfig | sed -rn /inet / s/[^0-9]+([0-9.]+) .*/\\1/p

4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -r s/^# +(.*)/\\1/ /etc/fstab

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
# 说实话有问题 # 取目录名 echo "/etc/fstab/" |sed -r s#[^/]+/?## # 取基名 echo "/etc/fstab" | sed -r s@.*/([^/]*)/?$@\\1@

【Linux文本处理和软件包管理】6、列出ubuntu软件管理工具apt的一些用法(自由总结)
  • apt是debian类的软件包管理器前端工具,用法与yum很相似
  • apt install 安装软件包
  • apt list 列出当前软件包源包含的所有软件包
  • apt remove 移除已经安装的软件包,卸载
  • apt update 更新软件包仓库
  • apt upgrate 更新软件包,升级
  • apt search 搜索软件包

    推荐阅读