vi 与 vim 的区别,及 vim 的语法加亮

之前每次终端连接到了 Linux/Unix 编辑文件,只知道用 vi,至于此时是 vi 还是 vim 就不得而知了,也不知如何去知。总以为 vi 就是 vim,vim 就是 vi,就没认真想过多出的 vim 是怎么回事。

据说:vi - visual editor, very inconvenient, or virtually incomprehensible, vim - VI IMproved,俨然是个 vi 的加强版。

只是经常会登录同是 Redhat AS 4 的两台机器,同样是用 vi 启动编辑器,一个能进行语法加亮,v 可进入可视模式,空行前的波浪号是蓝色的(下称机器A);另一个对于各种语法却是熟视无睹,v 无法进入可视模式,空行前的波浪号也是白色的(下称机器B)。这时才想起是否是 vi 与 vim  的区别,网上找来: 阅读全文 >>

DWR 的 Converter 实现原理简单分析及应用

我们在应用 DWR 调用远程方法时涉及到 JS 与 JAVA 之间参数和返回值的数据转换,例如:

JS 的 123 与 Java 的 int  或 Integer、long 间的转换
JS 的 "2009-06-23" 与 Java 的 java.util.Date 之间的转换
JS 的 "[1,2,3]" 与 Java 的 int[] 间的转换
JS 的 "{id:123, name: 'Unmi'}" 与 Java 的 Class Person{int id; String name} 间的转换

或者更复杂的嵌套类型( "{id:123, name: 'Unmi', blogs:['http://unmi.blogjava.net','http://blog.csdn.net/kypfos']}" ) 与 Java 类型间的转换,等等。那么这一切是怎么进行的呢?其实我们见识过很多组件的类型映射,如 Java 的 PropertyEditor、Hibernate(UserType)、iBatis(TypeHandler) 的类型映射,Struts1/2 中 Form/Model 用的 Converter 等。 阅读全文 >>

Perl 使用 Log::Log4perl 输出日志的用法

用 Java 的很少有人对 log4j 感觉陌生,这是 Apache  上的项目。同时 Apache 上也有针对其他语言的 Log 组件,如 log4cxx、log4net、log4php。

所用 Perl 时也会想想:Perl 该用什么日志模块呢? log4perl?google 一下果然后,只不过它不是由 Apache 出品。
该项目原来在 http://log4perl.sourceforge.net/,现已移到 http://mschilli.github.com/log4perl/

下载地址:http://search.cpan.org/~mschilli/Log-Log4perl/ (要编译的)
使用文档:1. Tutorial(Retire your debugger, log smartly with Log::Log4perl)
             2. Manual
             3. Frequently Asked Questions

当然,你也可以用 CPAN 和 PPM(如果安装的是 ActivePerl) 来安装 Log::Log4perl 模块。 阅读全文 >>

Emacs 快速指南[Emacs 在带的 Tutorial]

【注意:位于【】之间的内容是译注,比如本行,下同。】

Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们约定使用下述缩写:

 C-<chr>  表示当输入字符 <chr> 时按住 CONTROL 键。
          因此 C-f 就表示:按住 CONTROL 键再输入 f。

 M-<chr>  表示当输入字符 <chr> 时按住 META(或 EDIT 或 ALT)键。
          如果你的键盘上没有 META 、EDIT 或 ALT 键,用下述方法也等效:
          先按一下 ESC 键然后放开,再输入 <chr>。我们用 <ESC> 来表示 ESC 键。

重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。下文中左边顶行的“>>”字样用来提示你尝试键盘命令。比如:

>> 现在输入 C-v (查看下一屏文字)移动到下一屏。 阅读全文 >>

Emacs 的入门操作

1. 总体说明

M 键的替代,如 M-v,表示按住 META(EDIT 或 ALT 键),再按 v。如果没有 META、EDIT 或 ALT 键,则先按下 ESC 键,然后放开,再输入 v。好在我们的键盘一般都有 ALT 键,那就是 ALT-v 吧。

查看命令帮助的方法:C-h k C-f 就能在下方窗口中看到 C-f 的使用说明

如果一行超过窗口的宽度,换行时会有反斜杠(控制台下),或转弯箭头(图形系统)标示出。

2. C-x 系列操作

这个系列的命令多与 “窗格、文件、缓冲" 的控制操作有关。
后再加

  C-c 退出   C-s(save) 保存

3. 光标的移动

C-v(助记:Move) 下移一屏,M-v 上移一屏,C-l(助记:load/Reload) 重绘屏幕,并将光标置于屏幕中央,也可以用 PageDown 和 PageUp 的滚屏。 阅读全文 >>

Linux下不同文件编码的转换[转]

一、什么是编码。

字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse Code)、Baudot code、Unicode和用二进制来表示的ASCII(American Standard Code for Information Interchange)码、这样便能够将文本在计算机中存储和通过通信网络发送出去。

字符表(Character Set)和字符编码(Character Encoding)经常被混淆。实际上Character Set(字符表)只是指一组为特定的Encoding System(编码系统)使用的符号集合,而不包含他们的数字含义或者顺序。而Character Encoding(字符编码)则包括了Character Set(字符表)和每个字符在字符编码集中的表示方法。由于历史的原因,MIME(Multipurpos Internet Mail Extensions)和使用这种编码的系统使用属于“字符集(Charset)”来表示用于将一组字符编码成一系列8位字节数据的整个系统。

摩斯电码(Morse Code)发明于1840年,用来编码字母、数字和拉丁字符,都用长短组合的电键来表示。
ASCII码发明与1963年,是由7位(7-bit)的二进制代码表示字符、数字、符号和固定长度的设备控制代码。同年,IBM使用8位(8-bit)的编码机制实现了ASCII的扩展EBCDIC(IBM's Extended Binary Coded Decimal Interchange Code)。 阅读全文 >>

查询Oracle正在执行的SQL语句

支持左连接的 Oracle 9i 以上版本

 Oracle 8i 及以前的版本中

自行决定要查询出来的字段以及约束条件。

Memcache的使用和协议分析详解[转]

作者:heiyeluren
博客:http://blog.csdn.net/heiyeshuwu
时间:2006-11-12
关键字:PHP Memcache Linux 缓存

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。(关于Memcache的更多信息请Google)
Memcache官方网站:http://www.danga.com/memcached

【安装Memcache服务器端】

我目前的平台,服务器是Fedora Core 1(内核:2.4.22),客户端是Windows XP SP2,需要安装的就是服务器的Memcached的守护进程和客户端的PHP扩展php_memcache两个东西。现在我分别来讲。

服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.2.0 。 阅读全文 >>

挖Linux中的古老缩略语[转]

Unix已经有35年历史了。许多人认为它开始于中世纪,这个中世纪是相对于计算机技术的产生和发展来说的。在过去的时间里,Unix和它的子分支Linux收集有许多的历史和一些完全古老的语言。在这篇技巧文章中,我们将介绍一少部分古老的语言和它们的目的和作用,以及它们真正的来源。

  RC

  在Linux中,最为常用的缩略语也许是“rc”,它是“runcomm”的缩写――即名词“run command”(运行命令)的简写。今天,“rc”是任何脚本类文件的后缀,这些脚本通常在程序的启动阶段被调用,通常是Linux系统启动时。如/etc/rc是Linux启动的主脚本,而.bashrc是当Linux的bash shell启动后所运行的脚本。.bashrc的前缀“.”是一个命名标准,它被设计用来在用户文件中隐藏那些用户指定的特殊文件;“ls”命令默认情况下不会列出此类文件,“rm”默认情况下也不会删除它们。许多程序在启动时,都需要“rc”后缀的初始文件或配置文件,这对于Unix的文件系统视图来说,没有什么神秘的。 阅读全文 >>

Solaris 常用系统命令[转]

系统基本配置







如何查看日志信息

                dmesg | more /var/adm/messages*   

收集
exlpore
日志

  
              /opt/SUNWexplo/bin/explorer -k ->/opt/SUNWexplo/output

系统的基本状况

   
                       showrev 

系统运行时间,平均负载

                                 uptime                           

版本信息

                                               uname -a                                 

Update
版本

                                         more /etc/release                

系统补丁

 
     showrev -p 

已安装的补丁信息

  patchadd 123-12

打补丁

查看服务对应的端口

  more /etc/services

系统变量设置
env

sysdef

Shell
变量:
bash,csh,ksh

收集
explore
日志

先查看有没有装


# pkginfo |grep SUNWexplo

如果有安装的话:


# /opt/SUNWexplo/bin/explorer

收集到的文件在:


# /opt/SUNWexplo/output

清空日志:
cp /var/adm/messages /var/adm/messages.bkp  #cat /dev/null > /var/adm/messages

CPU
 

psrinfo -vp             
系统
cpu
数和速度

uptime                   cpu
平均负载

prstat -a               
实时进程的状态 (相当于 Linux 下的 top 命令)

ps -ef                  
显示所有进程的详细信息

kill pid
杀死进程

vmstat

mpstat

/usr/ucb/ps -aux

内存

prtdiag -v
系统硬件,电源接口等

查看内存大小
prtconf -vp | grep Mem

vmstat

swap -s

增加
swap
分区:
mkfile 200m /tmp ,swap -a,swap -l

C5292

磁盘管理

iostat 
监视系统输入/输出设备负载

format 
系统几块磁盘,大小
Ctrl+D
的组合键退出

metastat
显示硬盘
raid
状态

检查硬盘信息
prtvtoc /dev/dsk/c0t0d0s5

查看
NBU
硬盘
available_media

如何添加硬盘

1
mkdir /usr/ldap3

2

newfs /dev/rdsk/c1t3d0s1 


       3


mount /dev/dsk/c1t3d0s1 /usr/ldap3

4

vi /etc/vfstab
添加文件系统信息

/dev/dsk/c1t2d0s0  /dev/rdsk/c1t2d0s0   /usr/ldap3      ufs     1  yes     logging


 

文件系统

df -k  
磁盘使用情况

磁带机的读存数据
: tar cpio

磁带机状态

  mt -f /dev/rmt/0 status

虚拟文件系统表

  /etc/vfstab

Solaris
硬盘分区

网络

ping

netstat -arp

ifconfig –a

系统基本操作

文件操作

压缩解压
tar gzip gunzip

iso
文件

  lofiadm

查看文件信息

  ls -lrt

目录大小

  du -sk dir

mkdir ,cd,

查找文件:
Find 
文件类型
file

查看文件
more

head

tail

cat
例如:
tail -10 /var/adm/messages

文件的权限
chmod: chmod 644 a.txt 

解包
tar vcf filename.tar

打包
tar cvf filename.tar dirname

.gz
文件
解压
gunzip filename.gz ; gzip -d filename.gz          
压缩
gzip filenam

.tar.gz 
解压:
tar zxcf file.tar.gz                                    
压缩;
tar zcvf file.tar.gz dirname

创建和编辑文件:

生成新文件或改变文件日期:
Touch  
文件拷贝
cp
移动文件
mv

修改文件: vi的用法

组合命令
:

输出重定向
>  
组合命令
|

常用管理命令
man

用户管理

groupadd

useradd

passwd

查看用户
/

more /etc/passwd

/etc/shadow

/etc/group

(who

finger

rusers

1

whodo

id


如何做系统硬件健康状况检查




# more /var/adm/messages*
(没有重大异常报错)



# df –k (“/”
使用率小于
85%)

# format
ctrl+d退出)(所有硬盘正常)

# prtdiag –v (
没有
failed
的部件、内存和
cpu
数量正确
)

# psrinfo –v (
系统中所有的
cpu
都处在
online
状态
)


运行级别

查看系统的运行级、日期及时间

  who   –r

系统运行级别
1

掉电(运行级
0

2

单用户(运行级
1

s

S

3

多用户(运行级
2

3

4

重引导(运行级
5

6

重新启动

  reboot, init 6

关闭系统:
shutdown

init 0

halt


 

其它管理

定时任务


crontab 
推到一个自定义的文件上


crontab -l>tmp

编辑这个文件,做需要的修改


vi tmp

推回
crontab
crontab tmp

NBU
备份

#bpdbjobs –report  
检查作业备份情况,返回为
0
即为正常

#bpps –a  
备份进程启动情况


 

磁盘阵列管理


 

#sccli

sccli: selected device /dev/rdsk/c2t0d0s2 [SUN StorEdge yyyy SN#08472F]

#sccli> show disks

输出的
Status
列,所有值正常情况下是
” ONLINE”

” STAND-BY”
,其它的值都是不正常的;



#sccli> show logical-drives

输出的
Status
列,其值正常情况下是
” Good”
,其它的值都是不正常的;



#sccli>show enclosure-status

输出的
Status
列,所有值正常情况下是
” OK”
或者
” Absent”
,其它的值都是不正常的;



#sccli>show FRUs

输出的
FRU Status
行,所有值正常情况下是
”OK”



其它的值都是不正常的;



#sccli> show peripheral-device-status

输出的
status
列,所有值正常情况下是
”within safety range”

” N/A”

” Hardware:N/A”

” Hardware:OK”



其它的值都是不正常的;



#sccli>exit

oracle

lsnrctl status
查看
listener
进程的状态

tnsping SID   
查看连通请款

sun cluster

scinstall -pv 
版本信息

luxadm -e port
光纤链路状态