分类目录归档:Shell

使用GNU stow统一管理用户目录下那些隐藏的配置文件

命令行工具们有一个约定俗成的习惯:把配置文件写到用户的Home目录下面的隐藏文件里。系统用的时间一长,这样的文件就有一堆,有些你编辑过了,有些没有,并且你都不知道里面有些什么。先来看一下你有多少个这样的文件吧:

ls -ald ~/.* | grep -v ^l | tee >(wc -l)

也许你已经想到了一千种方法来折腾它们。在用户目录下面git init 一下?这可不是什么好主意。把它们手工复制到某个地方然后手工ln -s 回来?这也太麻烦了。然而我们现在有个叫stow的工具可以自动化处理这一切。

继续阅读

修复zsh下的Django自动补全功能

事情是这样的:zsh在启用了django插件以后,对./manage.py 和manage.py 均有自动补全,而对形如python manage.py 的命令没有自动补全。不巧的是,由于OS X下默认Python版本为2,manage.py 的默认Shebang又是#!/usr/bin/env python ,也就是说,如果我要使用Python 3进行开发,则无法使用zsh的自动补全功能。 继续阅读

使用 expect 实现 SSH 登录时自动输入密码

有些时候我们想实现自动登录,但又没法使用公钥验证,这时候 expect 就派上用场了。

一行版本:

expect -c "spawn ssh [email protected]; expect \"password\"; send \"your-password-here\r\"; interact"

Script 版本:

#!/usr/bin/expect

spawn ssh [email protected]
expect "password"
send "your-password-here\r"
interact

继续阅读

自动重启 OS X 10.10.3 上问题多多的 discoveryd

众所周知,OS X 10.10.3 问题多多,其中用来取代 mDNSResponderdiscoveryd 常常出现 CPU 占用过高,无法正常工作的情况。

下面有一段简单的 Shell 脚本用以循环检查 discoveryd 是否出现问题,并自动重启它。需要管理员权限启动,可选的第一个参数是限制的最高 CPU 使用率(默认 80)。
继续阅读