Linux文本处理和软件包管理
Posted 蜗牛冲上天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
echo Must 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@
6、列出ubuntu软件管理工具apt的一些用法(自由总结)
- apt是debian类的软件包管理器前端工具,用法与yum很相似
apt install
安装软件包apt list
列出当前软件包源包含的所有软件包apt remove
移除已经安装的软件包,卸载apt update
更新软件包仓库apt upgrate
更新软件包,升级apt search
搜索软件包
以上是关于Linux文本处理和软件包管理的主要内容,如果未能解决你的问题,请参考以下文章