Unix /Linux 下字符大小写转换
从SAM那里学来一个trick,记录一下
方法一:
$ cat target_file.txt|dd conv=ucase #小写转大写
$ cat target_file.txt|dd conv=lcase #大写转小写
方法二:
#tr [:lower:] [:upper:] < target_file.txt #小写转大写
别闲着,再快一点~~~
从SAM那里学来一个trick,记录一下
方法一:
$ cat target_file.txt|dd conv=ucase #小写转大写
$ cat target_file.txt|dd conv=lcase #大写转小写
方法二:
#tr [:lower:] [:upper:] < target_file.txt #小写转大写
先假想这样一个场景:
作为工程师赶到用户机房现场,发现了一个棘手的问题,希望办公室的同事可以一起帮助解决。这个时候你常用的做法:
1,打电话,却发现有些问题经常说不清楚,毕竟同事不在现场。
2,发邮件,这种异步的工作方式,效率很是低下。
3, IM软件上贴信息,再配合上打电话。这种方式好些,但常常发现你认为无关紧要的,没有贴上来/提及的信息居然是问题的关键,从而影响了问题解决的速度。
现在有了一个更好的选择了:Sun Shared Shell 在SUN的网站上有个非常容易记忆的URL: http://www.sun.com/123

上面是原理示意图,简单的来说就是如下步骤:
前提:
1,你所在的网络可以登录到目标服务器上(通过telnet/ssh),并且可以访问到SUN的网站(通过proxy亦可)并且有mysun的帐号(免费注册),浏览器支持JAVA。
2, 你的同事可以访问到SUN的网站,并且有mysun的帐号(免费注册),浏览器支持JAVA。
步骤:
1, 访问http://www.sun.com/123 ,点击 Launch Shared Shell » 运行弹出的JAVA程序。

如图,左端是mysun帐号的登录栏,右面则指定你需要登录的目标服务,可以选择ssh或者 telnet方式。
2,登录后出现如下窗口,最上方是登录后的目标服务器的terminal,左下是与其他人聊天的窗口,右下是与会者。
你在terminal中的键入的命令及输出,与会者都能及时的看到,甚至可以用右上角的铅笔做标记。

上图的实例中,与会者仅有我自己,其他人则是要靠邀请来的。
3, 邀请他人点击上方工具栏中的conference->invite…

将这个生成的Invitation Key告知你要邀请的同事,他在登录mysun帐号的同时就可以参与近来了。而且还有三个级别的权限设置,不仅可以让同事只读你的操作,更能让他亲自操刀帮你解决问题。
这个SUN Shared shell工具可以完整保留操作记录到本地机器,另外更重要的一点是:客户机与SUN网站之间的信息流是完全SSL加密的,不用担心安全问题。
这个工具的创意我们完全可以找到新的用途:
1, 网络培训/授课。让所有与会者打开skype的语音会议,老师做为Initiator,在实验室中就可以给世界各地的学生们来上一堂UNIX管理/编程的课程,还可以给学生亲自动手的机会。
2, 穿透内网的工具…这个就不细说了,自己想像吧。
3, 考虑到这个通讯加密的特性,完全可以利用它作为临时的私秘聊天室,避开老大哥的耳目,这个也不细说了。
Cool Stack 是一堆在Solaris (Solaris 10)上优化过的开源软件集合,使用这些软件可以享受到最好的性能优化。Cool Stack 上涵盖的软件范围目前主要面向web service,随着应用的需求变化,日后应该还会有所增加。
1.3 版本的Cool Stack已经可以下载,包含如下的新软件版本:
- Python 2.5.2
- nginx 0.6.31
- libxslt 1.1.22
- fontconfig 2.4.2
- mod_security apache 2.5.3
- mod_python 3.3.1
- mod_ruby 1.2.6
- mod_dtrace 0.3a
- memcache php extension 2.2.3
- xdebug php extension 2.0.3
- tcpwrap php extension 1.0
- perl Compress::Zlib
- mysql ruby gems 2.7
- postgres ruby gem 0.7.1
有兴趣尝试的人可以选择性下载。这些SVR4格式的软件包以CSK开头,安装方式与平时在Solaris OS上安装软件相同:
root@skywalker # pkgadd -d CSKpython_1.3RC1_sparc.pkg
Cool Stack 软件会安装到/opt/coolstack目录下,包含所需的library。
想到前几天曾经在公司的工作站上安装过python 2.5.1 ,还是从http://ww.sunfreeware.com 上下载的。于是就安装了此次1.3 version的Cool Stack Python 2.5.2 ,做了一下性能比较,但是效果并不理想。
下面的程序读取A.txt文件中的所有单词并将出现频率存入大Dictionary,并打印出现频率最高的30个单词。经过对比,当A.txt大到11M 的时候,coolstack 中的python 2.5.2所消耗的时间将比来自sunfreeware的python2.5.1长一倍,的确让人一头雾水。难道是python 2.5.2的问题?
测试环境:古董级的U10 (CPU 440Mhz UltraSPARC IIi, Mem 256M, Solaris 10 U1)
有兴趣且具备测试环境的可以帮忙测试一下。Cool Stack优化后的Python是否如此不堪。
Python 测试代码下载 code.tar
目标TXT文件如果一时找不到比较合适的,可以使用这个:
Solaris 下并未提供专门的md5校验工具。但是 solaris 10下的digest命令可以实现此功能:
root@skywalker # digest
digest: usage: digest -l | [-v] -a <algorithm> [file...]
root@skywalker # digest -v -a md5 sol-10-u5-ga-sparc-dvd.iso
md5 (sol-10-u5-ga-sparc-dvd.iso) = c984d8f5c439e1e73d13f2cefc095216
root@skywalker # digest -l
sha1
md5
digest 隶属于SUNWcsu软件包,在Solaris 9上没有此命令,Solaris 10就没什么问题了。当然也可以使用第三方的脚本来实现, 这里有一个用Python实现的md5校验程序md5sum.py,网上搜到的,可以解燃眉之急。不过默认情况在Solaris 下使用Python的hashlib程序库会出现如下报错:
ImportError: No module named _md5
解决办法就是安装openssl的高级版本,这个可以到sunfreeware.com上去下载。
效率上python的代码要比根红苗正的C程序慢一些,但是速度还在可以忍受的范围之内。
PS: VIM配合Calendar插件用来做工作记录还是比较好用,但是如果不上传到Google Calendar上,搜索内容则是很大的麻烦。今天写了一个粗糙的Python脚本,遍历diary目录下的所有文件,然后用grep来查找,觉得可以再完善一下,比单纯依赖网络服务的好。
又PS: Sam向我推荐KDE的Basket程序,用于做Notes。BasKet很Cool,很炫,记录条目可以自由拖放,颜色标记也很鲜明,而且可以导出成HTML文件!是个非常不错的工具。