Submitted by admin on 2009, October 30, 12:00 PM
在linux下默认的ISO挂载点位于"/media"目录,下面是挂载一个ISO文件的方法:
sudo mkdir /media/cdimage #建立一个文件夹作为ISO挂载点
sudo mount -o loop myfile.iso /media/cdimage #挂载ISO文件,使用参数 -o loop
使用你想挂载的iso文件代替myfile.iso。
挂载一个镜像文件使之能被写入,使用下面的命令:
sudo mkdir /media/cdimage
sudo mount -o rw,loop myfile.iso /media/cdimage
卸载镜像文件:
sudo umount /media/cdimage
rmdir /media/cdimage
...
» 阅读全文
Tags: ubuntu, iso, 挂载
系统 | 评论:0
| Trackbacks:0
| 阅读:1535
Submitted by admin on 2009, October 29, 10:33 PM
我做过很多网站,然而成功的网站没有;虽然现存的网站是我放弃多数半途而废的的结果,可是这些网站还是太多,以至于如果我没有比现在有更多的时间的话,未来我还将继续失败。
很多时候我都是有很多想法的,我承认这是好事,但是我的不成功将逐步将我的实际想法架空成为无边的漫想。
» 阅读全文
人生 | 评论:0
| Trackbacks:0
| 阅读:901
Submitted by admin on 2009, October 28, 5:39 PM
我有一个tag的数据表用来记录各类文章的关键字并记录使用次数以便各内容关联和统计。
现在我有个A关键字需要记录可是我不知道A关键字是第一次使用还是已经存在了,为了方便使用如下语句
其中 tagname 是UNIQUE KEY
SQL代码
- $sql="INSERT INTO `itag` (`id`, `tagname`,`book`,`music`)
- VALUES (NULL, '{$tagname}','1','0') ON DUPLICATE KEY UPDATE `book`=`book`+1";
» 阅读全文
Tags: unique, duplicate
php | 评论:0
| Trackbacks:0
| 阅读:1107
Submitted by admin on 2009, October 27, 9:47 AM
vi的使用
功能最强在的编辑器——vi
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难 用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配 备。说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了。
vi的基本概念
基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:
1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。
3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。
不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。
vi的基本操作
•进入vi
在系统提示符号输入vi及文件名称后,即可进入vi全屏幕编辑画面:
$ vi testfile
有一点要特别注意,就是您进入vi之后是处于“Command mode”下,您要切换到Insert mode才能输入文字。初次用vi的用户都会想先用上下左右键移动光标,结果电脑一直叫,把自己气个半死,所以进入vi后,先不要乱动,转换入Insert后再说。
•切换至Insert mode编辑文件
在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode。这时候您就可以开始输入文字了。
i: 插入,从目前光标所在之处插入所输入的文字。
a: 增加,目前光标所在的下一个字开始输入文字。
o: 插入新的一行,从行首开始输入文字。
•Insert的切换→Command mode,按Esc键
您目前处于Insert mode,您就只能一直打字。假如您发现打错字了,想用光标键往回移动,将该字删除,就要按ESC键转换回Command mode,再删除文字。
•离开vi及存文件...
» 阅读全文
Tags: vi, vim, 编辑器
系统 | 评论:0
| Trackbacks:0
| 阅读:1022
Submitted by admin on 2009, October 24, 5:07 PM
“长尾”的由来及含义
根据维基百科,长尾(The Long Tail)这一概念是由“连线”杂志主编Chris Anderson在2004年十月的“长尾” 一文中最早提出,用来描述诸如亚马逊和Netflix之类网站的商业和经济模式。
“长尾”实际上是统计学中幂律(Power Laws)和帕累托分布(Pareto)特征的一个口语化表达。
长尾理论是网络时代兴起的一种新理论,由美国人克里斯·安德森提出。长尾理论认为,由于成本和效率的因素,过去人们只能关注重要的人或重要的事,如果用正态分布曲线来描绘这些人或事,人们只能关注曲线的“头部”,而将处于曲线“尾部”、需要更多的精力和成本才能关注到的大多数人或事忽略。例如,在销售产品时,厂商关注的是少数几个所谓“VIP” 客户,“无暇”顾及在人数上居于大多数的普通消费者。而在网络时代,由于关注的成本大大降低,人们有可能以很低的成本关注正态分布曲线的“尾部”,关注“ 尾部”产生的总体效益甚至会超过“头部”。例如,某著名网站是世界上最大的网络广告商,它没有一个大客户,收入完全来自被其他广告商忽略的中小企业。安德 森认为,网络时代是关注“长尾”、发挥“长尾”效益的时代。
举 例来说,我们常用的汉字实际上不多,但因出现频次高,所以这些为数不多的汉字占据了右图广大的红区;绝大部分的汉字难得一用,它们就属于那长长的蓝尾。 Chris认为,只要存储和流通的渠道足够大,需求不旺或销量不佳的产品共同占据的市场份额就可以和那些数量不多的热卖品所占据的市场份额相匹敌甚至更 大。
长尾市场也称之为“利基市场”。 "利基 ” 一词是英文 “Niche” 的音译,意译为 “ 壁龛 ” ,有拾遗补缺或见缝插针的意思。菲利普·科特勒在《营销管理》中给利基下的定义为:利基是更窄地确定某些群体,这是一个小市场并且它的需要没有被服务好, 或者说 “ 有获取利益的基础 ” 。
通过对市场的细分,企业集中力量于某个特定的目标市场,或严格针对一个细分市场,或重点经营一个产品和服务,创造出产品和服务优势。
» 阅读全文
Tags: 长尾, 理论
兵法商法 | 评论:0
| Trackbacks:0
| 阅读:1337
Submitted by admin on 2009, October 24, 4:33 PM
[转] 对辜鸿铭的兴趣源于毛姆的小说,又因芥川的游记,选择再度关注他。一个机缘巧合我买了他的书——《中国人的精神》,花了6小时的涉猎,我看到了墙里开花墙外香的极至,辜鸿铭,无疑清末让人印象深刻的学者之一。
不知道他的人,这里大概介绍下他的情况。(他那出名的关于一夫多妻制的解释为——1个茶壶,就应该配4只杯子;以致,衍生到后来徐志摩和陆小曼的一段笑话。小曼云:志摩,我确是你的杯子,然,你却不是我的茶壶,而是我私用的牙刷;)圆规正传,来看看这个有趣的老人吧:
CRAZY HU(外国人辜胡不分)是他的绰号,与国外礼遇不同,在中国这更近乎他自嘲的写照,只因在国人的眼中,他不是一个学者而更近乎一个疯子。我惯例地去查询每 个名人的生日,以观测他星盘的分布,结果,我不由想起朋友的一句“战斗机”,巨蟹出了很多战斗机,不介意在加上这驾特别出名的。
1857年7月18日(阳历),辜鸿铭出生于南洋槟榔岛,自小家境富裕。一说他的母亲是西人,但事实那应该只是他的继母。他自小接受西化教育,让他对于中国的认知反倒是在各大欧洲学院游历之后。他一生获得13个博士学位,却在最终选择成为捍卫中华文明的斗士。
以上的描述,是“有荣誉感的中国人”对他的介绍——实话是我并不喜欢这样赤裸裸的神化,巨蟹本就不算一个完美的星座,表象的完美,时而起源于一颗敏感,偏执,以及狭隘的心。
据说辜是国人中第一个剪辫子的人,野史说他西洋留学,不只长辫被人骂成猪尾,还因此上厕所时被人从男厕中揪出,让他到女厕如厕。虽然日后他声称说记载有误,辫子是他当时送于情人的。但面对耻辱和爱情荣誉,当时年轻的辜对哪个更容易动摇,熟悉他的人,也定有自己的判断。
» 阅读全文
Tags: 狂儒, 辜鸿铭, 中国人, 精神
价值 | 评论:0
| Trackbacks:0
| 阅读:1352
Submitted by admin on 2009, October 23, 3:21 PM
在ubuntu下了部历史小说打算在公车上看,小说7M多,对于手机来说有点大,于是用split分割了。
可是手机不认识没有后缀的文件类型,现在就要用到批量重命名了。
mv不认识字符带* ?这些,重命名就用到了rename。
rename是perl下的命令,支持正则。下面是perl正则基础。
我的文件是 dqdgxs00 dqdgxs01 ....这样的格式,rename给批量加上txt后缀。
命令:rename 's/(dqdgxs)(\d+)/$1_$2.txt/ dqdgxs*
执行后得到 dqdgxs_00.txt dqdgxs_01.txt
» 阅读全文
Tags: perl, rename, ubuntu
系统 | 评论:0
| Trackbacks:0
| 阅读:1607
Submitted by admin on 2009, October 12, 9:21 AM
所谓简单,是因为ProFTPD的一些复杂功能都没有写进来,比如用户磁盘空间配额、上传下载速率限制等。
所谓轻量级,是因为配这个平台,是为了公司内部使用,用户有限。更复杂的配置,日后再说吧:)
网上的很多关于ProFTPD搭载数据库进行管理的文章,大多用的都是MySQL(搜baidu的结果)和PostgreSQL(搜google的 结果),可是单单为了一个公司内部使用的这么一个小平台,使用这么两个重量级的数据库,是在有点杀鸡用牛刀的感觉。对于我的需求,Sqlite这个轻量级的嵌入式数据库,显然是最最合适的选择。在网上跑来跑去找了1个多小时,也没有一篇像样的配置文档,甚至连ProFTPD的官方doc里,提起sqlite也是只言片语。没办法,只有自己对着英文的Howto,自己摸索了。
1,Install Sqlite3 and ProFTPD
下载安装Sqlite3最新版:http://www.sqlite.org/
#tar -zxf sqlite-amalgamation-3.6.13.tar.gz
#cd sqlite-3.6.13/
#./configure
#make
#make install
下载安装ProFTPD最新版:http://www.proftpd.org/
ProFTPD对于数据库的支持,并不是通过linux的PAM方式来实现的
而是内置了模块,这点曾经让我走了很多弯路,TMD居然没有文章提及这点。使用sqlite模块:
#tar -zxf proftpd-1.3.2.tar.gz
#cd proftpd-1.3.2
#./configure –prefix=/usr/local/proftpd –with-modules=mod_sql:mod_sql_sqlite
#make
#make install
2,配置ProFTPD
编辑/usr/local/proftpd/etc/proftpd.conf文件,加入下面列出来的这一大坨参数。
这里只说说跟Sqlite3有关的参数,其他比较有用的参数配置说明,满世界都是。完整配置文件放在最后。
其实除了SQLBackend和SQLConnectInfo两个参数之外,剩下的一些参数在配置其他数据库时也会用到
我在配置这些数据库相关参数的时候,走了很多弯路,查了很多文档,记下来也给自己脑子备个份。
#首先来说这俩,定义proftpd以什么身份来运行,跟apache里的是一个意思
#我是习惯了apache定义为www用户和www组,配置proftpd也就这样了
#以什么身份运行,我个人感觉没啥特别意义,关键是虚拟用户对实体用户的映射!
User www
Group www
#sqlite2跟3差别较大,各软件平台对其支持也是分开来的,比如PHP
#这里就是指明,使用sqlite3
SQLBackend sqlite3
#数据库文件的绝对路径,一定要绝对
SQLConnectInfo /home/www/ftpd.db
#数据库内虚拟用户的密码认证方式
#我认为Backend的意思就是数据库自己的认证方式,比如mysql的password方案
#该方案可以指定多种,使用空格隔开,按照先后,依次try
#下面这句的意思就是“先用sqlite自己的认证方式(我用的明文,其他解决方案没研究)
#如果不行,再使用crypt(3)的方案”,实际配置文件里我只要了一个Backend
SQLAuthTypes Backend Crypt
#自定义存放用户信息的表和字段
#下面这句的意思就是
#users表 里的 字段:用户名 密码 系统映射uid 系统映射gid 主目录 shell路径
#切记:表和字段的名字可以随便起(跟实际数据库中的表和字段相对应),但顺序不可乱
#按照我对英文howto的理解,前4个字段名是必须要设置的,后两个如果自己用不上
#必须使用NULL来填补,这样mod_sql模块就不会去检索这俩字段了
SQLUserInfo users user_name user_passwd uid gid home_dir NULL
#如果主目录字段名设置为NULL,那么这里这个就必须要定义
#这个是用来定义那些没有“主目录定义的用户”的主目录,有点绕口:P
#SQLDefaultHomedir “/tmp”
#这个参数设置为off的意思,是不让proftpd去检查该FTP用户映射到系统里的用户的shell
#就是说,有没有shell,我都让你登陆。特别是上面的字段,将shell路径这个设置为了NULL
RequireValidShell off
#组信息,没啥意思,就这么放着吧,意思跟上面那个SQLUserInfo一样
#表名 组名 组id 成员
SQLGroupInfo groups group_name gid members
#这里是用户身份认证的程度,只验证user,连带group啥的都验证
#图简单,我这里只验证user这一层
SQLAuthenticate users
#设置ProFTPD允许登陆的最小UID,这个UID是映射到linux系统内实际用户的UID,小于这个值将不允许登陆
#这个值如果不设置,系统默认的是999,在很多国内的文章里,uid和gid都是设置5000多
#所以即使不管这个值,也不会有问题,可是如果你跟我一样,映射用户的uid和gid都小于999了,就要注意它了
#我的www用户的uid和gid都是504,在这里,卡了我有一个多小时,TNND
SQLMinUserUID 500
#这两个的意思,是所有未在数据库中定义uid和gid的用户的默认uid及gid
SQLDefaultUID 504
SQLDefaultGID 504
我的完整的proftpd.conf文件
http://rui7905.googlecode.com/svn/trunk/proftpd_sqlite3
3,建立数据库及用户表
#sqlite3 /home/www/ftpd.db 数据库就建好了,简单吧~
其实理论上,这个文件的路径,是放在哪里都可以的。我配置完这个平台后,又用php写了一个简单的管理平台
为了方便我的apache运行用户www读写数据库,就放在了www的主目录下。。
在sqlite3环境下,用下面这个语句建立数据表
CREATE TABLE “users” (”user_name” varchar(20), “user_passwd” varchar(50), “uid” int(11) NOT NULL DEFAULT 504, “gid” int(11) NOT NULL DEFAULT 504, “home_dir” varchar(200), “shell” varchar(200))
下面创建一个新用户:
INSERT INTO “users” VALUES(’test’,'test’,504,504,’/home/www/ftp/test’,NULL);
表的uid和gid的默认值都设置为了504,即www用户在系统内的uid和gid的值。新添加字段时,这两个字段我也设置了。www用户和组在 我系统内是早就建好的,uid和gid分别都是504。通过这两个字段的值,就完成了proftpd内的虚拟用户跟系统内实体用户的映射。具体到自己,请 根据实际情况来设置这两个字段的默认值,及新添加记录的值。
4,最后
到现在,整个配置应该是完成了,使用这个命令来启动ProFTPD:
/usr/local/proftpd/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf &
参考资料:
ProFTPD Howto:SQL and mod_sql:
http://www.proftpd.org/docs/howto/SQL.html
ProFTPD module mod_sql:
http://www.proftpd.org/docs/contrib/mod_sql.html
ProFTPD module mod_sql_sqlite:
http://www.proftpd.org/docs/contrib/mod_sql_sqlite.html
Configuration Directive List:
http://www.proftpd.org/docs/directives/linked/by-name.html
Simple MySQL Authentication:
http://www.proftpd.org/docs/configs/mysql_simple.conf
» 阅读全文
Tags: ftp, linux, proftpd, sqlite
系统 | 评论:0
| Trackbacks:0
| 阅读:1252