April 14th, 2009my shell tips
最近无聊的时候记下来的两个小tip:)
1. login的时候随即打印一个ASCII的图案。
这个比较无聊,基本原理就是把一些预先准备好的ASCII图案分别写成一个文件,在登陆的时候就是随机选取一个文件然后cat就可以啦.
Sample code:
#print out a logo to the screen...
logoDir="~/.logo"
if [ -d $logoDir ] ; then
cd $logoDir
# '*' is a filename wildcard to match all files in the current directory
set *
# Use the syntax for arithmetic expressions. "%" is the modulo operator
# Shift arguments by a random number between 0 and the number of files
shift $(($RANDOM % $#))
echo -e '\e[0;32m'
cat "${logoDir}/$1"
echo -e "\e[0m"
fi
上面的代码就是把所有的ASCII图案放在~/.logo下面,然后再登陆的时候首先使用cd进入~/.logo目录,然后用set *来默认匹配所有文件名,
shift $(($RANDOM % $#)) 则是随即一个整数然后和文件数取模并选择对应的文件名,
echo -e '\e[0;32m' 这一句是用来是后面的字符为绿色(因为白色的图案不好看啊…)
echo -e "\e[0m" 中止前面的改变字体颜色的效果,这样就不会影响后面的打印结果。
当然, 要记得去找一些ascii 图片放到你的.logo目录里啊:)
2. 动态更新putty的窗口标题
使用putty的ssh的同学们都会想putty可以向其他的终端模拟器一样根据当前目录啥的动态更新标题栏,其实这个也可以再putty里实现,这里需要注意两点:
a. 确保没有打开putty的禁止远程改变窗口标题的选项,这个选项可以在Terminal==>Features 里找到。

b. 在你的登陆脚本里export 一个名为PROMPT_COMMAND的变量,顾名思义它需要是一个命令,下面是我的配置(注意开始的和末尾的数字都是必须的):
PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}: ${PWD} -$USER\007"';export PROMPT_COMMAND
打印的格式为:hostname: /home/pangwa/src – pangwa
重新登陆或者source一下你的初始化脚本就可以了:)






