2007年4月30日星期一

freebsd 挂载

u盘 并且显示中文文件名

mount_msdosfs -D CP936 -L zh_CN.eucCN /dev/da0s? /mnt/usb

cd

mount -t cd9660 /dev/acd? /mnt/cdrom


iso

mdconfig -a -t vnode -f abc.iso -u 1
mount_cd9660 /dev/md1 /mnt/cdrom

播放CD、VCD、DVD不用先mount上。
如果你一定要mount上,可以这样:
#mount _cd9660 -s 0 /dev/acd0a /cdrom

光驱的关闭与弹出

cdcontrol -f /dev/acd0 close
cdcontrol -f /dev/acd0 eject

2007年4月29日星期日

FreeBSD RELEASE 6.2安装mysql 4.1.22

cd /usr/ports/databases/mysql41-server/
make install clean
/usr/local/bin/mysql_install_db
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
/usr/local/bin/mysqld_safe -user=mysql &
/usr/local/bin/mysqladmin -u root password newpassword

vi /etc/rc.conf
mysql_enable="YES" (在rc.conf文件里加入这行代码)

试试看
mysql -u root -p
Enter password:
mysql> use test;
mysql> select database();
mysql> show tables;
mysql> select database();
mysql> exit;
Bye

2007年4月27日星期五

时间若倒退

有些话 很可笑 给承诺 又办不到
有些梦 很微妙 醒来后 却被洗掉
有些爱 常迟到 来不及 给拥抱
总来不及 让你知道

有些事 很荒谬 爱恨总在 原地绕
有些人 很无聊 明明寂寞 装骄傲
有些爱 在寻找 分不清 谁重要
总分不清楚 谁先为谁心跳*

看那水平的线 绿色的边 平静的水面
有好多事浮现 吹皱我的从前 吹皱好多脸
记忆在播放留言 播放那年 你说的再见

2007年4月15日星期日

FreeBSD 上使用beep-media-player播放cd

系统设置:

插入cd时,系统自动生成的设备文件, 必须是该用户能够读写的。
由于生成设备文件属于operator组,所以需要用 pw(8) 把登录的用户添加到operator组。

pw groupshow operator (查看operator组的成员)
pw groupmod operator -m foobar (添加用户foobar)
pw groupshow operator (确认一下).

在生成设备文件时, operator 组应能读写它们。
通过在 /etc/devfs.rules 中增加一些相应的设置来实现:

[localrules=1]
add path 'acd*' mode 0440 group operator

另外,还需要在 /etc/rc.conf 文件中, 启用 devfs.rules(5) 规则集:

devfs_system_ruleset="localrules"


bmp设置:
bmp->首选项->cd音频插件->首选项->
将设备指定为/dev/acd0
目录指定为/mnt/cdrom

beep-media-player 播放列表乱码的解决

bmp: 首选项->插件->媒体->MPEG音频插件的首选项->标题->选中将非UTF-8标签转成UTF-8->ID3编码设为GBK
就可以同时显示utf8 和gbk中文了

2007年4月4日星期三

wget——优秀的下载工具

wget是一个命令行工具,用于批量下载文件,支持HTTP和FTP。究竟比其他的工具好在哪里?看看内容吧

wget基本上所有的Linux版本都自己带了,但是有多少人在用呢?呵呵,如果你没有用过,不妨试试。Windows下面的用户可以使用GNUwin32的项目,wget,基本功能完全一致。好吧,我们来以几个简单的例子看看wget的威力。

如果我们想下载ftp里面某个目录里面的所有文件,我们也可以不用ftp这个笨蛋,呵呵,可以享受cute ftp等图形化工具的拖一个目录的轻松了。如

wget -r ftp://10.8.8.8/movie/

呵呵,等吧!下完了,发觉有些不对劲,怎么出来个10.8.8.8的目录,进去看看,又是一个movie,哦,wget将目录结构和网站标题都给记录下来了,不要??没有问题!比如说还是这个例子

wget -r -nd ftp://10.8.8.8/movie/

结果什么目录都没有了,faint!怎么会这样?呵呵,你如果想要这样就让它这样吧,否则使用

wget -r -nH ftp://10.8.8.8/movie/

恩?movie也不要?OK,那就这样

wget -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/

这有什么用啊?cuteftp比他好用多了,而且,你这断了线能连吗?呵呵,不好意思,可以连

wget -c -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/

但 是cuteftp能做下面的事情吗?比如,现在很多网站使用Apache建站,并不提供ftp服务,但是Apache有一个indexing功能,可以提 供一个类似于ftp的界面,好多文件我想下啊,怎么办?由于是HTTP协议,CuteFTP无能为力了,倒是flash get等有什么get all这种功能,不知道他们对于目录处理怎么样。但是wget一点问题都没有,不信?我们拿CTAN为例(例子并不恰当,CTAN有FTP服务),我们下 载这里面所有的宏包,呵呵

wget -r -k http://www.ctan.org/tex-archive/macros/latex/

-k表示将连接转换为本地连接。但是现在同样有上面的问题啊,那就把你需要的加上吧,另外也许你根本不需要向下走那么多层,比如,我们就要到第二层,那么

wget -r -l2 -k http://www.ctan.org/tex-archive/macros/latex/

现在新的问题是,由于网页有一个排序功能,很讨厌,因为下载的时候把网页重复了好多次,那么我们可使用-A和-R开关控制下载类型,并且可以使用通配符,呵呵,现在随心所欲了吧

wget -r -R "*.htm*\?*" -k http://www.ctan.org/tex-archive/macros/latex/

这次没有那种网页了吧?-R的意义在于拒绝下载匹配类型的文件,-A表示仅仅接受的文件类型,如-A "*.gif"将仅下载gif图片,如果有多个允许或者不允许,可以使用,分开。

那 么,我们现在在使用代理服务器,怎么办呢?呵呵,很高兴你选择了wget,你可以使用它的配置文件,环境变量来利用代理。这里推荐使用环境变量,如在 bash里面我们可以把天天用的proxy加到.bash_profile里面,这是Linux标准写法(很多软件都用的,什么apt-get,yum等 等)

export http_proxy=http://10.20.30.40:8080

然后,proxy就默认打开了,如果需要暂时关闭,可以使用

wget --proxy=off -r -k http://www.ctan.org/tex-archive/macros/latex/

当然,写一个.wgetrc文件也可以,该文件可以从/usr/local/etc里面找到,里面有很详细的注释,我就不多说了。

下载网页的时候比较麻烦的事情是,有的网页被同时指向了很多遍,那么为了避免多次下载,我们使用

wget -nc -r -k http://www.ctan.org/tex-archive/macros/latex/

可以避免这件事情。为了不被有的连接指向非http://www.ctan.org/tex-archive/macros/latex/内层目录,我们还应该加上

wget -nc -np -r -k http://www.ctan.org/tex-archive/macros/latex/

避免下载非该目录里面的文件,这也避免了到不同的host上面去。当然,如果你希望有这个功能,在多个host之间跳来跳去的下载,可以使用

wget -nc -np -H -r -k http://www.ctan.org/tex-archive/macros/latex/

使得可以在多个host之间span,同时-I和-X可以使得我们仅仅跟踪某些目录或者不跟踪某些目录。如果某些HTML里面你需要的东西不是由这种东西作出来的,你就得使用--follow-tags和--ignore-tags了。

嘿,我有个文件里面都是连接,怎么办?要是不是html你只需要

wget -i your.file

如果是

wget -F -i your.file

wget ftp://username:password@ip_address/dir/file_name

比自动FTP的SHELL脚本的方法方便多了.

例如获取FTP服务器上文件名是昨天日期的文件,如filename_20040608_001,filename_20040608_002,......

#!/bin/sh
rq=`date --date '1 days ago' "+%Y%m%d"`
wget -q ftp://username:password@ip_address/filename_$rq*

有的时候,FTP站点用wget可以进行目录浏览,也可以下载固定文件名的文件,
却不能把文件名是昨天日期的文件取下来时.

我想了一个方法:

#!/bin/sh
rq=`date --date '1 days ago' "+%Y%m%d"`
wget -nr ftp://username:password@ip_address/filename_$rq*
grep filename_$rq .listing > 1.txt
cat 1.txt|while read LINE
do
file_name=`echo $LINE|awk '{print $9}'`
wget -q ftp://username:password@ip_address/$file_name
done

原理是在目录浏览.listing文件里查找到昨天生成的文件名到临时文件1.txt里

-rw-r--r-- 1 fengyu fengyu 106880 Jun 9 11:44 file_name_20040608001
-rw-r--r-- 1 fengyu fengyu 161760 Jun 9 11:44 file_name_20040608002
...... ...... ......

从头到尾一行行读这个1.txt文件,取它的第9段,也就是固定的文件名,再传递给wget工具.

如果FTP站点或者URL地址里面有特殊的符号,如@和&, 需要用ASC 码替换成%40和%26

更详细替换的方法请参考:www.gnu.org