马化腾马云收编草根网站 互联网大佬争夺站长
马化腾终于决定出手了。
“腾讯收购康盛创想,已经谈成,不是传言中的入股、战略投资,而是通过现金加股权的方式达成收购,价格也比传言中的1000万美元高,大约在几千万美元,具体数额不方便透露。”6月14日,互联网业内知情人士对时代周报记者如此说道。
康盛创想(北京)科技有限公司(Comsenz Inc.)是社区平台与服务提供商,其最为业界熟悉的产品就是Discuz。大量的网站建站都使用康盛创想的Discuz,包括新浪论坛。
事实上,康盛创想的竞争对手—2008年底被阿里巴巴收购的杭州德天信息科技有限公司(以下简称“phpwind公司”)相关人士也在不经意中证实了“腾讯收购康盛创想”一事。
“我觉得这是好事情,我们相互鞭策,这是一个相互鼓励的过程。”6月12日,在阿里巴巴集团旗下的阿里云计算与新浪网联合举办的站长研讨会上,phpwind公司副总裁肖睿哲在被问到“腾讯收购了你们的对手,你们如何看”时,他很快地作出了上述回应。
Phpwind是一家用于建站的通用论坛程序,业内人士都明白,phpwind的竞争对手就是康盛创想。
无论是phpwind,还是Discuz,都是草根站长用于建站的工具软件。现在,phpwind公司和康盛创想,一个早已被阿里巴巴纳入旗下,一个正被腾讯公司董事会主席兼首席执行官马化腾收入囊中。
这是一场站长争夺战,而这个战场还有百度的身影—百度联盟。站长争夺战的背后,其实是一场互联网大佬之间的“三国演义”。
拉拢99%中小网站长
腾讯投资康盛创想的传言半个多月前就已有之。5月26日,有传言称,腾讯已经战略投资康盛创想,并称,腾讯对康盛创想的资金投入应该为1000万美元左右,主要用于收购谷歌所持有的康盛股权,并有可能进行新的投资计划。
不过,腾讯入股的消息披露不久,即被康盛创想高调否认。但5月29日在北京举办的2010年第五届中国互联网站长年会上,业内人士还是能看出一点端倪。
这次的站长年会采用了与微博合作发布的形式。引人关注的是,除与新浪微博合作外,年会还与尚在测试中的腾讯微博合作,而不是已经上线的网易或者搜狐微博。“主席台两侧的微博直播,一边是新浪,一边是腾讯,”这一招很厉害,虽然新浪微博苦心经营半年多,但在这一刻,也只能眼睁睁看着腾讯微博的搭车。
而这次站长大会的运作者,就是康盛创想。这次年会上,康盛创想与腾讯微博的合作,让与会者不免联想到了“腾讯收购康盛创想”的传言。
6月14日,在得知“腾讯几千万美元收购康盛创想”一事后,时代周报记者向康盛创想副总裁李明顺求证。但截至发稿前,仍未得到他的回应。腾讯公司公关部刘姓人士对“收购一事”未予回驳,只说“此事不归公关部管辖,应找深圳总部的腾讯投资者关系部”。
虽然当事双方没有公开表态,但这一事件基本已经被“圈里人”定性为既成事实。
而事实上,正是“阿里巴巴收购phpwind,才把康盛创想推进了腾讯的怀里”。据知情人士称,康盛创想一直想保持独立,但本来在与康盛Discuz竞争中处于下风的phpwind借助阿里巴巴的实力,不断推出新版本,更借助电子商务这一概念吸引了很多站长的人气,如著名的站长厦门小鱼就从Discuz转投phpwind阵营。
作为互联网广告的重要载体之一,网站一直是互联网大佬争夺的对象。截至2009年底,中国境内注册的网站总数达323万,其中99%是中小网站。其庞大的数量造就其成为中国网络的中坚力量。
看到这些的不仅有阿里巴巴、腾讯,还有百度。今年4月26日,在四川九寨沟召开的2010百度联盟峰会上,百度董事长兼首席执行官李彦宏表示,现在有责任逐步去了解中小站长关注的问题,帮助和支持他们的发展与成长。
虽然百度联盟成立较早,但与阿里巴巴、腾讯付出真金白银不同,百度仍以联盟这种“松散”的形式拉拢站长。
随着腾讯收购康盛创想,站长争夺战开始了真刀真枪的对攻。
卡住建站入口
最先动作的是阿里巴巴集团主席和首席执行官马云,最先看好中小草根网站的也是马云。
2008年阿里巴巴集团收购国内通用型建站软件开发商phpwind,此后phpwind公司先后与淘宝、支付宝联合推进社区电子商务、水电煤生活缴费等业务。
今年4月21日,阿里巴巴资深副总裁金建杭在与phpwind公司区域网站合作新闻发布会上表示,今后阿里巴巴云计算将与phpwind公司合作,帮助 phpwind公司建立一个中小网站的数据分享平台与电子商务营销平台,为区域网站提供存储、即时通信、搜索等技术支持。金建杭强调,phpwind的价值在于帮助中小网站改善生存状态。
Phpwind是建站工具,但用phpwind建站的中小网站站长则是马云更为看重的。目前,phpwind累计站长用户超过60万,这些社区网站覆盖了 52类行业,每天有一亿人群聚集在用phpwind搭建的社区里,发表5000万条新增信息,访问超过10亿个页面。
除了收购phpwind公司,笼络一大批站长外,马云还从另一层面卡住了建站入口,那就是今年2月,阿里巴巴收购了中国万网。
互联网资深分析人士洪波认为:“马云在兑现他帮助中小企业发展的诺言,同时让他的商业帝国的轮廓更加清晰。”
互联网分析人士王冠雄则表示:“阿里巴巴已经渗透到建站这一块了。”
百度也不是没有看到中小网站站长的价值。在知情人士看来,百度一向的弱点是有点“短视”,百度联盟成立很早,但能提供给中小网站的无非就是搜索平台下的广告分成。
今年的百度联盟峰会上,当百度打出增加分成比例的旗号后,不少人认为这是在“利诱”合作伙伴,缺少对中小网站发展和成长的关注。
利益关系,一切止于利益,如果别的互联平台能提供更多的利益,甚至还有成长及未来,中小网站的选择其实不言而喻。
阿里巴巴现在正想打造这样一个利于中小网站的云计算平台,再加上当下电子商务的火爆,让更多的站长从电子商务中盈利。
与马云有相似眼光的是马化腾。5月底,当腾讯要收购康盛创想的传言传出后,就有分析人士认为,腾讯收购康盛创想后,一来,腾讯社区搜索将会为腾讯soso 带来很大流量;二来,腾讯组建一个广告联盟就更方便了;三来,腾讯可与QQ号绑定实现QQ登陆论坛,增强QQ号的黏合力,“腾讯可谓是一举三得。”
FT中文网专栏作者程苓峰6月12日在其腾讯微博上表示:“如果我听到的传闻属实,那么第一,腾讯将逆转其在创业者中的形象,与草根创新和创业紧密系在一起,水乳交融。第二,搜搜覆盖的信息量在QQ体系外又多了一块独家来源,斗百度加一筹码……”
业内人士认为,他所说的传闻,就是“腾讯收购康盛创想Discuz”。
当下,在站长争夺中,阿里巴巴与腾讯占了上风,而百度正在失分。如洪波所言:“在任何竞争中,让对手得分,都是自己双倍失分。我怀疑,百度会逐渐失去自己的根据地。”
互联网新变局来临
所有参加2010年站长大会的人,都记忆深刻。这次康盛创想主办的站长大会,除了有李开复、唐骏、周鸿祎等互联网知名人士的参加,还因为这次大会的火爆—很多人是站着听完全天会议的。
站长大会热闹的背后折射的是移动互联等新应用所带来的创业的多种可能性,新的互联网变局正在来临。
站长群体的备受关注,让阿里巴巴旗下的phpwind也变得活跃,邀请各方站长齐聚杭州,共商中小网站的下一步发展。
另一方面,阿里巴巴收购了phpwind公司之后,实力大增,与康盛创想Discuz的竞争更趋激烈。据称,全国各地的重要地区性论坛或者门户型论坛,都被阿里巴巴的营销策略拉拢,纷纷转向phpwind。随后康盛创想再度发力,推出Discuz-x版本,希望夺回失地。phpwind也不甘示弱,即将推出针锋相对的phpwind 8版本。
据新浪网微博事业部负责站长群体的周立清在微博上表示:“看好phpwind 8,体验了一下beta版,在很多方面都超越了Discuz-x。”
背后有两个互联网大佬的支持,phpwind与Discuz的竞争会更加激烈,“这有助于产品升级,无疑是件好事。”知情人士认为,“对阿里巴巴和腾讯而言,他们都在试图扩大自己的帝国疆域,真正着急的其实是百度。”
百度搜索开放平台,请勿跑偏成“站内搜索”
引用百度百科:搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。
网民为什么会用搜索引擎?就是要在最短的时间内,找到最准确的信息。百 度搜索开放平台“阿拉丁计划”是去年就推出的,一开始没多少人注意到,西门也只是搜索“天气预报”、“汇率”等信息知道有这么一项服务的。而上周起,百度 大规模更新关键词,比如搜索“开心网”,第一条是kaixin001.com的登录框;搜索“360杀毒”,第一条是360官方下载链接;搜索“51”, 第一条是51.com的登录框等等。
网民的福音
西门是非常乐意见到这种情况的,因为西门曾经也看过一则报道,是一位网友网购机票,在百度搜索某航空公司的官网,结果排名第一的居然是钓鱼网站!所 以也很容易的上当受骗了,谁又会对航空公司有所怀疑呢?而“阿拉丁计划”的升级,无疑是对网络常识偏低网民的福音!有了“阿拉丁计划”,以后我们搜索大型 公司或者网站的名字,就不会进到钓鱼网站啦!
西门总是说,一件事情有两面性,有好的方面,就有坏的方面。网民满意的背后,吃亏的是站长。
下载站的灾难
以前网友下载软件会搜索到大型下载站例如天空、多特、华军等等,但是现在“阿拉丁计划”来袭后,搜索“金山毒霸”、“可牛杀毒”等关键字,直接第一 条就是官方网站的下载链接,连官方网站都不需要点进去,这无疑是网友们所想看到的。而这些下载站最明显的特点就是下载一个软件,页面上N个“点击下载”的 文字或者图片吸引你点击(大型下载站比小站情况要好得多,但是都有)。下载站大部份收入都是其他软件的下载分成,而“阿拉丁计划”彻底破灭了他们的生存之 路!
不怕被山寨
开心网kaixin001.com应该一直都在后悔为什么当初不把kaixin.com收购下来吧,而千橡这种大型公司居然厚着脸皮收购 kaixin.com后,同样取名“开心网”!我想中国的网民记域名的应该很少,想去哪个网站就百度搜索。搜索“开心网”要是kaixin.com排在第 一位,这样kaixin001.com被别人占了便宜还没地方发泄!因为中国是个没有版权的国家。而有了“阿拉丁计划”,kaixin.com想山寨开心网?没门!kaixin001.com不仅在百度排名第一,而且上面有登录入口,这样网友就不会走丢了。
百度转型为“站内搜索”
西门更喜欢称“阿拉丁计划”为“网站实名制”。网站在百度实名后,搜索该网站的名字,第一条只能也必须是此网站!但是百度在处理模糊关键字的时候, 几乎都是安排自己的子弟兵来充当第一,这是非常狭隘的做法!例如在百度搜索“网址导航”、“新三国”和“一起又看流星雨”等热门电视剧名字时,分别在第一 位的是hao123和奇艺(起义)视频。而搜索“小游戏”确是youyouwin.com这个今年才出来的不知名的网站(大家可以查域名注册时间、备案号 等等),这让西门感到不解,这网站和百度是什么关系,是亲戚关系还是金钱关系?
品牌推广的冤屈
最让西门感到心痛的就是“卓越”和“当当”了。这明明是自己家的招牌,在百度这里,却要弄个所谓的“品牌推广”,还要源源不断的上交真金白银。大家 可以去搜索“卓越”和“当当”,看看这个所谓的“品牌推广”的力量!我相信他们两家也不愿意花钱做这种无谓的“品牌推广”,毕竟都是老字号网站了。但是在 百度这里,只能听百度的,钱给少了,百度能把其他网站放到第一位,百度也不是没做过这种事情!所以我觉得“阿拉丁计划”不会把所有的大型网站都收录进去 的,不然这种“品牌推广”的钱就白白流失了。
作为一位普通的网民,我希望“阿拉丁计划”能更全面,只要是大型网站或者公司,搜索相关关键字都是第一位,这样我们上当的机会能大大减少!作为一位普通的站长,我不希望“阿拉丁计划”拖儿带女。要是我想开一个小游戏或者视频类的网站,难道我永远都不能排名第一么?
中文域名是场彻头彻尾的骗局
你可能已经习惯输入”www.google.com”来搜索自己需要的信息,域名被称为互联网的门牌号,只要你记住了域名就能够随时随地访问这 个网站。现在中文域名来了,消息称ICANN管理委员会已经批准了中国互联网信息中心、台湾网络信息中心、香港互联网注册公司这三个机构注册中文顶级域 名,这意味着中文域名开始进入全球域名体系。
这意味着你可以输入”谷歌.中国”搜索新闻,输入”北大.中国”来查看北大最新的招生信 息,输入”交通部.中国”访问交通部网站,看起来这一切都很棒不是吗?但中文域名看起来更像是一个温柔陷阱,诱惑那些对中文域名抱有美丽幻想的消费者,一 掷千金将中文域名收入囊中。这样做的危险之处在于,你沾沾自喜认为拿到了一方美玉,没准儿只是烂石头一块。
中文域名的第一个问题就是输 入障碍,由于中文域名使用汉字作为域名组成元素,这也就意味着不会使用中文的互联网用户将会被挡在门外。大多数外国友人们可不会用拼音、五笔输入法,他们 并不了解一个中文字词的意思,他们没办法在不安装输入法的情况下输入中文。中文域名缺乏一个作为互联网门牌号的必须具备的通用性,英文国际域名可以在任何 国家、任何地区通用,由于电脑键盘是以拉丁语系为设计蓝本,所以完全不存在使用障碍,这意味着你可以在任何地方、任何时间、无障碍地访问互联网。
但显然现阶段的中文域名还无法完成这样的使命,这是中文域名的一个重大缺陷,有跨国业务的网站不敢将中文域名作为主域名,我现在没有听说任何一家大型网 站或大型企业,将中文域名设置为首选域名,然后在自己的宣传资料上面列出。这代表着这些大型客户们,对于中文域名的前景持保守态度,他们无法确定中文域名 未来的发展潜力,注册中文域名更多是出于一种战略姿态。
中文域名吹嘘的另一个优势是输入快捷,以前你想要访问谷歌需要输入”www.google.com”,有了中文域名之后你只需要输入”谷歌.中国”,看起来的确简短很多。
但是我们的汉字并不是即时呈现的,需要通过拼音输入法。中文域名需要输入”gu’ge.zhong’guo”,加上各种输入法的翻页选词,输入过程比英 文国际域名要复杂得多。再加上中文特有的同音字现象,”骨骼”、”古鸽”这样的输入并不鲜见,让输入错误频频出现。让人苦笑的同时也增加了企业的品牌保护 成本,他们几乎需要把所有的同音字中文域名给保护起来。
中文域名的麻烦显然不仅这些,中文域名在国外基本没人用,CNNIC和消费者自 然寄希望于中文域名能够在国内占据一块市场。目前的主流浏览器都已经支持了中文域名,除了广为诟病的IE6,这如果在国外显然不是什么大问题,因为IE6 早已经被他们扔进垃圾桶了。但是中国显然不一样,IE6在这个市场仍然老而弥坚,占据了接近一半的的市场。尽管大量设计师与主流网站号召用户升级到更好用 的IE7、IE8,但是很显然中国用户对于小巧快速的IE6仍然非常青睐。
这意味着中文域名将无法在庞大IE6用户群中使用,尽管他们已经发布了相关的IE6插件,但是被流氓软件伤害太深的用户拒绝接受,而CNNIC也不能像当年做通用网址一样用流氓手段推广。
既然中文域名有如此多的缺点,如果价格便宜一点,也许有人会考虑购入,但是CNNIC的价格设置显然没有考虑到这一点。
国内中文域名注册价格为大多300元/年,而英文国际域名的注册价格仅100元/年,CN域名的价格甚至更便宜。高昂到让人发指的价格,却拥有如此多的 使用缺陷,中文域名实在很难让人亲近!按照工信部2009年11月30日公布的数据,我国中文域名数为46万个,仅此一项CNNIC就获利近1.4亿元。 换言之,CNNIC是用高昂的价格把一款破烂的产品销售给了消费者,从而牟取暴利。
这46万个注册量里面占据最多的就是中小企业,这个群体似乎是CNNIC每一次作恶的受害者。当年CNNIC推出通用网址,声称中文上网时代即将来临,但事实上这是一款通过流氓软件实现的功能,在流氓软件人人喊打之后销声匿迹。中文域名就是历史的重演。
这篇文章想告诉你三个真相:第一中文域名不好用,没人用。(输入障碍、浏览器支持);第二中文域名只适合作为战略投入,中小企业没必要跟进。第三中文域名价不符实。总结成一句话:中文域名是一场彻头彻尾的骗局。
Web服务器市场:Apache坐稳领头羊 Nginx持续走高
根据NetCraft的最新数据显示,在互联网上的213,458,815个网站中,Apache依然是全球最受欢迎的Web服务器,数量高达670万台。在市场占有率方面,已成为世界第三大Web服务器的Nginx持续走高;微软则下跌了1%,其中主要是来自中国电信业的损失;Google也比上月下降了30万;lighttpd则修复了上月的下跌,服务器数量增加了60万。本次调查的详细结果:
CSS content内容生成技术以及应用
一、哗啦哗啦的简介
zxx://这里“哗啦哗啦”的作用是为了渲染一种氛围。
content属性早在 CSS2.1的时候就被引入了,可以使用:before以及:after伪元素生成内容。此特性目前已被大部分的浏览器支持:(Firefox 1.5+, Safari 3.5+, IE 8+, Opera 9.2+, Chrome 0.2+)。另外,目前Opera 9.5+ 和 Safari 4已经支持所有元素的content属性,而不仅仅是:before和:after伪元素。
在CSS 3 Generated Content工作草案中,content属性添加了更多的特征,例如:插入以及移除文档内容的能力,以创建脚注,结语,及段落注释。但是目前还没有浏览器支持content的扩展功能。
本文将展示content内容生成的基本使用,以及一些您可以应用的特别的技术。
二、还有一点小小的提醒
在进入正题之前,我要做一回啰嗦的老女人,讲点可有可无无伤大雅的提醒。
- 仅在CSS可用的现代浏览器下起作用。
- 不可通过DOM使用,它只是纯粹的表象。在特殊情况下,从一个访问的角度来看,当前屏幕阅读不支持生成的内容。
三、最基本的 – 生成内容
content使用如下:
h2:before {
content: "我是额外文字!";
}
此段样式的作用是在每个h2标签的前面添加文字“我是额外文字”。
您可以狠狠地点击这里:content最基本使用Demo
content属性的值除了使用文本值外,还可以使用标签的一些属性值,方法是attr(),参见如下代码:
a.content:after {
content: attr(href);
}
<a href="http://www.zhangxinxu.com/">此标签的href值是:</a>
结果如下截图(截自Firefox3.6):

对应a标签内的文字值的最后添加了此标签的href属性的值。
您可以狠狠地点击这里:标签属性值生成content内容Demo
注意:当使用attr()获取标签属性名的时候,千万不要添加引号!
您还可以使用计数器产生动态数字或运用url(/path/to/file)路径插入图片。要想获得更多信息,请继续看下面的应用实例。
四、使用计数器创建号码内容
如果您想插入一系列递增的值,比如说“美女1,美女2,美女3,美女4……”,您就可以使用计数器在每个列表项的前面插入递增的序号值。CSS代码如下:
ol {
list-style-type:none;
counter-reset:sectioncounter;
}
ol li:before {
content:"美女" counter(sectioncounter) ": ";
counter-increment:sectioncounter;
}
HTML代码如下:
<ol>
<li><img src="http://image.zhangxinxu.com/image/study/s/s128/mm1.jpg" width="128" height="96" /></li>
<li><img src="http://image.zhangxinxu.com/image/study/s/s128/mm3.jpg" width="128" height="96" /></li>
</ol>
结果如下图(Firefox3.6下截图):

您可以狠狠地点击这里:content产生递增序号demo
说明:
1. ol标签应用counter-reset属性,li标签应用counter-increment属性,值均为sectioncounter,再配合content属性,以及counter计数器就可以实现递增的效果了。
2. 如果您指定了元素display:none,则content下的计数器不会产生递增值。
3. 当然,如果浏览器不支持此方法,那么就不会有数字出现,您使用firebug或是之类的工具查看真实的HTML时不会看到产生的数值,不要有疑惑,content属性动态生成的内容是纯粹的装饰而已,虚假的表象。
4. 如果您对CSS计数器感兴趣,想深入了解,可以参见David Storey一篇优秀的文章:Automatic numbering with CSS Counters。
五、为多语言内容插入正确的引号
不同的语言使用不同的引号字符。比如英文的引号就是"",而中文引号就是“”。使用content可以使得不同的语言使用对应的一些字符。例如,我们需要对下面的些文字添加其对应语言的引号,该怎么办呢?
<p lang="en"><q>It’s only work if somebody makes you do it.</q></p> <p lang="no"><q>Hvis du forteller meg nok en vits, så skal jeg slå deg til jorden.</q></p> <p lang="ch"><q>欢迎来到上海,欢迎参观世博会!</q></p>
我们不妨试试下面的代码:
/* 为不同语言指定引号的表现 */
:lang(en) > q {quotes:'"' '"';}
:lang(no) > q {quotes:"«" "»";}
:lang(ch) > q {quotes:"“" "”";}
/* 在q标签的前后插入引号 */
q:before {content:open-quote;}
q:after {content:close-quote;}
结果如下图所示:

您可以狠狠地点击这里:content生成对应语言字符demo
此技术可以应用于各类元素,而不仅仅是q标签,另外,Safari 3以及IE7(以及以下)是不支持此技术的。
六、用图片替换文字
关于图片替换技术,您可以参见这里:several image replacement techniques,里面提供了几种方法。而这里展示的则是另外不同的用图片替换方法,使用的是content。
您可以参见下面的代码:
div.logo {
content:url(logo.png);
}
这种图片替换技术的优点在于文字内容确实被替换了。因此,您没有必要设定高宽为图片的显示创造空间,或是使用text-indent或是padding隐藏最初的文字。
然而,就目前而言,还是有不少需要注意的:
1. 你不能对图片进行重复或平铺,或是使用image sprite。
2. 目前仅在Opera 9.5+ 和 Safari 4+浏览器下起作用,因为这些浏览器支持所有元素的content方法,而不仅仅局限于:after或是:before。
替换的图片无法应用alt属性,所以一些特殊的使用屏幕阅读器的用户可能无法理解您替换的图片的含义。
七、显示相对应的链接图标
指的是针对不同的链接类型,在链接的后面显示对应链接类型的图标,例如,链接的对象是一个图片,则显示图片的小图标,如果链接对象是视频,则显示视频小图标,如果链接就是个URL网页链接,则显示链接的小图标。您可以参见下面的代码:
p a[href $=".pdf"]:after {
content:url(../image/icon_pdf.png);
}
p a[rel = "external"]:after {
content:url(../image/icon_link.png);
}
<p>您可以查看此PDF文件:<a href="/sample.pdf">web站点的性能优化.pdf</a>,或是在线查看,<a href="http://www.zhangxinxu.com/wordpress/" rel="external">点击这里</a>。</p>
结果如下图所示:

您可以狠狠地点击这里:CSS content显示链接图标demo
八、使用属性值作为content内容
使用属性值当作content内容指的是将标签的title,src,href,alt等值当作内容显示在标签的内部,这是很强大的一个功能。由于此技术目前远未到普及的程度,所以这里简单介绍一下,您可以参见下面的两小段样式代码:
a:after {
content: "(" attr(href) ")";
}
abbr:after {
content: "(" attr(title) ")";
}
这里理解和使用都不难,关键就是CSS3 的attr()方法。
前瞻:强大的CSS3 attr()方法。
CSS3 Values and Units草案扩展了attr()表达式的范围,除了返回字符串,还可以返回诸如CSS colors, CSS integer, length, angle, time, frequency以及其他一些单元。
通过使用自定义的data属性,可以实现一些非常强大的效果,诸如简单图表图形的渲染,动画效果的实现。例如我们可以设置根据元素的 attribute值设定background-color的颜色值,这在显示在线调色板上会大放异彩;我们还可以根据attribute值指定元素的大 小,就像定义图表每个条形的长度一样。总之,attr()的潜力惊人。
九、最后一点唠叨
相信本文对您理解content属性会有不少的帮助。只是在中国,在IE6依旧盛行的中国,由于IE6/7对content的不支持,限制了这一强 大功能的流行,但我相信,在未来几年内,会迎来它的春天的。随着对CSS3的逐步深入的了解,会发现,CSS3的潜力与强大真是超乎想象。我可以预见再未 来几年,会有类似于寒武纪爆发的CSS新技术涌现出来,那时,可真是前端开始走向兴盛的时代。
参考文章:
1. CSS generated content techniques
用Gow在Windows使用Linux命令
如果你是 Linux 及 Windows 的双料用户,而且是深度 CLI 控的话,可能会像我一样在用 Win 的时候会不知不觉间输入一些 Linux 的命令, 当然这肯定无法执行的。现在,有一个名为 Gow 的工具包就可以发挥作用了。
Gow 是一个相当于 Cygwin 的轻量级替代品,里面封装了130 多个的开源工具及 Linux 命令,其中包括:
Shell : bash , zsh
压缩工具: gzip, zip, bzip2, compress
SSH: putty, psftp, pscp, pageant, plink
下载工具 : cURL, wget
FTP: NcFTP
编辑器 :vim
字处理 : grep, agrep, less, cat, tail, head
文件工具: mv, cp, du, ls, pwd, rmdir, whereis
开发工具: make, diff, diff3, sleep, cvs, dos2unix, unix2dos
用户下载一个 Win 安装程序并安装后,它会自动设置好相应的环境变量,这样无论在哪个目录下都能使用这些命令了。
主页:http://wiki.github.com/bmatzelle/gow/
安装程序下载:http://github.com/bmatzelle/gow/downloads
安装完后,就可以打开 CMD 窗口来使用这命令及工具了。

Linux系统启动的标准流程
系统的启动是指从计算机加电到显示用户登陆提示的整个过程。我们将在这里对整个流程以及关系到的一些内容做讨论。过程主要可以分为两个阶段:载入内核和准备运行环境,我们分别进行讨论。本部分的讨论只基于i386硬件架构,但大部分内容是有共通性的。

图一 启动过程综述
载入内核(将内核载入内存,并将控制权传递给它)
计算机加电到Boot Loader开始工作,硬件含量远大于软件含量,所以这里暂不提及,如果实在有关心的朋友,请先别着急,我们将在下期里讨论它。
这一阶段是 Boot Loader 的主战场。它必须将可执行的内核映像和内核启动所需的额外数据信息从存储介质上载入内存,这并不是件简单的工作,因为除了从硬盘载入,可能 还会需要从网络引导服务器这样的外部介质上载入。各种纷繁芜杂的文件系统类型也给载入带来了巨大的挑战。
Boot Loader 可能还需要改变CPU的运行特权级别,然后就可以让内核投入运行了。
除此之外, Boot Loader 还要完成一些其它功能,比如从BIOS中获取系统信息,或者从启动时的命令行参数中提取信息等。有的 Boot Loader 还要扮演引导选择工具的角色,方便用户选择不同的操作系统。
Boot Loader的职责:
l 判断到底要载入什么,这可以要求用户进行选择
l 载入内核和它可能需要用到的相关数据,比如initrd或者其它参数
l 为内核准备好运行环境,比如,让CPU进入特权模式
l 让内核投入运行
Boot Loader的历史变迁:
早期的Linux只支持软盘引导扇区和 Shoelace 两种 Boot Loader。 Shoelace 是从Minix继承下来的、文件系统相关的 Boot Loader。它只支持 Minix 文件系统。当时Linux只使用 Minix 一种文件系统,所以这样做并没什么问题。可是, Minix 文件系 统存在不能保存创建、修改和访问时间信息;文件名长度限制在14个字节等问题。随着Linux的发展,这些与传统Unix文件系统大相径庭的缺陷越来越让 人难以忍受,它已经不适合作为Linux的主要文件系统了。
为了支持其它文件系统的实现,Linux引入了VFS(虚拟文件系统)。这个举措很快就引起了热烈的反响,一大批新的文件系统实现出现了。其中一 个 Minix 文件系统的变体,扩展文件系统 Xiafs(根据它的作者命名)突破了 Minix 文件系统的文件名长度限制,将此长度一举提高到全部 30个字符。当时文件系统之间的竞争着实激烈,很难看出谁会胜出,甚至搞不清楚会不会有一个最终的“赢家”。
尽管不确定性很大,但是有一点却是清楚的:不管最后哪种文件系统会受到青睐,但是除了 Minix 作为根文件系统,谁也不能从硬盘 上启动,因为Shoelace只支持Minix文件系统。LILO应运而生了。由于支持多种文件系统(当时内核支持的主流文件系统已经有 Minix , 扩展文件系统 ext ,Xiafs 。还有人在移植 BSD 的 FFS ,根本看不出来什么时候是个尽头)在实现和维护上难度太大,而Boot Loader 也不应该成为人们试验新的文件系统的绊脚石,所以LILO采取了和文件系统无关的设计。
这种设计经受住了时间的考验,被证明是非常成功的。即使在今天,LILO仍旧可以从内核支持的绝大部分文件系统的硬盘上启动。但是,由于ext2历经了这么长的时间一直没有大的演变,成为了事实上的标准,所以跟文件系统相关的Boot Loader又渐渐流行了起来。
尽管ext2已经能满足大部分人的日常需要,但是文件系统的设计者们还是在研制以日志机制为特征的新的文件系统,并且已经取得了相当大的进展。考虑到当前 又有可能出现多种文件系统的实现同时并存的情况,因此对与文件系统无关的Boot Loader的需求可能会再次变得强劲。
初始化基本的操作环境
一旦内核开始运行,它会初始化内部的数据结构,检测硬件,并且激活相应的驱动程序,为应用软件的准备运行环境。期间包含一个重要操作——应用软件的 运行环境必须要有一个文件系统,所以内核必须首先装载root文件系统。由于我们的目的是介绍基本流程,所以相关的硬件初始化细节就不再讨论,相关内容在 下一期杂志中会有详细介绍。
硬件初始化完成后,内核着手创建第一个进程——初始进程。说是创建, 其实也不尽然,该进程其实是整个硬件上电初始化过程的延续,只不过执行到这里,进程的逻辑已经完备,所以我们就按照进程的创建方式给它进行了“规格化” ——我们把这个初始进程也叫做“硬件进程”,它会占据进程描述符表的第一个位置,所以可以用task[0][k1] 或 INIT_TASK表示。该进程进而会再创建一个新进程去执行init()函数,其实,这个新进程才是系统第一个实际有用的进程,它会负责接着执行下一个 阶段的初始化操作; 而初始进程(INIT_TASK)自己则会开始执行idle循环,也就是说,内核初始化完成之后,初始进程唯一的任务就是在没有任何其它进程需要执行的时 候, 消耗空闲的CPU时 间(因此初始进程也被称为idle进程)。
下一阶段的初始化工作要比前一阶段轻松一点,因为现在是由一个真正进程来接手负责完成它们了,而前一阶段都是由“硬件进程”手工去做的。在此阶段, 这个由INIT_TASK创建的新进程需要初始化总线、网络并启动系统中的各种系统内核后台线程,然后再初始化外设、设置文件格式,在这之后,它要为进入 系统做最后的准备——初始化文件系统,安装root文件系统,打开/dev/console设备,重定向stdin、stdout和stderr到控制 台,然后搜索文件系统中的init程序,并使用 execve()系统调用加载执行init程序。系统自此进入了用户态。
装载root文件系统
为了装载文件系统,内核需要:1、知道root文件系统位于那个存储介质上;2有访问该种介质的驱动程序。
最常见的情况是,root文件系统是ext2文件系统,位于IDE硬盘上。这种情况下需要的操作很简单:将设备号作为参数给内核就可以了,IDE的设备驱动程序通常都是编译进内核的。
如果内核没有相关介质的驱动程序,问题就会变得更为复杂。而这种情况并不罕见,比如Linux安装盘使用的“通用”内核一般都会碰到这种情况。如果内核把所有支持的硬件的设备驱动程序都包含进来,就会变成一个庞然大物;而且一些驱动程序在检测硬件的时候会影响其它设备。
这个问题可以通过initrd机制解决,它允许在装载实际的root文件系统之前先使用RAM文件系统。除了上述两个原因,引入initrd还可以解决内核的动态合成问题。(详见参考资料一。)
不过,我们应该注意到,initrd在整个启动过程中并不是从来就有的,它可以说是一个插件,为了解决以上问题,而被加入启动过程,像图一所示,Linux系统在启动时也可以不选择它。
为什么要引入initrd?
Linux启动过程中肯定要载入内核镜像,在此过程中有些要素必须考虑:
首先,内核镜像不能太大。由于受到各种硬件和兼容性的限制,Linux的内核镜像不能太大,但是这并不容易做到。Linux内核的核心部分本身就不小了;而且还必须加入会使用到的驱动程序。
其次,要支持尽可能多的硬件设备。我们在启动过程中有一件重要工作:挂载root文件系统,因为进一步的数据和应用软件都在其上,所以我们的内核必 须能够访问root文件系统。对于一般用户,如果他们使用IDE硬盘上的ext2文件分区作为root文件系统,不会有什么问题。因为不管是IDE硬盘还 是ext2文件系统,它们的驱动肯定会包含在内核镜像自身里面。但是,确实存在一些特殊情况:比如说我们希望发行Linux系统的安装光盘,那么对光盘的 驱动,就不一定包含在内核里面了。(有人可能要奇怪了,咦,光盘中的内核镜像不都已经读进来了吗,怎么内核还访问不了光盘呢? 注意,读入内核镜像的是 Boot Loader ,内核并不具备 Boot Loader 的功能。)如果没有光盘的驱动,我们又怎么把光盘里的软件包安装到用户的计算机里呢?把驱动程序预先编译到内核里?听起来还不错,可是如果 我们除了光盘还有一些其它的安装介质,那么所有这些驱动就会让内核镜像庞大不堪。
而且,还有更严重的问题,各种不同的驱动程序很有可能会发生冲突,特别是以前ISA设备占市场主导地位的时候,这种冲突简直难以避免。
那时的解决办法是发行商提供预先编译好的支持各种设备的不同内核,把每个内核放进一张软盘,随发行包一起交给用户,用户自己选择装有合适内核的软盘进行引导。或者给用户提供制作引导盘的工具,让用户在安装前制作自己的启动盘。当然,哪一种办法都不能让人满意。
唯一的希望在于使用模块化机制。在内核启动的时候调用相应的模块加载驱动程序,然后访问root文件系统。无论是通过内核对设备做进一步的分析还是直接从用户那里得到配置信息,先配置再加载模块的办法,都能有效地避免冲突的发生。
除了在安装的时候需要在挂载root文件系统之前调用相应的模块之外,在完成安装的系统上,我们可能仍然需要在挂载root文件系统之前调用一些模块。这主要是为给计算机进行配置——一般都要针对不同的计算机进行内核配置。
理想情况下,用户按照自己的实际情况配置编译文件,重新编译内核,一步步完成这种工作。但是没有几个用户喜欢这种冗长并且极易出现错误的工作。而且编译和生成内核需要相应的工具,可是大部分用户不需要这些工具。
在安装的过程中可以直接编译一个整体式的内核,但这并不能很好的解决问题:首先,所有的编译工具还是需要的,其次,编译过程中出现差错导致无法完成 任务的概率太大了。所以,我们仍然要使用模块机制:模块机制很可靠,出了错误也只不过不加载对应的模块而已,不会使整个任务失败。而载入模块,像前面说 的,也是在挂载root文件系统之前就要得到模块的。
基于以上理由,Linux引入了initrd机制。
initrd做什么
initrd允许系统在启动的时候载入一个RAM盘,这个RAM盘可以被当作一个root文件系统,程序可以在其上运行。(有两重含义,第一,程序 在上面;第二,程序的文件系统环境也在上面。)在此之后,可以从别的设备上挂载一个新的root文件系统,先前的root文件系统(initrd)就会被 移动到一个目录上去,最终被卸载掉。
为什么要使用RAM盘呢?首先,使用RAM盘能方便的支持以后可能发生的变化;另外,也是为了保持Boot Loader 工作尽可能的简单。在系统引导时,除了内核镜像之外,Boot Loader把所有相关的信息作为一个文件读入内存,内核在启动中将该文件作为一段连续的内存块看待。也就是把它当作RAM盘来 使用了。正因为如此,这种机制被称作“初始 RAM 盘(initial RAM Disk)”,缩写成initrd。
initrd主要用来把系统的启动划分为两个阶段:初始启动的内核只需保留最精简的驱动程序最小集,此后,在启动必须加载附加的模块时,从initrd中加载。
initrd进行的操作
使用initrd的时候,典型的系统启动的流程变为:
1) Boot Loader读入内核镜像以及initrd文件
2) 内核将initrd文件转成“普通”的RAM盘,并且释放掉initrd文件占用的内存。
3) initrd被当作root文件系统,以可读可写(read-write)方式安装。
4) /linuxrc被执行(它可以是任何可执行文件,包括脚本在内;它以uid0身份执行,基本上能完成所有init程序可以做的工作)
5) linuxrc安装“实际”的root文件系统
6) linuxrc通过pivot_root系统调用将root文件系统放置在root目录下。
7) 常用的启动流程(比如调用/sbin/init)开始执行。
8) 卸载initrd文件系统。
注意,这是一个典型流程。其实initrd机制可以通过两种方式使用:要么就是作为一个普通的root文件系统使用,这样的话第5、第6两个步骤可 以被略过,直接执行/sbin/init(我们的试验系统就是利用这种方法);要么作为一个过渡环境使用,通过它内核可以继续装载“实际”的root文件 系统。
LINUX系统信息查看命令大全
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
LINUX必学的60个命令
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在 Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux 系统。
不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。
login
1.作用
login的作用是登录系统,它的使用权限是所有用户。
2.格式
login [name][-p ][-h 主机名称]
3.主要参数
-p:通知login保持现在的环境参数。
-h:用来向远程登录的之间传输用户名。
如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
一般界面是这样的:
Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1localhost login:rootpassword:
上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。
登录后会看到下面这个界面(以超级用户为例):
[root@localhost root]#last login:Tue ,Nov 18 10:00:55 on vc/1
上面显示的是登录星期、月、日、时间和使用的虚拟控制台。
4.应用技巧
Linux是一个真正的多用户操作系统,可以同时接受 多个用户登录,还允许一个用户进行多次登录。这是因为 Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次 登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。
例如,用户登录后,按一下“Alt+F2”键,用户就 可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按 “Alt+F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制 台。虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。
shutdown
1.作用
shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要参数
-t:在改变到其它运行级别之前,告诉init程序多久以后关机。
-k:并不真正关机,只是送警告信号给每位登录者。
-h:关机后关闭电源。
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改为单用户模式。
-i:关机时显示系统信息。
4.命令说明
shutdown命令可以安全地将系统关机。有些用户 会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows不 同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。
halt
1.作用
halt命令的作用是关闭系统,它的使用权限是超级用户。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要参数说明
%
--------------------
Linux必学的60个命令
Linux提供了大量的命令,利用它可以有效地完成大 量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工 作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。
login
1.作用
login的作用是登录系统,它的使用权限是所有用户。
2.格式
login [name][-p ][-h 主机名称]
3.主要参数
-p:通知login保持现在的环境参数。
-h:用来向远程登录的之间传输用户名。
如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
一般界面是这样的:
Manddrake Linux release 9.1(Bamboo) for i586
renrel 2.4.21-0.13mdk on i686 / tty1
localhost login:root
password:
上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。
登录后会看到下面这个界面(以超级用户为例):
[root@localhost root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面显示的是登录星期、月、日、时间和使用的虚拟控制台。
4.应用技巧
Linux是一个真正的多用户操作系统,可以同时接受 多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚 拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作 站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。
例如,用户登录后,按一下“Alt+F2”键,用户就 可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制 台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。
shutdown
1.作用
shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要参数
-t:在改变到其它运行级别之前,告诉init程序多久以后关机。
-k:并不真正关机,只是送警告信号给每位登录者。
-h:关机后关闭电源。
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改为单用户模式。
-i:关机时显示系统信息。
4.命令说明
shutdown命令可以安全地将系统关机。有些用户 会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows不 同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。
halt
1.作用
halt命令的作用是关闭系统,它的使用权限是超级用户。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要参数说明
-n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
-f:没有调用shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉所有的网络接口。
-f:强迫关机,不呼叫shutdown这个指令。
-p: 当关机的时候顺便做关闭电源的动作。
-d:关闭系统,但不留下纪录。
4.命令说明
halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的 运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。
reboot
1.作用
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
2.格式
reboot [-n] [-w] [-d] [-f] [-i]
3.主要参数
-n: 在重开机前不做将记忆体资料写回硬盘的动作。
-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i: 在重开机之前先把所有与网络相关的装置停止。
install
1.作用
install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。
2.格式
(1)install [选项]… 来源 目的地
(2)install [选项]… 来源… 目录
(3)install -d [选项]… 目录…
在前两种格式中,会将 <来源>复制至 <目的地>或将多个 <来源>文件复制至已存在的 <目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是 必须的。
3.主要参数
--backup[=CONTROL]:为每个已存在的目的地文件进行备份。
-b:类似 --backup,但不接受任何参数。
-c:(此选项不作处理)。
-d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
-D:创建 <目的地>前的所有主目录,然后将 <来源>复制至 <目的地>;在第一种使用格式中有用。
-g,--group=组:自行设定所属组,而不是进程目前的所属组。
-m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
-o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
-p,--preserve-timestamps:以 <来源>文件的访问/修改时间作为相应的目的地文件的时间属性。
-s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
-S,--suffix=后缀:自行指定备份文件的 <后缀>。
-v,--verbose:处理每个文件/目录时印出名称。
--help:显示此帮助信息并离开。
--version:显示版本信息并离开。
mount
1.作用
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
2.格式
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
3.主要参数
-h:显示辅助信息。
-v:显示信息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-t vfstype:显示被加载文件系统的类型。
-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。
4.应用技巧
在Linux和Unix系统上,所有文件都是作为一个 大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件 树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备 挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件 系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。
(1)Linux可以识别的文件系统
◆ Windows 95/98常用的FAT 32文件系统:vfat ;
◆ Win NT/2000 的文件系统:ntfs ;
◆ OS/2用的文件系统:hpfs;
◆ Linux用的文件系统:ext2、ext3;
◆ CD-ROM光盘用的文件系统:iso9660。
虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。
(2)确定设备的名称
在Linux中,设备名称通常都存在/dev里。这些 设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个 IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、 hdd。hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查/var/log /messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
(3)查找挂接点
在决定将设备挂接之前,先要查看一下计算机是不是有个 /mnt的空目录,该目录就是专门用来当作挂载点(Mount Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如 要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat):
软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。
umount
1.作用
umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
2.格式
unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
3.使用说明
umount命令是mount命令的逆操作,它的参数 和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不 能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。 仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。
chsh
1.作用
chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。
2.格式
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
3.主要参数
-l:显示系统所有Shell类型。
-v:显示Shell版本号。
4.应用技巧
前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下:
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,见图1所示。
图1 系统可以使用的Shell类型
从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。
exit
1.作用
exit命令的作用是退出系统,它的使用权限是所有用户。
2.格式
exit
3.参数
exit命令没有参数,运行后退出系统进入登录界面。
last
1.作用
last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
2.格式
1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]
3.主要参数
-n:指定输出记录的条数。
-f file:指定用文件file作为查询用的log文件。
-t tty:只显示指定的虚拟控制台上登录情况。
-h 节点:只显示指定的节点上的登录情况。
-i IP:只显示指定的IP上登录的情况。
-1:用IP来显示远端地址。
-y:显示记录的年、月、日。
-ID:知道查询的用户名。
-x:显示系统关闭、用户登录和退出的历史。
Linux系统中rar、unrar命令安装和使用详解
安装
如果是以tarball形式安装安装,去rar网站下载相应版本的tarball。地址为http://www.rarlab.com/
以3.9版本为例,如果是i386的平台,执行以下命令:
$wget http://www.rarlab.com/rar/rarlinux-3.9.0.tar.gz
rar软件不需要安装,直接解压到/usr/local下,以下操作需要有root权限。
#tar zxvf rarlinux-3.9.0.tar.gz -C /usr/local
此时,/usr/local/rar下就会有rar命令和unrar命令。可以在/usr/local/bin下创建连接
#ln -s /usr/local/rar/rar /usr/local/bin/rar
#ln -s /usr/local/rar/unrar /usr/local/bin/unrar
如果是debian或者unbuntu,可以使用如下命令进行自动安装。
$sudo apt-get install rar
$sudo apt-get install unrar
注:如果你的Linux上的glibc和rar编译所使用的版本不同,那么可以使用rar_static来替代rar。
使用
可以使用帮助命令或者查看man文档了解一下rar命令的用法。以下为本人翻译的帮助文档,由于本人英语水平有限,错误之处敬请指出。
001.$ rar --help002.003.用法: rar <命令> -<选项 1> -<选项 N> <压缩档案> <文件...>004. <@文件列表...> <解压缩路径\>005.006.<命令>007. a 添加文件到压缩档案008. c 添加压缩档案注释(注释的大小最大不能超过62000字节)009. cf 添加文件备注( 当使用'v'参数时显示文件备注,最大不能超过32767字节)010. ch 改变压缩档案参数011. cw 向指定文件写入档案备注012. d 从档案中删除文件013. e 解压缩文件到当前目录(不创建任何子目录)014. f 刷新档案中的文件(更新这些文件自它们被打包之后产生的变化,不在压缩档案中增加新的)015. i[par]=<str> 在档案中查找特定字符016. k 锁定档案(任何试图改变压缩档案中内容的命令都会被忽略)017. l[t,b] 列出档案[technical, bare]018. m[f] 移动到压缩档案中[只针对文件]019. p 打印文件到标准输出020. r 修补压缩档案021. rc 重建丢失的分卷022. rn 重命名压缩档案中的文件023. rr[N] 添加数据恢复记录024. rv[N] 创建恢复卷025. s[name|-] 压缩档案与SFX(自解压文档)之间的转换026. t 测试压缩档案文件027. u 更新压缩档案中的文件028. v[t,b] 列出压缩档案的详细信息[technical,bare]029. x 解压缩到完整路径030.031.<选项>032. - 停止对选项的扫描033. ad 追加档案名称到目标路径034. ag[format] 使用当前数据生成压缩档案名035. ap<path> 在档案内部设置路径036. as 同步档案内目录037. av 设置认证检测(只有注册版提供此功能)038. av- 关闭认证检测039. c- 关闭备注显示040. cfg- 关闭读取设置041. cl 转换名称为小写字母042. cu 转换名称为大写字母043. df 压缩后删除原文件044. dh 打开共享文件045. ds 关闭针对于稳固档案的名称排序046. dw 压缩后擦除文件047. e[+]<attr> 设置文件排除与包含属性048. ed 不添加空目录049. en 不设置档案结束块050. ep 名称中不包含路径051. ep1 名称中不包含基本文件目录052. ep3 展开路径到完整包含的驱动器名053. f 刷新文件054. hp[password] 加密文件数据和文件头部055. id[c,d,p,q] 关闭消息056. ierr 发送所有消息到标准错误输出057. ilog[name] 记录错误日志到文件中(只有注册版提供此功能)058. inul 关闭所有消息059. isnd 打开声音060. k 锁定压缩档案061. kb 保持被解压过的已损坏的文件062. m<0..5> 设置压缩等级(0-存储...3-默认...5-最大)063. mc<par> 设置高级压缩参数064. md<size> Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)065. ms[ext;ext] 存储指定的文件类型066. n<file> 仅包含指定的文件067. n@ 从标准输入读取文件名到包含内容中068. n@<list> 在指定列表文件中包含文件069. o[+|-] 设置重写模式070. ol 替文件保存符号连接作为连接071. or 自动重命名文件072. ow 保存活存储文件的拥有者与群组073. p[password] 设置密码074. p- 不询问密码075. r 对子目录进行递归操作076. r0 仅用通配符名称对子目录进行递归操作077. rr[N] 添加数据恢复记录078. rv[N] 创建恢复079. s[<N>,v[-],e] 创建稳固档案压缩080. s- 关闭稳固档案压缩081. sc<chr>[obj] 设置指定的字符串082. sfx[name] 创建SFX档案083. si[name] 从标准输入读取数据084. sl<size> 处理文件的大小小于指定的值085. sm<size> 处理文件的大小大于指定的值086. t 压缩后测试文件087. ta<date> 处理修改日期为指定日期之后的文件,<date>格式: YYYYMMDDHHMMSS088. tb<date> 处理修改日期为指定日期之前的文件,<date>格式: YYYYMMDDHHMMSS089. tk 保持档案最初的时间090. tl 设置档案时间为据现在最近的文件时间091. tn<time> 处理比指定时间新的文件092. to<time> 处理比指定时间旧的文件093. ts<m,c,a>[N] 保存或存储文件时间(修改,创建,访问)094. u 更新文件095. v 创建自动大小的卷或列出所有卷096. v<size>[k,b] 创建指定大小的卷size=<size>*1000 [*1024, *1]097. ver[n] 文件版本控制098. vn 使用旧的卷命名体系099. vp 在每个卷之前暂停100. w<path> 指定工作目录101. x<file> 排除指定文件102. x@ 排除从标准输入中读取的文件名称103. x@<list> 从指定列表文件中指定要排除的文件104. y 设定所有回答为yes105. z[file] 从文件中读取压缩档案的备注注意:rar的<命令>部分不带”-”号,只有<选项>部分带”-”号,这一点注意一下。
例1:添加文件或目录到压缩档案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命 令,a命令把file1文件添加到abc.rar档案中保持原有的file1文件不变,m命令移动file1文件到file1.rar档案中(压缩完成后 会删除原有的file1文件,注意:m命令只针对文件进行操作)
$rar a abc.rar file1
说明:如果此时abc.rar档案不存在,会自行创建abc.rar文档案,如果abc.rar档案已经存在,则将file1文件压缩进 abc.rar档案中,若abc.rar档案中已存在一个file1文件,则会更新file1文件。并且原有的file1文件依然存在于当前目录下,若要 将file1文件移动到file1.rar中请使用m命令,对于目录同样可以进行此操作。
注意:如果只输入”rar a file1.rar”命令,而没有接文件名或目录名的话,会将当前目录下所有的文件和文件夹压缩进file1.rar文档中。这点要注意一下。
例2:解压缩abc.rar档案中的内容,可以使用e或x命令,假设abc.rar目录中有一个名为file1的文件和一个名为test的目录,test目录中有一个名为file2的文件
$rar e abc.rar
说明:使用e命令,会将abc.rar中的file1文件连同test目录下的file2文件解压到当前目录。如果想保持abc.rar目录中的目录结构请使用x命令。
$rar x abc.rar
说明:此时会将file1文件和test目录解压到当前文件夹。
例3:为整个压缩文件添加注释
$rar c abc.rar
说明:输入该命令后,屏幕最下方会显示
Processing archive test.
rar Reading comment from stdin
并有一个光标在闪烁,从光标闪烁的位置输入注释信息,输入完了按下Ctrl+D结束输入。
例4:为压缩文件中的单个文件添加注释,使用cf命令。假如现在要为abc.rar档案中的file1文件添加注释
$rar ch abc.rar file1
此时屏幕最下方会显示
Reading comment for abc.rar : file1 from stdin
从光标闪烁出输入想要为file1添加的注释,Ctrl+D结束输入。
例5:把整个档案的注释写入到一个文件中,使用cw命令。加入要将abc.rar的注释写入到test.txt文件中
$rar cw abc.rar test.txt
说明:如果当前目录下不存在名为test.txt的文件,则会自行创建一个名为test.txt的文件,并将abc.rar的注释写入到 text.txt文件中,如果当前目录中已经存在一个名为text.txt的文件,则会提示你是否覆盖已经存在的文件,如果选择Yes或者All,则会清 空test.txt 中原有的内容,然后将abc.rar的注释内容写入到text.txt文件中。
例6:删除压缩档案中的文件或目录,使用d命令。例如要删除abc.rar档案中的file1文件。
$rar d abc.rar file1
说明:该命令删除abc.rar档案中的file1文件,对于目录同样有效。
以上为常用的压缩与解压缩命令,<选项>部分的使用不再进行介绍了,请大家自己尝试一下吧。
解压缩命令unrar的使用
01.$unrar --help02.03.用法: unrar - - 04. <@listfiles...> 05.06.<命令>07. e 解压文件到当前目录08. l[t,b] 列出压缩文档信息[technical, bare]09. p 打印文件到标准输出10. t 测试压缩我俄当11. v[t,b] 列出压缩文档的详细信息[technical,bare]12. x 解压文件到完整路径以下为<选项>部分,略去。
unrar的命令和rar具有同样的效果,可以看出unrar只包含了rar的一部分命令而已,因此使用rar就可以完成所有操作。



