Skip to content Skip to main navigation Skip to footer

Linux

Linux:Memcached管理与监控工具 MemAdmin

今天尝试了一下memcached的监控工具memadmin软件,个人感觉:安装简单、功能强大,所以推荐给大家。

介绍

MemAdmin是一款可视化的Memcached管理与监控工具,基于 PHP5 & JQuery 开发,体积小,操作简单。

主要功能:

  • 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新
  • 服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控
  • 支持数据遍历,方便对存储内容进行监视
  • 支持条件查询,筛选出满足条件的KEY或VALUE
  • 数组、JSON等序列化字符反序列显示
  • 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)
  • 支持服务器连接池,多服务器管理切换方便简洁

下载地址:http://www.junopen.com/memadmin/

图片:

VIA http://houwenhui.gotoip2.com/archives/1394

 

 

Linux:Memcached无单点解决方案

一.Repcached (memcached同步补丁)

下载地址:http://sourceforge.net/projects/repcached/files/repcached/2.2.1-1.2.8/

版本号:memcached 1.2.8  repcached 2.2.1

1、repcached介绍

repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的 master/slave都是可读写的,而且可以相互同步,如果 master坏掉, slave侦测到连接断了,它会自动 listen而成为 master;而如果 slave坏掉, master也会侦测到连接断,它就会重新 listen等待新的 slave加入

2、安装

在两台服务器上分别安装memcached服务,另注本文libevent的版本为:libevent-1.4.13,下载地址: http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz (安装省略)

repcached有两种方式:

方式一、下载对应的repcached版本

#wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
#tar zxf memcached-1.2.8-repcached-2.2.tar.gz
#cd memcached-1.2.8-repcached-2.2

方式二、下载对应patch版本

#wget http://downloads.sourceforge.net/repcached/repcached-2.2-1.2.8.patch.gz
#gzip -cd ../repcached-2.2-1.2.8.patch.gz | patch -p1】
#./configure –enable-replication
# make
# make install

3、启动:

启动master

# ./memcached -v -u root -d -l 127.0.0.1 -p 11211 -x 127.0.0.1 -X 11111   (11211:master端口;11111:同步端口)
replication: connect (peer=127.0.0.1:11111)
replication: accept
replication: marugoto copying
replication: start

启动salve

# ./memcached -v -u root -d -l 127.0.0.1 -p 11212 -x 127.0.0.1 -X 11111   (11212:slave端口;11111:同步端口)
replication: connect (peer=127.0.0.1:11111)
replication: marugoto copying
replication: close
replication: listen

4、测试:

操作master

[root@localhost bin]# telnet 127.1 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1)...
Escape character is '^]'.
get key1
END
set key1 0 0 2
aa
STORED
quit
Connection closed by foreign host.

查看slave

[root@localhost bin]# telnet 127.1 11212
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1)...
Escape character is '^]'.
get key1
VALUE key1 0 2
aa
END
quit
Connection closed by foreign host.

注意:如果master down机,slave接管并成为master,这时down机的master只能启用slave,他们之间互换角色,才能保持复制功能。换句话说,master没有抢占功能。而且,同步间隔时间未知。

优点:

  1. 数据冗余
  2. 两台memcached都可以进行读写操作

缺点:

  1. 只支持单对单
  2. 只支持memcached 1.2.x版本

二.Magent (memcached的代理)

原文地址:http://blog.s135.com/post/393/

magent是一款开源的Memcached代理服务器软件,其项目网址为:

http://code.google.com/p/memagent/

1、安装步骤:

a、编译安装libevent:

wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable/
./configure --prefix=/usr
make && make install
cd ../

b、编译安装Memcached:

wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz
tar zxvf memcached-1.2.6.tar.gz
cd memcached-1.2.6/
./configure --with-libevent=/usr
make && make install
cd ../

c、编译安装magent:

mkdir magent
cd magent/
wget http://memagent.googlecode.com/files/magent-0.5.tar.gz
tar zxvf magent-0.5.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
make
cp magent /usr/bin/magent
cd ../

2、使用实例:

memcached -m 1 -u root -d -l 127.0.0.1 -p 11211
memcached -m 1 -u root -d -l 127.0.0.1 -p 11212
memcached -m 1 -u root -d -l 127.0.0.1 -p 11213
magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b 127.0.0.1:11213
  1. 分别在11211、11212、11213端口启动3个Memcached进程,在12000端口开启magent代理程序;
  2. 11211、11212端口为主Memcached,11213端口为备份Memcached;
  3. 连接上12000的magent,set key1和set key2,根据哈希算法,key1被写入11212和11213端口的Memcached,key2被写入11212和11213端口的Memcached;
  4. 当11211、11212端口的Memcached死掉,连接到12000端口的magent取数据,数据会从11213端口的Memcached取出;
  5. 当11211、11212端口的Memcached重启复活,连接到12000端口,magent会从11211或11212端口的Memcached取数据,由于这两台Memcached重启后无数据,因此magent取得的将是空值,尽管11213端口的Memcached还有数据(此问题尚待改进)。

3、整个测试流程:

[root@centos52 ~]# telnet 127.0.0.1 12000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
memcached agent v0.4
matrix 1 -> 127.0.0.1:11211, pool size 0
matrix 2 -> 127.0.0.1:11212, pool size 0
END
set key1 0 0 8
zhangyan
STORED
set key2 0 0 8
zhangyan
STORED
quit
Connection closed by foreign host.
[root@centos52 ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get key1
END
get key2
VALUE key2 0 8
zhangyan
END
quit
Connection closed by foreign host.
[root@centos52 ~]# telnet 127.0.0.1 11212
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get key1
VALUE key1 0 8
zhangyan
END
get key2
END
quit
Connection closed by foreign host.
[root@centos52 ~]# telnet 127.0.0.1 11213
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get key1
VALUE key1 0 8
zhangyan
END
get key2
VALUE key2 0 8
zhangyan
END
quit
Connection closed by foreign host.

模拟11211、11212端口的Memcached死掉

[root@centos52 ~]# ps -ef | grep memcached
root      6589     1  0 01:25 ?        00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11211
root      6591     1  0 01:25 ?        00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11212
root      6593     1  0 01:25 ?        00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11213
root      6609  6509  0 01:44 pts/0    00:00:00 grep memcached
[root@centos52 ~]# kill -9 6589
[root@centos52 ~]# kill -9 6591
[root@centos52 ~]# telnet 127.0.0.1 12000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get key1
VALUE key1 0 8
zhangyan
END
get key2
VALUE key2 0 8
zhangyan
END
quit
Connection closed by foreign host.

模拟11211、11212端口的Memcached重启复活

[root@centos52 ~]# memcached -m 1 -u root -d -l 127.0.0.1 -p 11211
[root@centos52 ~]# memcached -m 1 -u root -d -l 127.0.0.1 -p 11212
[root@centos52 ~]# telnet 127.0.0.1 12000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get key1
END
get key2
END
quit
Connection closed by foreign host.

 

优点:

  1. 可以做多主或多从

缺点:

  1. 当master宕掉又恢复后,取不到数据。

Linux:《连线》杂志:走近闰秒故障及其解决方案

  《连线》杂志近日刊载文章称,当上周六出现“闰秒”时,包括社交新闻聚合网站Reddit在内的多家网站都遭遇了故障。文章对这种所谓的“闰秒故障”进行了剖析,并列出了一些解决方案,其中包括将计算机系统的网络时间协议暂停一秒钟,以及谷歌所采取的“leap smear”(闰秒弥补)的方法等。  以下是这篇文章的全文:  上周六晚上,当“闰秒故障”(leap second glitch)导致社交新闻聚合网站Reddit受创时,詹森·哈维(Jason Harvey)并未认识到这是“闰秒故障”。他原本以为那是与亚马逊云服务大规模中断相关的某种类型的互联网减速,从而导致网络上一些最流行的服务在不到24个小时以前均遭遇了技术故障。  “那看起来就像是网络运行表现很差的样子。”哈维说道,他是管理Reddit运作的系统管理员之一。“在亚马逊宕机的情况下,出现一个网络问题是说得通的。”  但在大约半个小时以后,哈维和他的团队在对故障进行追踪以后发现,Reddit自身运行开源Linux操作系统的机器出现了问题。由于未能进行正确调试以适 应“闰秒”变动的缘故,这些服务器几乎陷入了停止状态。闰秒是对“协调世界时”(UTC)所做出的基本调整,目的是使其与太阳时间保持同步,但这多出来的 一秒钟给网络服务器带来了很大的问题。  根据地球的自转速度,国际计量局会定期在年底或 年中(也可能在季末)对协调世界时增加一秒钟,使其能与地球自转同步。这不会让我们渐渐走向日落在早晨时发生,但可能会在计算机系统中带来问题,原因是计 算机系统需要在时钟里多加一秒,但系统本身不够灵活,因此无法处理这多出来的一秒钟。  在Reddit的例子中,这个问题可被追踪至Linux内核中的一个故障,这是开源Linux操作系统的核心。一个被称为“hrtimer”——即高精度定 时器的缩写——的Linux子系统由于这种时间上的变动而变得混乱,因此突然引发了服务器上的过度活动,最终导致服务器中央处理器被锁定。  Reddit 只是在上周六受到“闰秒故障”影响的多家网站之一,美国博客媒体Gawker Media和Mozill等网站也都遭遇了同样的故障;而且,这种问题倾向于在每次出现“闰秒”调整时都会发生。举例来说,在2009年1月份,有报道称 闰秒导致Sun Microsystems的Solaris操作系统和甲骨文的软件包都出现了问题。  “几乎每一次出现闰秒时,我们都会发现点什么。”有“Linux之父”之称的利纳斯·托瓦尔德斯(Linus Torvalds)向《连线》杂志表示。“这真的是很烦人,因为这是代码基本上无法运行的一个经典例子,因而在正常情况下用户无法对其进行测试。”  在今年3月份,黑客约翰·斯图尔茨(John Stultz)为Linux核心中的高精度定时器故障提供了一个补丁,但某些版本的Linux尚未进行更新来加入这个补丁。斯图尔茨周一并未对此置评,但 据他在一个在线邮件列表中发布的内容显示,他曾讨论过导致Reddit出现服务故障的问题。  故障剖析  那么,这些服务器到底发生了什么事情呢?这是一件很复杂的事情。甚至就连利纳斯·托瓦尔德斯也表示,如果想要真正理解到底发生了些什么,那么我们应该与斯图尔茨谈谈。但在对多名熟知这个问题的人进行访谈以后,我们对到底发生了什么有了一种很好的认知。  高精度定时器是在一个应用“睡眠”时被使用的子系统,它会等待操作系统完成某些其他的任务。在某些情况下,高精度定时器会为这些睡眠中的应用设定一种闹钟, 会在操作系统花费太多时间来处理其他工作时敲响。从斯图尔茨在邮件列表中发布的内容来判断,当闰秒发生时,这些高精度定时器会突然变得比核心操作系统提前 一秒,因此就会开始敲响那些闹钟,从而同时唤醒无数睡眠中的应用,导致服务器的中央处理器超载。  不过,Reddit的情况则略有不同,这个网站的服务器运行着一个名为Cassandra的开源数据库,该数据库是由Java编程语言构建而成的,在 Linux上运行。就詹森·哈维所说,在闰秒发生时,Cassandra无法暂停Java进程,导致这些进程陷入不断旋转的循环中,从而耗尽Reddit 服务器的中央处理器功率。  到最后,Reddit通过重启服务器的方式解决了这个问题。这个网站在大约30到49分钟的时间里几乎完全不能使用,在大约一个半小时里处于完全脱机的状态。  在Reddit竭尽全力试图解决Cassandra服务器问题的同时,美国八卦网站Gawker的Tomcat服务器也遭遇了故障,Mozilla则面临着 与Hadoop服务器有关的问题.hadoop和Tomcat也都依赖于Linux平台和Java技术,看起来这些服务器也都遭遇了同一个故障的侵袭。  与此同时,其他系统则在闰秒来临的前一天遭遇了问题.linux等系统使用网络时间协议(Network Time Protocol)来与全球原子钟进行对接,从而对时间作出调整。在上周五,网络时间协议开始向服务器发起警报称,今年的闰秒即将来临。据Opera Software系统管理员Marco Marongiu称,至少有一部分Opera服务器在收到这一通知时就已经开始被锁定。这个问题在一个Linux邮件列表中被讨论过,目前还不清楚这个问 题与Reddit经历的高精度定时器问题有多么密切的联系。

###NextPage###  下一次闰秒  我们不知道下一次闰秒将在何时发生,这要视地球的自转速度有多快而定——这一速度既有可能减慢也有可能加快,具体要视潮汐、天气和熔态金属在地球核心的流动而定。但是,当下一次闰秒发生时,可能会带来更多的问题。  托瓦尔德斯指出,无论是在什么时候,如果时间被弄混,那么情况就很有可能会变得糟糕。开发者可能会提前进行测试,但很难预计现实世界中将会发生怎样的事情。 “闰秒和夏令时间都是特别令人痛苦的事情,原因是它们会带来更多的复杂性,在没有严格规则约束的情况下变得随机化。而在这两种时间变动中,闰秒更令人感到 痛苦。”  正如托瓦尔德斯所指出的那样,将地球的实际自转时间与原子钟所衡量的时间同步 起来是一件棘手的事情。但从整体上来说,过去15年时间里科技行业并未很多次地经历过闰秒。事实上,加利福尼亚州圣何塞的利克天文台(Lick Observatory)的程序员史蒂夫·艾伦(Steve Allen)指出,这可能也是导致“闰秒故障”问题的原因之一。“在1999年到2005年之间并未出现过闰秒,因此所有的云服务和多处理器等产品和服务 都是在闰秒并未发生过的阶段中形成的。”他说道。  自2005年以来则一共有三次闰秒发生,分别是在2005年、2008年底和现在的2012年。“因此,当人们创造所有新东西时,(闰秒的来临)有很长的一段间隔时间,人们不一定会考虑到这个问题。”他说道。“然后地球就停止加速了。”  有些人已经在呼吁取消闰秒——这样一来这些问题就能被避免了。但与此同时,其他一些人则提议作出专业的修复,从而在Linux等系统中隐藏这种突然的时间变 化.opera的Marongiu建议将计算机系统的网络时间协议暂停一秒钟,而不是回拨计算机系统的时钟。“从根本上来说,如果你哄骗一下网络时间协 议,那么就不需要突然回拨系统时间,但仍可增加这额外的一秒钟时间。”他说道。  但他同 时指出,这只是一个“可怜人的变通方案”,而更好的解决措施则是谷歌所采取的一项措施。在去年秋天,谷歌在一篇博客文章中描述了一种被其称为“leap smear”(闰秒弥补)的方法。谷歌没有突然加入额外的一秒钟,而是对网络时间协议进行了修改,这样一来就可在相对较长的时间里向计算机系统的时钟中多 次加入毫秒。  这是一种聪明的修复方法,但不要指望这种方法能成为常规的标准作法。当下一次闰秒来袭时,某些地方的某些网站仍旧将会出现故障。

Linux:Linux 中引号的那些事

引号

 

我们将把编写脚本的事情暂时搁在一边,然后来讨论一些,我们一直在用的,但是没有解释的东西。引号在这一节里面,我们会讲述引号。引号有两个作用:

  1. 控制字符替换 和
  2. 执行将单词包含在一起的功能

我们已经使用过引号。在我们的脚本里面,将文本信息赋值给常量的赋值操作就使用了引号:

在上面这个例子中,文本信息是被双引号包括住的。我们使用双引号的原因是—我们要把所有单词包括住,当作一个整体来对待。如果我们没有使用引号,那么bash解释器,就会将所有位于第一个单词后面的单词,解释为其他的命令(第一个单词被解释为命令)。

尝试一下运行下面的命令,看看有什么效果出来:

 

单引号和双引号 

shell解释器可以识别双引号和单引号。 下面的复制表达式效果是等价的:

然而,在双引号和单引号之间存在一个重要的差别。 单引号,在字符替换方面有限制。 正如我们在上一节所看到的内容一样,你可以将一个变量放在双引号里面,而shell解释器依然会对变量执行字符替换的操作。 

我们可以通过使用echo命令来查看这种效果: 

如果我们将上述的双引号改为单引号,那么,行为将会改变:

双引号并没有限制—以”$”开头的变量的字符替换,不过,它的确对通配符的扩展效果进行了限制。比如,下面这个例子:

引用单个字符 

还有另外一种引用字符你会碰到的。 它就是反斜杠。The backslash tells 反斜杠告诉shell解释器忽略反斜杠符后面的第一个字符。比如:

通过使用反斜杠符,shell解释器忽略了对”$”符号进行解释。既然shell已经忽略了”$”,那么,shell解释器也就不会对$HOSTNAME执行字符替换了。 下面,给出一个更有用例子:

 

正如你所看到的,通过使用反斜杠符号,我们可以将双引号包含在文本里面。

反斜杠的其他使用技巧

如果,你阅读过任何软件的使用手册,并且这手册是由GNU项目完成的,那么,你会发现,在软件的命令选项中,除了以一个下划线_加一个字母的形式出现之外,还有,以两个下划线加一个完整的单词的形式出现。例如,下面两个语句是等价的:

 

为什么在软件中,这两种形式都是支持的呢?短的那种形式,是专门为那些懒的输入员而设定的,而长的那种形式,是专门为写脚本而存在的。我有时候,是混合着使用上面的两种形式,然后,我发现采用长的命令选项有用,如果,我写了一个脚本,并且,我将在几个月后去阅读它。看到长的命令选项,有助于我理解这个命令选项是什么意思,从而省却我去查man手册的功夫。现在多敲几下键盘,会以后节省很多功夫。 这样,懒惰的原则就保持住了。

你有可能会疑虑,使用长的命令形式,会导致一个单独的命令变得很长。 为了与这个问题斗争,你可以使用反斜杠来让shell解释器忽略换行符号,正如下面的操作:

这样使用反斜杠,可以让我们将每行的内容包含在一个单独的命令中。让这个技巧可以应用,要注意的地方:换行,必须在反斜杠后面马上出现(也就是,在输入了反斜杠之后,就必须换行了)。 如果,你将一个空格符放置在反斜杠后面,那么,空格符号会被忽略,而不是换行符被忽略。反斜杠符,也可以被用于,将特殊的符号插入到文本。special characters into our text. 这些符号,被叫做—转移字符,下面就有一些转移字符:

转义字符 …………………..

名字

可能的用途

n

换行符

添加空白行在文本中

t

制表符

将水平制表符添加到文本中

a

提醒

让你的终端发出嘟嘟声。

\

反斜杠

插入一个反斜杠符

f

formfeed

Sending this to your printer ejects thepage

转移字符的应用很常见。非常常见转移字符,这个想法,首先出现在C语言里面。编程语言今天,shell解释程序,C++,perl,python,awk,tcl和其他程序语言都使用了转移字符这个概念。通过使用echo命令的-e选项,我们将展示上述转移字符的应用:

 

来自:http://article.yeeyan.org/view/90556/299613

Linux:Wi-Fi Hacking

这篇文章将会告诉你如何hack Wi-Fi网络。我使用了一个挺出名的外置wifi网卡(AWUSO36H 802.11 b/g 5db),相信熟悉Wi-Fi hacking的朋友们都应该知道,价格大约20-30刀。使用这块ALFA 卡的主要优势在于他覆盖范围相当广,这样更便于我们获取附近所有的无线接入点。

市面上有很多工具可以用来hack wifi网络。我将会以两个广泛使用的工具为例:

1) Reaver2) Aircrack操作系统: Ubuntu 11.04

PART 1: 安装

A.安装驱动 让我们来看看安装驱动的步骤。将aplha的驱动光盘插入到光驱中,然后打开终端,进入光驱文件夹,输入 “su”然后输入root密码(PS.请确保你的安装过程都是root权限),然后输入以下命令进行驱动安装:

#make
#make install
#reboot 

重启机器之后,打开终端输入“iwconfig”,你会看到如下wlan接口

上图中可见,我们这的新接口是wlan1

B.安装MACCHANGER

在攻击者试图hack wifi网络的时候,攻击者最先关心的是如何隐藏自己身份。你可以通过你的aplha卡可以看到mac地址(如:00:AC:CA:11:22:44),或者打开终端输入”ifconfig”来检查HWaddr00 WLAN接口,寻找诸如HWaddr 00:11:22:XX:XX:XX。

综上所述,在正式攻击前,现在我们需要修改mac地址。于是我们下载MACCHANGER ,在终端中输入以下命令

#apt-get install macchanger
#macchanger –help

如果你看见以下帮助信息,则证明安装成功。

C. 安装REAVER

下载reaver-1.2.tar.gz,然后开始安装

#./configure
#make
#make install

期间可能会有依赖包

#apt-get install libpcap-dev
#apt-get install libsqlite3-dev

安装完成后,输入reaver验证是否安装完毕。如果出现:

Reaver v1.4 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner 
Required Arguments:
-i, –interface= Name of the monitor-mode interface to use
-b, –bssid= BSSID of the target AP
Optional Arguments:

则说明安装成功。

D. 安装AIRCRACK

#apt-get install aircrack-ng

Linux:那些开源的php Office,快捷得在线编辑预览文档

在Office 15即将发布之际我又发现了那些在开源的PHPoffice,一般的程序员、设计师他们距离Office办公套件也是蛮遥远的,但是如果真的要用了总不可 能去下载一个吧即使是WPS也需要时间,所以不如在自己的服务器上建立一个建议的PHP Office!

Get the Office applications you trust

这里的替代品(既简单又复杂),可能更加适合你。

从此我们在线观看文档不再需要豆丁和百度文库了!

  PHPExcel

PHPExcel

 

几乎支持所有常用Excel的功能的PHPExcel,格式支持.XLS或者这.XLSX。功能支持包括表格的任何元数据、添加工作表/行/列,合并单元格,操作公式等等,并且完美兼容MS Office中的Excel。支持打印哦,亲!

官方地址:http://phpexcel.codeplex.com/

github:https://github.com/PHPOffice/PHPExcel.git

  SimpleExcel

用简单的方式解析打开Excel XML 、 CSV格式,仅需要支持PHP5+即可!

官方地址:http://faisalman.github.com/simple-excel-php/

github:git://github.com/faisalman/simple-excel-php

  php-excel

php-excel用简单级的方法,从PHP到Microsoft Excel转换矩阵状,二维数组。支持创建数据库表Excel、经行简单的数据运算、方便的统计。但是在官方的申明中说如果需要一个强劲的功能还是PHPExcel吧。

地址:http://code.google.com/p/php-excel/

 php-excel-reader

这货只为.XLS提供解析,输出的效果还是很不错的。

演示:http://www.mattkruse.com/php-excel-reader/example.php

地址:http://code.google.com/p/php-excel-reader/

  PHPWord

PHPWord

尽管目前只是测试版但是功能还是很强劲!完美兼容MF Word并且支持打开.doc or.docx。可以插入文本,文本符,分页,页眉/页脚,表格,列表中的元素,超链接等等。

地址:http://phpword.codeplex.com/

下载:http://phpword.codeplex.com/releases/view/49543

  PHPPowerpoint

PHPPowerPoint

可以演示文档、添加幻灯片,支持图像、媒体的加入,已经作者的信息。完美兼容MS Office。

地址:http://phppowerpoint.codeplex.com/

  总结

尽管在线Offic很强大,但是也不能完全替代Office办公套件,仅仅是提供简易的操作!大家可以将这些东西汉化上传至国内的开源项目来帮助国人!

来自:http://www.mf8.biz/archives/2168.html

Linux:其他发行版本安装深度音乐播放器

其他 Linux 发行版本,如 Ubuntu、Linux Mint 等都可以直接下载 Deb 格式安装包来安装 Linux Deepin 精心开发的深度音乐播放器。

下面,以 Ubuntu 为例,介绍如何安装深度音乐播放器。

我们需要 Deepin UI 库安装包(使深度音乐播放器达到精彩绝伦的效果)、打过补丁的 Deepin python-gtk2 包(防止内存泄漏),当然还有深度音乐播放器安装包。 #1,安装 Deepin python-gtk2 包

下载地址:32 位包 | 64 位包

下载完毕,双击安装即可。

#2,安装 Deepin UI 库

下载地址:32 位包 | 64 位包

下载完毕,双击安装即可。如果在命令行使用 sudo dpkg -i deepin-ui* 安装,您会看到下面的提示,点击确认即可。

#3,下载深度音乐播放器安装包

下载地址:点击下载

双击安装即可。

如果在命令行中使用 sudo dpkg -i deepin-music-player* 安装,会提示依赖不足,运行 sudo apt-get -f install 解决即可。

安装完毕,在控制面板搜索“深度音乐播放器”即可打开使用。

目前,深度音乐播放器也支持 Ubuntu Unity 下的“快捷列表”功能。如果您想使用该功能,可在目录 ~/.local/share/applications 下新建一个文本文件,文件名为 deepin-music-player.desktop,将下面的内容复制到该文件中。如果双击该文件无法执行,可右键点击该文件,在“属性-权限” 中,勾选“允许以程序执行文件”。然后,将该文件拖动到 Unity 启动器上即可。

 

[Desktop Entry]
Version=1.0
Name=深度音乐播放器
Comment=深度音乐播放器, Deepin Music Player
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=deepin-music-player.png
StartupNotify=true
X-Ayatana-Desktop-Shortcuts=下一首;上一首;暂停/播放;快进;后退;
Exec=deepin-music-player
[下一首 Shortcut Group]
Name=下一首
Exec=deepin-music-player --next
TargetEnvironment=Unity
[上一首 Shortcut Group]
Name=上一首
Exec=deepin-music-player --prev
TargetEnvironment=Unity
[暂停/播放 Shortcut Group]
Name=暂停/播放
Exec=deepin-music-player --play-pause
TargetEnvironment=Unity
[快进 Shortcut Group]
Name=快进
Exec=deepin-music-player --forward
TargetEnvironment=Unity
[后退 Shortcut Group]
Name=后退
Exec=deepin-music-player --rewind
TargetEnvironment=Unity

Linux:比Windows 8更炫 Fedora 17完美安装体验

Fedora 17能够上演取代微软的奇迹

  Fedora 17终于发布了,让广大网友终于见到“庐山真面目”。此次开发代号为“Beefy Miracle”,中文译名为“结实的奇迹”,而说到奇迹两个字,我想很多人都希望 Fedora 17在桌面操作系统市场上演奇迹,威胁甚至取代微软的Windows操作系统的地位,成为桌面主流。

比Windows 8更炫 Fedora 17完美安装体验

  想取代微软,的确需要奇迹才能完成,但并非不可能,此次发布的 Fedora 17给人耳目一新的感觉,优异的操控感以及支持触控堪比微软的Win8。而崇尚图形化设计,更是让其桌面华丽升级,减少命令行让操作起来更得心应手。下面我们就从安装入手,体验一下最新版的Fedora 17的特色:

  1.安装过程。开始安装,首先,我们需要从网上下载IOS程序,并制作成光盘。放入驱动器中读取。

力挫微软Windows Fedora 17完美桌面安装 读取程序(来源网络)

  2.选择安装还是试用Fedora。

力挫微软Windows Fedora 17完美桌面安装 选择方式(来源网络)

如何选择Fedora 17系统键盘布局

  3.选择Fedora 17系统键盘布局。

力挫微软Windows Fedora 17完美桌面安装 选择键盘布局(来源网络)

  4.假设你使用本地连接的硬盘驱动器,所以你应该选择的基本存储设备。 

力挫微软Windows Fedora 17完美桌面安装 安装位置(来源网络)

  5.提醒你是否清除硬盘数据。选择确定,因为我们要安装一个完整的新系统。

力挫微软Windows Fedora 17完美桌面安装 清除硬盘数据(来源网络)

Linux:UBUNTU上尝试新的FIREFOX OS(B2G)

Firefox OS,代号为“Boot 2 Gecko”是一个完全基于网络的开放的移动智能手机系统,由Mozilla公司开发。Firefox OS 底层属于 Linux,开放的Web技术,而不是特定于平台的原生API,HTML5 编写应用程序。Firefox OS 每日构建版目前可在桌面上试用。

Install Firefox OS on Linux Desktop

Install Firefox OS on Linux Desktop

安装非常简单,只需按照下面的说明:

下载最新的Firefox OS版本在这里

解压得到一个B2G文件夹, 运行以下命令安装 Gaia,安装配置文件:

git clone git://github.com/mozilla-b2g/gaiamake -C gaia profile

现在运行Firefox os,执行:

/path/to/your/b2gfolder/b2g -profile gaia/profile

下面是一些截图:

Firefox OS Linux

Firefox OS Linux

Firefox OS Marketplace

Firefox OS Marketplace

Firefox Os Ubuntu

Firefox Os Ubuntu

 

VM_Boot2Gecko

VM_Boot2Gecko

本文采用CC协议发布,转载请注明: 转载自IMCN

Linux:Vim 复制粘帖格式错乱问题的解决办法

原文:Vim 复制粘帖格式错乱问题的解决办法

 

有时候,复制文本(尤其是代码)到 Vim,会出现格式错乱的问题。看样子,应该是自动缩进惹得祸。本文不去深究原因,直接给出解决方法。

1. paste 模式

运行如下命令,进入 paste 模式:
:set paste
进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按 进入普通模式并执行如下命令结束 paste 模式:
:set nopaste
显然,这样非常麻烦。下面我们进行改进。

2. 快捷键一

我们可以利用设置快捷键来简化上面的两个命令。在 ~/.vimrc 中加入如下两行:
map  :set paste
map  :set nopaste
这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 回到普通模式,再按 F11 结束 paste 模式。
这样虽然方便了,但占用了两个按键。下面我们继续改进。

3. 快捷键二

在 ~/.vimrc 中加入如下内容:
set pastetoggle=
这样就可以把上面的 F10 和 F11  合并为一个快捷键来切换 paste 模式了。
还有更好的办法么?当然!

4. Vim 寄存器一

关于 Vim 寄存器的详细信息请执行命令 “:help registers” 查看。
对于“剪切板”这个概念,Linux 下有两个东西:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。鼠标或键盘选择内容时,内容实时进入缓冲区,然后按中键将内容插入光标所在位置;鼠标或键盘选择内容后,按Ctrl-C(或Shift-Ctrl-C)或菜单中的“复制”,内容进入剪切板,然后按Ctrl-V(或Shift-Ctrl-V)或菜单中的“粘帖”将内容插入光标所在位置。关于这两者的详细信息,请自行搜索,此处不深究。
Vim 的寄存器 “* 对应系统缓冲区, 寄存器 “+ 对应系统剪切板。
如果你是把选择的内容(在系统缓冲区中)粘帖到 Vim ,只需在普通模式下执行如下命令:
"*p
对应的,如果你是把复制的内容(在系统剪切板中)粘帖到 Vim,只需在普通模式下执行如下命令:
"+p
怎么样?格式没有错乱了吧?
这样虽然简便很多了,但还是需要输入三个字母,并且这三个字母都得使用右手小拇指输入,甚至其中的两个字母还需要 shift 键配合!
还有更简单的办法。

5. Vim 寄存器二

在 ~/.vimrc 里加入如下内容:
set clipboard=unnamed
然后只需在普通模式下按 p 即可把系统缓冲区中的内容粘帖到 Vim 中,就像粘帖用 yy 命令得到的内容一样,并且格式不错乱。
如果把上面的一行换成如下内容:
set clipboard=unnamedplus
普通模式下按 p 粘帖的内容就是系统剪切板里的内容了。
这已经足够简便了。在搜索此问题的过程中,我还看到了另外一些办法。

6. 快捷键三

在 ~/.vimrc 里加入如下内容:
inoremap  :setl pastegi+:setl nopastegi
这样,你就可以在插入模式下使用 Shift-Insert 快捷键在粘帖系统剪贴板中的内容了。
把上面一行替换成如下内容同样可以达到相同的效果:
inoremap  "+p`]a
注意,这可是在插入模式下哦!比起第 5 节提到的方法,这种方法省去了一次  按键进入普通模式和一次 i 按键重新回到插入模式。
至此,你需要做的只是:
    a. 复制你想要的内容;    b. 回到 Vim 并按 Shift-Insert 快捷键;    c. 继续编辑其他内容。

来源:https://linux.cn/article-704-1.html

Linux:10 个你可能没用过的 Linux 命令

  对铁杆系统管理员或Linux工程师来说,下面这些Linux命令行技巧也许多数觉得眼熟。而对Linux普通用户而言,这些Linux命令行技巧则不见得用过。  1. 使用pgrep快速查找PID  pgrep会遍历当前运行的进程,列出符合查找条件的进程ID。

pgrep ssh

  这条命令会列出所有与ssh有关的进程ID。  2. 执行上次执行过的命令  这个标题有些绕口,但下面这条命令的确能做到这一点。

!!

  该命令会执行你在命令行中执行过的上一条命令。  3. 执行最近一次以特定字母开头的命令  如欲执行命令行历史中一个s开头的命令,可以使用如下命令:

!s

  该命令会执行最近一次在命令行中用过的且以字母s开头的命令。  4. 反复执行一个命令并在屏幕上输出  watch会反复执行一个命令,并在屏幕上打印输出。你可以借此观察一段时间内程序的输出变化。程序(即示例中的ls -l)默认每2秒运行一次.watch命令与tail命令非常相似。

watch -d ls -l

  这条命令会监视当前目录,如有文件增删或修改,就会高亮显示目录变化。  5. 在VI/VIM中快速保存  要忙着办其他事情时,可以使用Shift + zz(即按住换档键,敲两下z键)快速退出vi插入模式。  6. 快速退出终端会话  使用CTRL+D可以快速退出终端会话。  7. 返回上一次所在的目录  使用命令cd -可以返回上一次所在的目录:  8. 巧妙创建父目录  命令mkdir -p /home/adam/make/all/of/these/directories/会根据需要创建不存在的目录。何苦要浪费时间做这种傻事呢:mkdir make ; cd make ; mkdir all ; cd all ; mkdir of ; cd of … 切中要害,使用

mkdir -p!

  9. 删除一整行  输入了一长串命令但又不想要了,可以使用CTRL+U删除这一整行。(译注:光标不在行尾时,可以先用CTRL+E定位到行尾。)  10. 设定文件的时间戳  命令touch -c -t 0801010800 filename.c会将文件的时间戳设定为2008-01-01 8:00,格式为(YYMMDDhhmm)。  你还能想到哪些不为人熟知的Linux命令?

Linux:究竟什么是开发人员眼中最好的代码编辑器?

如果我们把不同的程序开发人员比作三国演义中的各路诸侯大将的话,那么代码编辑器绝对可以称之我们手中的神兵利器,不同类型的开发人员使用的”兵器“也大有 不同。好比兵器来说,没有绝对强的,也没有绝对好的,每一中兵器都有不同的优点和缺点,虽说俗话说的好,一寸长,一寸强,不过如果你没事去那都提着”关老 爷“的“青龙偃月刀”得瑟,貌似也不是很方便。那么对于我们这些开发人员来说,究竟什么样的代码编辑器是最好的呢?

究竟什么是开发人员眼中最好的代码编辑器?

在今天的文章中,我们将从以下几个方面来比较各种类型的代码编辑器,评判指标包括:

  • 友好度
  • 功能性
  • 扩展性
  • 界面/体验
  • 跨平台
  • 价格

大师级别

vi

vi 对于使用过unix的朋友来说,绝对是再熟悉不过的代码编辑器,有多少伟大的程序和代码是由vi开发编辑的啊,既然是大师级别的代码编辑器,对于我们这些 普通人来说,只能说是好听不好用,基本上我周围的朋友使用vi的人大都是因为操作系统没有安装其它编辑器,也懒的花时间去安装。当然使用也相当麻烦了,你 得记住一大堆的命令,如果你记不住,唯一能做的就是关闭。我现在还记得我初次使用vi的时候,自己老老实实的打印了一张命令表,贴在墙上随时参考使用。

究竟什么是开发人员眼中最好的代码编辑器?

Vim

Vim 是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好用的一个。最早1991年发布,赢得了开源 世界的欢迎。和其它的代码编辑器相比不同的是命令行的工作方式。和简单的输入代码不同,你选择输入和选择文字,运行正则表达式的搜索,并且使用更多其它的 命令。vim使用脚本和插件可以变得非常适合扩展。可以支持GUI或者命令行。同时可以支持所有的操作系统。在大多数的Linux系统都预先装。

究竟什么是开发人员眼中最好的代码编辑器?

Emacs

Emacs 开发自1970,现在依然开发。这个编辑器拥有扩展,并且可以加载自定义的类库。它是第一个实现了代码高亮,自动缩进和多编程语言支持的代码编辑器。和 Vim一样,跨平台同时支持图形化界面和命令行。这个编辑器和LISP解析器整合,通过这个方式高手们可以修改它到极致。同时它是免费软件并且开源。

究竟什么是开发人员眼中最好的代码编辑器?

专业级别

Eclipse

Eclipse 是开发java应用的必备代码编辑器。这个IDE整合了插件结构,可以使得它轻松的支持其他编程语言。它拥有C/C++,Ruby,PHP和其它语言开 发。类似Google的功能开发自己版本的开发套件,所以可以很简单的创建Android和App引擎。免费并且开源。

究竟什么是开发人员眼中最好的代码编辑器?

Apatana Studio

Aptana 是一个专门为富客户端web应用开发设计的代码编辑器。基于Eclipse,并且帮定了强大的新工具。支持最流行的web开发语 言:PHP,javascript,HTML,css,Ruby,Python和其它更多插件。它拥有Git整合,能够部署你得应用到远程服务器。和 Eclipse一样,Aptana是免费和开源。

究竟什么是开发人员眼中最好的代码编辑器?

Netbeans

Netbean 是另外一个开发欢迎,和Eclipse一样,可以扩展支持其它的编程语言,PHP,Python,C/C++和其它。可以运行在 Linux,windows和OSX上。Netbeans可以快速的帮助你开发桌面应用,并且支持拖拽GUI,带来的负面影响就是性能差一些。但是这个 IDE免费并且开源

究竟什么是开发人员眼中最好的代码编辑器?

Dreamweaver

Dreamweaver 属于adobe应用套件之一,主要用来开发web应用。提供了最流行的web编程语言的支 持:PHP,ASP.Net,Javascript,HTML,CSS。 主要为了初学者方便的编程,支持所见即所得的编辑方式。可以方便的部署到服务器,并且可以用来开发jQuery移动应用。同时支持OSX和Window。 单一价格$399。当然买套件更加合算。

究竟什么是开发人员眼中最好的代码编辑器?

Visual Studio

visual studio是一个All-in-one的windows开发环境。支持大量的开发语言(C/C++,C#,VB.NET和F#)。可以用来开发桌面应 用,移动和web。拥有强大自动补齐,行内文档,错误效验,debugging,表单设计,数据库schema设计。价格从$500开始,但是一个快速版 本的visual studio可以免费使用,我们可以使用有限的开发特性。

究竟什么是开发人员眼中最好的代码编辑器?

Xcode

Xcode 是一个Apple的解决方案,用来开发OSX和iOS应用。支持C,C++,Objective-C,Objective- C++,Java,AppleScript,Python和Ruby。使用Xcode你可以书写,debug和预览代码。提供了GUI builder和一个移动设备模拟器用来测试iOS应用。IDE基于开源工具例如GNU Debugger和Apple LLVM compiler。Xcode曾经需要付费,但是现在免费提供给大家使用。

究竟什么是开发人员眼中最好的代码编辑器?

Coda 2

Coda是一个all-in-one的web开发人员工具。包含了FTP文件传输,代码导航,代码缩放,终端GIT整合,Mysql管理和其它。使用新的Coda2发布,你可以使用ipad作为一个预览屏幕。普通版本价格$99,但是你可以得到$75美元的折扣价。

究竟什么是开发人员眼中最好的代码编辑器?

Linux:Ubuntu 12.04 root默认密码? 如何使用root登录?

在安装Ubuntu 12.04时并没有设置root的密码,登录的时候也没有使用root账户。当我们使用root权限时,一般都使用sudo命令进行。那么当我们安装完毕Ubuntu 12.04时,root账户的默认密码是什么呢?

其实这个答案很简单:root账户没有密码。

所以,如果你想使用root帐户登录,您必须首先启用的帐户,并重新设置或添加一个新的密码。下面的步骤会告诉你如何做到这一点。

 

首先我们要先打开终端,

执行:sudo passwd -u root  # 来启用我们的root账户,如果你后悔了可以执行 sudo passwd -l root 来重新lock root用户。

注意:sudo执行时输入的密码都是你当前用户的密码,不是root的密码。而且要保证你的用户具备了这种权限,配置文件在/etc/sudoers中。

然后给root创建一个密码:sudo passwd root   #看准提示进行输入,root的密码最好和其他用户的密码不同,不然会遇到一些麻烦。

现在root用户也不被禁用了,也有密码了,那么如何使用root进行登录呢?

执行如下命令: sudo sh -c ‘echo “greeter-show-manual-login=true” >> /etc/lightdm/lightdm.conf   #这样是让lightdm可以手动输入root用户进行登录。

执行完毕后重启,登录时点击lightdm下的登录按钮,输入root和密码即可使用root登录。

ubuntu之家在此强烈建议你不要使用root进行登录,执行sudo passwd -l root禁用root账户,因为这样是很不安全的事情,比如你执行 rm -rf /这个时候你还未输入完毕却不小心按了下回车,那么你就把整个系统给删除掉了。如果需要root权限可以使用sudo,你可以在一段时间内连续执行sudo而不用输入密码。

 

转自Ubuntu之家 {www.ubuntuhome.com} 本文地址:Ubuntu 12.04 root默认密码? 如何使用root登录?

Linux:如何在 Ubuntu 12.04 LTS 下安装 KDE SC 4.9

KDE SC 4.9 发布好几天了,估计大家关注 KDE 的朋友们已经都用上了吧,在这里来照顾一下刚入门的linux爱好者,一步一步的给大家演示一下怎么在 Ubuntu 12.04 LTS 下安装 KDE SC 4.9。

第一步:给 Ubuntu 添加 KDE SC 4.9 源

在 Ubunut 桌面环境下按下 Ctrl+Alt+T 来打开一个终端窗口,然后在窗口中键入如下命令:

sudo add-apt-repository ppa:kubuntu-ppa/backports

这个命令执行的时候需要您的密码,请输入您的密码。

这个命令在执行的时候,中间可能需要你按几下回车键。当这个命令执行完以后,我们在执行如下命令:

sudo apt-get update

然后你会看到一个升级的进度。当然了,上面这些命令都要在你的 Ubuntu 处于联网状态下。

第二步:安装 KDE SC 4.9

很简单,您如果刚好在看这篇文章的时候操作这些的话,可以直接点击下面的连接来执行安装:

点击这行文字来安装 KDE SC 4.9

点击后,浏览器应该会弹出一个让你确认的窗口:

很简单,点击 OK 确认就可以了,然后稍微过一下,你就会看到 Ubuntu Software Center 已经打开执行起来了,我们要做的就是点击那个 Install 按钮了。

安装的时候,同样,需要您再次输入密码:

好了,输入密码,后按 Authenticate 按钮,下面就是等待 KDE 下载和安装了,时间不定,要看网络情况了,文件包还真不小,375.9 MB,乖乖。

来源:https://linux.cn/article-737-1.html

Linux:Zorin OS:Windows用户无痛转移Linux

尽管Linux免费开源吸引了部分的用户,因为受到用户使用习惯等束缚,尽管随后的版本中不断加入了Windows系列的元素,Zorin OS就是其中典型的版本。Zorin OS基于Ubuntu的Linux发行,特别为Linux新手而设计。它拥有类似Windows的图形用户界面,以及很多类似Windows下的应用软 件。Zorin OS还带有能让用户运行很多Windows软件的程序。

Zorin OS 6 does a pretty solid Windows 7 impression.     这款系统并不是仅仅采用了Linux的核心套上了Windows的皮,而是给消费者带来几乎无差别的使用体验,同样能在左下角召开 开始按钮,而且内部的构造也按照Windows用户的使用习惯进行了精心的调整和安排,能够轻松的完成从Windows到Linux之间的过渡,并能够根 据需求选择Windows XP, Mac OS X,和the Linux-standard GNOME 2的各种界面。     而且在新版本中Zorin OS内置丰富的应用,除了常见的Chrome browser, LibreOffice, Thunderbird,和GIMP软件之外,当你使用PlayOnLinux之后就能轻松的使用Windows系统的应用程序。 Zorin OS 6 comes with plenty of software, including LibreOffice.

来自:http://www.cnbeta.com/articles/200431.htm

Linux:面向 Windows 系统管理员的 Linux: 使用 GNOME 桌面工具管理 Linux

简介: 使用 Linux® 并不意味着您的工作仅局限于命令行工具。当然,大多数经验丰富的 Linux 管理员使用命令行工具更为方便,并且管理更为高效。然而,GNOME 项目提供一些卓越的工具,可使用图形用户界面 (GUI) 管理 Linux 服务器。使用您的 Microsoft® Windows® 背景经验,您或许会发现这些工具的过渡并不那么明显。

概述

在本文中,了解桌面上有关 Linux 的以下概念:

  • 使用用户和组帐户
  • 管理文件和文件夹
  • 使用服务
  • 监控系统
  • 查看日志文件

先决条件

要充分理解本系列的文章,应该具备管理用户和组帐户、文件、文件夹、以及在 Windows 服务器环境下查看日志文件的相关知识。希望对登录和导航 Linux 桌面环境(比如 LXDE、GNOME,或者是 KDE)有一个基本的了解。除此之外,使用一个运行的 Linux 计算机来探讨本文的概念和示例是很有帮助的。


使用用户和组帐户

当您考虑从桌面环境实现服务器管理时,一个用户和组管理工具是必备的。对于最新发布的 GNOME 3.2,该工具位于 GNOME Control Center 中。GNOME Control Center 是一个中央位置,用来管理 Linux 计算机的各个方面(与 Windows Control Panel 没什么不同)。如今仍然广泛使用的是 GNOME System Tools (GST)。GST 为 Linux 管理员提供有用的工具,包括一个管理用户和组帐户的工具。一些流行的 Linux 发行版还提供 “系统-用户-配置” 工具作为默认的用户管理器。因此,不管您的 Linux 是哪个版本,都应该可以直接管理本地用户帐户,这些帐户通常在用户和组标签下。

本文所用的 Linux 发行版

本文所用的 Linux 发行版是 Ubuntu 10.0.4,有默认的 GNOME 桌面和主题,根据您的 Linux 版本具体情况,屏幕和各种工具的默认位置在本文中的描述可能略有不同。查看您的发行版文档了解更多细节。

Linux 没有注册表,因此,您使用的 GUI 工具仅仅是在文件系统中将数据写入一个文件的前端工具。对于管理用户和组的任务,只需要使用这些工具管理基础的 /etc/passwd 和 /etc/group 文件。/etc/passwd 文件维护用户帐户信息,而 /etc/group 文件存储组帐户信息。用户密码在 /etc/shadow 文件中进行加密,而组密码存储在 /etc/gshadow 文件中。

GNOME 用户和组管理工具提供一个简单直观的帐户管理界面,如图 1 所示。

图 1. 创建一个用户 运行中的 GNOME 用户管理工具屏幕截图

只要拥有权限,您就可以创建并编辑用户和组帐户。此外,您还可以管理具体帐户设置,比如主目录位置、用户 ID、默认登录 shell、密码重置,以及组成员分配。标准用户通常可以使用该工具进行密码管理。

要创建一个新组,单击 Group 选项卡然后输入组名。如 图 2 所示,创建一个组之后,您就可以管理成员了,选择用户名旁边的复选框或取消选中即可。

图 2. 创建一个组 运行中的 GNOME 组管理工具屏幕截图


管理文件和文件夹

在 Windows 中,Windows Explorer 是诸多导航文件系统的首选工具。GNOME 项目拥有 Nautilus。Nautilus 是一个文件管理器,有一个强大的开发团队和广泛的用户群。Nautilus 自 2001 年以来一直在不断发展。

如果您使用 GNOME 桌面,则很有可能已经安装了 Nautilus。如果您没有使用 GNOME,仍然可以下载并安装 Nautilus,因此,查看一下您的发行版文档。

使用一个文件管理器时,执行的一个主要任务是导航文件系统。有了 Nautilus,您甚至可以将它切换到浏览器模式,这会给您更多的 Windows Explorer 感觉。请记住,在 Linux 中,所有文件夹都是作为子文件夹挂载到主 root (/) 目录下的。因此,如果您使用远程驱动器挂载到您的 Linux 服务器,比如从一个 Windows 或者另一个 Linux 计算机挂载,可以从 root (/) 目录浏览该文件系统,就像您在本地文件系统目录下操作一样,如 图 3 所示。

图 3. 导航文件系统 Nautilus 文件浏览器屏幕截图

使用 Nautilus 导航和使用 Windows Explorer 导航一样。单击文件夹从而逐层打开子文件夹。右键单击任何文件夹或文件执行使用文件管理器所执行的常见任务,比如,复制、重命名、打开、压缩,以及管理权限。

对于查看首选项,可以设置选项,比如 detailed view(详细信息视图)、listed view(列表视图)、by name(按名称),等等,如 图 4 所示。

图 4. 管理文件首选项 File Management Preferences> Views 选项卡屏幕截图” width=”439″ height=”572″ /></p>
<p>读、写和执行</p>
<p>右键单击从而管理文件夹或文件权限时,您可以查看或更改权限(如果您的帐户有这样的权限)。在 Nautilus 中,如果一个文件或文件夹不在用户帐户的安全权限范围内,它旁边会有一个锁状图标。对于 Linux,每个文件夹都有 3 个权限集:用户所有者 (u)、组所有者 (g),及其他 (o),在每个权限集中可以分配基本的读、写、或执行权限。</p>
<p>记得给 shell 脚本或用户需要执行的任何其他文件分配执行权限。不像 Windows,在 Linux 中,您需要明确地授权文件执行权限给需要执行该操作的用户组。参见 图 5 示例。</p>
<p><strong>图 5. 在文件上设置权限</strong> <img loading=

表 1 概述了一个典型 Linux 文件的基本权限选项。在此使用八进制表示法,因为许多 Linux 相关的安装和软件文档以八进制计数法引用这些权限。

表 1. Linux 权限

权限 八进制表示法
只读 4
只写 2
只执行 1
读和写 6
读和执行 5
所有权限(读、写和执行) 7

 

使用 Nautilus 创建一个新文件时,使用基础 Linux 配置实现 umask,这和您从命令行创建文件一样,umask 确定默认权限。多数 Linux 发行版的 umask 默认为 022。文件从八进制数 666 开始工作。您只需要做一点简单的减法就可了解 umask 如何工作。如果创建一个新文件且 umask 是 022,该文件的默认权限为 666 – 022,或是 644。也就是说该用户所有者拥有读和写权限,而组所有者和其他用户仅有只读权限。

同样的概念也适用于使用 Nautilus 创建文件夹。文件夹从八进制数 777 开始工作。使用同样为 022 的 umask,如果创建一个新文件夹,其默认权限是 777-022,或是 755。这意味着用户所有者拥有所有权限,而组所有者和其他用户仅有读和执行权限。

共享

就像在 Windows Explorer 中一样,您可以使用 Nautilus 轻松地共享一个文件夹。要实现这一点,右键单击要共享的文件夹,并选择 Sharing Options 菜单项。接着,选择 Share this folder 复选框。如 图 6 所示。

图 6. 共享一个文件夹 使用 Nautilus 共享管理屏幕截图

除此之外,如果想让其他用户能够保存该文件夹中的文档,可以选择 Allow others to create and delete files in this folder 复选框。如果您这样做,Nautilus 会要求您确认更改文件夹权限。

如果您有用户使用混合环境,可以选择 Guest access 复选框,允许这些用户可以在没有一个本地 Samba 帐户进行身份验证的情况下访问该文件夹。要谨慎使用这一选项,因为它可能会给您的 Linux 服务器带来不必要的安全漏洞。

如果您想与 Windows 用户共享文件夹,并对其进行验证,必须首先在您的 Linux 服务器上建立和配置 Samba。

Linux:升级至Ubuntu 12.04 Server的二三事

昨晚,我手一痒,就把我们的VPS的Ubuntu 11.10升级至了Ubuntu 12.04 LTS版本,结果还是相当顺利的,但是还是微调了一些。

简单记之:

 

 

升级至Ubuntu 12.04 LTS Server

从Ubuntu 11.10升级至Ubuntu 12.04是非常简单的,只需要执行一下「sudo do-release-upgrade」,进行确认、软件包的更新、下载与安装配置,即可完成升级。

但是升级过程还是有一点点意外:

我使用byobu的类screen工具连接至Server进行升级,升级了一半时,会话乱掉了(大概是重启啥服务引起的),等我再登录进 去,dpkg的进程还跑着,但是byobu已经登录不进,也无法继续操作。只得将「/var/lib/dpkg/lock」删除,再手动执行「sudo dpkg –configure -a」及「sudo apt-get dist-upgrade」,一切得以顺利进行下去。

一些服务(nginx、mysql)的调整

我手动升级服务器的策略是,尽可能使用新版本的配置文件,再手动将旧设置应用于新的配置上。

比如在将mysql-server从5.1升级到5.5之后,原有的utf8设置可能会无效,于是在「/etc/mysql/conf.d/」下建立一个「utf8_charset.cnf」的文件,输入以下内容:

[mysqld]

max_allowed_packet=64M

collation-server = utf8_unicode_ci

init-connect=’SET NAMES utf8′

character-set-server = utf8

然后再用「show variables like ‘char%’」查询时,就会看到都是utf8了。

nginx+uwsgi的问题

升级了nginx新旧配置文件没啥不同,唯一的一点是,之前我为了用nginx跑uwsgi,用了「root」用户,现在又变成了「www-data」,重新改回来就可以。

所说现在有更好的跑Python App的类uwsgi工具(或其他模式),有时间再升级一下了。

Python Virtualenv的问题

随着发行版的升级,Python版本也升级了,于是会导致使用Virtualenv的WebApp有诡异的问题,最好的办法是,重新建立一遍virtualenv环境,非常简单。

比如本站的环境是「imtx.me」,只需要「mkvirtualenv imtx」,它会自动去对原环境进行一次重新建立(和覆盖操作),完成后,重新通过pip去安装软件包即可。

Crontab的通知问题

之前在VPS上会跑一些cron,这些cron会有输出,每跑一次都会向当前用户发送一封邮件,久而久之就有积累了上千封邮件了。这些邮件通常告诉你cron跑的过程与结果是不是顺利,偶尔是要看一下,但多了也不方便,该怎么办呢?

于是我想到了一个办法,「crontab -e」编辑时,在最上面写一行:MAILTO=”yourmail+cron@gmail.com”,这样它就会发到我的邮箱的指定位置,我只要想看时,看自己的私人邮箱就可以了,而不用登录到服务器上看邮件了。

另外,如果真的不需要通知,在crontab里命令行后面弄一句「> /dev/null 2>&1」也行。

小结

尽管现在各种云大行其道,但是自己管理自己的VPS依然很有价值,关键是享受乐趣与最大的灵活性和可配置性。

另外做个小广告,这些年来用过不少VPS,今年开始用Linode,大半年过去了,确实非常棒:稳定、快速,后台也十分强大,非常自动化。比如我昨天忘记密码了,就通过Rescue功能重设了root密码。

如果你打算使用Linode,可以考虑用我的可以考虑使用我的 referral code(通过该链接或该代码去购买Linode的产品):3a7a044d481045ae2ff2f4469357779e2322f5c6,算是对我blog的赞助吧。嘿嘿

来自:http://imtx.me/archives/1752.html

Linux:在Windows 8 PC上安装Linux的四种方法

  之前有消息称Windows 8的安全机制将会阻碍其他操作系统的启动。现在,很多想在Mac上运行Linux的人使用兼容支持模块CSM,提供Mac上BIOS的仿真。这种方式很麻烦,运行得不好,在Secure Boot Windows 8 PC上可能会更糟糕。同时随着微软Windows 8 发布的日子越来越近,Windows 8 中的 UEFI 功能和效应也会慢慢显示出来,所以在 PC 上安装 Linux 将会越来越困难,那我们该怎么办呢?下面提供四种方法。

在UEFI上启动Linux

  首先,需要在UEFI上启动Linux。因为除了Mac,很少有PC使用UEFI替换BIOS,所以大家都不怎么关心从UEFI启动Linux。

  现在,很多想在Mac上运行Linux的人使用兼容支持模块CSM,提供Mac上BIOS的仿真。这种方式很麻烦,运行得不好,在Secure Boot Windows 8 PC上可能会更糟糕。

  有其他更好的方式。目前最佳的方式是Rod Smith的EFI-Booting Ubuntu on a Mac指南。其他的,如Linux内核开发者Greg Kroah-Hartman的技巧也值得一试。最大的难题还是在于Secure Boot。

保护启动与Linux的安全

  理想情况是微软及其合作伙伴会采用Linux Foundation所说的方式去部署Secure Boot,方便Linux的安装,但这种情况是不会发生的。

  所以,我们有三种不同的替换方式。这时候,也不知道哪一种能成功。可能最终都会使用上。这让人很不爽,不过随着微软在该领域继续占优势,Linux开发者就不得不在最艰难的情形下努力做好。

  首先,Linux开发者需要处理好该问题。Linux基金会技术顾问委员会的James Bottomley发布了Intel Tianocore UEFI启动代码和一些Linux程序员能使用的代码,以便消除Windows 8的 Secure Boot限制。

  Intel Tianocore是英特尔UEFI的开源镜像。直到最近,这个镜像也没有微软用于Secure Boot的验证码,现在有这个功能了。将该功能交付给开发者极大扩展了使用UEFI Secure boot的人群。

  这能让无权访问UEFI安全启动硬件的程序员拥有一个“虚拟平台,让他们能体验自己的解决方案。但这是一个两难的选择,做安全启动的Tianocore固件才出现几周,签名工具还未出现,所以还有很长一段路要走。

  即使如此,开发者使用自己的安全配件锁定安全启动虚拟平台,对于利用自己密匙使用UEFI安全的开发者来说,这是一大进步。

第一种方式:为某些版本创建UEFI Secure Boot密匙。这种方法也是Canonical对Ubuntu的做法。有些人,如自由软件基金会的讨厌这种方法。

  Fedora、红帽的社区Linux版本决定使用微软的密匙签名服务Verisign。所以在Fedora的计划中,Fedora将使用微软的系统创建自己的Windows 8系统,兼容UEFI安全启动密匙。

  当然在许多开源圈子里,这个方法如浮云。红帽开发者Matthew Garrett为其辩护,说:“它比现有的任何方案都便宜。它能与大量硬件兼容,还能让Fedora避免比其他Linux拥有特权。

  坦白说,就如Ubuntu缔造者Mark Shuttleworth所讲,任何计划都不可能完美,但“Secure Boot的缺陷在其设计,最终将在每台PC上授权微软的密匙。Secure Boot对在关键元素上支持多个签名的无能为力意味着这个选项受限,但我们一直在追求一个好的结果。”

当然还有另一种方法:使用开源的软硬件。当然这也是Linux PC开源厂商乐于想见的结果。

  有了UEFI的Secure Boot,那么Linux版本就不需要与微软签名或者使用它们的安全启动。使用开源引导模式启动的计算机就好了。确实,UEFI的Secure Boot在原始设备制造商级别实施,所有新购买的PC都带有Secure Boot。

  所以开源厂商肯定不愿意禁用或使用Fedora与Ubuntu的方法。禁用可以,但禁用一些能保护安全的功能很傻。长此以往让人担忧,运行 Linux的2012年后的机器键盘起初很简单,但之后就会愈加复杂。对于OEM也影响重大。让人担心桌面Linux对于新用户来说太难了,会逐渐加重 Linux的衰落。

总结,下面几点就是当今Linux在Windows 8 PC上的情形:

  1. 希望OEM在预启动期间就禁用Secure Boot。如果是这样,那么在Windows 8 PC安装Linux就不会比在Windows 7系统上那样困难。然而,这在Windows RT ARM系统上没有这个选项。
  2. 使用Linux,如Fedora,可使用微软自己的Windows 8签名工具提供一个Secure Boot兼容密匙。
  3. 使用Linux版本,如Ubuntu,本身就能提供Secure Boot兼容密匙。
  4. 弃用Windows 8系统,使用开源硬件。

  某些Linux发行版本,如openSUSE,还不知道他们该如何应对这样的情况。

  目前为止,也不知道如何在Windows 8笔记本或桌面运行Linux。这得取决于OEM厂商如何去处理Secure Boot。

来自:http://www.searchsv.com.cn/showcontent_64647.htm

Linux:Linux管理常见错误的解决方法

对于linux管理员来说有时会犯一些小的linux管理常见错误,但是是对于一些刚步入Linux管理大门的管理员来说,如果不避免一些常见的错误,就容易给单位的网络或系统带来安全风险。这里介绍十个linux管理常见的错误,以帮助新手来改进工作。

linux管理常见错误一:不经过严格审核,从多种渠道下载安装各种类型的应用程序

乍看起来,这也许是一个不错的主意。如果你在运行Ubuntu,你会知道包管理程序使用的是。deb软件包。不过,你找到的许多应用程序是以源代码 的形式提供的。没有问题吗?这些程序安装后也许能够正常工作。但是你为什么不能随意安装程序呢?道理很简单,如果你以源的形式安装了程序,那么,你的软件 包管理系统将无法跟踪你所安装的东西。因此,在程序包A(以源的形式安装)依赖于程序包B(从一个。deb库安装的),而软件包B是从更新管理器更新的时 候,会发生什么事情呢?程序包A可能运行,也可能无法运行。不过,如果程序包A和B都从。deb库安装的话,二者都能运行的机会将更高。此外,在所有的程 序包都来自于同样的二进制类型时,更新程序包将更为容易。

linux管理常见错误二:忽视更新

这并不是说Linux管理员缺乏技巧。不过,许多Linux管理员在运行了Linux之后,以为日后就无事可做了,以为它安全可靠。其实,新的更新 可以为一些新的漏洞打上补丁。维持更新可以在一个易受损的系统与一个安全的系统之间构造分水岭。Linux的安全来自于不断地维护。为了实现安全性,为了 使用一些新的特性和稳定性,任何管理员都应当跟上Linux的更新步伐。

linux管理常见错误三:糟糕的口令

记住,root 的口令通常是linux王国的关键。所以为什么要让root的口令那么容易被破解呢?保障你的用户口令的健壮性至关重要。如果你的口令比较长,且难于记忆,可将这个口令存放在一个可被加密的位置。在需要这个口令时,可用解密软件解开这个口令使用之。

linux管理常见错误四:将服务器启动进入到X

在一台机器是专用服务器时,你可能会想到安装X,这样一些管理任务就会简单一些。不过,这并不意味着用户需要将服务器启动进入到X.这样会浪费珍贵 的内存和CPU资源。相反地,你应当在级别3上停止启动过程,进入命令行模式。这样做不但会将所有的资源留给服务器,而且还会防止泄露机器的机密。要登录 到X,用户只需要以命令行方式登录,然后键入startx进入到桌面。

linux管理常见错误五:随意许可,原因是不理解许可

如果对许可配置不当,就会给黑客留下机会。处理许可问题的最简单方法是使用所谓的RWE方法,即Read(读取)、Write(写入)、 Execute(执行)。假设你想让一个用户能够读取一个文件但不能写入文件。为此,你可以执行:chmod u+w,u-rx 文件名,一些新用户可能会看到一个错误,说他们没有使用文件的许可,因此他们就使用了:Chmod 777 文件名,以为这样能够避免问题。但这样做实际上会导致更多的问题,因为它给了文件的可执行的权限。记住这一点:777将一个文件的读取、写入、执行的许可 给了所有用户,666将一个文件的读取、写入权限给了所有用户,而555将文件的读取、执行权限给了所有用户,还有444、333、222、111等等。

linux管理常见错误六:没有备份关键的配置文件

许多管理员都有这样的体会,在升级到某个X版本,如X11之后,却发现新版本破坏了你的xorg.conf配置文件,以至于你再也无法使用X?建议 你在升级X之前,先对以前的/etc/x11/xorg.conf作一个备份,以免升级失败。当然,X的升级程序会设法为用户备份xorg.conf文 件,但它却在/etc/x11目录内备份。即使这种备份看起来不错,你最好还是自己做一个备份吧。笔者的一个习惯是将其备份到/root目录中,这样,用 户就可以知道只有根(root)用户能够访问此文件。记住,安全第一。这里的方法也适用于其它的关键备份,如Samba、Apache、Mysql等。

Linux:Linux下utf-8 BOM 的检查和删除

当源程序是gb格式,你转换为 utf8 的时候,很多情况是头部会出现bom,当是php 程序时候,这样会出现很多意想不到的事情,那怎么办呢,你可以用linux 命令来查找,然后对文件的bom 进行删除,就ok 了

grep -r $’\xEF\xBB\xBF’ * |grep .php

bom:UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark)

用vim去除utf-8 BOM

1.’去掉utf-8 BOM

:set nobomb

2.’保留utf-8 BOM

:set bomb

您可以任意转载本文,但转载时请以超链接形式标明文章原始出处和作者信息及版权声明 作者:danny,原文链接:http://www.hidba.net/20120112/616.html 

Linux:没那么神秘:linux下生存实录

事物的选择,不在于它能向你提供什么,而取决你需要什么。窗内的世界充其量算是舒适,窗外的天地那才是五彩斑斓。

    操作系统,大部分人只晓得windows,鲜有人知道linux,一个以稳定、安全、开放为第一准则的操作系统(严格地说应该叫内核)。汉语,全球五分之 一的人以它为母语,是使用人数最多的一门语言;英语,世界各地都有人使用,是使用范围最广的一门语言。windows与linux,就好像汉语与英 语,windows,几乎占据了整个桌面领域,是装机量最多系统;linux,从深海潜艇到空中无人侦察机、从半间屋大的工作站到比手掌还小的手机、从远 至美国南卡罗来纳州的google服务器到近到客厅的机顶盒,你都能见到linux身影。     我无意说服你抛弃目前娴熟使用的操作系统另寻新欢,但,假如你对当前系统保守封闭早已不满,假如你崇尚自由、渴求本质、热爱折腾,不妨试试linux!

【发行套件】

linux本身还算不上操作系统,它仅是内核(一方面管理协调下层的硬件资源,一方面为上层软件提供基础服务支撑),需搭配系统软件(shell、编译器、包管理器、桌面环境等等)、应用软件(办公软件、网页浏览器、视频播放器、图片编辑器等等)才能成为一套具备日常使用功能的操作系统,即,发行套件。

一、发行套件的选择

linux发行套件数量庞大(约140种)、用途迥异(如,专供盲人使用的、专供教育培训使用的、专用于家庭影院使用的),对每个发行套件逐一评测、比对选优,完全是费神耗时、意义不大。目前,知名的发行套件包括:puppyslackwaredebianfedoraarchgentooubuntulfsopensuse等,它们各具特色、追随者众,如,slackware是目前存活时间最长的古董级发行套件(经验丰富),fedoraredhat进行新技术实验的发行套件(技术创新),ubuntu号称用户零配置开箱即用的发行套件(简单易用)、lfslinuxfrom scratch)让你从无到有构建专属于你的发行套件(配置灵活)、经验丰富+技术创新+简单易用+配置灵活=opensuse!(-_-#

opensuse最早是slackware在德国的本地化版本,后来因其加入了大量特色功能升格为单独的发行套件,其原名为suselinux10.2版本后改名opensuseopensuse是由novell公司赞助、社区推动的发行套件,它的相关源码和技术可由novell使用,作为novell企业版发行套件sles的基础。opensuse旨在:a、推进linux在全球广泛使用;b、降低linux使用门槛,成为易于上手的发行套件;c、成为技术黑客和软件开发人员的首选平台。opensuselogo是只可爱的变色龙,以此象征opensuse灵活、敏捷的特性。

logo

opensuse当前正式版本为12.1,下个版本12.2预计在129月中旬发布。关于发行套件版本升级,通常我会在最新正式版放出后半年左右再考虑,原因有二:一方面经过半年的大规模外部用户测试,大部分bug已被发现并修正,一定程度上规避了使用系统的不稳定性;一方面各类应用软件开发人员有足够时间针对新版本的发行套件进行功能升级和兼容性优化,让我真真正正感受到新版本带来的各项提升。所以,今年暂时不升级了,明年3月份再考虑。

二、发行套件的安装

既然是普通用户使用的发行套件,其势必继承了某种桌面环境以便用户通过可视化界面操作计算机(linux最底层由x.org提供图形图像服务,中间由桌面环境负责统一管理各应用软件发起的图形绘制请求并协调x.org予以响应)。opensuse12.1提供gnomekde两种桌面环境供君选择(此外,还有xfcelxdeederox等等其他桌面环境可单独下载安装)。gnome是隶属gnu项目的子项目,全称为thegnu network object model environment,采用gtk(由c语言编写)作为底层开发库;kde全称kooldesktopenvironment,采用qt(由c++语言编写)作为底层开发库。gnomekdelinux中最为流行的桌面环境,从操作习惯和界面风格来看,我更喜欢gnome。因此,本文将以采用gnomeopensuse12.1为例进行后文讲解。

1、下载镜像。访问http://software.opensuse.org/121/en,选择gnome32位(或64位视情况而定)直接下载即可;

2、制作安装uu盘安装既节省光盘介质费用,又能大幅提升安装速度,逐渐成为你安装系统的首选。官网上提供了制作opensuse安装u盘的工具imagewriter,分为windows版本(https://github.com/downloads/opensuse/kiwi/imagewriter.exe)和linux版本。windows版有个小bug,下载的镜像文件扩展名为iso,而imagewriter在选择镜像文件时只能识别扩展名为raw的文件,所以需要先调整镜像文件扩展名才能正常写入u盘;

3、安装系统。整个过程一路next,除了几个关键点稍加留意外,基本零难度(注,安装过程中,部分窗口过小,无法查看窗口中完整内容,可用鼠标拖动窗口边框以调整合适大小)。

1)时区设置。如果你是冏朝公民,按下图设置,其中必须勾选“将硬件时钟设置为utc”,否则时间有问题。

(时区设置)

2)创建分区。建议依次创建如下分区:/swap/home/data。说明几点,alinux的分区不同于windows,分区后没有所谓的c:d:盘,而是一个个文件系统,这些文件系统没有具体名称,必须先挂载到某个目录(称之为挂载点)下才能正常使用,每个分区对应一个目录,但多个目录可能对应在同个分区中(如,/home/yangyang_gnu

/home可能都在通过分区上);b)操作系统为扩展物理内存容量通常设有“虚拟内存”机制,将不活波内存页(如,未关闭但长时间没使用的程序)从物理内存中移至硬盘的虚拟内存中,从而释放宝贵的物理内存空间,swap分区就是所谓的虚拟内存,一般大小等同于物理内存,swap分区不用挂载目录;c)用户相关信息(如,各应用程序的配置文件)通常放在/home目录中,为避免重装系统导致各类配置文件丢失,需将/home放在独立分区上;d)所有非系统数据(如,歌曲、ebook、安装程序)都放在独立分区/data上,以便定期备份。按提示操作后,界面类似如下:

(硬盘分区)

3)安装前确认。正式安装系统前,可对先前安装设置信息进行确认、调整。如下图所示:

(安装前确认)

4)系统引导设置。opensuse为防止因异常导致系统无法正常启动,除安装“真正操作系统”之外,还附带安装了所谓的“紧急启动镜像”,个人觉得意义不大,如果不需要,可点击“booting”,可删除紧急启动镜像:

(紧急启动镜像)

另外,双击opensuse12.1(真正的操作系统),参照如下设置,分别取消启动时硬盘检查和设置字符模式下的分辨率:

(引导设置:取消硬盘检查、设置字符模式分辨率)

此外,进入“bootloader installation”->“boot loaderoptions”,取消引导程序等待用户选择操作系统耗时:

(引导设置:取消引导等待)

三、发行套件的设置

刚装好的操作系统都是默认设置,按个人习惯适当调整才贴心。

1、升级系统linux上系统升级分两部分,一部分是内核升级,一部分是发行套件升级(即,除内核外的驱动程序、系统软件、应用软件等升级)。升级内核是为了享受新内核带来的安全增强以及更多的设备支持,由于涉及内核编译等高级主题,另文详讲;在进行发行套件升级前,先说说软件仓库。

前 面说过,发行套件是集成内核、驱动程序、系统软件、应用程序等一整套可支撑普通用户日常工作、生活需求的操作系统,可见,发行套件充当了软件筛选、软件打 包、软件依赖库测试、软件兼容性测试等多个角色,为确保发行套件的健壮性,发行套件厂商(或社区)将它筛选、打包、测试过的软件放在官方软件仓库中,这 样,不论哪个厂商开发的应用程序,用户只需到软件仓库中查找、下载、安装即可,不用(像windows)再到各个软件官网逐一下载,当然,软件仓库中没有的,你仍可到软件官网单独下载,但要注意依赖库是否正确。

软件仓库一般放在发行套件官方服务器上,用户通过更新源访问软件仓库。因此,更新源就是软件仓库的路牌。冏朝的网络是具有社会主义特色滴,要么无法访问国外、要么满如蜗牛,给我们访问国外官方的软件仓库带来很大阻碍。幸好,国内还有几家上规模又有良心的it企 业,通过它们自身带宽优势,准实时地从发行套件官网同步软件仓库到国内服务器上,冏朝用户可调整更新源,实现从这些企业的服务器上高速访问软件仓库。目前 为各大发行套件建立国内软件仓库的企业主要包括搜狐和网易(感谢张总、丁总对中国开源事业的支持,曹总、马总你们人影呢),另外,各大专院校也建有本地软 件仓库,学生朋友可参照使用。好了,了解了软件仓库、更新源等概念后,我们可以按如下步骤升级发行套件啦:

1)更改更新源。运行yast->softwarerepositories,删除所有来之官网的更新源(即,opensuse.org相关的),增加搜狐的软件仓库镜像:asohu-opensuse-12.1-osshttp://mirrors.sohu.com/opensuse/distribution/12.1/repo/oss

bsohu-opensuse-12.1-non-osshttp://mirrors.sohu.com/opensuse/distribution/12.1/repo/non-osscsohu-opensuse-12.1-updatehttp://mirrors.sohu.com/opensuse/update/12.1

2)升级系统。一旦指示系统启动升级,系统先在软件仓库(加载的所有更新源)中寻找是否有升级的可能。具体而言,命令zypperupdate,对于本地已安装程序,在软件仓库中是否有更新版本,若有则更新之,忽略系统有安装但仓库中根本不存在的软件;命令zypperdist-upgrade, 将系统与软件仓库同步一致,也就是说,本地安装的软件必须只能是仓库中有的且版本必须一致,换言之,一旦执行该命令,将存在降级(本地版本高而仓库版本 低)、升级(本地版本低而仓库版本高)、更改软件信息(发行套件官方更改应用软件某些信息)、甚至卸载(本地安装而仓库没有)等几种可能,特别是当你有通 过源码安装过软件时切勿使用该命令。两个命令差异巨大,就日常而言,建议使用前者即可。

2、安装驱动windows环境中增加了硬件,通常需要到硬件官网下载驱动,安装重启后系统才能识别新增硬件设备,linux对驱动的管理,你可以(片面地)理解为全都打包进内核中了,只要是较新版本内核(这正是前面说升级内核的主要目的之一),几乎能正常识别99%的硬件,换言之,你不用针对主板、芯片、(有/无线)网卡、显卡、声卡、甚至g3上网卡(后文将教你如何在linux下使用运营商的上网卡)单独安装驱动,因为内核已经集成了它们的驱动,当然,我指的是集成驱动能很好地管理对应硬件设备,如果管理得不是那么好呢?那就单独安装吧,比如,n卡驱动。opensuse内置了n卡驱动程序的开源版本nouveaunouveau由第三方开发,并未得到nvidia官方支持,是开发人员对n卡官方驱动逆向分析后的重新编码,实现难度巨大,虽效果不尽人意但也值得你尊重。作为普通用户,肯定希望最大程度发挥显卡特性,那就安装n卡针对opensuse发布的(闭源)官方显卡驱动吧。先增加n卡官方更新源ftp://download.nvidia.com/opensuse/12.1,再升级即可。

3、美化桌面。前面提过,我选装的是gnome桌面环境。gnome3相 较先前版本,不论从界面外观还是操作习惯都有非常大的差异,比如,窗口右上角只有关闭按钮,不再有最大化、最小化的概念,比如,托盘从任务栏中剥离出来, 默认情况下为隐藏状态,比如,要选择桌面上的某个窗口,先得调出所有窗口的列表,在点击选择需要的那个,比如,不再有桌面图标,如此这些,让很多人无法适 应、被人诟病。也许是心态问题,我倒是挺适应这种操作模式的,使用gnome3也有一年多时间了,虽谈不上驾轻就熟,但也不存在任何使用障碍,非要让我提一点意见的话,嗯~嗯~,好吧,真心希望gnome开发团队将横向布局的任务栏改为纵向布局,至于原因,你知道,如今的显示器几乎都是宽屏的,这就意味着屏幕的水平空间充裕而垂直空间紧张,现在又将任务栏水平放置在最顶部,进一步缩小了可用垂直空间,所以,强烈建议将任务栏垂直放置在屏幕左侧(效果类似ubuntuunity),希望下一版本能有所改善。另外,个人认为,对于一项新生事务(我说的是gnome3),不妨抱着“拥抱变化、迎接未来”的心态去尝试接纳,或许,你会发现,原来它才是你的最爱。

扯远了,接着说gnome的美化。桌面美化,无非就是选一套符合你审美观的主题,下载、安装、启用即可:

1)下载主题。推荐两个gnome3相关的主题网站:gnome-look.orgdeviantart.com,慢慢选,喜欢哪个下哪个。个人非常喜欢那种扁、平、薄的风格,比如android4.0主题风格,正好又有人将其移植到gnome3上,称之为holohttp://tiheum.deviantart.com/art/holo-80076980),搭配faience系列图标(http://tiheum.deviantart.com/art/faience-icon-theme-255099649

2)安装主题。将上面两个下载后的压缩文件分别解压至~/.themes~/.icons目录。

3)选择主题。运行advancedsettings,参照下图选择窗口和图标主题:

(选择主题)

4)启用主题。键入alt+f2,输入r回车,看到没,刚才选择的主题已经生效。如果存在滚动条粗大、按钮错位等情况,请检查相关主题引擎(murrinepixbufunicoadwaita)是否都已正确安装。最终效果如下:

gnome3-holo

5)字体。opensuse中文显示默认采用文泉驿字体,相比之下,更喜欢微软雅黑那种方方正正的饱满字体,但微软雅黑中的英文字体又不咋地,有人发布了一款增强了英文字体的微软雅黑——yaheiconsolashybrid字体,可以下来试试,效果非常不错(本文全文采用的及时这个字体)。双击字体按提示安装,安装完后进入advancedsettings,按如下设置即可:

(字体设置)

###NextPage###

【应用软件】

说了这么多,作为普通用户,我们关注的还是opensuse如何支撑我们的日常工作、生活需求。接下来看看,那些借助社区力量开发的优秀开源产品。开始之前,请增加第三方更新源packmanftp://packman.inode.at/suse/opensuse_12.1/)。packman相对于发行套件的官方软件仓库有如下“优势”:a)包含大量采用新技术的软件(发行套件追求稳定,从这个角度看,如果引入过多新技术软件,未经过严格兼容性测试,极有可能影响系统稳定性);b)包含大量私有属性的闭源软件(发行套件通常是由社区制作,如果含有闭源软件,可能引入版权、专利问题)。因此,应将packman仓库与官方仓库搭配使用,可扩大用户的软件选择范围。(注,未特别说明,以下介绍的软件均可通过软件仓库查找、下载、安装。)

一、日常办公

现在的企事业单位几乎都需借助电脑办公,医生看病开处方、营业厅办理业务、会计帐务处理等等,电脑已成为各行各业办公的主要途径和手段。下面介绍几类常见的办公需求。

1、办公文书wordexcelpowerpoint等三个软件是windows中必装的办公文书软件,以支撑我们文字处理、表格制作、汇报演示等工作需要。linux中我们对应有writercalcimpress等软件,这三个软件(外加drawmathbase)就是大名鼎鼎的libreoffice套件。libreoffice完全兼容ms-office文档,甚至还可以直接转存为pdf格式文件,

  • 软件名称:libreoffice

  • 界面截图:

writer

calc

impress

  • 设置调整:tools->options->languagesettings->writing aids,取消options中的所有选项,以禁止拼写检查;

2、电邮收发。 很多人习惯通过邮件服务提供商官网进行邮件收发,强烈建议改用邮件客户端,避免频繁登录邮箱,同时,还能离线查阅邮件内容。好的邮件客户端除了正常

Linux:如何在 Ubuntu 上安装 FireFox 15

FireFox 15 的测试版本已经出来好久了,作为我们天天用的浏览器,尝尝鲜那实在是太应该了,虽然说测试版本的有可能不稳定或者一些其他的问题,不过作为系统上的一个软件,而且开发者们我们长时间以来也是信任的,所以我们可以大胆放心的用了,最多删了装回以前版本嘛。不过从我一直以来用各种测试版本的浏览器以来,还真的没遇到过问题,Opera 我一直用的是 Opera Next,FireFox 从出测试版开始,我就用了,FireFox 15 和 FireFox 16 都在机器上装有。

目前 Canonical (Ubuntu 母公司)还没有在 Ubuntu 中支持 FireFox 15,Canonical 预计将于本月底开始加入这个支持,那么我们现在要想在 Ubuntu 安装 FireFox 15 该怎么办呢?下面就简单的和大家说说如何在 Ubuntu 上装测试版本的 FireFox 15。

Firefox 15 可以安装在 Ubuntu 12.04 LTS、Ubuntu 11.10、Ubuntu 11.04、Ubuntu 10.04 LTS 四个版本的 Ubuntu 上。

FireFox 15 比 14 起来有如下一些比较明显的改动:

  • 原生支持PDF文件
  • 支持SPDY V3网络协议
  • 优化 WebGL 的支持(包括压缩纹理)
  • 内存使用优化

安装前您需要注意:这个安装会将您原有的 FireFox 替换为 15 的测试版本,同时会将您的中文 FireFox 替换为英文 FireFox。

第一步,添加 Firefox 15.0 版本库

如果您是上面所列出来的四个 Ubuntu 版本中的一个的话,那么直接打开一个终端窗口,然后键入如下命令:

sudo add-apt-repository ppa:mozillateam/firefox-next

点击查看原始大图

输入命令后回车,然后输入您的管理员密码,然后再次回车,然后根据他的提示,继续回车,然后等待它出现命令提示符。

好了,不要关闭终端窗口,我们继续下一个步骤。

第二步,安装 Ubuntu 15

继续在终端窗口中输入如下命令后回车:

sudo apt-get update && sudo apt-get install -y firefox

好了,如果您没有再同时用 Ubuntu One 安装下载软件的话(如果您刚好在使用 Ubuntu One 后台下载安装其他软件的话,它会提示您资源暂时不可用,是否有其他进程正在占用等,您只需要等待您的 Ubuntu One 完成它的工作即可),那么您会看到您的终端窗口在快速的滚动着信息(这一幕应该是大家都喜欢感受的场景),您只需要继续等待,保持在线即可,稍过一会儿,您的安装就会完成,您原来的 FireFox 将被替换升级为 FireFox 15。

点击查看原始大图

当 FireFox 15 成为正式版本的时候,它会在后台自动升级,您只要保证经常使用它就可以。

来源:https://linux.cn/article-765-1.html

Linux:Firefox OS 架构简析(1)

  十个月前,LinuxTOY首次报道 Mozilla B2G 系统。现在它已经成长为 Firefox OS,是时候去看看的它的架构了。

  本文脱胎自 B2G 官方 Wiki 页面,略过了其中代码示例的部分。为了方便理解,在部分描述时会跟当下流行的 Android 操作系统进行比较。

女神、壁虎和娃娃

  Firefox OS 从架构上来讲具有了三个层面:

  Gaia(盖亚,大地女神)Firefox OS 的用户界面,包含了在开机之后所有用户能看到部分,比如锁屏、主屏幕、应用程序启动器、拨号器、短信、相机等等作为智能手机必须具备的。Gaia 完全使用 HTML、CSS 和 JavaScript 编写,使用成为标准的 Web API 的接口和底层设备关联。因此,Gaia 可以在任何实现了 Web API 的设备上运行,比如桌面浏览器。Firefox OS 上的第三方程序也是以类似的方式运行并与 Gaia 共存的。

  Gecko(壁虎)Firefox OS 的应用程序运行时环境,用 C++(不知道后期是否会转用 Rust )实现了 Web API,供包括 Gaia 在内的应用程序使用,同时保证 Web API 可以在 Firefox OS 的目标硬件平台上运行。于是乎 Gecko 包含了必要的网络层,图像层、布局管理和 JavaScript 虚拟机以及移植层。

  Gonk(蛋形娃娃)Firefox OS 的操作系统底层,也是 Gecko 的一个目标移植平台,包含 Linux 内核和用户态的硬件抽象层,这一部分和 Android 以及嵌入式 Linux 共享了很多组件和驱动,比如 bluez, libusb 等。说是一个目标移植平台,是由于 Gecko 抽象层在理论上也可以运行在 Android 或者桌面操作系统上,不过由于 Firefox OS 项目主导了 Gonk 开发,可以提供一些其他系统上不具备的接口给 Gecko 使用,比如完整的电话通讯层。

光、信号和起源

  和绝大多数 Android 手机一样,预装 Firefox OS 的手机在开机后也会首先由极小化的 bootloader 实现最初的引导操作,然后链式引导更高级别更复杂的引导器,最终实现内核的加载。这个过程具体如何与设备制造商有关,相应的 bootloader 操作很有可能重用现在各个厂商在 Android 设备上所用的私有 fastboot 协议实现。意味着只要适当调整 Firefox OS 所用的引导器,在 Android 手机上使用现有刷机工具刷入 Firefox OS 在技术上没有障碍

  由于嵌入式领域还比较封闭,这个过程也会加载很可能是设备相关的私有调制解调器固件。于是乎在这个层面上 Firefox OS 和 Android 一样不是开放的。

  紧接的故事就是 Linux 内核的载入和 PID 1 号 init 进程的产生了,和一般嵌入式 Linux 的初始化没有太大差别。这里使用的 Linux 内核会紧随上游,不过也会吸纳厂商通过 Android Open Source Project 提交的一些尚未合并的设备相关代码。内核载入之后的大多数设备访问将通过 sysfs 的方式供用户态程序访问。

爬行动物时代

  在这里,b2g 以主系统进程的形态被 init 进程激活,并通过 RPC 或者 Socket 的方式实现和其他负责诸如网络、无线电等功能的进程通讯。除此之外,b2g 还会通过 dbus-daemon 和 IPDL 这两种特殊的方式实现用户态进程间通讯。

  dbus 不用赘述,用过任意一个现代桌面 Linux 发行版的用户对其都不陌生最近合并入了 systemd 成为其一部分,不过依然可以单独运行IPDL 则是 Mozilla 特有的进程间通讯协议定义语言,允许在 C++ 进程间安全且有组织的传递消息。运行着 libxul.so 的b2g 进程将使用 IPDL 启动一系列内容子进程,上层的网页程序和其他网页内容将在独立的内容子进程中运行,在技术上和现在 Firefox 浏览器的标签页处理类似。

  面对多媒体文件, Gecko 对于 OGG Vorbis 音频, OGG Theora 视频和 WebM 视频这些开放格式将提供原生支持,以后正式发布时为了 WebRTC 引入对 Opus 的支持也是完全有可能的。而对于私有格式将通过 libstagefright 的方式访问私有解码器和实现硬件加速。

感触、表现和尾巴

  Gecko 负责将来自 Gonk 的各种输入事件解析成可供标准网页程序使用的 DOM 事件,包括按键、触屏操作等等,源自标准 Linux 输入设备 input-device。这些来自 Gecko 的 DOM API 由在 C++ 和 JavaScript 之间的外部函数接口和对象模型组成,使用普遍的 XPIDL 规定。

  网络通讯则分别交由 wpasupplicant 和 RIL(Radio Interface Layer) 完成。和桌面 Linux 发行版一样,wpasupplicant 负责 WiFi 环境下的接入,Gecko 为其开发了附属的 WifiWorker.js 供网页程序了解 WiFi 连接状态。RIL 则负责广域网络的通讯,其中负责跟调制解调部分沟通的 rild 很可能是来自制造商的私有代码,rildproxy 则是一个为了安全考虑而设置的中间代理,起到连结 rild 和 b2g 的作用。同样,也有 ril_worker.js 暴露状态和操作接口供上层程序使用。

  和 Android 4.0+ 类似,Gecko 完全使用 OpenGL ES 2.0 实现混合。Gecko 会将页面的各个区域绘制入内存缓冲,然后调用 OpenGL 命令将内容混合并渲染于屏幕上。和 Android 早期借助 skia 实现的软件混合相比,Firebox OS 从一开始就依赖于 GPU 的渲染能力,其效果值得期待。

  在 Gecko 的最底层则是负责和目标系统交互的移植层。在这一部分包含针对不同目标系统的平台相关代码(Gonk,Android,OS X 等),并将其统一化为可供 Gecko 上层子系统使用的 C++ API。

  更多内容敬请期待。

来自:http://linuxtoy.org/archives/firefox-os-architecture-brief-1.html

Linux:Nitrux 图标主题与 Faenza 一样的设计 – 漂亮

我们都喜欢漂亮的桌面,可以通过更换图标主题来实现,Nitrux是一个新的方形图标主题,线条简洁、自然、简单的图标主题。

和Faenza图标主题一样都是方形的,你可以在国外DeviantArt网站上下载该图标主题。

nitrux_os_icons

nitrux_os_icons

nitrux_os_icons

nitrux_os_icons

通过下面的PPA你可以轻松的安装该主题:

sudo add-apt-repository ppa:kokoto-java/omgubuntu-stuff sudo apt-get update sudo apt-get install nitrux-umd

然后使用tweak tool来进行设置,如安装ubuntu-tweak或者MyUnity。

来自:http://imcn.me/html/y2012/12787.html

Linux:Internet Explorer 的创新

IE 曾是 web 创新的先驱,但最近几年因为对 web 标准的支持落后于其他浏览器以及低版本 IE 的各种 bug 而被人诟病。雅虎的 Nicholas C. Zakas 带我们回顾了 IE 在 web 发展过程中扮演的辉煌角色,让我们能以一个更客观的眼光来看待 IE。看完这篇文章,也许大家都会对 IE 浏览器有一定的改观,这也是我翻译这篇文章的目的。

译文

在 Internet Explorer 成为大家都恨之入骨的浏览器的很久以前,它曾是整个互联网的创新驱动力。有时候我们很难记得那些在 IE 6 成为全世界 web 开发者的灾难之前 IE 所作的贡献。不管你信不信,正因为有了 IE 4—6,才会有我们现在所知的 web 开发。IE 的一些独特的功能过去就曾是事实标准,后来成为了官方标准最终进入了 HTML5 规范。人们也许很难相信,对于我们现在认为理所应当的功能中有很大一部分都应该要想到 IE,但快速地回顾一下历史可以让我们知道的确如此。

DOM

如 果 IE 是一个人人都痛恨的浏览器,那么「文档对象模型」(DOM)就是人人都痛恨的 API 了。你可以说 DOM 过于繁琐、不适合 JavaScript 甚至是有些荒谬,而且这些也都没错。然而,DOM 还是给了开发者通过 JavaScript 来访问网页的每个部分的途径。曾经你一度只能通过 JavaScript 访问页面中某些特定的元素。IE 3 和 Netscape 3 只允许程序访问表单元素、图片以及链接。Netscape 4 改进了这一点,把程序可访问的范围通过 document.layers 扩展到了它特有的 layer 元素。IE 4 作了进一步改进,把这个范围通过 document.all 扩展到了页面的所有元素。

从很多方面来说,document.all 算是 document.getElementById() 的最初版本。你还是要使用元素的 ID 来通过 document.all 访问它,例如 document.all.myDiv 或是 document.all[“myDiv”]。最主要的区别就是 IE 使用了一个集合而非方法,而这和其他当时的访问方法比如 document.images 及 document.forms 是相吻合的。

IE 4 也第一个引入了用 document.all.tags() 来通过标签名字获取一个元素列表的功能。无论从哪点来看,这都是 document.getElementsByTagName() 的最初版本,而且工作方式完全相同。如果你想获取所有的 div 元素,你可以使用 document.all.tags(“div”)。甚至在 IE 9 中,这个方法仍然作为 document.getElementsByTagName() 的一个别名存在。

IE 4 同时也为我们引入了可能是有史以来最流行的私有 DOM 扩展:innerHTML。看起来微软的那帮人是认识到了通过编程手段来建立一个 DOM 有多么痛苦,所以把这个便捷方法,连同outerHTML 一起提供给我们。事实证明这两个方法都非常有用,已经在 HTML5 中被标准化了[1]。随它们一同而来的用来处理纯文本的 API——innerText 以及 outerText——同样被证明足够有影响力,因为 DOM Level 3 已经引入了与 innerText 行为相似的 textContent[2]

按照同样的思路,IE 4 引入了 insertAdjacentHTML(),这是又一种将 HTML 插入文档中的方法。虽然这花了更长的时间,但最终也被编入了 HTML5[3],而且目前已被各浏览器广泛支持。

事件

在开始时,JavaScript 并没有事件机制。网景和微软都作出了尝试,并且分别得出了不同的模型。网景给我们带来了事件捕获,其思想是一个事件先发送到窗口,然后是文档,然后一个个直到最终到达预期的目标。网景浏览器 6 以前的版本都仅支持事件捕获。

微 软采取了一个相反的方法,设计出了事件冒泡。他们认为一个事件应该先从实际的目标出发,然后在上层节点触发直到文档。IE 9 以前的浏览器仅支持事件冒泡。虽然随着官方的 DOM 事件规范发展,同时包含了事件捕获和事件冒泡,但大多数 web 开发者都只使用事件冒泡,而把事件捕获仅仅留在 JavaScript 类库中的一些解决方案和小技巧中使用。

除了创造了事件冒泡以外,微软还创造了一系列后来也最终被标准化的额外事件:

  • contextmenu – 当使用鼠标副按键点击一个元素时触发。在 IE 5 中首次出现,后来被编入了 HTML5[4]。现在已被所有主流浏览器所支持。
  • beforeunload – 在 unload 事件前触发,允许你阻断页面的退出。最初由 IE 4 引入,现在也为 HTML5 的一部分[4]
  • mousewheel – 在鼠标滚轮(或类似设备)被使用时触发。首个支持此事件的浏览器是 IE 6。就像其他一样,目前也是 HTML5 的一部分[4]。唯一不支持此事件的主流桌面浏览器是 Firefox(但其支持一个可用来替代的 DOMMouseScroll 事件)。
  • mouseenter – mouseover 的非冒泡版本,被微软在 IE 5 中引入,用来克服 mouseover 使用时带来的困扰。这个事件已被 DOM Level 3 事件规范正规化[5]。同样被 Firefox 及 Opera 支持,但 Safari 和 Chrome 都(暂时?)不支持。
  • mouseleave – 与 mouseenter 对应的 mouseout 的非冒泡版本。在 IE 5 中被引入,目前被 DOM Level 3 事件规范标准化[6]。浏览器支持和 mouseenter 一样。
  • focusin – focus 事件的冒泡版本,用来帮助更好地管理页面上的聚焦行为。最初在 IE 6 中被引入,现在已成为 DOM Level 3 事件规范的一部分[7]。目前没有被很好地支持,尽管 Firefox 关于其实现的开过一个 bug。
  • focusout – blur 事件的冒泡版本,用来帮助更好地管理页面上的聚焦行为。最初在 IE 6 中被引入,现在已成为 DOM Level 3 事件规范的一部分[8]。和 focusin 一样,没有良好支持但 Firefox 接近了。

XML 与 Ajax

尽 管 XML 已经像很多人所料的那样在现今的 web 上被大量使用,但是对 XML 进行支持的领路人仍然是 IE。它是第一个支持在客户端通过 JavaScript 进行 XML 解析以及 XSLT 变换的浏览器。不幸的是,它是通过 ActiveX 对象来表示 XML 文档以及 XSLT 处理器的。但 Mozilla 的人显然认识到了其中的可取之处,因为他们后来用 DOMParser、XMLSerializer 和 XSLTProcessor 创造了类似的功能。其中前两个已经成为了 HTML5 的一部分[9]。虽然基于标准的 JavaScript XML 处理方式和 IE 提供的版本差异较大,但它无疑是深受 IE 影响的。

客户端的 XML 处理都都是 IE 对 XMLHttpRequest 的实现的一部分,最开始由 IE 5 以 ActiveX 对象的形式引入。其中的想法是希望可以在一个网页中从服务器获取一个 XML 文档并且允许用 JavaScript 把这个 XML 当做 DOM 来进行处理。IE 的版本需要你使用 new ActiveXObject(“MSXML2.XMLHttp”),这也使得它依赖于版本字符串,而且让开发者要费尽功夫去测试、使用最新版本。再一次,Firefox 站出来,通过创建一个当时还是私有的、与 IE 版本接口完全同名的 XMLHttpRequest 对象来清理这一片混乱。此后其他浏览器复制了 Firefox 的实现,最终使得 IE 7 也增加了一个不需要使用 ActiveX 的版本。当然,使得每个人为 JavaScript 感到振奋的 Ajax 革命背后的驱动力正是 XMLHttpRequest。

CSS

当 想到 CSS 的时候,你可能不会过多地想到 IE——毕竟它对于 CSS 的支持往往是滞后的(至少直到 IE 10 都是如此)。然而,IE 3 却是第一个实现了 CSS 支持的浏览器。当时,网景正在力推另一个类似的提案:JavaScript 样式表(JSSS)[10]。从名称就可以看出,这个提案用 JavaScript 来定义关于页面的样式信息。Netscape 4 引入了 JSSS 和 CSS,整整比 IE 落后了一个版本。其中对 CSS 的支持并不尽如人意,常常需要将样式翻译为 JSSS 以便应用[11]。这也意味着在 Netscape 4 下,如果 JavaScript 被禁止了,CSS 也无法正常工作。

而那时 IE 对 CSS 的实现仅限于字体族、字号、颜色以及背景,但这个实现却是优质且可用的。与此同时,Netscape 4 的实现却很容易出问题、难以使用。是的,在很小的程度上,IE 导致了 CSS 的成功。

IE 还给我们带来了其他最终被标准化的对 CSS 作的创新:

  • text-overflow – 用来在文字超出容器大小时显示省略号。在 IE 6 中首次出现并已在 CSS3 中被标准化[12]。目前已被各主流浏览器支持。
  • overflow-x 与 overflow-y – 允许你在两个独立的方向上对内容溢出进行控制。这个属性在 IE 5 中首次出现,后在 CSS3 中规范化了[13]。目前已被各主流浏览器支持。
  • word-break – 用来指定词语之间的换行规则。最初在 IE 5.5 中出现,现已被 CSS3 规范化[14]。除 Opera 外的所有主流浏览器均支持。
  • word-wrap – 指定了浏览器是否应该在词语中间换行。在 IE 5.5 中被创造出来,现已被 CSS3 标准化为了 overflow-wrap[15],尽管所有主流浏览器都以 word-wrap 的形式支持它。

另外,许多 CSS3 中新的视觉效果都应该感谢 IE 所奠定的基础。IE 4 引入了私有的 filter 属性,从成为了第一个可以做下面这些事的浏览器:

  • 根据 CSS 的指示来生成渐变(CSS3:渐变)
  • 用 alpha 滤镜来创建半透明元素(CSS3:opacity 以及 RGBA)
  • 将一个元素旋转任意的角度(CSS3:用 transform 配合 rotate())
  • 为一个元素应用阴影(CSS3:box-shadow)
  • 为一个元素应用一个矩阵变换(CSS3:用 transform 配合 matrix())

除此之外,IE 4 有一个被称为「过渡」的功能,它允许你用滤镜创建一些基本的动画。这个功能主要是基于通常在 PowerPoint 中可用的过渡功能,例如淡入或淡出、棋盘变换等等[16]

所有这些功能都以某种方式成为了 CSS3 的主要功能。在 1997 年发布的 IE 4 就有了这些功能,而我们现在才开始在其他浏览器中享受到这些功能,实在是很惊人的。

其他对 HTML5 的贡献

HTML5 中很大一部分都来自 IE 及其引入的 API。这里有一些本文之前还没提到过的内容:

  • 拖放 – HTML5 中最酷的部分之一就是原生的拖放功能[17]。这个 API 源自 IE 5,而且在 HTML5 中已有描述,且变化非常小。主要的区别是增加了 draggable 属性来把任意元素标记为可拖放的(IE 用了一个 JavaScript 调用——element.dragDrop() 来做这件事)。除此之外,这个 API 与原始版本近乎相同,目前已被各主流桌面浏览器所支持。
  • 剪贴板的访问 – 现在已从 HTML5 中分离出了自己的规范[18],赋予了浏览器在某些情况下访问剪贴板的能力。这个 API 最初出现在 IE 6 中,随后被 Safari 模仿,它将 clipboardData 从 window 对象中取了出来,放到了剪贴板事件的 event 对象中。Safari 的改动被保留为 HTML5 版本的一部分,而且剪贴板的访问在所有除 Opera 以外的主流浏览器中也都已被支持。
  • 富文本编辑 – 用 designMode 进行富文本编辑是在 IE 4 中被引入的,因为微软希望给 Hotmail 用户们一个更好的文本编辑体验。后来,在 IE 5.5 引入了 contentEditable,以用作一个更轻量级的进行富文本编辑的方法。随之而来的是可怕的 execCommand() 方法以及它的一些附属方法。不论好坏,这个富文本编辑的 API 已在 HTML5 中被标准化[19],而且目前已经被所有主流桌面浏览器以及移动 Safari 和 Android 浏览器所支持。

结论

尽管嘲笑 IE 很简单也很流行,但事实上,如果不是它所作的贡献,我们不会拥有我们目前所知的 web。如果没有 XMLHttpRequest 和 innerHTML web 会怎样?它们正是 web 应用的 Ajax 革命的催化剂,许多新的功能都是基于它们构建的。可笑的是当我们回望这个已经成为互联网上的「坏小子」的浏览器的历史,会发现没有它,我们不会处在今天所在的位置。

是 的,IE 自身有瑕疵,但对于互联网的历史的绝大部分时间,它都是推动技术进步的浏览器。现在我们处在一个大规模浏览器竞争以及创新的时代,却很容易忘记我们从哪里 一路走来。所以当你下次遇见正在做 IE 相关工作的人时,请别投去羞辱和番茄。相反,要谢谢他们帮助 IE 一路走到今天,也使 web 开发者成为世界上最重要的工作之一。

参考文档

  1. innerHTML in HTML5
  2. textContent in DOM Level 3
  3. insertAdjacentHTML() in HTML5
  4. Event Handlers on Elements (HTML5)
  5. mouseenter (DOM Level 3 Events)
  6. mouseleave (DOM Level 3 Events)
  7. focusin (DOM Level 3 Events)
  8. focusout (DOM Level 3 Events)
  9. DOMParser interface (HTML5)
  10. JavaScript Style Sheets (Wikipedia)
  11. The CSS Saga by Håkon Wium Lie and Bert Bos
  12. text-overflow property (CSS3 UI)
  13. overflow-x and overflow-y (CSS3 Box)
  14. word-break (CSS3 Text)
  15. overflow-wrap/word-wrap (CSS3 Text)
  16. Introduction to Filters and Transitions (MSDN)
  17. Drag and Drop (HTML5)
  18. Clipboard API and Events (HTML5)
  19. User Interaction – Editing (HTML5)

原文:The innovations of Internet Explorer

译者:Justice

Linux:5个最佳免费Linux杀毒软件

  Linux的防病毒软件,开玩笑吧?Linux不是很安全吗?很多Linux新手都这样认为,看到标题不要犹豫,读完全文你就会从中找到答案。

  首先,Linux比其它操作系统更稳定更安全。理论上Linux是有可能被病毒侵害的。但实际上 Linux机器几乎不可能遭受病毒的攻击。所以我这里的问题是为什么要为Linux准备防病毒软件,为了更好理解,我准备了以下理由:

Linux平台安装杀毒软件的原因:

  • 从Linux平台扫描Windows驱动
  • 通过网络扫描Windows工作站
  • 在Linux服务器中扫描接收和发送的邮件
  • 扫描发送给其它机器的重要文件

  下面向你推荐最好的免费的Linux平台杀毒软件:

1、ClamAV 杀毒

  ClamAV 杀毒是Linux平台最受欢迎的杀毒软件,ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix、MAC OS X、Windows、OpenVMS。ClamAV是基于病毒扫描的命令行工具,但同时也有支持图形界面的ClamTK工具。ClamAV主要用于邮件服 务器扫描邮件。它有多种接口从邮件服务器扫描邮件,支持文件格式有如:ZIP、RAR、TAR、GZIP、BZIP2、HTML、DOC、PDF,、 SIS CHM、RTF等等。ClamAV有自动的数据库更新器,还可以从共享库中运行。命令行的界面让ClamAV运行流畅,你不必以后台进程的方式运行,当你 想扫描时只需输入扫描命令指定文件或目录就行,更多信息点击这里

2、Avast  Linux 家庭版

  对于你的计算机来说,Avast是最好的防病毒解决方案之一。Avast Linux家庭版是免费的,只能用户家庭或者非商业用途。简单易用的用户界面和其它特性使得Avast变得逐渐流行起来,同样支持GUI和命令行两种工 具。所有用户都能轻松地操作,因为它有简单界面(初级用户)高级界面(高级用户),Avast有以下一些特性:自动更新、内置邮件扫描器等,你可以从这个网址找到更多信息。

3、Avria

  另一个Linux下最好的杀毒软件是Avria免费杀毒版,Avria提供可扩展配置,控制你的计算机成为可能。它有一些很强大的特性,例如:简单的脚本安装方式、命令行扫描器、自动更新(产品、引擎、VDF)、自我完整性程序检查等等。你可以从这个PDF中找到更多关于安装和特性的信息。

4、AVG 免费版杀毒

  现在有超过10亿用户使用AVG杀毒,同样是Linux机器中不错的杀毒专家,免费版提供的特性比高级版要少。AVG目前还不支持图形界面。提供防 病毒和防间谍工具,AVG运行速度很快,占用系统资源很少,支持主流Linux版本如:Debian、Ubuntu、Red hat、Cent OS、FreeBSD等等,更多信息可查看它的特性下载页面。

5、F-PROT 杀毒

  F-PORT属于Linux用户中的一种新的杀毒解决方案,对家庭用户免费。它有使用克龙(cron)工具的任务调度的特性,能在指定时间执行扫描 任务。同时它还可以扫描USB HDD、Pendrive、CD-ROM、网络驱动、指定文件或目录、引导区病毒扫描、镜像。更多信息你可以查看F-PORT的特性页面,可以从这里下载。

  从以上讨论中可看出,每种杀毒软件都有它自己的特性,有些支持良好的图形界面,有些更适合命令行扫描,根据这些特性选择一款最适合你自己的吧!

原文:http://isystemadmin.com/five-best-free-antivirus-for-linux

译文:http://blog.jobbole.com/23304/

Linux:每个开发人员都应该知道的8个Linux命令

  每个开发人员到了他们职业人生的某个阶段的时候,将会发现自己要寻找有关Linux的信息。我并不是这方面的专家。但是掌握了以下8个命令,我几乎可以得到我任何需要的东西。

  注意:以下的命令都有很多扩展的文档,博客里提出的知识我最常用的命令,用法。如果你不了解Linux命令,这个帖子会给你一点指导。

  我们以一些文本举例。假设我们有2个文件,里面有订单关于第三方的放置地点和发送回应。

order.out.log8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

order.in.log8:22:20 111, Order Complete 8:23:50 112, Order sent to fulfillment 8:24:20 113, Refund sent to processing

cat

http://linux.about.com/od/commands/l/blcmdl1_cat.htm

–追加文件并在标准输出上打印

jfields$ cat order.out.log 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

正如他的名字所说的,你可以串联多个文件

jfields$ cat order.* 8:22:20 111, Order Complete 8:23:50 112, Order sent to fulfillment 8:24:20 113, Refund sent to processing 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

看到效果了,但我们可以提高其可读性。

sort

http://linux.about.com/library/cmd/blcmdl1_sort.htm

–对文本文件进行行排序,这里使用排序是不错的选择

jfields$ cat order.* | sort 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:22:20 111, Order Complete 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99 8:23:50 112, Order sent to fulfillment 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing

上面显示了我们想要看到的效果,但是这只是小文件。而真实的数据是很大的,有些是你不想要的数据怎么办?

grep

http://linux.about.com/od/commands/l/blcmdl1_grep.htm

grep, egrep, fgrep–进行匹配输出

假设我只关心给PofEAA的订单,使用grep就可以做到。

jfields$ cat order.* | sort | grep Patterns 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

假设订单113里面发生了一些问题,你想看到关于113的所有订单信息。没错,grep能帮你。

jfields$ cat order.* | sort | grep “:\d\d 113, ” 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:20 113, Refund sent to processing

你会发现在表达式里面不止有113,这是因为113也可能出现在价格里面,或者产品里面,这样做是严格限制其查找结果。

现在我们已经发出退货订单的信息,我们每日也要给会计发送销售统计。他们要求每个PofEAA的项目,但他们只关心数量和价格,我们要把 不需要的部分删减掉。

cut

http://linux.about.com/od/commands/l/blcmdl1_cut.htm

–从文件的每一行删除一部分

还是要先使用grep。

jfields$ cat order.* | sort | grep Patterns 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 jfields$ cat order.* | sort | grep Patterns | cut -d”,” -f2,5 1, 39.99 -1, 39.99

我们已经减少了数据,让会计一目了然。

假设会计想要把订单ID做为参考,把它放在每一行的最后,并用单引号。

sed

http://linux.about.com/od/commands/l/blcmdl1_sed.htm

–流编辑器。用来处理文本转换。

下面的示例演示怎样使用它来做到我们想要的数据。

jfields$ cat order.* | sort | grep Patterns \ >| sed s/”[0-9\:]* \([0-9]*\)\, \(.*\)”/”\2, ‘\1′”/ 1, Patterns of Enterprise Architecture, Kindle edition, 39.99, ’111′ -1, Patterns of Enterprise Architecture, Kindle edition, 39.99, ’113′ lmp-jfields01:~ jfields$ cat order.* | sort | grep Patterns \ >| sed s/”[0-9\:]* \([0-9]*\)\, \(.*\)”/”\2, ‘\1′”/ | cut -d”,” -f1,4,5 1, 39.99, ’111′ -1, 39.99, ’113′

这是一个正则表达式,但没什么复杂的。做以下事情

1.删除时间 2.捕获订单号 3.删除逗号和订单号后面的空格 4.捕获此行的其余部分

一旦我们看到了我们需要的数据,可以使用\1&\2让输出数据符合我们的格式要求。

uniq

http://linux.about.com/library/cmd/blcmdl_uniq.htm

–去除重复行

下面的示例演示如何grep的唯一相关的交易,削减不必要的信息,并获得计数。

jfields$ cat order.out.log | grep “\(Kindle\|Hardcover\)” | cut -d”,” -f3 | sort | uniq -c 1 Joy of Clojure 2 Patterns of Enterprise Architecture

jfields$ cat order.out.log | grep “\(Kindle\|Hardcover\)” | cut -d”,” -f3 | sort | uniq Joy of Clojure Patterns of Enterprise Architecture

find

http://linux.about.com/od/commands/l/blcmdl1_find.htm

–在目录里找文件

假设这2个文本文件存在于我们的主目录,我们不必知道他们的全名。

jfields$ find /Users -name “order*” Users/jfields/order.in.log Users/jfields/order.out.log

当然还有很多选项,但99%的情况下我这么做。

less

http://linux.about.com/library/cmd/blcmdl1_less.htm

–在一个文件里面向前向后移动

让我们回到最简单的cat|sort的例子。你可以向前搜索使用”/”,向后使用”?”,2者都可以使用正则表达式。

jfields$ cat order* | sort | less

你可以试试/113.*,这将突出显示订单113。你可以使用?.*112,也将突出显示订单112,你可以用’q’退出。

Linux命令很丰富,有些人很头疼。这几个命令应该能帮你完成大部分的文本工作,不用交到你的脚本语言手里。

原文:8 Linux Commands Every Developer Should Know

译文:http://www.daidata.com/archives/1635

Linux:Ubuntu下运行Open WebOS

惠普放出了webOS开源首个测试版,这次发布的测试版有两个版本,其中有个可运行在Ubuntu上的版本。官方说明能在Ubuntu11.04和12.04的32位下正常运行,暂且不支持其他桌面版和Server版。

 

webos

安装:(查看官方说明

1.安装一些依赖关系,官方说明给出了所需的依赖。

sudo apt-get update

sudo apt-get install git git-core pkg-config make autoconf \ libtool g++ tcl unzip libyajl-dev libyajl1 qt4-qmake \ libsqlite3-dev curl

sudo apt-get install gperf bison libglib2.0-dev libssl-dev \ libxi-dev libxrandr-dev libxfixes-dev libxcursor-dev \ libfreetype6-dev libxinerama-dev libgl1-mesa-dev \ libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev \ flex libicu-dev

sudo apt-get install libboost-system-dev libboost-filesystem-dev \ libboost-regex-dev libboost-program-options-dev liburiparser-dev \ libc-ares-dev libsigc++-2.0-dev libglibmm-2.4-dev libdb4.8-dev \ libcurl4-openssl-dev

sudo apt-get build-dep qt4-qmake

2.下载open webos desktop版的源码:

git clone https://github.com/openwebos/build-desktop.git

如果没有安装git,首先安装git。

sudo apt-get install git

3.编译安装OpenwebOS

进入build-desktop文件夹(cd build-desktop)执行:

./build-webos-desktop.sh

整个过程需要保证网络连接,编译时间很长,耐心等待(编译完大约占2.4G多的空间)

编译后安装OpenwebOS:

sudo ./install-webos-desktop.sh

可以用以下命令删除:

sudo ./install-webos-desktop.sh remove

4.运行webOS

保持在build-desktop文件夹下,启动相应的服务:

./service-bus.sh start

./service-bus.sh services

初次运行需要进行初始化:

./service-bus.sh init

运行webOS:

./run-luna-sysmgr.sh

关闭相应的服务:

./service-bus.sh stop

至此,OpenwebOS已在Ubuntu下运行了。

点击查看原始大图

来自:http://www.dreamsky.me/html/2458.html

Linux:Sublime Text 2 设置文件详解

Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章推荐插件的文章也不少,而且很不错,大家可以去找找自己需要的。而且 Linux 支持也做的非常好。

之前想设置什么都是直接在网上搜,但最近想调行距,这个把我给难住了,软件上的设置没找到,网上搜也没有,最后的最后在Sublime的官方论坛找到了,个人觉得行距还是很影响视觉体验的,看看下面的对比图就知道了:

Sublime Text 2 设置文件详解

看来想驾驭好这软件不弄清楚配置文件是不行了,周末找了时间把配置文件的每条配置信息都加上了中文注释,现在贴出来和大家共享,里面有解释不清楚的也欢迎大家伙来互相讨论:)

另外,这也是我的第一篇博客,以后我会多写些前端方面的文章和大家共享,欢迎一起讨论:)

Preferences.sublime-settings文件:

// While you can edit this file, it’s best to put your changes in // “User/Preferences.sublime-settings”, which overrides the settings in here. // // Settings may also be placed in file type specific options files, for // example, in Packages/Python/Python.sublime-settings for python files. { // Sets the colors used within the text area // 主题文件的路径 “color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,

// Note that the font_face and font_size are overriden in the platform // specific settings file, for example, “Preferences (Linux).sublime-settings”. // Because of this, setting them here will have no effect: you must set them // in your User File Preferences. // 设置字体和大小,必须在Settings-User里重写,这里设置没有任何效果 “font_face”: “Consolas”, “font_size”: 12,

// Valid options are “no_bold”, “no_italic”, “no_antialias”, “gray_antialias”, // “subpixel_antialias” and “no_round” (OS X only) // 字体选项:no_bold不显示粗体字,no_italic不显示斜体字,no_antialias和no_antialias关闭反锯齿 // subpixel_antialias和no_round是OS X系统独有的 “font_options”: [],

// Characters that are considered to separate words // 在文字上双击会全选当前的内容,如果里面出现以下字符,就会被截断 “word_separators”: “./\\()\”‘-:,.;<>~!@#$%^&*|+=[]{}`~?”,

// Set to false to prevent line numbers being drawn in the gutter // 是否显示行号 “line_numbers”: true,

// Set to false to hide the gutter altogether // 是否显示行号边栏 “gutter”: true,

// Spacing between the gutter and the text // 行号边栏和文字的间距 “margin”: 4,

// Fold buttons are the triangles shown in the gutter to fold regions of text // 是否显示代码折叠按钮 “fold_buttons”: true,

// Hides the fold buttons unless the mouse is over the gutter // 不管鼠标在不在行号边栏,代码折叠按钮一直显示 “fade_fold_buttons”: true,

// Columns in which to display vertical rulers //列显示垂直标尺,在中括号里填入数字,宽度按字符计算 “rulers”: [],

// Set to true to turn spell checking on by default // 是否打开拼写检查 “spell_check”: false,

// The number of spaces a tab is considered equal to // Tab键制表符宽度 “tab_size”: 4,

// Set to true to insert spaces when tab is pressed // 设为true时,缩进和遇到Tab键时使用空格替代 “translate_tabs_to_spaces”: false,

// If translate_tabs_to_spaces is true, use_tab_stops will make tab and // backspace insert/delete up to the next tabstop // translate_tabs_to_spaces设置为true,Tab和Backspace的删除/插入作用于制表符宽度 // 否则作用于单个空格 “use_tab_stops”: true,

// Set to false to disable detection of tabs vs. spaces on load // false时禁止在载入的时候检测制表符和空格 “detect_indentation”: true,

// Calculates indentation automatically when pressing enter // 按回车时,自动与制表位对齐 “auto_indent”: true,

// Makes auto indent a little smarter, e.g., by indenting the next line // after an if statement in C. Requires auto_indent to be enabled. //针对C语言的 “smart_indent”: false,

// Adds whitespace up to the first open bracket when indenting. Requires // auto_indent to be enabled. // 需要启用auto_indent,第一次打开括号缩进时插入空格?(没测试出来效果…) “indent_to_bracket”: true,

// Trims white space added by auto_indent when moving the caret off the // line. // 显示对齐的白线是否根据回车、tab等操作自动填补 “trim_automatic_white_space”: true,

// Disables horizontal scrolling if enabled. // May be set to true, false, or “auto”, where it will be disabled for // source code, and otherwise enabled. // 是否自动换行,如果选auto,需要加双引号 “word_wrap”: false,

// Set to a value other than 0 to force wrapping at that column rather than the // window width // 设置窗口内文字区域的宽度 “wrap_width”: 0,

// Set to false to prevent word wrapped lines from being indented to the same // level // 防止被缩进到同一级的字换行 “indent_subsequent_lines”: true,

// Draws text centered in the window rather than left aligned // 如果没有定义过,则文件居中显示(比如新建的文件) “draw_centered”: false,

// Controls auto pairing of quotes, brackets etc // 自动匹配引号,括号等 “auto_match_enabled”: true,

// Word list to use for spell checking // 拼写检查的单词列表路径 “dictionary”: “Packages/Language – English/en_US.dic”,

// Set to true to draw a border around the visible rectangle on the minimap. // The color of the border will be determined by the “minimapBorder” key in // the color scheme // 代码地图的可视区域部分是否加上边框,边框的颜色可在配色方案上加入minimapBorder键 “draw_minimap_border”: false,

// If enabled, will highlight any line with a caret // 突出显示当前光标所在的行 “highlight_line”: false,

// Valid values are “smooth”, “phase”, “blink”, “wide” and “solid”. // 设置光标闪动方式 “caret_style”: “smooth”,

// Set to false to disable underlining the brackets surrounding the caret // 是否特殊显示当前光标所在的括号、代码头尾闭合标记 “match_brackets”: true,

// Set to false if you’d rather only highlight the brackets when the caret is // next to one // 设为false时,只有光标在括号或头尾闭合标记的两端时,match_brackets才生效 “match_brackets_content”: true,

// Set to false to not highlight square brackets. This only takes effect if // match_brackets is true // 是否突出显示圆括号,match_brackets为true生效 “match_brackets_square”: false,

// Set to false to not highlight curly brackets. This only takes effect if // match_brackets is true // 是否突出显示大括号,match_brackets为true生效 “match_brackets_braces”: false,

// Set to false to not highlight angle brackets. This only takes effect if // match_brackets is true // 是否突出显示尖括号,match_brackets为true生效 “match_brackets_angle”: false,

// Enable visualization of the matching tag in HTML and XML // html和xml下突出显示光标所在标签的两端,影响HTML、XML、CSS等 “match_tags”: true,

// Highlights other occurrences of the currently selected text // 全文突出显示和当前选中字符相同的字符 “match_selection”: true,

// Additional spacing at the top of each line, in pixels // 设置每一行到顶部,以像素为单位的间距,效果相当于行距 “line_padding_top”: 1,

// Additional spacing at the bottom of each line, in pixels // 设置每一行到底部,以像素为单位的间距,效果相当于行距 “line_padding_bottom”: 1,

// Set to false to disable scrolling past the end of the buffer. // On OS X, this value is overridden in the platform specific settings, so // you’ll need to place this line in your user settings to override it. // 设置为false时,滚动到文本的最下方时,没有缓冲区 “scroll_past_end”: true,

// This controls what happens when pressing up or down when on the first // or last line. // On OS X, this value is overridden in the platform specific settings, so // you’ll need to place this line in your user settings to override it. // 控制向上或向下到第一行或最后一行时发生什么(没明白也没试出来) “move_to_limit_on_up_down”: false,

// Set to “none” to turn off drawing white space, “selection” to draw only the // white space within the selection, and “all” to draw all white space // 按space或tab时,实际会产生白色的点(一个空格一个点)或白色的横线(tab_size设置的制表符的宽度),选中状态下才能看到 // 设置为none时,什么情况下都不显示这些点和线 // 设置为selection时,只显示选中状态下的点和线 // 设置为all时,则一直显示 “draw_white_space”: “selection”,

// Set to false to turn off the indentation guides. // The color and width of the indent guides may be customized by editing // the corresponding .tmTheme file, and specifying the colors “guide”, // “activeGuide” and “stackGuide” // 制表位的对齐白线是否显示,颜色可在主题文件里设置(guide,activeGuide,stackGuide) “draw_indent_guides”: true,

// Controls how the indent guides are drawn, valid options are // “draw_normal” and “draw_active”. draw_active will draw the indent // guides containing the caret in a different color. // 制表位的对齐白线,draw_normal为一直显示,draw_active为只显示当前光标所在的代码控制域 “indent_guide_options”: [“draw_normal”],

// Set to true to removing trailing white space on save // 为true时,保存文件时会删除每行结束后多余的空格 “trim_trailing_white_space_on_save”: false,

// Set to true to ensure the last line of the file ends in a newline // character when saving // 为true时,保存文件时光标会在文件的最后向下换一行 “ensure_newline_at_eof_on_save”: false,

// Set to true to automatically save files when switching to a different file // or application // 切换到其它文件标签或点击其它非本软件区域,文件自动保存 “save_on_focus_lost”: false,

// The encoding to use when the encoding can’t be determined automatically. // ASCII, UTF-8 and UTF-16 encodings will be automatically detected. // 编码时不能自动检测编码时,将自动检测ASCII, UTF-8 和 UTF-16 “fallback_encoding”: “Western (Windows 1252)”,

// Encoding used when saving new files, and files opened with an undefined // encoding (e.g., plain ascii files). If a file is opened with a specific // encoding (either detected or given explicitly), this setting will be // ignored, and the file will be saved with the encoding it was opened // with. // 默认编码格式 “default_encoding”: “UTF-8″,

// Files containing null bytes are opened as hexadecimal by default // 包含空字节的文件被打开默认为十六进制 “enable_hexadecimal_encoding”: true,

// Determines what character(s) are used to terminate each line in new files. // Valid values are ‘system’ (whatever the OS uses), ‘windows’ (CRLF) and // ‘unix’ (LF only). // 每一行结束的时候用什么字符做终止符 “default_line_ending”: “system”,

// When enabled, pressing tab will insert the best matching completion. // When disabled, tab will only trigger snippets or insert a tab. // Shift+tab can be used to insert an explicit tab when tab_completion is // enabled. // 设置为enabled时,在一个字符串间按Tab将插入一个制表符 // 设置为true时,按Tab会根据前后环境进行代码自动匹配填补 “tab_completion”: true,

// Enable auto complete to be triggered automatically when typing. // 代码提示 “auto_complete”: true,

// The maximum file size where auto complete will be automatically triggered. // 代码提示的大小限制 “auto_complete_size_limit”: 4194304,

// The delay, in ms, before the auto complete window is shown after typing // 代码提示延迟显示 “auto_complete_delay”: 50,

// Controls what scopes auto complete will be triggered in // 代码提示的控制范围 “auto_complete_selector”: “source – comment”,

// Additional situations to trigger auto complete // 触发代码提示的其他情况 “auto_complete_triggers”: [ {“selector”: “text.html”, “characters”: “<"} ],

// By default, auto complete will commit the current completion on enter. // This setting can be used to make it complete on tab instead. // Completing on tab is generally a superior option, as it removes // ambiguity between committing the completion and inserting a newline. // 设为false时,选择提示的代码按回车或点击可以输出出来,但选择true时不会输出而是直接换行 “auto_complete_commit_on_tab”: false,

// Controls if auto complete is shown when snippet fields are active. // Only relevant if auto_complete_commit_on_tab is true. // auto_complete_commit_on_tab必须为true,控制代码提示的活跃度(没明白…) “auto_complete_with_fields”: false,

// By default, shift+tab will only unindent if the selection spans // multiple lines. When pressing shift+tab at other times, it’ll insert a // tab character – this allows tabs to be inserted when tab_completion is // enabled. Set this to true to make shift+tab always unindent, instead of // inserting tabs. // 设置为false,使用Shift + tab总是插入制表符 “shift_tab_unindent”: true,

// If true, the selected text will be copied into the find panel when it’s // shown. // On OS X, this value is overridden in the platform specific settings, so // you’ll need to place this line in your user settings to override it. // 选中的文本按Ctrl + f时,自动复制到查找面板的文本框里 “find_selected_text”: true,

// // User Interface Settings //

// The theme controls the look of Sublime Text’s UI (buttons, tabs, scroll bars, etc) // Data\Packages\Theme – Default\Default.sublime-theme控制软件的主题 “theme”: “Default.sublime-theme”,

// Set to 0 to disable smooth scrolling. Set to a value between 0 and 1 to // scroll slower, or set to larger than 1 to scroll faster // 滚动的速度 “scroll_speed”: 1.0,

// Controls side bar animation when expanding or collapsing folders // 左边边栏文件夹动画 “tree_animation_enabled”: true, // 标签页的关闭按钮 “show_tab_close_buttons”: true,

// OS X 10.7 only: Set to true to disable Lion style full screen support. // Sublime Text must be restarted for this to take effect. // 针对OS X “use_simple_full_screen”: false,

// Valid values are “system”, “enabled” and “disabled” // 水平垂直滚动条:system和disabled为默认显示方式,enabled为自动隐藏显示 “overlay_scroll_bars”: “system”,

// // Application Behavior Settings //

// Exiting the application with hot_exit enabled will cause it to close // immediately without prompting. Unsaved modifications and open files will // be preserved and restored when next starting. // // Closing a window with an associated project will also close the window // without prompting, preserving unsaved changes in the workspace file // alongside the project. // 热推出功能!退出时不会提示是否保存文件,而是直接退出 // 下次打开软件时,文件保持退出前的状态,没来得及保存的内容都在,但并没有真实的写在原文件里 “hot_exit”: true,

// remember_open_files makes the application start up with the last set of // open files. Changing this to false will have no effect if hot_exit is // true // 软件使用最后的设定打开文件,hot_exit为true时没有效果 “remember_open_files”: true,

// OS X only: When files are opened from finder, or by dragging onto the // dock icon, this controls if a new window is created or not. // 针对OS X “open_files_in_new_window”: true,

// Set to true to close windows as soon as the last file is closed, unless // there’s a folder open within the window. This is always enabled on OS X, // changing it here won’t modify the behavior. // 针对OS X “close_windows_when_empty”: true, // 哪些文件会被显示到边栏上 // folder_exclude_patterns and file_exclude_patterns control which files // are listed in folders on the side bar. These can also be set on a per- // project basis. “folder_exclude_patterns”: [“.svn”, “.git”, “.hg”, “CVS”], “file_exclude_patterns”: [“*.pyc”, “*.pyo”, “*.exe”, “*.dll”, “*.obj”,”*.o”, “*.a”, “*.lib”, “*.so”, “*.dylib”, “*.ncb”, “*.sdf”, “*.suo”, “*.pdb”, “*.idb”, “.DS_Store”, “*.class”, “*.psd”, “*.db”], // These files will still show up in the side bar, but won’t be included in // Goto Anything or Find in Files “binary_file_patterns”: [“*.jpg”, “*.jpeg”, “*.png”, “*.gif”, “*.ttf”, “*.tga”, “*.dds”, “*.ico”, “*.eot”, “*.pdf”, “*.swf”, “*.jar”, “*.zip”],

// List any packages to ignore here. When removing entries from this list, // a restart may be required if the package contains plugins. // 删除你想要忽略的插件,需要重启 “ignored_packages”: [“Vintage”] }

来自:http://hp.dewen.org/?p=1361