前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >锱铢必较系列:程序员生存指南——插件式使用linux配置文件

锱铢必较系列:程序员生存指南——插件式使用linux配置文件

作者头像
大神带我来搬砖
发布2018-05-16 17:41:23
6820
发布2018-05-16 17:41:23
举报
文章被收录于专栏:大神带我来搬砖

程序员们的内心都有这样的逻辑

代码语言:javascript
复制
if (我的程序.功能 == 你的程序.功能):
    if(我的程序.代码行数 < 你的程序.代码行数):
        assertTrue(我的程序.牛逼程度 > 你的程序.牛逼程度 )

牛逼程度决定了程序员的境界,是程序员的生存之本,所以程序员一般会殚精竭虑,舍生忘死的减少代码行数。本文就讲述了这么一个小故事。

近日来,家住北京市朝阳区的程序员诸葛建国非常忙碌,他开发了一套产品,唤做JDT,需要部署到客户的linux服务器上。JDT完美无缺,就是有个小瑕疵——需要设置一个环境变量才能工作!!!所以他不得不在JDT的安装脚本中,增加一个设置环境变量的功能。

设置一个环境变量还不容易?直接在安装脚本中写

代码语言:javascript
复制
echo "export bar=foo" >> /etc/profile

注意要用>>,否则原来内容就没喽。

写完之后发现一个问题,JDT总是不能一蹴而就、一泻千里的安装成功,所以经常需要重新运行安装脚本。这样安装完之后,/etc/profile文件末尾就有好几个“bar=foo”。作为一个有洁癖的程序员,诸葛建国当然不能容忍啦,赶紧加班加点改了安装脚本。

代码语言:javascript
复制
if grep "export bar=foo" /etc/profile > /dev/null
then
    echo "will do nothing"
else
    echo "will do something"
    echo "export bar=foo" >> /etc/profile
fi

这里grep命令可以直接接到if后面,grep的返回值直接作为判断条件。

诸葛建国正在为这个技巧洋洋得意,夏侯富贵出现在了他身边,告诉他:“用/etc/profile.d文件夹”

所以现在用

代码语言:javascript
复制
echo "export bar=foo" > /etc/profile.d/jdt.sh

就行了,想运行几次就运行几次!!!

诸葛建国后来发现,linux好多配置都有这种插件式的表现形式,比如/etc/lograte.d/,/etc/cron.daily/,/etc/security/limits.d/,它们有个主要的配置文件,然后有一大堆插件式的配置文件。

这种方式的好处是插件的配置不用再参差不齐、鱼龙混杂的放在一起了。而且主程序的升级更方便了,比如系统上安装了一个nginx,你修改了/etc/nginx/nginx.conf,增加了一些目录映射,然后用yum更新了一下nginx,这时nginx安装程序就会很崩溃,到底是用新版本的配置文件还是系统中现有的配置文件?

安装程序的内心世界

把nginx的配置放到/etc/nginx/conf.d/文件夹就方便多了,nginx升级程序大刀阔斧歇斯底里的覆盖原有配置文件/etc/nginx/nginx.conf就行了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.05.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档