mac下~/.bashrc不起作用

~/.bashrc里面的一些设置,比如alias命令的设置“不起作用”,新开一个终端都要source一下才起作用。

unix下当shelllogin shell.bash_profile才会加载,而bashrc正好相反。

真正的区别是在linux下,当用户登录到一个图形界面,然后打开一个终端terminal,那些shellnon-login shell

然而,在OS X登录的时候,并没有运行着一个shell,所以,在运行Terminal.app的时候,其实那是一个login shell

后来新建了.bash_profile加载一次.bashrc.

if [ "${BASH-no}" != "no" ]; then
    [ -r ~/.bashrc ] && . ~/.bashrc
fi

参考链接


mac下~/.bashrc不起作用

Jdom-XmlOutputter 换行(setIndent)

Jdom的XmlOutputter默认生成的文件不带换行,所有key-value对写在一行里,使用起来很不方便,XmlOutputter支持设置换行。

jdom1.0中写法如下

XmlOutputter xmlOut = new XmlOutputter("  ", true, "utf-8");

三个参数分别为,缩进(这里是两个空格),是否换行,字符编码

官方文档

jdom1.0以后不支持上面的写法,而是把三个参数剥离出来,形成了Format类

Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent("  ");
XMLOutputter XMLOut = new XMLOutputter(format);

Ubuntu 14.04.5版本上安装并启用Apache 2.4.10版本的Event MPM模块

Apache 2.4版本开始已经尝试借鉴Nginx的实现方式来处理网络连接。但是到目前(2017.2.22)为止,实现的并不彻底,只是在处理HTTP协议的时候使用异步模式,而处理HTTPS协议的时候,依旧使用每个连接一个线程的模式。据说完整的支持HTTPS异步,要到Apache 3.x版本了。

目前的Apache MPM event本质上还是Apache MPM worker的优化版本,并不是一个完整的独立模式。

尽管支持的不是太完善,但是这部分的实现,已经能比较好的改善Apache 2.4的网络处理性能了,尤其是对于我这种访问压力不是太大的网站来说,目前应该是够用了的。暂时可以缓解一下迁移到Nginx的急迫性,并且比较好的减少访问网站时候的延迟比较高的问题。

到目前(2017.2.22)为止在Ubuntu 14.04.5版本上Apache Event MPM还不属于正式版本,而是被部署到了backports(待发布)分支上,处于候选发布状态,因此我们安装的时候,需要执行指定backports,具体执行命令如下:

$ sudo apt-get -t trusty-backports install apache2-mpm-event

模块的配置文件在/etc/apache2/mods-available/mpm_event.conf,目前我这边用默认配置已经足够了(足见访问量是多么的少,呵呵)。

启用Apache MPM event模块

$ sudo a2dismod mpm_worker

$ sudo a2dismod mpm_prefork

$ sudo a2enmod mpm_event

$ sudo service apache2 restart

查询Apache 2.4当前正在使用的模块

$ a2query -M

返回值会是event, prefork, worker中的一个,如果返回了event,则说明我们已经成功启用了Apache MPM event模块。

目前实际测试来看,确实能非常明显的加快网站的访问速度,访问延迟明显变短。

参考链接