实用的Linux/Unix快捷键大汇总

实用的Linux/Unix快捷键大汇总,近期在工作中发现,许多同事,尤其是我们的开发者,基本不会用Linux/unix下的快捷方式,严重影响工作效率,所以特撰写此文,每个用法后我会详细注释。

下述所有命令在Linux/unix的shell下有效,这里以bash为主。如有出入,以你自己的服务器为准。本文所指的Linux主要指RHEL/CentOS,unix指的是FreeBSD,这也是服务器中用得最多的版本。

Ctrl + a 切换到命令行开始

这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。 Continue reading 实用的Linux/Unix快捷键大汇总

为什么Linux到现在也不能双击安装软件

看最近互联网上的评论,有一位仁兄矢志不渝的重复“世界上最差的系统就是linux,双击不能安装软件”,而对于该评论的观点众多,但是真正正确的确极少。综合来看,广大网友尤其是喜欢评论的盆友对Linux理解的还比较少,而且很多都是跟Windows做比较(当然这里我承认高手也大有人在),所以我想在这里有必要说一下为什么Linux到现在也不能做到双击安装软件。

首先要说一下,很多Linux的发行版例如Ubuntu或者CentOS、Fedora等,已经早就可以双击安装自己发行版的安装包了,例如deb、rpm等。
那么为什么现在大部分软件还是需要下载一个tar.gz然后./configure/make/make install繁琐的命令安装呢?

其实,Linux下跟Windows的软件发布有一个最大的不同就是Linux下大部分软件都是开源的,只提供源码下载,不提供编译好的二进制下载。所以,上面的三个命令实际上是编译一个软件,然后拷贝到系统对应目录,准确来说不是安装。

但是为什么非要这三个命令,而不是双击之后自动执行上述三个命令呢? Continue reading 为什么Linux到现在也不能双击安装软件

在Centos上安装独立运行的subversion

市面上大多是使用Apache来建立一个仓库,但是,不用apache的项目其实是很多的,所以建立一个独立运行的Subversion仓库是很有必要的,建立一个独立运行的Subversion仓库相当简单,几步操作就可以完成。

首先当然是安装:
yum install subversion

接下来创建一个系统用户并修改它的口令:
useradd svn
passwd svn

然后我们切换到这个用户,创建仓库目录:
su svn
cd
mkdir repositories

对仓库目录进行初始化,创建第一个项目:
cd repositories
svnadmin create myproject

然后,让我们修改一下这个项目的参数,将conf目录中的svnserve.conf配置文件中被注释掉的两项修改如下,很显然,第一项的意思是允许验证用户写入,第二项的意思是指定密码验证方式:
auth-access = write
password-db = passwd

然后我们添加用户,修改conf目录下的passwd文件就可以了,这个文件中,用户名和密码都是明文的,例如我们添加一个用户gfw,密码是fuckfbx,格式应该如下:
[users]
gfw = fuckfbx

然后就很简单了,运行这行命令,或者将这行命令加入rc.local以便开机启动:
svnserve -d -r /home/svn/repositories

在Solaris10上使用VNC

可以去sunfreware下载二进制包,或者去www.realvnc.com下载一个免费版本的来安装,安装几乎没有任何难度。

启动vncserver的时候,由于没有设置可执行文件的Bin路径,会提示找不到相关可执行文件,需要进行link

系统环境solaris 10-u6
$ su
# bash
# vnc
vncconfig vncpasswd vncserver vncviewer
# vncserver
vncserver: couldn’t find “xauth” on your PATH.
# ln -s /usr/openwin/bin/xauth /usr/bin/xauth
# vncserver
vncserver: couldn’t find “xauth” on your PATH.
# ln -s /usr/X11/bin/Xvnc /usr/bin/Xvnc
# vncpasswd
Password:
Verify:
#vncserver

使用负载均衡技术建设高负载的网络站点

Internet的快速增长使多媒体网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如 Yahoo每天会收到数百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、 I/O处理能力很快会成为瓶颈。

简单的提高硬件性能并不能真正解决这个问题,因为单台服务器的性能总是有限的,一般来讲,一台PC服务器所能提供的并发访问处理能力大约为1000个,更 为高档的专用服务器能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求。尤其是网络请求具有突发性,当某些重大事件发生 时,网络访问就会急剧上升,从而造成网络瓶颈,例如在网上发布的克林顿弹劾书就是很明显的例子。必须采用多台服务器提供网络服务,并将网络请 求分配给这些服务器分担,才能提供处理大量并发服务的能力。

当使用多台服务器来分担负载的时候,最简单的办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台 用于提供游戏页面;或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等需要大量消耗资源的动态页面访问。然而 由于网络访问的突发性,使得很难确定那些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大浪费。事实上造成负载过大的页面常常是在变化中的, 如果要经常按照负载变化来调整页面所在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方向的调整,对于大负载的网站,根本的解 决办法还需要应用负载均衡技术。

负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部 发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使 用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。 Continue reading 使用负载均衡技术建设高负载的网络站点

CentOS称RHEL 6.1发布不会影响CentOS 6进度

在RHEL 6.1发布之后,CentOS团队也第一时间得知了这个消息。很多CentOS的关注者担心这次的新发布是否会影响CentOS 6的进度,因为RHEL 6在2010年11月发布,至今已经经过了6个月的时间,而CentOS 6迟迟没有发布,让CentOS的关注者们十分担心。

RHEL 6.1发布的当天,CentOS管理组的Karanbir Singh在其博客上表示,RHEL 6.1的发布不会影响CentOS的现有开发进度。团队将仍然按照计划先推出CentOS 6,然后再进行CentOS 6.1的工作。Karanbir表示CentOS 6将在未来的数个星期内发布,而之后的CentOS 6.1只需要几个星期的时间,因为目前CentOS 6的开发branch的自动化和测试流程已经基本完善。

Karanbir还表示,如果这段时间内RHEL 5.7发布了,那么也没有关系,因为CentOS 5的进程和CentOS 6的进程已经完全分离,各自进行,互相之间不会形成干扰。

这对于期待CentOS 6的朋友们无疑是个好消息!感谢CentOS团队无私的奉献。

 

微软 Hyper-V 软件将支持 CentOS

虽然长期以来微软一直是Linux社区的公敌,但如今软件巨人却试图拓展一直由Linux统治的Web server市场。

今天微软宣布它的虚拟化软件Hyper-V将正式支持CentOS Linux,即基于RHEL的社区发行版。用户可以使用最新版本的 CentOS 部署微软的 Hyper-V 系统。CentOS 是第三个正式支持微软 Hyper-V 的 Linux操作系统,另外两个是 Red Hat Enterprise Linux 和 Suse Linux Enterprise Server。

微软现在也注意到CentOS在Web服务器市场的受欢迎程度,它宣布Windows Server2008 R2 Hyper-V将能运行CentOS,以巩固服务器合作伙伴的信心,降低在Windows Server Hyper-V上Windows + Linux混合架构的成本和复杂程度。

微软开源解决方案经理 Sandy Gupta 透露选择 CentOS 是因为 CentOS 是最多网页寄存公司使用的操作系统。

微软近期似乎愈来愈看重开源系统的重要性,这次微软的举动除了再一次证明开源操作系统在商用方面的影响力及重要性之外,微软似乎也明白了要令其所提供的数据中小方案更完善,便要扩充其支持的操作系统,包括 Windows、Linux 以及 Mac OS。

 

Windows恶意软件20年“创新”史

在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹出一些含有令人费解内容的对话框。现今,Windows恶意软件能够锁定你的数据,劫持它并且向你索要赎金。它控制你的PC对外发动攻击,寻找含有银行卡号码和口令的文件,这真是令人讨厌的东西。

20年间,Windows恶意软件造就了许多价值数几十亿美元的杀毒公司,赋予足以装满亚历山大大图书馆的文章以灵感,为成千上万的安全专业人士创造了职位,并给人们带来无穷无尽的烦恼。

这些讨厌的程序不是一夜之间从初学走路的孩子变成打遍天下无敌手的恶棍的。恶意软件的成长有着清晰的继承性,其手段、方法和目标随着时间的发展而不断变化。如同任何技术一样,创新的思想指引着恶意软件的前进道路。让我们看一看为达到邪恶目的的创造力是如何将Windows黑客技术变成价值数十亿美元的产业的,以及Windows恶意软件的成长足迹指向了未来的何处。 Continue reading Windows恶意软件20年“创新”史

如何部署WordPress到Amazon云主机

在过去的10年,架设一个大型网站是一个非常艰巨的任务,那可不是非专业人士可以完成的。现在好了,亚马逊开放了他们的服务器架构,一切都改变了。 计算机硬件被移动到了云端,普通站长和开发人员都可以利用亚马逊的硬件和网络资源来运行自己的应用。在本文中,我们将把WordPress博客安装到云端。


介绍

大多数博客和小型企业站点都托管在共享主机上面,通过固定的月租费用来获得预装软件和特定功能的使用。大多数情况下,共享主机是一个完美的解决方案,但是将你的博客安装在Amazon云端有很多好处是值得我们考虑的:

  • 更容易升级更新. 在Amazon云端创建一个新服务器可以在数分钟内完成。使用该服务,你的网站将有能力应付突如其来的流量爆发,比如你的博客文章被推荐到了Digg或者Reddit的首页,你可以添加更多服务器并平衡负载。
  • 经济有效的大规模服务能力. 如果你的站点吸引了大量的用户,并且最终超过了主机的正常伺服能力,Amazon Web Services 将给你一个经济有效的办法来设计一个符合你的需求的网站服务架构,而你并不需要去雇佣一个完整的网络运作团队来安装和管理网络。这也是许多 Facebook开发人员选择Amazon云服务器的原因。
  • 完善的安装与设置. 在运行WordPress时,这一点可能不是太重要,但如果你想使用PHP和MySQL之外的一些东西来建设你的下一个项目,则没有必要请求主机公司的帮助,你可以就像在你自己的服务器上一样安装你所需要的软件。

是否把WordPress站点放到亚马逊云端由你的博客流量决定,并且你可以根据你的实际需求来决定服务器配置。通过下面的指南,你可以了解到怎样迅速的在Amazon Cloud上设置和运行服务器。 Continue reading 如何部署WordPress到Amazon云主机

创建一个加密的squid代理通道

众所周知,在大陆不能自由的访问互联网,为此人们想出了各种办法,真是八仙过海各显神通,然而,很多办法是既绕圈子,又没有普遍应用的意义,使用ssh tunnel实际上效率是很低的,因为ssh不是为了这个目的而开发,今天我们要介绍的是具有普遍的意义的代理服务器squid和stunnel。

其实这二者组合并不新鲜,也并不罕见,下面说说这个组合的 应用条件:

1,一台运行在自由世界的服务器,或者虚拟机。
2,这台服务器上安装了squid。
3,当然,你必须要可以从中国大陆连接它。

首先我们来配置安装好的squid,很多旧的案例使用stunnel加密squid端口,然后在客户机上使用stunnel解密,这是多走了一个弯路,squid自身已经支持加密的代理方法,在服务器上,我们根本就不需要运行stunnel,例如我们要将这个加密的代理运行在服务器IP地址为216.218.186.2的443端口,具体配置参数如下:

https_port 216.218.186.2:443    cert=/etc/squid/hnair.com.crt key=/etc/squid/hnair.com.key

其中,hnair.com.crt和hnair.com.key是使用openssl生成用于加密的数字证书和密钥,关于自行生成数字证书的方法,可参考如下:

openssl req -new > hnair.com.csr

openssl rsa -in privkey.pem -out hnair.com.key

openssl x509 -in hnair.com.csr -out hnair.com.crt -req -signkey hnair.com.key -days 3650

然后启动squid即可。

接下来,我们需要对客户端进行配置,不管你是Windows还是Linux,都可以到这里下载:ftp://ftp.stunnel.org/stunnel/

将相应的stunnel压缩包解压缩或者安装,添加一个配置文件(stunnel.conf)至程序的目录:

client = yes
[ssl2http]
accept = 127.0.0.1:8080
connect = 216.218.186.2:443

注意,有些Linux发行版中,例如Ubuntu,在进行apt-get安装stunnel的时候,stunnel v3和v4都会安装上去,此时应该使用stunnel4来运行,直接运行 /usr/bin/stunnel4 即可,在Windows中不存在这个问题。

然后,我们将浏览器的代理服务器设置为本机的8080端口,也就是127.0.0.1:8080,即可使用一个加密的通道,自由的访问互联网了,实际上,这个方法被广泛应用在XX功的网站上,只不过他们用的是Apache做反向代理,因为上面还有他们的网站,虽然总是胡说八道来着,由于我们不需要在上面运行网站,所以squid代理服务器是最佳选择。

我很好奇为什么那么多人在卖ssh代理,却没有人卖加密的squid,在squid上添加用户身份验证,即可达到类似的效果,究其原因,其实还是有两个:

第一,ssh代理可以实现socks请求转发,有些应用可能需要。

第二,ssh代理本身效率不高,可以防止用户滥用,流量超荷,而加密的squid如果没有流量限制,那显然是一场悲剧。