应用背景:在VS中查找或替换选项中选择“使用”,并在下拉框中选择“正则表达式”后,下边命令即可正常使用。
作者楼主师傅midas---范
去掉分行连字符(替换为空)
\_\n:b*
------------------------
同一行多个语句的分行
\:
\n
-----------------------
过程替换
~((//)|(/\*).*)<{Sub:b+:i:b*\(.*\)[^\)]*}
\1\n{
~((//)|(/\*).*)<End:b+Sub
}
------------------------
函数替换
~((//)|(/\*).*)<{((Private)|(Public):b+)*}Function:b+{:i\(.*\)}:b*\n
//\0\n\1\2\n{\n
~((//)|(/\*).*)<{((Private)|(Public):b+)*}{Function:b+}{:i\(.*\)}:b*As:b+{:i}\n
//\0\n\1\2\4 \3\n{\n
End:b+Function
}
------------------------
简单变量定义替换
~((//)|(/\*))<{((Private)|(Public):b+)*}(Dim:b+)*{:i:b*(\(.*\))*}:b+As:b+{:i}
\1\3 \2/*\0*/
-------------------------
加分号
{^~(.*<(Sub)|(If)|(ElseIf)|(End)|(On)|(Select)|(Case)|(For)|(Next)|(Loop)|(Do)|(Else)|(\;)>)(:b*):i[^/]*(/[^/\*][^/]*)*}{((//)|(/*))*.*}
\1;\2
--------------------
If语句替换
~((//)|(/\*).*)<If{.*}Then:b*{:i[^/]*(/[^/\*]+)*}{((//)|(/*))*.*}
if(\1)\2;\3
~((//)|(/\*).*)<If{.*}Then
if(\1)\n{\n
ElseIf{.*}Then:b*{(:i[^/]*(/[^/\*]+)*)*}{((//)|(/*))*.*}
}\nelse if(\1)\n{\n
~((//)|(/\*)|(Case).*)<Else
}\nelse\n{\n
~((//)|(/\*).*)<End:b+If
}
------------------
Select Case语句替换
Select:b+Case:b+{.*}
switch(\1)\n{\n
Case:b+Else
break;\ndefault:
Case:b+{.*}
break;\ncase \1:
End:b+Select
}
--------------------
For Next语句替换
~((//)|(/\*).*)<For:b+{.*}\={.*}:b+To:b+{.*}Step{.*}
for(int \1 = \2; \1 <= \3; \1 += \4)//\0\n{\n
~((//)|(/\*).*)<For:b+{.*}\={.*}:b+To:b+{.*}~(Step)
for(int \1 = \2; \1 <= \3; ++\1)//\0\n{\n
~((//)|(/\*).*)<Next:b*\n
}//\0\n
~((//)|(/\*).*)<Next:b*{(:i[^\,]*)^1}\n
}//\0\n
~((//)|(/\*).*)<Next:b*{(:i[^\,]*)^2}\n
}\n}//\0\n
--------------------
Do Loop语句替换
~((//)|(/\*).*)<Do:b+Until:b+{[^/:b]+[^/]+(/[^/\*]+)*}{((//)|(/*))*.*}
while(!(\1))\2//\0\n{\n
~((//)|(/\*).*)<Do:b+While:b+{[^/:b]+[^/]+(/[^/\*]+)*}{((//)|(/*))*.*}
while(\1)\2//\0\n{\n
~((//)|(/\*).*)<Loop:b*\n
}\n
---------------------
数组下标替换
\(:b*{:a[^\>\<\=\(\)\{\}]*}\)
[\1]
用户需求:
简单点说,就是用户需要设置两个脚本随linux系统启动。以前做过服务开机启动,脚本的设置和服务还有点差别。
需要开机启动的脚本:
/seeburger/TomcatBis/bin/startup.sh
/seeburger/TomcatBis/bin/catalina.sh
测试方法:
ps -ef | grep seeburger 检查是否有/seeburger路径下的进程启动
http://172.16.1.83:8080/
关闭当前应用的方法:/seeburger/TomcatBis/bin/shutdown.sh
问题处理过程:
配置服务的话,无论是redhat还是suse都直接用chkconfig service_name on即可。
配置脚本的话,麻烦点,需要做个软连接。
redhat linux环境下最简单,直接把脚本放到/etc/rc.d/rc.local下面即可;
Suse linux环境下面,需要执行如下步骤,相对繁琐一些:
要使用chkconfig必须遵照如下步骤:
1.把脚本文件建立软连接,放在/etc/init.d/下
ln -s /u01/startup.sh /etc/init.d/startup.sh
2.chowm a+x 脚本名
3.必须在脚本里的#!/bin/bash下加上chkconfig程序规定的格式
也就是脚本开头格式必须是如下格式:
#!/bin/bash
#chkconfig: 2345 91 19
#description: 脚本说明如tocmat server
否则报错:
service 脚本名 does not support chkconfig
4.chkconfig --add 脚本名
5.chkconfig --level 2345 脚本名 on|off
整个配置过程中,我一开始也直接把脚本放到init.d中进行操作,没有使用软连接,报错为:
运行startup.sh时,报错提示需要catalina.sh,把catalina.sh也按照同样的步骤拷贝到init.d中运行,提示需要 /etc/bin/setclasspath.sh,简直没完没了啊
软连接的设置,上网google如下资料作为参考:
出处:
http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199534.html
在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。
链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。符号连接相当于Windows下的快捷方式。
一、硬链接
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
语法:
ln [options] existingfile newfile(sexistingfile 待建立链接文件的文件,newfile是新创建的链接文件)
ln [options] existingfile-list directory
-f 建立时,将同档案名删除.
-i 删除前进行询问.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,
用法:
第一种:为”existingfile”创建硬链接,文件名为”newfile”。
第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
下面举一些例子:
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[root@rekfan.com test]# ln file2 file2hand
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@rekfan.com test]#
注意在创建链接前,file1 显示的链接数目为1,创建链接后file1和file1hard的链接数目都变为2;file1和file1hard在inode号是一样的file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,链接数同时减一,当链接数减为0时,内核才会把文件内容从磁盘上删除。
还可以在不同目录,但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/root/dir1中,下面的命令,在/home/root中建立file2的硬链接。
ln file2 /home/root/file2hard
下面的程序,是将dir1目录中所有文件,在目录dir2中建立硬链接
#mkdir dir2
#ln /home/root/dir1/* /home/root/dir2
如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:
(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接。
二、软链接(符号链接)
软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
建立软链接,只要在ln后面加上选项 –s,下面举个例子
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@rekfan.com test]# ln -s file1 file1soft
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习。
三、删除链接
有创建就有删除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@rekfan.com test]# rm -rf file1soft
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@rekfan.com test]#
————————————
linux 软连接和硬链接的区别:
————————————
4点不同 :
(1)软连接可以 跨文件系统 ,硬连接不可以 。
实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt
/root/bb 连接成功 。ln aa.txt /root/bb 失败 。
(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是
源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件
任何一个的时候 ,其他的 文件都会做同步的修改 。软链接不直接
Theming是一个在Web应用程序里定制网页外观的系统方式。通过采用一个新的主题,可以非常方便的改变应用的外观。
在Yii,每个主题由一个目录代表,包含view文件,layout文件和相关的资源文件,如图片, CSS文件, JavaScript文件等。主题的名字就是他的目录名字。全部主题都放在在同一目录WebRoot/themes下 。在任何时候,只有一个主题可以被激活。
提示:默认的主题根目录WebRoot/themes可被配置成其他的。只需要配置themeManager应用部件的属性basePath和baseUrl为你所要的值。
要激活一个主题,设置Web应用程序的属性theme为你所要的名字。可以在application configuration中配置或者在执行过程中在控制器的动作里面修改。
注:主题名称是区分大小写的。如果您尝试启动一个不存在的主题, yii: :app()->theme将返回null 。
主题目录里面内容的组织方式和application base path目录下的组织方式一样。例如,所有的view文件必须位于views下 ,布局view文件在views/layouts下 ,和系统view文件在views/system下。例如,如果我们要替换PostController的create view文件为classic主题下,我们将保存新的view文件为WebRoot/themes/classic/views/post/create.php。
对于在module里面的控制器view文件,相应主题view文件将被放在views目录下。例如,如果上述的PostController是在一个命名为forum的模块里 ,我们应该保存create view 文件为WebRoot/themes/classic/views/forum/post/create.php 。如果 forum模块嵌套在另一个名为support模块里 ,那么view文件应为WebRoot/themes/classic/views/support/forum/post/create.php 。
本例通过修改Yii Framework 开发教程(11) UI 组件 ActiveForm示例 ,为它添加两个主提,为简单起见,两个主题名字分别为cyan,grey, 以其背景颜色命名。
首先在应用目录结构下创建themes 目录,然后创建cyan,grey 两个子目录,然后将缺省的protected/views分别复制到两个子目录下,作为Theme的初始版本。