亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Linux文本处理和软件包管理相关的知识,希望能为你提供帮助。
Linux文本处理和软件包管理
文本处理
- sed:流编辑器,可以根据需求逐行处理文本文件,功能强大支持正则表达式 软件包管理
- redhat系列:
- 底层rpm
- 前端工具yum
- debian系列
- 底层dpkg
- 前端工具apt, apt-get....
# 本地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
搜索软件包
推荐阅读
- linux学习--文件查找及日常练习
- linux学习---打包与压缩
- #yyds干货盘点#Docker+Jenkins发布GitHub项目-构建GitHub项目
- #yyds干货盘点#Golong 字符串多行显示
- tasksel安装#yyds干货盘点#
- 侧边栏在小屏幕的底部
- 显示帖子缩略图而不是占位符placeholder
- 将WordPress类别显示为分层
- 在自己的WordPress主题中显示section编辑按钮