bash 脚本 - 输出流重定向至错误流(stderr)

在C/C++里,都有各自的方法用于向错误流写数据。如:

  • fprintf(stderr, “Hello World\n”);
  • cerr << “Hello World” << endl;

在bash脚本里,可以用echo “Hello World”向标准输出写入数据,可如何像标准错误流写入数据呢?同样有两种方法:

  • echo “Hello World” >> /dev/stderr
  • echo “Hello World” >&2

(阅读全文……)

Posted by 王永杰 in linux应用, 技术为本 - Tags: , , , - Comments (0)
19 08月

pure-ftpd 浏览器访问时弹出登录框

安装了pure-ftpd,限制了匿名用户的登录,可是在用浏览器直接输入地址回车后,没有出现提示输入用户名和密码的登录框,而是需要直接指定用户名或者右键点击登陆。这样用起来会有点不太方便,还是google搜到了解决办法,只是一个配置项的设置问题。

# 兼容ie等比较非正规化的ftp客户端
BrokenClientsCompatibility yes

这样就可以了,看着弹出来的提示框,爽!!

参考链接:
http://hi.baidu.com/jufeis/blog/item/5ec6840a50f20b1c94ca6bd5.html
http://forum.ubuntu.org.cn/viewtopic.php?t=28052&highlight=pure-ftpd

15 08月

debian/ubuntu中如何阻止软件包的升级(转载)

If you want to update all the packages other than one package in your Ubuntu system follow this procedure There are three ways of holding back packages, with dpkg, aptitude or with dselect.

Using dpkg

Put a package on hold

sudo echo “package hold” | dpkg --set-selections

Example (阅读全文……)

Posted by 王永杰 in linux应用 - Comments (0)
15 08月

如何合并文本文件

今天部门一个同事提了一个需求,要把若干个txt格式的文本文件合并在一起。需求看起来很简单,我的第一反应是写一个脚本实现这个功能,可是下午事情多,写脚本的时间也没有。于是用更便捷的方法,网络和同学帮助找到了若干个答案,很快解决了真个问题。

  1. 借助于Word:将所有的文本文件置于同一个文件夹中,打开Word并新建一个空白文档,然后单击菜单“插入→文件”,在弹出的对话框中将“文件类型”设置为“文本文件”,最后将所有要合并的文本文件全部添加进来即可。
  2. 借助于copy命令:同样将所有的文本文档拷贝到同一个文件夹,打开命令行控制台,切换到存放文本文件的目录,再使用命令“copy *.txt c:\merged.txt”(c:\merged.txt为存放目标文件的路径及合并后的文件名)。
  3. linux下面也可以实现,cat *.txt > c:\merged.txt

值得注意的是,第一种合并文本的方式会自动在各个子文本内容之间插入换行符,而其他两种都不行。

Posted by 王永杰 in 技术为本 - Comments (0)
9 08月

VIM自动给脚本加注释(转载)

写程序的时候给代码注释有时候蛮烦人的,尤其是用英文写注释的时候,不过养成写注释的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。

VIM 里面可以使用映射(map)来帮你自动插入这些信息,就像下面这样

#****************************************************
#         Author: Muddyboot - toobyddum@gmail.com
#  Last modified: 2007-08-10 21:19
#       Filename: /etc/vimrc
#    Description: Configuration for vim editor
#****************************************************

其中 Last modified 后面的时间是根据当前时间自动插入的,Filename 后的文件名也是当前编辑的文件名。 (阅读全文……)

5 08月

如何在C/C++代码中执行一个DOS命令(Win平台)

简单来说可以有三种方式可以实现:

  1. int system( const char *command ).
  2. UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow ).
  3. HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ).

(阅读全文……)

Posted by 王永杰 in C&C++, 技术为本 - Tags: , , - Comments (0)
28 07月

用 pidgin(gaim) 上 Gtalk 和 MSN

pidgin 是 Linux-Gnome桌面环境下的一个多协议即时通信客户端,用它可以上 Gtalk, MSN, QQ。它有界面简洁,标签式聊天窗口,可同时登录多个IM等诸多优点,我很喜欢这个软件,在Win下也用基于GTK的pidgin 移植版。用它怎么上Gtalk和MSN等呢,我就不多说了,不难。我这里要说的是如何不用5222端口上gtalk,不用1863端口上MSN。其实也很简单哦:

  • Gtalk,很简单,同时选中Force old SSL和Allow plaintext auth over unencrypted streams两个选项,端口修改为443。
  • MSN,更简单,选中Use HTTP Method

当5222和1863两个端口被封了的时候,这个方法还是很有用的哦。

参考:Pidgin 连接 Google Talk 的配置

Posted by 王永杰 in 技术为本, 网络应用 - Comments (1)
30 06月