昨天晚上,更新到最新的ports后,提示openoffice的最新版本是2.3,可以升级了。

昨天晚上就开始在服务器上更新ports,重新编译openoffice-2.3 。

 
新的openoffice-2.3依赖gcc-4.2.2,就自动编译了一个gcc-4.2.2。一直到今天下午才全部编译完。

将openoffice-2.3下载回来安装 。已经用上最新的openoffice-2.3了。呵呵

删除操作

:%s/r//g 删除DOS方式的回车^M
:%s= *$== 删除行尾空白

:%s/^(.*)n1/1$/ 删除重复行

:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf

:%s/<!--_.{-}-->// 又是删除多行注释(咦?为什么要说「又」呢?)

:g/s*^$/d 删除所有空行 :这个好用有没有人用过还有其他的方法吗?
:g!/^dd/d 删除不含字符串'dd'的行
:v/^dd/d 同上 (译释:v == g!,就是不匹配!)

:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行


:v/./.,/./-1join 压缩空行
:g/^$/,/./-j 压缩空行

ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后 n-1 行。
x 或 X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区

dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容

今天买到短信猫了,特意选择了个smstools支持的短信猫。

开始担心不支持在unix下发送,还让销售商给测试了一把。送货过来的是一个姑娘,接到笔记本后,就让她给测试。用AT指令,发送成功了。

不过刚开始,用smstools发送,没有成功,把我给郁闷了半天。 更让我郁闷的是,将我的SIM卡里的短信息都给接收到电脑上,并且删除了。

最终搜集资料,分析源码。终于发送成功了,并且支持中文字符。呵呵

R 以改写方式输入文本
w 右移一个词
W 右移一个以空格分隔的词
b 左移一个词
B 左移一个以空格分隔的词
( 到句子的开头
) 到句子的末尾
{ 到段落的开头
} 到段落的末尾
:x 保存(如果当前文件修改过)并退出
Ctrl+G 光标所在位置的行数和列数报告。
cw、dw 改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)
/string、?string 从光标所在处向后或向前查找相应的字符串的命令
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
:3r /etc/passwd 从新文件的第3行开始读入/etc/passwd的所有内容
:3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”
:%s/$/some string/g 在整个文件每一行的行尾添加“some string”
:%s/string1/string2/g 在整个文件中替换“string1”成“string2”
:3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”
--注意: 其中s为substitute,%表示所有行,g表示global

1.交换两个字符位置
xp

2.上下两行调换
ddp

3.把文件内容反转
:g/^/m0/ (未通过)

4.上下两行合并
J

5.删除所有行
dG

6.从当前位置删除到行尾
d$

7.从当前位置复制到行尾
y$
如果要粘贴到其他地方 p 就可以了

由于vi 是建立在 EX 上的 所以 当键入 : 时就来到了 EX 命令状态

8. :ab string strings
例如 ":ab usa United States of America" ,
当你在文见里插入 usa 时
United States of America 就蹦出来了

9. :map keys new_seq
定义你当前 键盘命令 

10. :set [all]
vi or ex 的编辑状态
如 显示每行 :set nu

11. 在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的下面。

12. 单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S

13. :%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串

14.光标控制
k:上移 nk 上移n行
j:下移 nj 下移n行
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等
这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用
想粘贴到某处,直接将光标移到某地,按下 ‘ap 即可,以此类推,b,c........寄存器等
在当前屏幕中
H 跳到第一行
M 跳到中间一行
L 跳到最后一行

15.表8-2 删除命令
删除命令操作
d l 删除当前字符(与x命令功能相同)
d 0 删除到某一行的开始位置
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)
d w 删除到某个单词的结尾位置
d 3 w 删除到第三个单词的结尾位置
d b 删除到某个单词的开始位置
d W 删除到某个以空格作为分隔符的单词的结尾位置
d B 删除到某个以空格作为分隔符的单词的开始位置
d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d 4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d } 删除到某个段落的结尾位置
d { 删除到某个段落的开始位置
d 7 { 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d /text 删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容
D 删除到某一行的结尾
d $ 删除到某一行的结尾
5 dd 删除从当前行所开始的5行内容
d L 删除直到屏幕上最后一行的内容
d H 删除直到屏幕上第一行的内容
d G 删除直到工作缓存区结尾的内容
d 1 G 删除直到工作缓存区开始的内容

修改命令操作
c l 更改当前字符
c w 修改到某个单词的结尾位置
c 3 w 修改到第三个单词的结尾位置
c b 修改到某个单词的开始位置
c W 修改到某个以空格作为分隔符的单词的结尾位置
c B 修改到某个以空格作为分隔符的单词的开始位置
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置
c 0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
c c 修改当前行
5 c c 修改从当前行所开始的5行内容

.重复上一次修改!

表8-4 替换命令
替换命令操作
s 将当前字符替换为一个或多个字符
S 将当前行替换为一个或多个字符
5 s 将从当前字符开始的5个字符替换为一个或多个字符

vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串

16.
fx
往右移动到 x 字符上
Fx
往左移动到 x 字符上
tx
往右移动到 x 字符前
Tx
往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
;
分号,配合 f 和 t 使用,重复一次
,
逗号,配合 f 和 t 使用,反方向重复一次

17. vi 环境选项 Solaris ksh
noautoindent nomodelines noshowmode
autoprint nonumber noslowopen
noautowrite nonovice tabstop=8
nobeautify nooptimize taglength=0
directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags
noedcompatible prompt tagstack
noerrorbells noreadonly term=vt100
noexrc redraw noterse
flash remap timeout
hardtabs=8 report=5 ttytype=vt100
noignorecase scroll=11 warn
nolisp sections=NHSHH HUuhsh+c window=23
nolist shell=/bin/ksh wrapscan
magic shiftwidth=8 wrapmargin=0
mesg noshowmatch nowriteany

For C-Shell:
setenv EXINIT "set nu"
For Bourne or Korn Shell:
EXINIT="set nu"; export EXINIT
For Korn Shell Only (alternate method):
typeset -x EXINIT="set nu"
在 .profile 里设置 vi 的环境选项 , 以上均测试过

18.标记文本
  mchar   用字母char标记当前光标的位置
  `char   移至char所标记处
  'char   移至char标记所在行的开头处
  "     移至当前行上一次所在位置(在光标移动之后)――一个双引号
  ''    移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号

19.
同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,
屏幕底部仍然显示目前vi的是刚才的文件。
(在HP-UX,Solaris,AIX上通过)
也可以使用:
:e#
进行切换

20.
sco 下VI 要在文本前同样的字符加用
%s/^/要加的内容/g 要在文本后同样的字符加
%s/$/要加的内容/g

21.
如何去掉文本中的 ^M 硬回车?不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。
cat filename |tr -d '15' >newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.
dos2unix filename filename2
反之
unix2dos filename filename2
在vi 中用:$s/^M//g
^是crtl-V crtl-M

22.如何在“unix命令行”下将一个文件的某字符串用另一个串换掉
sed 's/string1/string2/gp' file1 > file2

23.将/etc/hosts下所有的地址都ping 2次
1 #/usr/bin/sh
2 #grad /etc/hosts and ping each address
3 cat /etc/hosts|grep -v '^#' | while read LINE
4 do
5 ADDR=`awk '{print $1}'`
6 for MACHINE in $ADDR
7 do
8 ping $MACHINE -n 2
9 done
10 done 

实易嵌入式智能DNS系统 2.0.0-RC2版

新功能:

  1. 增加批量导入功能
  2. 增加日志分页功能
  3. 增加中端设置外网网络功能
  4. 加强用户管理功能
  5. 加强查找记录功能

修复BUG:

  1. 修复未注册出现报错信息的bug
  2. 修复添加CNAME记录不能有*通配符的问题

其他:

  1. 调整版面
  2. 修改部分文字
  3. 更换LOGO

已经在金山的两台生成服务器上安装好实易智能DNS系统。

并且已经将全部域名和记录都导入了,只需要他们再仔细检查,域名和记录没有问题,就可以投入使用了。

当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。现将5类状态码详细列出:  
APACHE错误代码
① 客户方错误  
100  继续  
101  交换协议  
APACHE错误代码
② 成功  
200  OK  
201  已创建  
202  接收  
203  非认证信息  
204  无内容  
205  重置内容  
206  部分内容  
APACHE错误代码
③ 重定向  
300  多路选择  
301  永久转移  
302  暂时转移  
303  参见其它  
304  未修改(Not Modified)  
305  使用代理 
APACHE错误代码 
④ 客户方错误  
400  错误请求(Bad Request)  
401  未认证  
402  需要付费  
403  禁止(Forbidden)  
404  未找到(Not Found)  
405  方法不允许  
406  不接受  
407  需要代理认证  
408  请求超时  
409  冲突  
410  失败  
411  需要长度  
412  条件失败  
413  请求实体太大  
414  请求URI太长  
415  不支持媒体类型  
APACHE错误代码
⑤ 服务器错误  
500  服务器内部错误  
501  未实现(Not Implemented)  
502  网关失败  
504  网关超时

人生的道路上,很多时候会面对很多选择。

在面对选择的时候,又要做很多取舍。

我只有梦想,只能选择梦想。

在一個可能全部的人都開著 sniffer 程式在收廣播封包的環境,登入帳號密碼是個很不智的作法,只好開 SSH Tunnel。這樣做是挖一條 SSH 的加密通道,讓 browser 或 IM 等可以設 socket proxy 的 ap 透過這條加密通道將封包送到自己可以信任的地方,再用明碼送出。

想法是這樣:A 電腦處於一個危險的環境,B 電腦 (example.com) 處於自己可以信任的環境 (且有跑 sshd)。假設 A 本身有 ssh client (OpenSSH),在 A 先執行:

# ssh -D 7070 account@example.com
// 在 local port 7070 挖加密通道,導向 example.com 的 port 22

接下來在 browser 或 IM 等 ap 設定 socket proxy 指向 localhost:7070,如此一來,明碼封包會先送至 local 端的 port 7070 由加密通道送至 example.com,再由 example.com 以明碼轉送出去。

這種作法也可以用來突破被 firewall 擋住的 port 以達成連外的目的。

新功能:

  1. 增加注册功能
  2. 增加远程升级功能
  3. 增加版本检查功能

修复BUG:

  1. 修复不能为不同区域导出记录的bug
  2. 修复多个网卡流量显示问题
  3. 修复添加域名不能自动生效的bug
  4. 修复激活域名时,不能导出记录的bug

升级:

  1. net-snmp,打新补丁
  2. bind升级到最新版本
  3. sqlite3,升级到最新版本

其他:

  1. 调整版面
  2. 修改部分文字

计划在9月中旬释出RC2版本,10月底释出第一个RELEASE版本。