2008

WordPress插件 – mimeTeX

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

$$\TeX$$是Donald E. Knuth在1978年开始开发的一款用于排版他的著作《The Art of Computer Programming》的自由软件. Knuth为每一个发现Bug的用户提供奖励, 奖励金额从1美分开始, 并每年翻倍, 直到目前的327.68美元封顶. 但他却并未为此付出太多金钱, 因为$$\TeX$$中的漏洞实在很少. $$\TeX$$最初的版本号是3.0, 每次更新后在版本号小数点后添加一位, 使它愈趋近于$$\pi$$, 现在的版本号是3.1415926. $$\LaTeX$$是$$\TeX$$的一个宏包, 它使$$\TeX$$更方便易用. 由于LaTeX很方便排版, 尤其在处理复杂的表格和数学公式上极为突出, 它被广泛用于制作各种科技文献和出版物. 比如Knuth的《具体数学》(Concrete Mathematics)就是用TeX排版的, 许多大学也提供各自的毕业生论文LaTeX模板.

在GPL协议下发布的mimeTeX, 是一个用于轻松地在网页中嵌入$$\LaTeX$$数学表达式的软件. 由张志强开发的mimeTeX for WordPress是WordPress下调用mimeTeX的插入$$\LaTeX$$公式的插件. 如果有可能, 最好在自己的服务器上安装mimeTeX(只需要cgi支持, bluehost, dreamhost都支持), 但我的服务器不能自己安装, 所以只能使用第三方架设的mimeTeX服务.

插件的安装方法很简单

  1. 下载插件后上传到WordPress的插件目录.
  2. 到管理员后台激活插件.
  3. 在wp-content下新建cache文件夹, 并赋予777权限.

来看几个例子吧, 其实上面的$$\LaTeX$$就是调用mimeTeX显示的, 我输入的仅仅是$$\LaTeX!$$.

先来个简单的

$$\Large x^2+y^2=z^2$$

还有上次我提到的那个表示化圆为方的式子, 谁告诉我下它究竟讲的什么

$$\Large \exists f\in\mathbb{P}^{[\mathbb{R}]}_{\infty},f(\sqrt{\pi})=0$$

更复杂一些的

$$\Large e^x=\lim_{n\to\infty} \left(1+\frac~xn\right)^n$$

$$\Large A\ =\ \large\left( \begin{array}{c.cccc}&1&2&\cdots&n\\ \hdash1&a_{11}&a_{12}&\cdots&a_{1n}\\ 2&a_{21}&a_{22}&\cdots&a_{2n}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ n&a_{n1}&a_{n2}&\cdots&a_{nn}\end{array}\right)$$

$$\normalsize \left(\large\begin{array}{GC+23} \varepsilon_x\\\varepsilon_y\\\varepsilon_z\\\gamma_{xy}\\ \gamma_{xz}\\\gamma_{yz}\end{array}\right)\ {\Large=} \ \left[\begin{array}{CC} \begin{array}\frac1{E_{\fs{+1}x}} &-\frac{\nu_{xy}}{E_{\fs{+1}x}} &-\frac{\nu_{\fs{+1}xz}}{E_{\fs{+1}x}}\\ -\frac{\nu_{yx}}{E_y}&\frac1{E_{y}}&-\frac{\nu_{yz}}{E_y}\\ -\frac{\nu_{\fs{+1}zx}}{E_{\fs{+1}z}}& -\frac{\nu_{zy}}{E_{\fs{+1}z}} &\frac1{E_{\fs{+1}z}}\end{array} & {\LARGE 0} \\ {\LARGE 0} & \begin{array}\frac1{G_{xy}}&&\\ &\frac1{G_{\fs{+1}xz}}&\\&&\frac1{G_{yz}}\end{array} \end{array}\right] \ \left(\large\begin{array} \sigma_x\\\sigma_y\\\sigma_z\\\tau_{xy}\\\tau_{xz}\\\tau_{yz} \end{array}\right)$$

甚至可以画图

$$\Large\hspace{5}\unitlength{1} \picture(175,100){~(50,50){\circle(100)} (1,50){\overbrace{\line(46)}^{4$\;\;a}} (52,50){\line(125)}~(50,52;115;2){\mid}~(52,55){\longleftar[60]} (130,56){\longrightar[35]}~(116,58){r}~(c85,50;80;2){\bullet} (c85,36){3$-q}~(c165,36){3$q} (42,29){\underbrace{\line(32)}_{1$a^2/r\;\;\;}}~}$$

而且支持在评论时加入$$\LaTeX$$表达式, 试试吧!

记得要在$$\LaTeX$$表达式两端用两个$符号引起来!

WordPress插件 – mimeTeX Read More »

明日, 启程

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

时间过的真快, 转眼间就到了阳历八月的最后一天. 今天是农历戊子年八月初一, 过了七月流火的时间, 天气也确实凉了, 是秋天到了. 但连日的暴雨还提醒这我, 夏天还没过去. 夏日的雨, 金秋的风, 在这里交汇.

图片来自Flickr, 由作者AllenHsu署名-非商业性使用-禁止演绎 2.0版权协议下发布.

这是我的Blog上的第66篇日志, 没有上学的大半年也过完了. 刚刚过百的订阅量, 接近100的日IP让我觉得我的努力没有白费. 这半年, 我在我的Blog上分享了我在学习Linux, EmacsLaTeX的一些心得, 推荐了一些软件小游戏, 还有少量的评论. 而现在就要开学了. 9月, 这个Blog的更新会比较少.

下半年(没半年了..), 我计划写Gnus的简明手册, 因为Gnus Manual实在太长, 而它的简介又太简单. 希望到时候能有更多人理解 “No Gnus is bad news” 这句话.

正则表达式是很有用的工具, 在文本处理时使用正则表达式会让你事半功倍. Jeffrey E.F. Friedl 的 《精通正则表达式》(Mastering Regular Expression)是一本不错的教材和参考手册, 我会在整理后发布学习笔记.

Donald E. Knuth等的《具体数学》(Concrete Mathematics)的阅读进度一直停留在第二章, 而读书笔记则更是没有开始动笔. 下半年我会尽快整理出已读部分的笔记和继续阅读后面的经常章节. Richard Courant的《什么是数学》(What is Mathematics)也是本不错的书, 推荐所有高中(包括)以上的, 希望培养对数学的兴趣的人读这本经典的数学著作. 数学绝不像你想象中那般枯燥. 而它的读书笔记可能要到年底才会开始写了.

上半年我的Blog里关于算法的内容很少, 但下半年会增加一些, 会有一些我的解题报告和算法分析. 希望能在NOIP前重新整理一份NOIP复习手册, 去年的那个版本大囧, 我随便看看就能找到错误.. 这次会用LaTeX制作, 至少在排版上省了我不少事..

明天, 将开始一段新的旅程. 愿自由与我同在.

明日, 启程 Read More »

漫画 – 0xBABAF000L

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com, 所有引用图片版权由作者Laurent Grégoire保留

上次在介绍Emacs时, 我展示过一幅关于Emacs的四格漫画. 它出自一个与Unix Geek文化相关的系列漫画. 这个系列一共有20幅, 名字叫做0xBABAF000L, 作者是法国人, 叫做Laurent Grégoire. Link: http://tnerual.eriogerg.free.fr/0xBABAF000L/index.html

我很喜欢这种主题的笑话和漫画, 所以在这里也把它们介绍给你.

出场人物有六个, 分别是Debby, GNUT, Drake, The Dukes, Foxxy和The Bills. 它们有着不同的身份和各自的象征.

Debby

她是我们的女主角, 虽然她并不适合这个角色. 但我们需要一个主角,而她不幸地抽到了这个签. 她整天做着有趣却没用的, 貌似很有希望却只是不幸的事.

GNUT

他什么都知道, 却什么也不说. 是的, GNUT沉默寡言. 对他来说, 说话完全是浪费, 而浪费资源的事是绝不能做的. 当他有话要说时, 他总是讲得很隐晦. 还有, 他是Debby最好的朋友.

Drake

他什么都不知道, 但总说个不停. 他曾是法国贵族, 也是个蹩脚的魔术师. 人很死板, 而且做事常常心不在焉. 幸亏他还有所剩无几魔力, 才能给出些合理的建议, 但那也只是在他成功地想起咒语的时候.

The Dukes

它们数量众多, 也很讨人厌. 嗯, 它们大多数是这样的. 而且, 你必须时刻留意它们, 否则它们会把这里弄得一团糟. 它们也相当擅长浪费时间. 但撇开这一切, 它们还是很可爱的, 而且很乐于助人(前提是你准确地告诉它们, 你想要它们做什么).

Foxxy

它是只小狐狸! 每个人都认识它! 它能以惊人的速度取回你想要的一切. 有时, 如果你不管它, 它会在你意想不到的地方四处晃悠.

The Bills

他们的数量数不清, 每个都完全一样(虽然有时你能通过他们的衬衫的颜色分辨他们). 他们虽然很呆板, 但很恭敬, 也乐于助人. 他们的默认设置让人不爽, 总是把问题重复问你至少两遍, 却从不理会你的回答.

好了, 再来看几幅有趣的漫画吧, 点击图片放大.

Unsigned Minus One

Universe Word Size

这两幅是我最喜欢的, 很有趣的trick, 很Geek. 但后一幅的第一格里有个小Bug.

Windows Security

讽刺Windows的安全措施..

p2p

p2p = peer 2 peer? no, poor 2 pathetic, 穷人和值得同情的人的网络.

X Server

这幅漫画和系列中前面的几幅是连续的. 之前Drake开了一个ssh tunnel, Debby把一个RPM包扔进去的时候自己也掉进去了, 结果Drake和Foxxy好不容易找到Debby了, 却.. 怪只能怪Drake技艺不精, 开ssh的时候没加-X参数.

想看更多的漫画, 还是到作者的网站上看吧. 作者只允许我选一些我最喜欢的放上来, 可我每张都喜欢怎么办?

Update: 第13幅中, $$\exists f\in\mathbb{P}^{[\mathbb{R}]}_{\infty},f(\sqrt{\pi})=0$$说的是什么? 为什么表示”化圆为方”的问题的?

漫画 – 0xBABAF000L Read More »

用最简单的方法让TeX Live支持中文

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

让TeX支持中文不是一件容易的事, 但我终于找到了一个简单的办法(应该说是傻瓜办法).

安装TeX Live和CJK. 在源里选择texlive, latex-cjk-chinese(如果需要日文和韩文支持, 那么选择latex-cjk-all)安装.

然后下载”YueWang-zhfonts-final_1.01.tar.bz2″, 这是YueWang制作的TeX Live 2007使用的字体包, 有207M. 教育网里可以在这里下载, 教育网外可以在这里下载. 顺便分享一个很好用的FTP搜索引擎, http://run.hit.edu.cn/.

然后将解压后文件夹内的两个文件夹移动到你的Home目录里, 并在目录名前分别加 ‘.'(点号). 好了, 大功告成. 但根据安装说明 “如果不行, 请把~/.texlive2007/texmf-var/fonts/map/dvips中的所有map給enable了.”, 我不是很了解这些, 等我进一步了解后再作解释吧.

编译一个tex文件来试试效果吧, 下面是tex文件的样例.

\documentclass{article}
\usepackage{<cjkpackage>}
\begin{document}
\begin{CJK}{<encoding>}{<fontname>}
你好!
\end{CJK}
\end{document}

其中<cjkpackage>可以是CJKutf8(源文件用UTF8编码)也可以是CJK(源文件用GBK编码), <encoding>是GBK或UTF8, 和上面的<cjkpackage>是对应的, 也就是是CJK那么必须是GBK. 而如果是CJKutf8,则就是UTF8. <fontname>就好说了,就是song, hei, fs,kai等等.

用最简单的方法让TeX Live支持中文 Read More »

Emacs快捷键列表

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

C = Control
M = Meta = Alt | Esc
Del = Backspace

基本快捷键(Basic)
C-x C-f “find”文件, 即在缓冲区打开/新建一个文件
C-x C-s 保存文件
C-x C-w 使用其他文件名另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-z 挂起emacs
C-x C-c 关闭emacs

光标移动基本快捷键(Basic Movement)
C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾

编辑(Editint)
M-n 重复执行后一个命令n次
C-u 重复执行后一个命令4次
C-u n 重复执行后一个命令n次
C-d 删除(delete)后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除(kill)一行

C-Space 设置开始标记 (例如标记区域)
C-@ 功能同上, 用于C-Space被操作系统拦截的情况
C-w 移除(kill)标记区域的内容
M-w 复制标记区域的内容
C-y 召回(yank)复制/移除的区域/行
M-y 召回更早的内容 (在kill缓冲区内循环)
C-x C-x 交换光标和标记

C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写

重要快捷键(Important)
C-g 停止当前运行/输入的命令
C-x u 撤销前一个命令
M-x revert-buffer RETURN (照着这个输入)撤销上次存盘后所有改动
M-x recover-file RETURN 从自动存盘文件恢复
M-x recover-session RETURN 如果你编辑了几个文件, 用这个恢复

在线帮助(Online-Help)
C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h l 显示最后100个键入的内容
C-h w 显示命令被绑定到哪些快捷键上
C-h f 显示函数的功能
C-h v 显示变量的含义和值
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
C-h i 打开info阅读器
C-h C-f 显示emacs FAQ
C-h p 显示本机Elisp包的信息

搜索/替换(Seach/Replace)
C-s 向后搜索
C-r 向前搜索
C-g 回到搜索开始前的位置(如果你仍然在搜索模式中)
M-% 询问并替换(query replace)

Space或y 替换当前匹配
Del或n 不要替换当前匹配
. 仅仅替换当前匹配并退出(替换)
, 替换并暂停(按Space或y继续)
! 替换以下所有匹配
^ 回到上一个匹配位置
RETURN或q 退出替换

使用正则表达式(Regular expression)搜索/替换
可在正则表达式中使用的符号:
^ 行首
$ 行尾
. 单个字符
.* 任意多个(包括没有)字符
\< 单词开头
\> 单词结尾
[] 括号中的任意一个字符(例如[a-z]表示所有的小写字母)

M C-s RETURN 使用正则表达式向后搜索
M C-r RETURN 使用正则表达式向前搜索
C-s 增量搜索
C-s 重复增量搜索
C-r 向前增量搜索
C-r 重复向前增量搜索
M-x query-replace-regexp 使用正则表达式搜索并替换

窗口命令(Window Commands)
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
C-x ^ 扩大窗格
M-x shrink-window 缩小窗格
M C-v 滚动其他窗格内容
C-x 4 f 在其他窗格中打开文件
C-x 4 0 关闭当前缓冲区和窗格
C-x 5 2 新建窗口(frame)
C-x 5 f 在新窗口中打开文件
C-x 5 o 切换至其他窗口
C-x 5 0 关闭当前窗口

书签命令(Bookmark commands)
C-x r m 在光标当前位置创建书签
C-x r b 转到书签
M-x bookmark-rename 重命名书签
M-x bookmark-delete 删除书签
M-x bookmark-save 保存书签
C-x r l 列出书签清单

d 标记等待删除
Del 取消删除标记
x 删除被标记的书签
r 重命名
s 保存列表内所有书签
f 转到当前书签指向的位置
m 标记在多窗口中打开
v 显示被标记的书签(或者光标当前位置的书签)
t 切换是否显示路径列表
w 显示当前文件路径
q 退出书签列表

M-x bookmark-write 将所有书签导出至指定文件
M-x bookmark-load 从指定文件导入书签

Shell
M-x shell 打开shell模式
C-c C-c 类似unix里的C-c(停止正在运行的程序)
C-d 删除光标后一个字符
C-c C-d 发送EOF
C-c C-z 挂起程序(unix下的C-z)
M-p 显示前一条命令
M-n 显示后一条命令

DIRectory EDitor (dired)
C-x d 打开dired
C(大写C) 复制
d 标记等待删除
D 立即删除
e或f 打开文件或目录
g 刷新当前目录
G 改变文件所属组(chgrp)
k 从屏幕上的列表里删除一行(不是真的删除)
m 用*标记
n 光标移动到下一行
o 在另一个窗格打开文件并移动光标
C-o 在另一个窗格打开文件但不移动光标
P 打印文件
q 退出dired
Q 在标记的文件中替换
R 重命名文件
u 移除标记
v 显示文件内容
x 删除有D标记的文件
Z 压缩/解压缩文件
M-Del 移除标记(默认为所有类型的标记)
~ 标记备份文件(文件名有~的文件)等待删除
# 标记自动保存文件(文件名形如#name#)等待删除
*/ 用*标记所有文件夹(用C-u */n移除标记)
= 将当前文件和标记文件(使用C-@标记而不是dired的m标记)比较
M-= 将当前文件和它的备份比较
! 对当前文件应用shell命令
M-} 移动光标至下一个用*或D标记的文件
M-{ 移动光标至上一个用*或D标记的文件
% d 使用正则表达式标记文件等待删除
% m 使用正则表达式标记文件为*
+ 新建文件夹
> 移动光标至后一个文件夹
< 移动光标至前一个文件夹
s 切换排序模式(按文件名/日期)

或许把这个命令归入这一类也很合适:
M-x speedbar 打开一个独立的目录显示窗口

Telnet
M-x telnet 打开telnet模式
C-d 删除后一个字符或发送EOF
C-c C-c 停止正在运行的程序(和unix下的C-c类似)
C-c C-d 发送EOF
C-c C-o 清除最后一个命令的输出
C-c C-z 挂起正在运行的命令
C-c C-u 移除前一行
M-p 显示前一条命令

Text
只能在text模式里使用
M-s 使当前行居中
M-S 使当前段落居中
M-x center-region 使被选中的区域居中

宏命令(Macro-commands)
C-x ( 开始定义宏
C-x ) 结束定义宏
C-x e 运行最近定义的宏
M-n C-x e 运行最近定义的宏n次
M-x name-last-kbd-macro 给最近定义的宏命名(用来保存)
M-x insert-kbd-macro 将已命名的宏保存到文件
M-x load-file 载入宏

编程(Programming)
M C-\ 自动缩进光标和标记间的区域
M-m 移动光标到行首第一个(非空格)字符
M-^ 将当前行接到上一行末尾处
M-; 添加缩进并格式化的注释
C, C++和Java模式
M-a 移动光标到声明的开始处
M-e 移动光标到声明的结尾处
M C-a 移动光标到函数的开始处
M C-e 移动光标到函数的结尾处
C-c RETURN 将光标移动到函数的开始处并标记到结尾处
C-c C-q 根据缩进风格缩进整个函数
C-c C-a 切换自动换行功能
C-c C-d 一次性删除光标后的一串空格(greedy delete)

为了实现下面的一些技术, 你需要在保存源代码的目录里运行”etags
*.c *.h *.cpp”(或者源代码的其他的扩展名)
M-.(点) 搜索标签
M-x tags-search ENTER 在所有标签里搜索(使用正则表达式)
M-,(逗号) 在tags-search里跳至下一个匹配处
M-x tags-query-replace 在设置过标签的所有文件里替换文本

GDB(调试器)
M-x gdb 在另一个的窗格中打开gdb

版本控制(Version Control)
C-x v d 显示当前目录下所有注册过的文件(show all registered files in this dir)
C-x v = 比较不同版本间的差异(show diff between versions)
C-x v u 移除上次提交之后的更改(remove all changes since last checkin)
C-x v ~ 在不同窗格中显示某个版本(show certain version in different window)
C-x v l 打印日志(print log)
C-x v i 标记文件等待添加版本控制(mark file for version control add)
C-x v h 给文件添加版本控制文件头(insert version control header into file)
C-x v r 获取命名过的快照(check out named snapshot)
C-x v s 创建命名的快照(create named snapshot)
C-x v a 创建gnu风格的更改日志(create changelog file in gnu-style)

这份列表根据http://lpn.rnbhq.org/tools/xemacs/emacs_ref.html和我的使用经验翻译整理而来. 部分内容我不是很熟悉(比如Version Control), 在给出翻译的同时附上了英文, 这部分如果有错误, 请给我指出, 谢谢. 原列表中的部分命令/快捷键已经失效, 我在整理中发现的已修正, 但仍可能存在错误, 希望您发现后能指出来, 谢谢. 我使用的Emacs的版本是GNU Emacs 23.0.60.1 of 2008-03-20, 而因各人使用的Emacs版本不同, 命令/快捷键可能存在差异, 所以希望您在指出问题时能同时附上您的Emacs版本号.

Emacs快捷键列表 Read More »

无题 – 20080814

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

我的Blog很久没更新了, 因为最近都看电视去了, the Olympic Games. 上一篇日志还是被这篇日志逼出来的, 我很少一天写2篇日志的.

今天终于上网来看看, 有的事我料到了, 有的没有. 料到的是关于孩子的事, 没料到的是它居然是两个孩子的事; 料到的是一些小事引发的争吵, 没料到的是Google App Engine这么快就撞墙了.

不多说了, 谈谈天气吧, 今天下雨了, 大雨, 电闪雷鸣.

无题 – 20080814 Read More »

我的Linux日记[五]: bash的小技巧

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

  1. 我的Linux日记[一]: 让Ubuntu完全支持中文
  2. 我的Linux日记[二]: 重启后设备无法正常工作
  3. 我的Linux日记[三]: 系统为何无法启动
  4. 我的Linux日记[四]: 在Linux下播放多媒体文件
  5. 我的Linux日记[五]: bash的小技巧

bash是Ubuntu的默认终端, 也是大部分Linux发行版和Mac OS X的默认终端. 这篇日志记录了我在网上找到的和自己在使用中发现的一些使用技巧.

首先是一些快捷键
up & down 依次翻阅曾输入过的命令
ctrl + r 搜索曾输入过的命令, 但我不常用这个, 因为我有更方便的命令
ctrl + a 光标移动到行首
ctrl + e 光标移动到行尾, 这两个快捷键是Emacs风格的
ctrl + u 剪切光标之前的内容
ctrl + k 与上一个相反, 剪切光标之后的内容
ctrl + y 粘贴以上用以上两个快捷键剪切的内容
ctrl + w 删除光标左边的内容
ctrl + l 清屏, 和clear命令效果一样

我再来说说上面提到的更方便的搜索曾输入过的命令的方法. 在bash中输入过的命令都会保存在~/.bash_history里, 搜索这个文件就能搜索输入过的命令了. 在这里我们使用egrep这个支持正则表达式匹配的程序搜索.

cat ~/.bash_history | egrep REGEXP

这个命令可以显示匹配”REGEXP”的, 曾输入过的命令. 而如果使用ctrl + r搜索, 可能要按很多次ctrl + r才能找到需要的命令.

这个命令里包含了一个”|”符号, 这是在使用bash支持的”管道”功能. 管道, 就像是将程序输出的数据流装进了管子, 让它流向我们指定的地方(下一个程序). 比如这里, 我先将~/.bash_history的内容读取出来, 将它导入egrep, 让egrep用我输入的REGEXP来匹配这些数据. 再看一个用到管道功能的命令:

ls -l | more

“ls -l” 显示当前目录的文件和子文件夹的详细信息, “more” 可以让它分页显示. 是不是很方便?

bash里还有一个很有用的功能是”重定向”, 它可以重定向程序的标准输入输出和标准错误输出.

例如:

ls -l > ls.txt

和上一个命令差不多, 不过这次是把 “ls -l” 显示出的内容写入了 “ls.txt” 这个文件里. 如果把上面的 “>” 换成 “>>” , 就变成了把那些显示的内容添加到 “ls.txt” 的末尾, 而不是覆盖这个文件.

好了, 回到刚才说的那个搜索输入过的命令的命令(绕口令..). 我仍然嫌每次写这么长的命令太麻烦, 于是我编辑了一下”~/.bashrc”这个文件. 在它里面添加了

alias shis='cat ~/.bash_history | egrep'

这样一行. 之后我想使用上面的命令就只需要用”shis”这个命令加上我要搜索的正则表达式就好了.

上面提到的”~/.bashrc”文件帮了我很大的忙, 因为它是你打开bash时会被调用的一个文件. 在里面写上一些常用命令的缩写, 在调用的时候就方便很多. 我的”.bashrc”里有这些缩写, 一部分是系统自带了的, 一部分是我在网上看到的.

Bash语言: My .bashrc
# enable color support of ls and also add handy aliases
# 启用ls和grep等命令的自动高亮功能
if [ “$TERM” != “dumb” ] &amp;&amp; [ -x /usr/bin/dircolors ]; then
eval “` dircolors -b`”
  alias ls=‘ ls –color=auto’
  alias dir=‘ ls –color=auto –format=vertical’
  alias vdir=‘ ls –color=auto –format=long’

  alias grep=‘ grep –color=auto’
  alias fgrep=‘ fgrep –color=auto’
  alias egrep=‘ egrep –color=auto’
fi

# some more ls aliases
# 很方便的, 而且很容易理解吧
alias ll=‘ls -l’
alias la=‘ls -A’
alias l=‘ls -CF’

# my aliases
alias rm=‘rm -i’ # 删除前需要确认, 防止误删
alias ..=‘cd ..’
alias server_name=‘ssh -v -l username server’ # 对常用ssh的人很有用, username和server请自己替换
alias shis=‘cat ~/.bash_history | egrep’ # 刚刚说过的

这里的代码高亮用到了代码发芽网的功能, 比WP的<code>强大, 但代码长度也要长些.

好了, 再额外提一个我知道的命令.

find . -perm /u+x -type f -exec rm {} \;

删除当前目录里所有的可执行文件. 在我清理存放我做题的文件夹时很有用, 因为我会编译一堆没有扩展名的可执行文件, 但删除时却也可以用一条命令全删除, 很好吧?

我的Linux日记[五]: bash的小技巧 Read More »

Stellarium – Turn your gaze to the sky

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

今天是农历七月初七, 中国的传统节日”七夕”. 在古代, 传说七夕是天上的七仙女的生日, 于是MM们向七仙女”乞巧”, 希望自己也能有她们那样的好手艺. 古代也有传说七夕是牛郎织女见面的日子. “牛郎织女”的传说在《诗经》里已经有记载, 但关于他们每年七月初七才能见一面的说法直到晋代才出现. 而现在的七夕已经成了中国版的情人节, 这应该也和牛郎织女的传说有关.

The Summer Triangle

传说中牛郎织女被隔在天河两侧, 看看上面的图也看得到, 牛郎星(Altair)和织女星(Vega)被中间的银河(那个颜色发白的带子)隔开了. 生活在城市里的我们大多都对银河视而不见, 因为光污染让我们无法欣赏到夏夜最美好的星空. 那生活在城市的我们能有什么办法? 使用Stellarium来过过干瘾吧. 上面那个图就是我的Stellarium的截图, 而被我用三角形圈出来的三颗星就是夏夜最明亮的星星, 被称为”夏季大三角“(Summer Triangle).

Stellarium 是一个免费的开源软件, 它能让你的电脑模拟3D星空. 你需要设置的是你所在位置的经纬度, 然后就可以看到由软件模拟的天空了. 调整时间, 你可以看到不同时间的星空, 可以提前看到明年夏天的日食, 可以在进行天文观测时候更方便(我觉得专业人士大概不会用这个). 当然最大的用处是在熬夜的时候放松一下心情, 这也是我最喜欢的软件之一.

你可以在http://www.stellarium.org/下载到它的Windows, Linux和Mac OS X版本. 如果你使用Ubuntu, 可以用sudo apt-get install stellarium, 从源中安装.

Snapshot of Stellarium

这是Stellarium的截图. 介绍下截图里被我选中的红色星星, 它是天蝎座α, 拉丁名是Antares, 在中国我们叫它”心宿二“, 也叫”大火”. 它是一颗红超巨星, 也是天上比较亮的星星了. 古人通过观测它来确定季节, 诗经中”七月流火, 九月授衣”就是说的这颗星. 农历七月也就是公历八九月, 是天气转凉的时候, 也是”大火”向西边落下的时候. 这个成语本来是用来形容天气渐渐转凉了, 却被很多人误用来形容夏天最热的那几天. 《三思科学》电子杂志里曾介绍过这个成语的来历, http://www.oursci.org/magazine/200208/020831.htm

你可能发现了我在这篇日志里使用了多个指向中文Wikipedia的链接. 如果你注意了这些天的IT新闻, 或者看到了那篇曾短暂出现在我的Blog上就被我隐藏了的日志, 那你就应该了解到因为奥运的缘故, 伟大的墙变矮了. 于是中文Wikipedia, BBC, VOA, RFA都可以之间访问了. 再提供一个中文Wikipedia的SSL链接, 因为在Wikipedia里, 随便什么条目都有撞墙的可能. https://secure.wikimedia.org/wikipedia/zh/wiki/

最后用梭罗的一句诗结尾, 祝福所有的人. 特别是他, 让我能读到这么好的一句诗. Bless all & I believe you!

我在天空垂钓, 钓一池晶莹剔透的繁星.
–《瓦尔登湖》 梭罗

Stellarium – Turn your gaze to the sky Read More »

Google PageRank七月更新

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

Google PageRank终于更新了, 而半年的努力, 让我的Blog的PR上升到了3.

在这次更新中, 很多老牌的PR预测工具都失效了. 但aw推荐的一个新的预测PR的工具网站也还是很好用的:

http://www.dlls.info/

还有我找到的这个工具也不错:

http://www.knowsky.com/tools/pr/

最后, 给看到这里但不知到我在说什么的同学介绍一下Google PageRank:

PageRank是Google的两位创始人 拉里·佩奇 和 谢尔盖·布林 于1998年在斯坦福大学发明的一项用来统计互联网上页面重要程度的技术. 它的基本思想就是让网页利用链接给其他的网页投票, 被投得多的网页就会得到一个比较高的”PageRank值”(简称”PR值”). PR值越高的网页在互联网上的重要性也越大, 而Google在排列搜索结果里网页的顺序时也会参考这个页面的PR值. PR值被Google分为11个等级, 从0到10, 我的Blog首页目前的PR值是3.

Google PageRank七月更新 Read More »