Apr 13
因为网络程序设计课程要求做一个扩展型的作业,其中一个选项是ftp client。于是我就选了这个。
做完以后发现其实不难,而最难的地方,在于了解FTP协议的工作过程。
下面随便闲扯一点东西吧。

在网络上,经常遇到的应用层协议包括HTTP,FTP,SMTP,POP3,都使用TCP协议连接,感觉挺像的。

HTTP协议显然是最常见的,在客户端和服务器之间只有一条连接,既传输控制命令(HTTP头),也传输数据(HTTP实体)
因此在编写动态网页脚本的时候,一定要先输出header,然后才输出HTML代码。

FTP协议则采用两条连接,一条控制连接,一条数据连接。
控制连接用于传输控制命令,始终保持连接,直到客户端发出QUIT命令结束连接;
数据连接在需要传输数据的时候打开(发起端可以是客户端也可以是服务器),传输完毕后就断开。

FTP的数据连接有两种模式,一种是主动模式,一种是被动模式(PASV, Passive Mode)。
采用主动模式时,客户端监听一个本地端口,由服务器发起连接传输数据;
而采用被动模式时,则是由服务器打开一个端口,客户端发起连接接收数据。

下面我用telnet来模拟一个FTP客户端连接、登陆、使用被动模式传输文件并退出的完整过程:
Tags: , ,
Feb 16
@ 2010-08-20 BS一下不看manpage的自己
引用
$ man sed
...
      -i[SUFFIX], --in-place[=SUFFIX]
              edit files in place (makes backup if extension supplied)
...
也就是说,只需要用 sed -i 就可以直接替换文件中的内容

======以前的分割线======

要用sed批量修改文件的内容,但是用这个命令解决不了问题:
find -name "*.php" -exec sed -e 's/aaa/bbb/' {} > {} \;
因为bash把 > 解释为find命令输出的重定向。
修改一下:
find -name "*.php" -exec sed -e 's/aaa/bbb/' {} \> {} \;
还是不行,因为 sed 去寻找一个名为 > 的文件进行处理
再修改:
find -name "*.php" -exec "sed -e 's/aaa/bbb/' {} \> {} " \;
还是不行,因为find去找一个名为 "sed -e 's/aaa/bbb/' {} \> {} " 的程序来执行
那是囧之又囧阿。于是去baidu,去google,
但是无论baidu还是google "find -exec 重定向"
都搜不到相应的解决方案,这样的问题居然没有人遇到过?
于是用google搜了一下
引用
linux find using "-exec" sed redirect

搜到了这一页: http://www.loisch.de/linux.html
看来还是国人太ooxx了,sigh。

解决方案其实很简单:绕个弯,把 -exec 的命令给shell来执行
注意:下面的命令一定不要在有用的文件上直接尝试!!!!!!
引用
find -name "*.php" -exec bash -c "sed -e 's/aaa/bbb/' {} > {}" \;

哦也!没有错误提示了!
然后 ls -al 一下,爽!所有文件大小都变成 0 了!
为什么捏?那篇文章里面解释了:
因为bash检测到需要重定向到那个文件,所以事先把那个文件清空了。
那篇文章里面提到一个修改bash配置的解决方案,但是不通用,建议还是用他说的第二种方案:
引用
find -name "*.php" -exec bash -c "sed -e 's/aaa/bbb/' {} > {}.tmp; mv -f {}.tmp {}" \;

嘿,这下爽了!
Tags: ,
Feb 15
发信人: Felix021 (Felix), 信区: Linux_Unix
标  题: 校园网锐捷客户端 newstar for linux 情人节专版 (傻瓜化操作)
发信站: BBS 珞珈山水站 (Sun Feb 15 03:21:19 2009)

(附件的tarball里包含源代码和编译好的x86_32的可执行程序)

花了不少时间整这个东西,现在用起来相当简单了。
下载下来,解压,运行 ./install.sh 输入管理员密码,就安装好了。
要联网,运行newstar,不需要再输密码,
程序自动在后台与服务器通信,不需要留着一个terminal
也不需要nohup, screen, setsid什么的了。
其他还要手动的地方就是添加到开机自启动脚本/etc/rc.local里面去。
当然,也可以添加到 会话 里面,但是这个是在X Window登录以后才运行的。

过几天会搞个ASUS WL-520GU无线路由,能刷linux(如dd-wrt固件)
看看能不能把newstar集成进去,待续。。。

--

newstar for linux @ 2009-02-14 情人节专版(修正日志读取与清除的BUG)
下载文件 (已下载 1920 次)

本程序由felicia(feliciacrazy@qq.com修改自superstar源码
由felix021(felix021@gmail.com)添加连接和注销之外的功能

注: 第1,2步可以直接运行 sudo ./install.sh 来完成

1. 编译
Tags: , ,
Aug 22

zz: fstab详解 不指定

felix021 @ 2008-8-22 22:34 [IT » 操作系统] 评论(0) , 引用(0) , 阅读(3748) | Via 本站原创
from http://www.5dlinux.com/article/1/2007/linux_10628.html

可能玩Linux的朋友都知道fstab这个文件,如果要用好linux,熟悉linux的一些核心配置文件是必要的,而fstab则是其中之一。这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。因此,我们需要理解其中的内容,了解它如何与 mount命令配合工作,并能够针对自己的情况进行修改。

作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分区和存储设备的信息,以及它们应该挂载到哪里,以什么样子的方式挂载。如果遇到一些类似于无法挂载你的windows分区阿,无法使用你的光驱阿,无法对某个分区进行写入操作阿什么的,那么基本上可以断定,你的fstab内容有问题了。也就是说,你可以通过修改它来搞定这些问题,而不用去论坛冰天雪地裸体跪求答案了。
Tags:
Jun 24
from http://linuxdesktop.cn/2008/06/15/wine-10-donwloads/

原定于最多只有两个RC版、并于6月1日发布的Wine 1.0,却于两天前发布了第五个RC版,并定新的发布日期为6月20日。
Wine 1.0的特性早已冻结,这么多的RC版只能说明Wine 1.0还是Bug多多。不过好在Wine 1.0 RC5是最后一个RC版了。
今天Wine 1.0正式版发布,比预定的提前两天。
—–
  Wine 1.0 RC5修正了自RC4以来的近40个Bug,进一步改善了运行Windows软件的兼容性和稳定性。
  一个令大多数中文用户高兴的是,RC5版修改了由SCIM中文输入法导致的窗口显示缓慢的问题。因此强烈推荐所有既使用Wine,也使用SCIM的用户更新。这个版本会带来较大的性能和稳定性的提升。
  而最新发布Wine 1.0正式版则继续在RC5的基础上修正了20个Bug,估计大多Bug已基本修正。
  Linux用户可以从Wine的主页找到对应自己的发行版的安装包进行下载,访问Wine主页。
  其中Ubuntu 8.04的用户可以直接下面两个对应平台的deb包
  http://wine.budgetdedicated.com/apt/pool/main/w/wine/wine_1.0.0%7Ewinehq0%7Eubuntu%7E8.04-1_i386.deb
  http://wine.budgetdedicated.com/apt/pool/main/w/wine/wine_1.0.0%7Ewinehq0%7Eubuntu%7E8.04-1_amd64.deb
  诚挚地向这个开发了十五年的自由软件表示祝贺!未来还有新的路要走!
_____
这个版本的Wine非常牛B了,3Dmark2003可以跑,Nebula和VitualNES都OK,还有居然可以跑Gridwars,相当神气阿~~
Tags: , ,
Apr 15
锐捷官方提供的 xrgsu 程序的破解版(破解多网卡限制)
是 ykrocku 制作的
这里面附带了xrgsu 运行所需的库:

libpcap.so.0.6.2
libpcap.so.0.8.3
libstdc++.so.5.0.7

注:下载已失效,建议到googlecode上面找开源的锐捷替代程序。
Tags: , ,
Apr 10
很早就安装了Apache和PHP,http://localhost可以看到It Works, 在bash下php也可以运行
但是http://localhost/test.php总是弹出一个下载.phtml的窗口,相当郁闷
搜了网上很多方法,比如在 httpd.conf 里面添加AddType阿,重新安装libapache2-mod-php5阿,都不行
鼓捣了很久才搞定。
方法是:
1。卸载所有相关的程序(如下)
2。安装所有相关的程序
sudo apt-get install apache2 libapache2-mod-php5 php5 mysql-server php5-mysql php5-gd phpmyadmin
Tags: ,
Apr 10

Ubuntu - Bash - pause 不指定

felix021 @ 2008-4-10 14:10 [IT » 操作系统] 评论(1) , 引用(0) , 阅读(7781) | Via 本站原创
在Bash中实现类似windows中pause命令的暂停功能:

read -n1 -p "Press any key to continue..."

解释:
-n1 读取一个字符
-p 提示
Tags: ,
分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]