LINUX上快速使用SVN
服务器端:
(1) 启动svn服务器:
svnserve -d -r /home/user/svnserve
-d 表示以服务启动,-r表示svn服务的根目录
(2) 检测服务器是否启动:
netstat -ntlp
(3) 在服务器目录上创建存贮目录
svnadmin create myProject
(4) 进入存贮目录修改权限
改conf下svnserve.conf 把anon-access = read ,auth_access = write和password-db = passwd 的注释去掉。
再改passwd,加上你取得服务器上文件的用户名和密码
myName = mypaswd
到此为止,你的服务器已经建好了。
客户端:
(1)将你现有的工程存到服务器上
先用kdevelop建立一个用subversion管理的工程myProject
终端里输入:
svn import yourproject svn://localhost/myProject -m "这里输入你要的说明"
服务器会提示你输入用户名和密码
(2) 从服务端取出你存的文件
svn co svn://localhost/myProject /home/user/workspace/xxname
搞定。
启动kdevelop 从project->import existing project里
这样就可以从容使用kdevelop集成subversion,svn 不用记这么多命令参数了。
2008 Jan 25
病毒名称:Trojan.BAT.KillAV.ec(arp 病毒,打不开网页)
卡巴有查到病毒,但是删除不了,估计这几天学校的局域网的ARP攻击导致的,
装了360ARP防火墙也没能抵挡,前几天提示了好几次拦截成功的信息了!
网上查了解决方法,但是按照上面的提示,
需要找的文件一个也没找到,只是做了下面的一步,删除了注册表,不过值与下面有所不同
[HKEY_LOCAL_MACHINE"SOFTWARE"Microsoft"Windows"CurrentVersion"Explorer"ShellExecuteHooks]
"{DD7D4640-4464-48C0-82FD-21338366D2D2}"= *
用userlcleaner查毒,有发现系统时间给更改过,每次重设后,又被改回来,没有办法,就用了极端的办法,在安全策略中把允许修改系统时间的所有用户都删除啦
但是,一直PING 192.168.0.1(网关)都不通,将网卡DOWN了重新启用,再重设了IP及DNS (北京网通的为202.106.0.20). 刚开始只重新设置了IP,发现主机及局域网内的机器都能PING通,打开网页,左下角有闪一下,但马上就是网页没有,卡巴升级说是域名解析错误,CMD下PING www.google.com 不行,用另一台机试ping www.google.com (知道google的ip 66.249.89.147)直接ping 66.249.89.147 ,能ping通,在IE地址栏上直接输入http://66.249.89.147 打开了GOOGLE网页啦,终于松了一口气。DNS的问题啦,网上查了下北京网通的DNS,填入,重启,再直接打开网页,久违的网页终于出现。卡巴也终于能升级了,升完级,又在安全模式下进行了全盘扫描,又铲除了一个木马病毒。终于可以告一个段落啦!
对window的命令都不太熟悉,在解决问题的过程中,学了一些命令和小知识:
查看本机IP地址 运行——cmd(命令)——ipconfig ,也可以到网上邻居属性里去看去改
net share 查看所有共享的资源
net user 查看所有用户
sfc/scannow 修复命令
arp -a 查看所有局域网内IP
对付初级黑客的arp攻击,可将右键点击“我的电脑”,选择“属性”,在弹出的系统属性窗口中选择“计算机名”标签页,在“计算机描述”后的文本框的内容改为一个IP地址,最后点击应用即可。
命令提示框输入services.msc,开启arp,在服务中启用remote procedurce call 和Remote proced call locator 不行的话,再启用Dcom server process laucher
在2007年的倒数第二天,也就是昨天,去了北京动物园。正巧看到管理员给狼喂食的一幕,深有感触,所以在本应写一些自我总结的今天,却写了这样一篇随笔。
来到动物园已经是中午12点半左右了,差不多在一点左右逛到了狼的铁笼子前面。忽然间,原来比较安静的相互隔着铁笼的狼群忽然热闹起来,所有的狼都来回奔跑起来.一开始我还以为他们在相互进行比赛呢。定睛仔细一看,原来不远处动物园的管理员正推着一车肉缓缓过来。只见管理员来到第一个铁笼子前,将肉从缝里塞进去,才刚塞上去,马上就给这个笼子里的一群狼叨走。强壮的自然抢着多点,而瘦小的则只能拣些剩下的骨头。尤其使我印象深刻的是中间的一个笼子,里面的关着的是一肥一瘦的二条狼。从头自尾,一直是那条强壮的狼霸占着门口,而且,即使他前面已经堆满了很多肉,他还是不允许瘦小的狼靠近门口一步。将所有的肉都占为己有。看着那条瘦小的狼可怜却又无可奈何的样子,心中想:真的是弱肉强食啊!
其实,现实社会何尝不是这样呢,不充实自己,不使自己变得POWERFUL,又如何能在人生的舞台上同人竞争呢!即使机会来了,也只能看着机会白白溜走。
暗暗对自己说,要努力,2008年,一定要努力!
今天做项目,在做到dataGrid嵌套dataGrid时,做成了二个模板列,在用FindControl()时,却找不到对应名字的控件。其实还是没有弄清楚理解里面的层次关系。
偶尔想起网上看到的一篇博客调用一个方法可以解决这个问题,与大家分享一下。
大部分ASP.NET控件都实现
INamingContainer接口,包括 DataGrid,
Repeater, 和 the DataList.
下例是建一个带有DataGrid的form 。以HTML格式输出.
<form id="Form1" method="post"
runat="server">
<asp:DataGrid
id=DataGrid1 runat="server" DataSource="<%# employees1
%>"
AutoGenerateColumns="False"
OnSelectedIndexChanged="DataGrid1_SelectedIndexChanged"
OnEditCommand="DataGrid1_EditCommand">
<Columns>
<asp:BoundColumn DataField="emp_id"
SortExpression="emp_id" HeaderText="emp_id"/>
<asp:BoundColumn DataField="fname"
SortExpression="fname" HeaderText="fname"/>
<asp:BoundColumn
DataField="lname" SortExpression="lname"
HeaderText="lname"/>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox Runat="server" ID="TextBox1" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn
Text="Select"
CommandName="Select"></asp:ButtonColumn>
<asp:EditCommandColumn ButtonType="LinkButton"
UpdateText="Update"
CancelText="Cancel" EditText="Edit">
</asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
</form>
form中的DataGird将从一个已知的table里显示数据。使用模板列,在DataGird的每一行增加一个带有ID的TextBox。下面是ASP.NET形成的HTML的内容(浏览器上的源文件):
<table cellspacing="0" rules="all"
border="1" id="DataGrid1">
<tr>
<td>emp_id</td><td>fname</td><td>lname</td><td> </td><td> </td><td> </td>
</tr>
<tr>
<td>A-C71970F</td><td>Aria</td><td>Cruz</td><td>
<input
name="DataGrid1:_ctl2:TextBox1" type="text"
id="DataGrid1__ctl2_TextBox1" />
</td><td>
</tr>
<tr>
<td>A-R89858F</td><td>Annette</td><td>Roulet</td><td>
<input
name="DataGrid1:_ctl3:TextBox1" type="text"
id="DataGrid1__ctl3_TextBox1" />
</td><td>
</tr>
public class FindUtil
{
public static
string DumpParents(Control c)
{
StringBuilder
sb = new StringBuilder();
sb.Append(c.ID + " (" + c.GetType().ToString() +
")");
while(c.Parent != null)
{
c =
c.Parent;
sb.Append(" -><br>");
sb.Append(c.ID + " (" + c.GetType().ToString() +
")");
}
return
sb.ToString();
}
}
这里我们可以看到有很多TextBox1的实例,但是每个ID都预先有增加一些的标识符信息的处理。这个行为是因为有INamingContainer在工作。DataGrid实现INamingContainer接口,并且以每个子控件的ID再加上DataGrid1来描述此控件。因此我们可以很马上看出来,DataGrid是使用一个DataGridItem集合控件来呈现每一行的数据。一个DataGridItem 控件也实现INamingContainer接口,用子控件的名字和它自己产生的标识符来描述自己(‘_ctrl2’,
‘_ctrl3’等等)。现在,如果我们使用如下的代码,FindControl将返回一个空值
Control c = Page.FindControl(“TextBox1”)
Page控件找不到TextBox1,因为TextBox控件把自己隐藏在INamingContainer控件集合中。另外,哪个控件是我们真正想要返回的控件呢?是页上的TextBox控件?最后的TextBox控件?有代表性的例子是,当你想要找到一个在DataGrid中TextBox,将会在客户已经选择的指定的行上找TextBox.例如:我们增加一个选择列来允许用户点击一个Hyperlink来选择已选择的列。让我们来试下捕获下TextBox控件SelectedIndexChanged事件吧
以下代码是在选择DataGridItem对象时调用FindControl方法
private void DataGrid1_SelectedIndexChanged(object
sender, System.EventArgs e)
{
TextBox b;
b =
DataGrid1.Items[DataGrid1.SelectedIndex].FindControl("TextBox1") as
TextBox;
if(b != null)
{
Response.Write("Sender = " + sender.GetType().ToString() +
"<br>");
Response.Write("Found
Textbox1 in
SelectedIndexChanged event<br>");
Response.Write(FindUtil.DumpParent(b));
}}
我们可以增加一些额外的输出来更清楚地看下TextBox的关系链。 TextBox1控件有个TableCell对象作为父控件,返回一个DataGridItem对象的子控件,这个链一直到Page控件。代码演示如下(运行结果见页末)
public class FindUtil
{
public static
string DumpParents(Control c)
{
StringBuilder
sb = new StringBuilder();
sb.Append(c.ID + " (" + c.GetType().ToString() +
")");
while(c.Parent != null)
{
c =
c.Parent;
sb.Append(" -><br>");
sb.Append(c.ID + " (" + c.GetType().ToString() +
")");
}
return
sb.ToString();
}
}
以上代码将使父类控件引用建立一个控件IDS的string对象(当一个控件ID存在---不是所有的在form中的控件都有一个服务端的ID)和控件类型
我们也可以增加一个EditCommandColumn在DataGrid中,便于用户选择一行来编辑。EditCommand event handler 是较简单的,因为第二个参数对于Handler来讲是DataGridCommandEventArgs类型,其包含一个用户已经选择的DataGridItem的引用。
protected void DataGrid1_EditCommand(object source,
DataGridCommandEventArgs e)
{
TextBox b;
b =
e.Item.FindControl("TextBox1") as TextBox;
if(b != null)
{
Response.Write("Found Textbox1
in EditCommand event<br>");
}
}
运行结果如下:
Sender = System.Web.UI.WebControls.DataGrid
Found TextBox1 in SelectedIndexChanged event
TestBox1(System.Web.UI.WebControls.TextBox)->
(System.Web.UI.WebControls.TableCell)->
(System.Web.UI.WebControls.DataGridItem)->
(System.Web.UI.WebControls.DataGridTable)->
DataGrid1(System.Web.UI.WebControls.DataGrid)->
Form1(System.Web.UI.HtmlControls.HtmlForm)->
(ASP.FindControl4pre_aspx)
英文网址如下:
http://www.odetocode.com/Articles/116.aspx
**按装tomcat
1.使用虚拟光驱导入带有JDK的包的ISO镜像。
2.挂载光驱 mount /dev/cdrom /media(挂载到/media上,可自己建立个挂载目录)
3.cd /media 进入到里面查看
ls -al
. .. accp (有accp存在)
cd accp
ls -a(看有三个包)
4.cp * /home(将所有的东西复制到home下)
(Fedora-Core-1-i386.tar.gz/jakarta-tomcat-5.5.9tar.gz/jdk-1_5_0_05-linux-i586-rpm.bin)
copy 后别忘记将光盘解挂
5.java -version(查询当前系统的jdk版本,发现是1.4.2版本的
6.cd /home 进入home下执行bin
./jdk-1_5_0_05-linux-i586-rpm.bin(.bin即执行 ./文件名 执行)
同意按装 y 就开始解压 按装后发现 多了二个jdk
(jdk-1_5_0_05-linux-i586.rpm /jdk-1_5_0_05-linux-i586-rp)
另外 jdk 按装后是在 /usr/java/下面
7.做个链接 ln /usr/java/jdk1.5.0_05 /usr/jdk(为了方便引用)
8.vi /etc/profile (全局性的,会对所有用户都生效)
写在文件的最后
export JAVA_HOME=/usr/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
shift+zz 保存退出
用cat /etc/profile 再确认一次是否已经更改成功
java -verion(发现是系统中的JDK),存在于
/usr/bin/java
将原先版本的jdk改名:mv /usr/bin/java /usr/bin/java.bak
在未改名之前 java -version是1.4改了版本后 执行java -version 会讲没有此文件和目录
查看jdk有没有按装 rpm -q jdk r(-qa 是查看所有带有jdk的版本)
logout注销,再登录(也可以执行 /etc/profile 即可)
java -verion发现已是安装的JDK版本
**配置tomcat
1.进入 cd /home
2. tar zxvf jakarta-tomcat-5.5.9.tar.gz -C /usr/local 将tomcat 解压到 /usr/local
3. cd /usr/local ls -al 查看到tomcat
4. cd tomcat- jakarta-tomcat-5.5.9(用tab可以补齐)
5. ls 看到 bin
cd bin 进入bin 再ls 看到有startup.sh 和 shutdown.sh
此处直接运行 startup.sh 即可(路径在 /usr/local/tomcat/bin下) shutdown.sh
服务器浏览器访问http://localhsot:8080
客户端 http://192.168.1.110:8080 此IP地址为服务器端的IP地址
6. 如果还不能登录 vi startup.sh 进行更改
在...部分 加入上面的三行 同时加 export CATALINA_HOME=/usr/local/tomcat
vi /etc/rc.d/local
touch 下行 /usr/local/tomcat/bin/startup.sh
7.要修改tomcat 的端口号
cd /usr/local/tomcat/bin/conf
vi tomcat-users.xml
将connet port 改为80
8.发布路径在 /usr/local/jakarta-tomcat-5.5.9/webapps/ROOT/
如果是jsp (下面有jsp 和web-config)
1.ifconfig命令查看当前的IP。若无,用ifconfig eth0 192.168.1.10来配制(举例)
2.打开widow的Vmware 1 查看Ip是否在一个段上 配为192.168.1.20(请确定网卡配置是选择host-only)
3. rpm -qa(所有的) | grep telnet 查看有无装telnet 或者用rpm -q telnet-server
显示 telnet-0.17-31.EL4.3 即表示已装
4. cd /etc/xinetd.d 启动telnet开关
(a)chkconfig telnet on
(b)修改 telnet or krbs-telnet文件的 中的disable改为no
以上二种方法都可
注意:如果不能启动 可能是这二个文件都打开了,将其中一个的disable改为yes就行
5.重新启动 /etc/rc.d/init.d/xinetd restart
netstar -an | grep:23 检查23号端口是否打开
6.注意虚拟的网卡一定要设为host-only ,并用lokkit将防火墙关闭,还有linux安全也要设为disable
7.不可以root登陆,要新建一个用户
groupadd a
useradd -g a may
passwd may(后面要有用户名,否则会默认修改当前用户的密码的) 提示输入密码
8.在远程用window用cmd 打开 ,先ping 192.168.1.10看能否连接上
连上后,用telnet 192.168.1.10 以用户may 登录后用 su- 切换成root用户