2007年4月30日星期一
freebsd 挂载
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
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
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