blogjava-凯发k8网页登录http://www.blogjava.net/wangxinsh55/category/9195.htmlzh-cnmon, 12 nov 2012 07:23:17 gmtmon, 12 nov 2012 07:23:17 gmt60lucene学习总结之八:lucene的查询语法,javacc及queryparserhttp://www.blogjava.net/wangxinsh55/archive/2012/11/12/391191.htmlsimonesimonemon, 12 nov 2012 03:58:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2012/11/12/391191.htmlhttp://www.blogjava.net/wangxinsh55/comments/391191.htmlhttp://www.blogjava.net/wangxinsh55/archive/2012/11/12/391191.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/391191.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/391191.html


此系列相关文章

----------------------------------------------------------

  



simone 2012-11-12 11:58
]]>
liunx下做端口映射http://www.blogjava.net/wangxinsh55/archive/2012/04/09/373650.htmlsimonesimonemon, 09 apr 2012 10:38:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2012/04/09/373650.htmlhttp://www.blogjava.net/wangxinsh55/comments/373650.htmlhttp://www.blogjava.net/wangxinsh55/archive/2012/04/09/373650.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/373650.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/373650.htmlnet.ipv4.ip_forward = 1
设置数据包去的
iptables -t nat -a prerouting -d 192.168.80.111 -p tcp --dport 38161 -j dnat --to-destination 124.42.15.38:38141
设置数据包回来的
iptables -t nat -a postrouting -d 124.42.15.38 -p tcp --dport 38141 -j snat --to 192.168.80.111

查看已经设置好的
iptables -t nat -l

删除设置
iptables -t nat -d prerouting linenum
iptables -t nat -d postrouting linenum


simone 2012-04-09 18:38
]]>
ubuntu 11.10中安装fcitx 4.0.1版本小企鹅输入法http://www.blogjava.net/wangxinsh55/archive/2011/11/02/362559.htmlsimonesimonewed, 02 nov 2011 10:15:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/11/02/362559.htmlhttp://www.blogjava.net/wangxinsh55/comments/362559.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/11/02/362559.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/362559.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362559.html 最新版本的ubuntu 11.10 于昨天正式发布了,今天抽空将机器上的系统换成了最新的版本了,遇到第一个问题就是配置fcitx的五笔拼音输入法。

       首先通过官方源安装fcitx,默认已经是fcitx4.0.1版本了,命令如下:

        sudo apt-get install fcitx

       重启x后,通过ctrl space可以调出来输入界面,可意外的是只鹅拼音输入和双拼,急煞我也,后来通过官方网站得知,这个版本的fcitx已经不默认安装所有库表了,而需要单独安装,执行命令安装五笔拼音混合输入的库表:

     sudo apt-get install fcitx-table-wbpy

另:安装单独的五笔库表需要执行命令:sudo apt-get install fcitx-table-wubi

    这样重启x 后,即可享用五笔拼音混合输入了。


    若需要fcitx的其它资源,可以访问http://code.google.com/p/fcitx/downloads/list  来享用现代化的输入法吧,哈



================极点五笔安装===============================

  ubuntu 11.04出来了,网上还挺火的,最近闲得无聊就装了一下ubuntu 11.04,本人一向用习惯了极点五笔,本以为极点的作者不出linux版的,结果在网上一搜,居然有高手想到引用极点五笔的字典实现可以同时打拼音和五 笔,废话少说,下面看如何操作:

  ibus下用法如下:

  1.下载文件:

  2. 右键点下载好的“vissible-ibus.tar.gz”压缩包,在下拉菜单中选“用 存档安装器 打开“,使这个压缩包挂载到系统中(桌面会显示“vissible-ibus.tar.gz”的图标)。

  3. 按快捷键“ctrl alt t"打开终端执并行如下命令:

  sudo cp vissible.db /usr/share/ibus-table/tables

  sudo cp vissible.gif /usr/share/ibus-table/icons

  4.完了之后在桌面右键点“vissible-ibus.tar.gz“,在下拉菜单中选”卸载“

  5. 在任务栏右键点那个键盘小图标,在下拉菜单选“重新重启”(这个重新启动并不是重并报启动系统,而是重新启动ibus输入法),然后再右键点那个键盘小图 标并在下拉菜单中选“首选项”,然后在弹出的窗口中点击“输入法”选项卡,接着点“选择输入法”,然后添加极点五笔就可以了。



simone 2011-11-02 18:15
]]>
ubuntu11.10配置与设置手记http://www.blogjava.net/wangxinsh55/archive/2011/11/02/362539.htmlsimonesimonewed, 02 nov 2011 07:37:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/11/02/362539.htmlhttp://www.blogjava.net/wangxinsh55/comments/362539.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/11/02/362539.html#feedback3http://www.blogjava.net/wangxinsh55/comments/commentrss/362539.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362539.htmlhttp://blog.csdn.net/jiangrongjr/article/details/6898569

前记 & 系统安装

盼星星盼月亮终于把11.10盼来了。 ubuntu发布的第一时间笔者就把i386的dvd iso镜像包下载下来了。真的是很surprising,竟然只有1.6gb大小!(相比之下,centos6.0的iso有4.5个g,一张4g容量的 光盘刚好装不下!差了5mb~装centos6.0的时候真让我困惑无语了好久……)前天周五,把镜像包刻好了碟,就开始在我的本本上装了。笔者这次装的 是真机,不是wubi安装也不是虚拟机。不过由于电脑内置的硬盘里本来已经有了centos6.0 windows2008r2,考虑再装第三个系统不太合适,恰好笔者手中有一块闲置的philips 250gb的移动硬盘,于是决定把新的ubuntu系统装到这个移动硬盘里去。

先简单提一下我的安装环境,本本是一年前买的hp g42 382tx,配置:cpu intel i3 370;显卡 ati5470 512mb;内存 4gb*2 共8gb;网卡就是普通的螃蟹卡。 系统安装过程没有什么不顺利,笔者所在的学院教学楼有无线wifi网覆盖,所以就把本本从宿舍搬到教学楼蹭网装去了。好像是自从ubuntu10.10开 始,安装就需要联网了,不过笔者试过,包括前段时间测试装11.10bata2的时候,断网下装系统也能装成功,只是可能会少一些字体啊驱动啊什么的。不 过没关系,如果装系统的时候没能联网下载,装完以后在进行更新安装也是可以的。不过,笔者有这个条件可以联网安装,所以就这样装了。(这里有一个小补充, 是我的小经验:我的本本内存有8gb,可能像我这么大的比较少,但这年头4gb的内存本还是不少的,总之都大于3gb了,但32位系统 也就是i386 理论上只能支持识别3gb,超过3gb的内存就都不识别的。这就有个问题了,如果我还要装32位系统怎么办?所以,在装32位ubuntu的时候,如果你 能联网装,安装时ubuntu能自动识别你的硬件环境,然后有针对性的从他凯发k8网页登录官网上下载一些配置文件和驱动,来适应你的机器,真的是非常聪明! 笔者是联网安装的,装完以后我的8gb内存就完全被32位ubuntu识别了。而以前尝试过断网安装,装完后系统就只能识别3gb内存,而且再要设置机器 识别出大内存,好像不是很容易搞定,所以还是强烈推荐尽量联网安装系统!)另外还有一个想补充,装系统时分区那里有个选挂载点的步骤,很多教程会说至少必 须有两个分区,一个是挂载根目录/,一个是swap。其实swap是可选的,并不一定要,如果你的电脑内存大于等于3gb,而且你只是一般用途的话,那就 建议你不要设置swap,因为物理内存够大,设置了swap基本上用不到,这就浪费了硬盘空间。笔者本本内存有8gb,绰绰有余,所以笔者就只分了一个分 区挂载/,而没有设置swap。这是可以的,也是合理的!

详细安装过程就不多说了,论坛里也已经有很多这方 面教程了,总之我安装是很顺利。只是也说一下,安装的时候有个小插曲,在地区设置那里,我一时手贱,点了hongkong(香港),然后下一步了。这其实 没有什么,不过笔者是在中国大陆,安装完以后在配置时,这个小插曲给自己带来了一些麻烦。总之建议大家,安装系统过程中,在键盘布局和地区区域设置那里, 别乱来。如果你是在中国大陆,地区就不要无聊设置成国外或者hongkong或者macao或者taipei,大陆有3个地区可以选择分别是 shanghai(上海)、haerbin(哈尔滨)、chongqing(重庆),(很奇怪没有北京),反正你就选离你最近的城市就对了,一般来说,如 果是联网安装,在键盘布局和区域设置那里保持默认的就最好。笔者用的wifi网速不是很快,联网安装整个安装过程大约持续了1.5个小时,总算是装完了!


系统配置与设置篇

前面的废话完了,其实接下来的内容才是我们今天所要讲的重点。 这部手记也可以说教程,是我随着我这次真机装ubuntu11.10后配置过程中记录下来的。内容会涵盖:必要的更新安装、必要配置、实用插件的安装、驱动安装、开启3d桌面、更换开机画面背景(lightdm)、使用wine安装windows版的校园网客户端等等最最需要的配置,同时我也随着我配置中记录下了过程中我遇到的一些问题, 之前在网上看过很多教程,linux的书我也看过好几本,很多别的教程里的方法经我实测根本不管用!最后还是自己想的一些办法,真正尝试成功了。所以对于 配置,仍有问题疑问的同学不妨看一下我的过程,或许能成功!其实写这篇教程,也是因为我身边用linux,用ubuntu的同学越来越多了 ,但是很多都是新手,甚至就如我当年一样,没有经过前期系统的学习光怀着好奇心就直接上手用linux的,然后一大堆问题就来了。然后有很多同学来求我帮 忙,我就想干脆我自己装一次,把整个配置过程记录下来,给更多的新手用,也给自己留个资料备份。我会图文并茂的向新手演示,中间也会穿插代码。此外,建议读者遵照本文中的顺序进行配置,不要跳跃进行,也不要同步进行,否则可能带来更多的麻烦!linux 的精神本来就包括探索的精神,其实我这么详细的把细节过程写出来,是违背这种精神的。不过没有办法,我的这份教程面向是新手,甚至从未接触linux的朋 友。希望读者看完我的文章后,这次配置好后,以后什么问题多自己探索寻找答案,最好用的工具就是google,这才是符合linux人自由探索精神的做 法!

本教程中一部分方法来源于互联网,一部分由我改动过,一部分是我原创,我将在文章末尾注明文中的引用出处。同时请转载本文时也注明本文出处!

--------------------------------------------------------------- 华丽丽的分割线 ---------------------------------------------------------------

第一件事:升级软件源。

不要以为装的是最新系统,就不用更新软件源。这个 步骤关系到我们后续的所有配置和今后使用。之前说过,笔者在装系统时误将地区设置成“香港”了,这是直接影响到我们选择的软件源的!所以请在安装中没有选 好的读者照做此步骤改回来。没有问题的也请操作一下确认,因为如果软件源选择不好会影响到今后每次安装软件和使用,特别是如果你和我一样在学校生活,网速 又不是很好的情况!

1.选择服务器。打开ubuntu软件中心,在顶部菜单栏里进入 “编辑—>软件源”,在 “ubuntu软件” 菜单卡中的 “下载自:” 选择合适的服务器。中国大陆用户选择 “中国的服务器” ,然后可能会需要输入密码,你输入就是。修改好后 “关闭” 。

2.升级软件源。按下 打开新的终端窗口。(这是打开终端窗口的快捷键,应该记住,后面我们还会用到),在终端中输入以下代码,回车执行。(注意,你可以从本文复制粘贴过去,但在命令行中不能使用 的复制粘贴快捷键!在命令行中这代表着其他含义!请在终端中鼠标右键进行复制粘贴操作,粘贴是粘贴到闪动光标处后。

代码:
sudo apt-get update && sudo apt-get upgrade


注意:这里对新手普及一个小常识。在ubuntu linux文本模式中,命令前凡带有“sudo” 字样的是代表“超级用户权限执行”,一般是在对系统做重要更改时带有,目的是出于安全考虑。凡是通过 sudo 执行的命令都需要敲入密码。在你填入命令按下键后,下一行就会显示“[sudo] password for user:”(user就是你的用户名)即提示你现在输入密码。在文本模式下的输入密码时,不同于图形界面,当你按下键盘上一个按键后,屏幕中不会有任何 变化!很多新手此时以为键盘失灵了,其实没有,就是这样的,你尽管把你的密码输入完然后按下键就好!那么如果输入密码过程中我 输入错误了怎么办?如果输入错误,也是不能按退回键取消的,文本模式下输密码必须一次正确,如果输错就必须重来,重新 执行本次代码:在输错时按下 键,(这是“终止执行”的快捷键,不是“复制”的含义!),然后按<上方 向键>回到你刚才输入的命令(文本模式下可以通过上下方向键察看本次终端以前输入的命令),再按回车接着输入密码回车执行。

上面那段命令敲入并回车后,系统就开始执行这条命令:更新软件源了!接下来就稍等一下吧 ,系统会自动通过互联网更新下载。不过,即使是到了这里,还是可能出现问题。有的同学在学校可能因为网速慢,这个更新的过程会不太顺利,有可能卡在某项的 82%就永远不动了……比如笔者在这次更新过程中就是这样的问题!解决办法只有多来几次,如果更新时在某项卡住不动超过10分钟了,你就按 下 键(前面提到的:终止执行当前命令),在下一行的“user@ubuntu:~$” 那里按<上方向键>调出刚才命令回车重新执行!(这个操作请读者记住,是非常有用的操作,本文以下将不再赘述。)如果多次尝试都卡在同一个地 方,那只能说明你们学校的网实在太tm烂了!建议你错开网络高峰使用时段进行操作。

好了,如果一切顺利,你就把软件源升级完成了。即如果你看到终端最后一行恢复到显示“user@ubuntu:~$ ”时(user是你的用户名,ubuntu是你的机器名),就说明该条命令已经执行完了,可以进行下一步操作了!

--------------------------------------------------------------- 华丽丽的分割线 ---------------------------------------------------------------

第二件事:安装常用插件、拓展包、语言支持。

1.执行以下命令:

代码:
sudo apt-get install ubuntu-restricted-extras


命令的具体执行方法和注意就不再重复,请参考“上一件事”中的说明。

2.查看语言支持。在 “系统设置” 中单击进入 “语言支持” 。如下图所示。然后系统就会自动检查你现在的情况,如果提示“语言支持没有完全安装”,就点击 “安装” 进行升级就可以了。这个步骤做完后可能需要重启。

附件:

2-1.png [ 147.15 kib | 被浏览 82 次 ]



3.检查.mp3/.mpg等多媒体格式支持插件是否安装到位。在你硬盘里随便找一个.mpg格式的视频文件播放,如果弹出提示 “播放此文件的程序还未安装” 你就点 “查找” 按步就班操作就好,如下图所示。

附件:

2-2.png [ 20.38 kib | 被浏览 82 次 ]



这弄好以后,你原来可能存在的界面字体不好看、乱码显示等情况就会解决了,你也可以看电影听着mp3做接下来的步骤了!

--------------------------------------------------------------- 华丽丽的分割线 ---------------------------------------------------------------

第三件事:安装显卡驱动,部分电脑还需要安装网卡驱动。

如下图所示,在 “系统设置” 中进入 “附加驱动” 。

附件:

3-1.png [ 68.05 kib | 被浏览 82 次 ]



笔者的显卡被识别出两个合适的驱动,记得上次装 11.04的时候只有一个英文的,现在多出来一个中文的了。估计这两个其实都是一样的,只不过一个英文一个中文罢了。注意:两个显卡驱动只需要装其中一个 就好!笔者选择装英文的那个,考虑到英文的那个以前就有的,老的会比较稳定吧~可能……,然后点击 “激活” 就开始安装了。事实上,我装这个英文的驱动过程中,装到一半,弹出提示说 “驱动安装失败,请察看****日志文件” ……郁闷……于是换另外一个中文的那个驱动装,结果就装成功了!如果你说,我这只显示有一个显卡驱动可用,又装失败了怎么办呀,那你就换个好一点的网络环 境在装呗,这是网速不给力造成的。而如果你的系统提示 “没有可用的驱动” 怎么办?那就不装呗,这是聪明的ubuntu系统已经集成自带有了的!你也可以到显卡的凯发k8网页登录官网上去下载适用于linux系统的显卡驱动.run文件。不过, 那一般没有必要。

第四件事:开启3d桌面效果!(实际操作,有用。)

这个是令广大新手极其头痛的一件事,网上很多教程 根本木有用!连笔者以前用于ubuntu11.04上的方法,经在11.10下尝试,也木有用……看来旧的方法在新的版本系统上需要一些改进,那么我们就 来探索一下吧!首先,我想要说的是,从现在开始,你的系统将进入很不稳定状态!不过笔者在配置过程中那些崩溃的事情都遇到了,我会把我尝试的方法步骤详尽 地告诉大家,还有问题的同学可以尝试一下!

1.检查机器是否支持3d桌面效果。首先让我们通过一条命令检测一下你的电脑硬件条件是否具备。如果具备我们再往下操作,如u过硬件条件达不到,那就不用挣扎了,跳过去看吧。同样,键盘上按下 打开新的终端窗口,执行以下命令:

代码:
/usr/lib/nux/unity_support_test -p


如果测试结果显示每一项都是yes,如下图所示,那么恭喜你,你的机器可以开启3d。

附件:

4-1.png [ 78.29 kib | 被浏览 82 次 ]



2.安装ccsm终端下执行以下命令:(安装完后建议重启。)

代码:
sudo apt-get install compizconfig-settings-manager



3.更改工作空间。unity 默认提供4个工作空间(2*2),但是如果我们需要开启3d旋转桌面的话就要把工作空间模式改为(4*1)。怎么改呢?打开compizconfig设置 管理器,进入 “常规选项”,在 “桌面尺寸” 菜单卡中把 “水平虚拟尺寸” 值调整为 “4”,“垂直虚拟尺寸”、“桌面数量” 都调为 “1”。如下图所示。

附件:

4-4.png [ 50.79 kib | 被浏览 40 次 ]



然后你就可以通过 <左方向键>和 <右方向键>两个操作来切换你的工作空间了。这也是为下一步正式开启3d旋转桌面不可缺少的一步!

4.开启3d旋转桌面。打开compizconfig设置管理器,找到 “旋转立方体” 一项,在前面打钩。如下图所示。

附件:

4-5.png [ 97.4 kib | 被浏览 40 次 ]



然后……问题来了……通 常就在这一步,unity界面就死掉了。不过别慌,我们现在重启一下,按住电脑上的关机按钮,弹出来一个对话框—>重新启动。注意,在grub2开 机时,选择“修复启动”,通常是第二项,进入修复启动后会有四个选项选择,进入第一项。开机后进入桌面,你发现此时你的unity桌面仍然崩溃着。这时, 我们打开终端( 快捷键),输入 “ccsm” 命令启动compizconfig设置管理器。在compizconfig设置管理器里,找到 “ubuntu unity plugin”,在前面打钩。这时会弹出来一个提示,点击左上角的叉取消即可!这时,你的unity界面应该就恢复正常了!如下图所示。

附件:

4-6.png [ 116.08 kib | 被浏览 40 次 ]



什么?没有用?unity界面还是崩溃?首先请你确认是按照我之前的步骤进行的。如果此时你的unity仍然处于不正常状态 。不要紧,我们输入以下命令删除刚才的操作:

代码:
   rm -rf .gconf/apps/compiz*
   rm -rf .cache/compizconfig-1/
   rm -rf .config/compiz-1/
   rm -rf .compiz*


执行完后,我们重启一下。再进入桌面时,unity就恢复正常状态了,但是可能我们刚才的设置也被删掉了。我们就重复刚才的步骤设置(注意:有可能工作区域也要重新按照刚才的方法设置!)

经过这一番折腾之后,你的unity 3d旋转桌面应该就能成功开启了!放两张效果图:

附件:

4-7.png [ 510.24 kib | 被浏览 40 次 ]



附件:

4-8.png [ 667.28 kib | 被浏览 40 次 ]



5.设置顶部栏、侧边栏透明度打 开compizconfig设置管理器,进入“ubuntu unity plugin”,(注意,不是打旁边的勾,是点击文字进去设置)。切换到 “experimental” 菜单卡(最后一个)—> "panel opacity"是顶部栏透明度,"launcher opacity"是侧边栏透明度,改成自己想要的值就好(“0”是完全透明,“1”是完全不透明)。如下图所示。

附件:

4-2.png [ 119.81 kib | 被浏览 40 次 ]



6.开启 “震颤窗口效果”。这个3d效果也很有意思。同样,在 “compizconfig设置管理器” 中找到 “震颤窗口” 一项,在前面打上勾即可。然后你就可以晃一晃你的窗口,看下扭来扭去的效果……效果如下图。

附件:

4-3.png [ 600.05 kib | 被浏览 40 次 ]



至此,我们的桌面特效设置就可以了~很炫吧?个人觉得好玩的就这几个,其它的就没什么意思。没有必要弄。

第五件事:(选做)安装wine。用校园网的同学安装上网客户端。

同学里边用ubuntu linux的越来越多啦,但是,这个校园网上网问题一直是令广大同学非常头疼的一件事情。下面让我们来解决它!笔者学校提供的校园网用的是城市热点公司的 dr.com上网客户端,相信很多同学学校用的都是这个。这个公司的产品现在做的越来越绝了…… 。我们学校稍好,给我们提供linux系统的客户端,不过学校给的linux版本软件稳定性十分差劲,我是没有用过,我一开始就使用wine装 windows版的,但听用linux版客户端联网的同学说,10分钟掉一次线……十分让人崩溃!所以看来根本办法还是把wine搞通!

1.安装wine。在终端执行以下命令:在网速稳定在100kb/s的情况下,下载安装过程大约持续20分钟。

代码:
sudo apt-get install wine


完后,让我们来看看wine有关的是不是都装上 了。如下图所示,搜索wine,正常情况会出来三样软件:configure wine、uninstall wine software、winestricks。如果缺少winestricks的话,我们在执行一下命令安装winestricks,如果已经有就不要额外 安装了!

附件:

5-1.png [ 552.66 kib | 被浏览 15 次 ]



代码:
wget http://www.kegel.com/wine/winetricks
sudo chmod x winetricks
sh winetricks msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1 flash


2.添加字体。在 用wine安装windows程序之前,我们最好先添加字体,不然待会儿安装的时候可能会出现乱码!怎么添加字体呢?这需要我们找台装有windwos系 统的电脑了。或者需要一个虚拟机,或者如果你你电脑是双系统的也可以,总之,我们现在要从windows里面拷贝一点东西过来……进入windows系统 c盘,将 “c:\windows\fonts\” 这个文件夹里面的东西全部拷贝过来(网上一些其他教程说是缺少其中的几个,但是笔者照网上教程做了以后还是有很严重的乱码,也不知道少的到底是哪几个,那 我们就全部那过来吧,这就不会少了……不过这里面的字体真的是非常多文件非常大,如果你想节省一点时间或硬盘空间的话,也可以里面的汉字字体不要,但是除 了汉字字体其它的一定要要!特别是 simfang.ttf 和 simkai.ttf,这两个是恢常重要得!)。等会儿,拷贝到哪?好的现在我们切换回linux,在你的主文件夹下有个 “.wine” 文件夹……。什么?找不到?好吧,这是个隐藏文件夹,我们在自己的主文件夹下菜单栏里—>查看—>显示隐藏文件(打钩)就可以看 到~/.wine/这个文件夹了。(忘记说了,unity界面,就是从11.04开始包括现在的11.10,ubuntu已经采用 “全局菜单”。就是像mac系统那样子的一个功能,就是当前活动窗口的菜单已经跑到顶部栏里面去了,你把鼠标滑到顶部栏那里,就能看到了。根据 ubuntu官方的解释,这个设计能够节省桌面空间,笔者个人也认为这是个恢常好的设计!)好,进入~/.wine/后,一直进入到~/.wine /drive_c/windows/fonts/,拷贝到那里面,注意不要把整个windows下的fonts文件夹考到linux下的fonts文件 夹。总之我们要让linux下~/.wine/drive_c/windows/fonts/目录里面直接有那些windows里的字体!

3.用wine安装客户端安装包。找 到你们学校网管提供的客户端的windows系统安装包,下载下来,选中—>右键—>打开方式—>wine windows program loader,打开。然后就像windows里那样安装,如下图所示。一下有些注意事项,笔者是用安装dr.com客户端的情况来演示的,如果是其他客户 端也可以参考变通其中的一些设置方法。

附件:

5-2.png [ 6.77 kib | 被浏览 15 次 ]


注意!不要一路点 “下一步”,往后看……使用wine安装windows软件时的注意事项:#1,选择安装路径时,默认的路径最好不要改。如下图所示。#2,一定要选择 “禁止创建开始菜单文件夹” 如下图所示。#3,“创建桌面图标” 不要选,“创建启动栏图标” 也不要选,如下图所示。

附件:

5-3.png [ 25.85 kib | 被浏览 15 次 ]



附件:

5-4.png [ 23.06 kib | 被浏览 15 次 ]



附件:

5-5.png [ 21.56 kib | 被浏览 15 次 ]



4.添加动态库文件.dll(非常重要一步!)


simone 2011-11-02 15:37
]]>
nginx配置文件详细说明http://www.blogjava.net/wangxinsh55/archive/2011/10/26/362112.htmlsimonesimonewed, 26 oct 2011 08:48:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362112.htmlhttp://www.blogjava.net/wangxinsh55/comments/362112.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362112.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/362112.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362112.html

来自 http://hi.baidu.com/bianxuehui/blog/item/4aa8cda0f095f2974610642e.html


在此记录下nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.

#运行用户
user www-data;   
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#全局错误日志及pid文件
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

#工作模式及连接数上限
events {
    use   epoll;             #epoll是多路复用io(i/o multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    worker_connections  1024;#单个后台worker process进程的最大并发链接数
    # multi_accept on;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
     #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    access_log    /var/log/nginx/access.log;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘io重负载应用,可设置为 off,以平衡磁盘与网络i/o处理速度,降低系统的uptime.
    sendfile        on;
    #tcp_nopush     on;

    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
   
    #开启gzip压缩
    gzip  on;
    gzip_disable "msie [1-6]\.(?!.*sv1)";

    #设定请求缓冲
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    #设定负载均衡的服务器列表
     upstream mysvr {
    #weigth参数表示权值,权值越高被分配到的几率越大
    #本机上的squid开启3128端口
    server 192.168.8.1:3128 weight=5;
    server 192.168.8.2:80  weight=1;
    server 192.168.8.3:80  weight=6;
    }


   server {
    #侦听80端口
        listen       80;
        #定义使用访问
        server_name  www.xx.com;

        #设定本虚拟主机的访问日志
        access_log  logs/www.xx.com.access.log  main;

    #默认请求
    location / {
          root   /root;      #定义服务器的默认网站根目录位置
          index index.php index.html index.htm;   #定义凯发k8网页登录首页索引文件的名称

          fastcgi_pass  www.xx.com;
         fastcgi_param  script_filename  $document_root/$fastcgi_script_name;
          include /etc/nginx/fastcgi_params;
        }

    # 定义错误提示页面
    error_page   500 502 503 504 /50x.html; 
        location = /50x.html {
        root   /root;
    }

    #静态文件,nginx自己处理
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
        root /var/www/virtual/htdocs;
        #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
        expires 30d;
    }
    #php 脚本请求全部转发到 fastcgi处理. 使用fastcgi默认配置.
    location ~ \.php$ {
        root /root;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param script_filename /home/www/www$fastcgi_script_name;
        include fastcgi_params;
    }
    #设定查看nginx状态的地址
    location /nginxstatus {
        stub_status            on;
        access_log              on;
        auth_basic              "nginxstatus";
        auth_basic_user_file  conf/htpasswd;
    }
    #禁止访问 .htxxx 文件
    location ~ /\.ht {
        deny all;
    }
    
     }
}

以上是一些基本的配置,使用nginx最大的好处就是负载均衡

如果要使用负载均衡的话,可以修改配置http节点如下:

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
     #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    access_log    /var/log/nginx/access.log;

    #省略上文有的一些配置节点

    #。。。。。。。。。。

    #设定负载均衡的服务器列表
     upstream mysvr {
    #weigth参数表示权值,权值越高被分配到的几率越大
    server 192.168.8.1x:3128 weight=5;#本机上的squid开启3128端口
    server 192.168.8.2x:80  weight=1;
    server 192.168.8.3x:80  weight=6;
    }

   upstream mysvr2 {
    #weigth参数表示权值,权值越高被分配到的几率越大

    server 192.168.8.x:80  weight=1;
    server 192.168.8.x:80  weight=6;
    }

   #第一个虚拟服务器
   server {
    #侦听192.168.8.x的80端口
        listen       80;
        server_name  192.168.8.x;

      #对aspx后缀的进行负载均衡请求
    location ~ .*\.aspx$ {

         root   /root;      #定义服务器的默认网站根目录位置
          index index.php index.html index.htm;   #定义凯发k8网页登录首页索引文件的名称

          proxy_pass  http://mysvr ;#请求转向mysvr 定义的服务器列表

          #以下是一些反向代理的配置可删除.

          proxy_redirect off;

          #后端的web服务器可以通过x-forwarded-for获取用户真实ip
          proxy_set_header host $host;
          proxy_set_header x-real-ip $remote_addr;
          proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
          client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
          client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
          proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)
          proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)
          proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)
          proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小
          proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
          proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)
          proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传

       }

     }
}



simone 2011-10-26 16:48
]]>
linux下nginx的自启动脚本http://www.blogjava.net/wangxinsh55/archive/2011/10/26/362105.htmlsimonesimonewed, 26 oct 2011 07:51:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362105.htmlhttp://www.blogjava.net/wangxinsh55/comments/362105.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362105.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/362105.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362105.html
http://rq2-79.iteye.com/blog/1150693

启动脚本
第一步
先运行命令关闭nginx
sudo kill `cat /usr/local/nginx/logs/nginx.pid`

第二步
vi /etc/init.d/nginx

输入以下内容
python代码  收藏代码

    #!/bin/sh  
    #  
    # nginx - this script starts and stops the nginx daemin  
    #  
    # chkconfig:   - 85 15   
    # description:  nginx is an http(s) server, http(s) reverse \  
    #               proxy and imap/pop3 proxy server  
    # processname: nginx  
    # config:      /usr/local/nginx/conf/nginx.conf  
    # pidfile:     /usr/local/nginx/logs/nginx.pid  
      
    # source function library.  
    . /etc/rc.d/init.d/functions  
      
    # source networking configuration.  
    . /etc/sysconfig/network  
      
    # check that networking is up.  
    [ "$networking" = "no" ] && exit 0  
      
    nginx="/usr/local/nginx/sbin/nginx"  
    prog=$(basename $nginx)  
      
    nginx_conf_file="/usr/local/nginx/conf/nginx.conf"  
      
    lockfile=/var/lock/subsys/nginx  
      
    start() {  
        [ -x $nginx ] || exit 5  
        [ -f $nginx_conf_file ] || exit 6  
        echo -n $"starting $prog: "  
        daemon $nginx -c $nginx_conf_file  
        retval=$?  
        echo  
        [ $retval -eq 0 ] && touch $lockfile  
        return $retval  
    }  
      
    stop() {  
        echo -n $"stopping $prog: "  
        killproc $prog -quit  
        retval=$?  
        echo  
        [ $retval -eq 0 ] && rm -f $lockfile  
        return $retval  
    }  
      
    restart() {  
        configtest || return $?  
        stop  
        start  
    }  
      
    reload() {  
        configtest || return $?  
        echo -n $"reloading $prog: "  
        killproc $nginx -hup  
        retval=$?  
        echo  
    }  
      
    force_reload() {  
        restart  
    }  
      
    configtest() {  
      $nginx -t -c $nginx_conf_file  
    }  
      
    rh_status() {  
        status $prog  
    }  
      
    rh_status_q() {  
        rh_status >/dev/null 2>&1  
    }  
      
    case "$1" in  
        start)  
            rh_status_q && exit 0  
            $1  
            ;;  
        stop)  
            rh_status_q || exit 0  
            $1  
            ;;  
        restart|configtest)  
            $1  
            ;;  
        reload)  
            rh_status_q || exit 7  
            $1  
            ;;  
        force-reload)  
            force_reload  
            ;;  
        status)  
            rh_status  
            ;;  
        condrestart|try-restart)  
            rh_status_q || exit 0  
                ;;  
        *)  
            echo $"usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"  
            exit 2  
    esac  

 

保存退出

第三步
chmod 777 /etc/init.d/nginx

第四步
/sbin/chkconfig nginx on

检查一下
sudo /sbin/chkconfig --list nginx
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

完成!

之后,就可以使用以下命令了
service nginx start
service nginx stop
service nginx restart
service nginx reload

/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
/etc/init.d/nginx reload


simone 2011-10-26 15:51
]]>
linux下nginx的安装http://www.blogjava.net/wangxinsh55/archive/2011/10/26/362103.htmlsimonesimonewed, 26 oct 2011 07:18:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362103.htmlhttp://www.blogjava.net/wangxinsh55/comments/362103.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/26/362103.html#feedback1http://www.blogjava.net/wangxinsh55/comments/commentrss/362103.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362103.html
tar zxvf nginx_1_0_8_gz
cd nginx_1_0_8_gz
sudo ./configure --prefix=/opt/nginx_1_0_8     将nginx安装到/opt/nginx_1_0_8 其他的参数可以到 http://wiki.nginx.org/nginxchsinstalloptions 站点查看
sudo make
sudo make install

安装的时候出现错误,缺少相关依赖包,
openssl 包的缺少,我这里通过apt-get install openssl-server openssl-client 来安装的
pcre 包缺少,开始我通过下载源码包(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/)
        并执行下边的命令
        ./configure
        make
        make install
用这样的方法始终没有成功;于是我通过这个方法来安装 apt-get install libpcre3-dev 将其安装上了
zlib包缺少,到http://sourceforge.net/projects/libpng/files/zlib/站点下载zlib源码包并执行 ./configure  ;  make    ; make install  来完成安装

最后再重新执行nginx安装命令,安装成功!

blogjava-凯发k8网页登录

configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 makefile 文件。

configure 支持下面的选项:

--prefix= - nginx安装路径。如果没有指定,默认为 /usr/local/nginx。

--sbin-path= - nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为/sbin/nginx。

--conf-path= - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为/conf/nginx.conf。

--pid-path= - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 /logs/nginx.pid。

--lock-path= - nginx.lock文件的路径。

--error-log-path= - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 /logs/error.log。

--http-log-path= - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 /logs/access.log。

--user= - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。

--group= - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。

--builddir=dir - 指定编译的目录

--with-rtsig_module - 启用 rtsig 模块

--with-select_module --without-select_module - whether or not to enable the select module. this module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.

//允许或不允许开启select模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6 ), rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与select基本相 同,都是采用轮训方法) select模式将是默认安装模式

--with-poll_module --without-poll_module - whether or not to enable the poll module. this module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.

--with-http_ssl_module - enable ngx_http_ssl_module. enables ssl support and the ability to handle https requests. requires openssl. on debian, this is libssl-dev.

//开启http ssl模块,使nginx可以支持https请求。这个模块需要已经安装了openssl,在debian上是libssl-dev

--with-http_realip_module - 启用 ngx_http_realip_module

--with-http_addition_module - 启用 ngx_http_addition_module

--with-http_sub_module - 启用 ngx_http_sub_module

--with-http_dav_module - 启用 ngx_http_dav_module

--with-http_flv_module - 启用 ngx_http_flv_module

--with-http_stub_status_module - 启用 "server status" 页

--without-http_charset_module - 禁用 ngx_http_charset_module

--without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果启用,需要 zlib 。

--without-http_ssi_module - 禁用 ngx_http_ssi_module

--without-http_userid_module - 禁用 ngx_http_userid_module

--without-http_access_module - 禁用 ngx_http_access_module

--without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module

--without-http_autoindex_module - 禁用 ngx_http_autoindex_module

--without-http_geo_module - 禁用 ngx_http_geo_module

--without-http_map_module - 禁用 ngx_http_map_module

--without-http_referer_module - 禁用 ngx_http_referer_module

--without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果启用需要 pcre 。

--without-http_proxy_module - 禁用 ngx_http_proxy_module

--without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module

--without-http_memcached_module - 禁用 ngx_http_memcached_module

--without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module

--without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module

--without-http_browser_module - 禁用 ngx_http_browser_module

--without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module

--with-http_perl_module - 启用 ngx_http_perl_module

--with-perl_modules_path=path - 指定 perl 模块的路径

--with-perl=path - 指定 perl 执行文件的路径

--http-log-path=path - set path to the http access log

--http-client-body-temp-path=path - set path to the http client request body temporary files

--http-proxy-temp-path=path - set path to the http proxy temporary files

--http-fastcgi-temp-path=path - set path to the http fastcgi temporary files

--without-http - 禁用 http server

--with-mail - 启用 imap4/pop3/smtp 代理模块

--with-mail_ssl_module - 启用 ngx_mail_ssl_module

--with-cc=path - 指定 c 编译器的路径

--with-cpp=path - 指定 c 预处理器的路径

--with-cc-opt=options - additional parameters which will be added to the variable cflags. with the use of the system library pcre in freebsd, it is necessary to indicate --with-cc-opt="-i /usr/local/include". if we are using select() and it is necessary to increase the number of file descriptors, then this also can be assigned here: --with-cc-opt="-d fd_setsize=2048".

--with-ld-opt=options - additional parameters passed to the linker. with the use of the system library pcre in freebsd, it is necessary to indicate --with-ld-opt="-l /usr/local/lib".

--with-cpu-opt=cpu - 为特定的 cpu 编译,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64

--without-pcre - 禁止 pcre 库的使用。同时也会禁止 http rewrite 模块。在 "location" 配置指令中的正则表达式也需要 pcre 。

--with-pcre=dir - 指定 pcre 库的源代码的路径。

--with-pcre-opt=options - set additional options for pcre building.

--with-md5=dir - set path to md5 library sources.

--with-md5-opt=options - set additional options for md5 building.

--with-md5-asm - use md5 assembler sources.

--with-sha1=dir - set path to sha1 library sources.

--with-sha1-opt=options - set additional options for sha1 building.

--with-sha1-asm - use sha1 assembler sources.

--with-zlib=dir - set path to zlib library sources.

--with-zlib-opt=options - set additional options for zlib building.

--with-zlib-asm=cpu - use zlib assembler sources optimized for specified cpu, valid values are: pentium, pentiumpro

--with-openssl=dir - set path to openssl library sources

--with-openssl-opt=options - set additional options for openssl building

--with-debug - 启用调试日志

--add-module=path - add in a third-party module found in directory path

在不同版本间,选项可能会有些许变化,请总是使用 ./configure --help 命令来检查一下当前的选项列表。



simone 2011-10-26 15:18
]]>
ubuntu 系统 update-rc.d 命令http://www.blogjava.net/wangxinsh55/archive/2011/10/25/362024.htmlsimonesimonetue, 25 oct 2011 09:09:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/362024.htmlhttp://www.blogjava.net/wangxinsh55/comments/362024.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/362024.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/362024.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362024.html

ubuntu或者debian系统中update-rc.d命令,是用来更新系统启动项的脚 本。这些脚本的链接位于/etc/rcn.d/目录,对应脚本位于/etc/init.d/目录。在了解update-rc.d命令之前,你需要知道的是 有关linux 系统主要启动步骤,以及ubuntu中运行级别的知识。

一、linux 系统主要启动步骤

  1. 读取 mbr 的信息,启动 boot manager。
  2. 加载系统内核,启动 init 进程, init 进程是 linux 的根进程,所有的系统进程都是它的子进程。
  3. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别。通常情况下 /etc/rcs.d/ 目录下的启动脚本首先被执行,然后是/etc/rcn.d/ 目录。
  4. 根据 /etc/rcs.d/ 文件夹中对应的脚本启动 xwindow 服务器 xorg,xwindow 为 linux 下的图形用户界面系统。
  5. 启动登录管理器,等待用户登录。

二、运行级别

ubuntu中的运行级别

  • 0(关闭系统)
  • 1(单用户模式,只允许root用户对系统进行维护。)
  • 2 到 5(多用户模式,其中3为字符界面,5为图形界面。)
  • 6(重启系统)

切换运行级别

1 2 
init [0123456ss] 例如:init 0 命令关机; init 6 命令重新启动

启动项管理工具

1 2 
sudo install sysv-rc-conf //或者使用带gui的工具bum sudo sysv-rc-conf

三、update-rc.d命令详解

从所有的运行级别中删除指定启动项

1 
update-rc.d -fbasename> remove

按指定顺序、在指定运行级别中启动或关闭

1 
update-rc.d <basename> start|stop <order> <runlevels>
1 
实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .

解析:表示在2、3、4、5这四个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号,效果等于下面方法:

1 
update-rc.d apachectl defaults

a启动后b才能启动,b关闭后a才关闭


update-rc.d a defaults 80 20
update-rc.d b defaults 90 10

启动和关闭顺序为90,级别默认

1 
update-rc.d <basename> defaults 90
原文地址 :

simone 2011-10-25 17:09
]]>
ubuntu下设置程序开机自启动的几种方法http://www.blogjava.net/wangxinsh55/archive/2011/10/25/362021.htmlsimonesimonetue, 25 oct 2011 08:59:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/362021.htmlhttp://www.blogjava.net/wangxinsh55/comments/362021.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/362021.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/362021.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/362021.html1,
这种也是最常用的一种

rcconf:

 sudo apt-get install rcconf

 root 下运行: rcconf

 

功能更全的:sysv-rc-conf

 sudo apt-get install sysv-rc-conf

 运行:sysv-rc-conf

这个改起来很简单,自己试一下就知道了.


2,

直接改/etc/rc0.d ~ /etc/rc6.d和/etc/rcs.d下的东西,s开头的表示启动,k开头的表示不启动,

例如:想关闭vsftpd的开机自动启动,只需sudo mv /etc/rc2.d/s20vsftpd /etc/rc2.d/k20vsftpd就可以了。 

这条命令的用意就是利用mv的重命名功能。


3,chkconfig,这种方法在redhat,debian里面比较常用,在fedora和ubuntu里面用方法1比较简单,但是学习一下这种方法也是不错的。

但在ubuntu下这个命令没有redhat好用,老是出错.

算了,还是直接看一下redhat里面chkconfig的用法吧.

1,chkconfig --level [0123456] [service name] [on|off]

chkconfig --level 23 dhcp3-server off ----设定dhcp server服务在level2,3下关闭.

2,chkconfig --list 查看服务的自动开启状态

3,chkconfig --add 增加一个服务给chkconfig来管理,但是该服务必须在/etc/init.d内 .

例子,

1,gedit /etc/init.d/test

chkconfig:[runlevels] [start number] [stop number]

chkconfig: 23 80 70

其中start number 代表s80test

stop number 代表k70test

2,chkconfig --add test

3,chkconfig --list test

test 0:off 1:off 2:on 3:on 4:off 5:off 6:off

4,check /etc/rc.d/下的档案

find /etc/rc.d -type l | grep 'test' |sort

/etc/rc.d/rc0.d/k70test

/etc/rc.d/rc1.d/k70test

/etc/rc.d/rc2.d/s80test

/etc/rc.d/re3.d/s80test

 /etc/rc.d/rc4.d/k70test

 /etc/rc.d/rc5.d/k70test

 /etc/rc.d/rc6.d/k70test

 /etc/rc.d/rc7.d/k70test

 

-type l代表“连接文件”



4,chkconfig --del 删除一个给chkconfig管理的服务

5,显示目前run level 2为启动的服务

chkconfig --list | grep '3:on'



simone 2011-10-25 16:59
]]>
ubuntu 11.10 下安装mysql5.5.17 (个人安装过程)http://www.blogjava.net/wangxinsh55/archive/2011/10/25/361995.htmlsimonesimonetue, 25 oct 2011 06:16:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/361995.htmlhttp://www.blogjava.net/wangxinsh55/comments/361995.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/25/361995.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361995.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361995.html开始我卸载是直接使用软件中心的界面“卸载”按扭来卸载的。由于使用界面的“卸载”按钮卸载,卸载的不干净;在后边的安装过程中引起了不小的麻烦。
所以必须使用下边的命令来完成卸载:
删除 mysql
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)
上面的其实有一些是多余的,建议还是按照顺序执行一遍

清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -p

上边的操作来自http://www.blogjava.net/yjhmily/articles/336926.html这个站点

=====================================================================
清理工作完成之后,下边开始安装:
我参考的地址列表
http://dev.mysql.com/doc/refman/5.5/en/binary-installation.html
http://forum.ubuntu.org.cn/viewtopic.php?t=301214
http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html

下边的是我的操作:
groupadd mysql
useradd -r -g mysql mysql
tar zxvf /path/to/mysql-version-os.tar.gz
#将下载到的二进制mysql文件解压到/opt/mysql_5_5_17目录下,即将mysql安装到/opt/mysql_5_5_17目录下。网上好多教程都是安装到/usr/local/mysql目录下,我这里做了修改
cp /path/to/mysql-version-os.tar.gz /opt/mysql_5_5_17
#将当前目录的所有者改为mysql用户  要加上-r参数。这个参数表示循环遍历子节点。子节点都起作用
chown -r mysql .
#将当前目录的所有组改为mysql组
chgrp -r mysql .
#这里的--basedir=/opt/mysql_5_5_17参数是我参考其他站点加上的;如果安装到/usr/local/mysql应该不用加这个参数
scripts/mysql_install_db --user=mysql --basedir=/opt/mysql_5_5_17
chown -r root .
chown -r mysql data
#关于my.cnf:mysql按照下列顺序搜索my.cnf:/etc,mysql安装目录,安装目录下的data。/etc下的是全局设置。
#网上一些教程说放到/etc/my.cnf下;我这里放到/opt/mysql_5_5_17/my.cnf下了
cp support-files/my-medium.cnf ./my.cnf
#修改mysql最大连接数增加或修改max_connections=1024
#[mysqld]处添加服务器的默认字符编码character-set-server=utf8
#[mysql]处添加默认字符编码default-character-set=utf8
#编辑完保存退出
vim my.cnf
#启动mysql
bin/mysqld_safe --user=mysql &
#让程序随服务器启动而自动启动
cp support-files/mysql.server /etc/init.d/mysql
cd /etc/init.d
#编辑mysql.server文件,修改mysql默认的安装路径,即修改basedir值:basedir=/opt/mysql_5_5_17
#如果要修改数据目录,也可修改datadir路径值
vim mysql
chmod x /etc/init.d/mysql
update-rc.d mysql defaults
关于ubuntu自动启动见,官方文档见。



至此启动mysql方法:
bin/mysqld_safe --user=mysql &

/etc/init.d/mysql start

关闭mysql的方法
bin/mysqladmin -uroot shutdown

/etc/init.d/mysql stop


simone 2011-10-25 14:16
]]>
ubuntu 11.10 下安装mysql5.5.17http://www.blogjava.net/wangxinsh55/archive/2011/10/24/361913.htmlsimonesimonemon, 24 oct 2011 11:14:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/24/361913.htmlhttp://www.blogjava.net/wangxinsh55/comments/361913.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/24/361913.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361913.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361913.html下载最新的mysql-5.5.10-linux2.6-i686.tar.gz

shell切换到root用户

安装在/usr/local目录下面
解压缩文件
$cd /usr/local
$tar zxvf path/mysql-5.5.10-linux2.6-i686.tar.gz
$ln -s mysql-5.5.10-linux2.6-i686 mysql
添加用户组
$groupadd mysql
给用户组添加用户
$useradd -r -g mysql mysql
给文件夹赋予用户权限
$cd mysql
$chown -r mysql . (后面有点)
$chgrp -r mysql .
安装数据库
$scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

  注释 如果这一步遇见error while loading shared libraries: libaio.so.1: cannot open shared object file: no such file or directory
请给系统安装libaio-dev
$apt-get install libaio-dev
安装完成之后再次执行数据库安装命令

$chown -r root .
$chown -r mysql data
$cp support-files/my-medium.cnf /etc/my.cnf
启动数据库
$bin/mysqld_safe --user=mysql &

进入数据库管理命令
$bin/mysql -u -root -p

自动启动
$cp support-files/mysql.server  /etc/init.d/mysql
以后启动直接输入
$/etc/init.d/mysql restart|start,,


=============================================================
使用二进制安装的好处

mysql安装为什么大部分使用二进制安装。而不是源码手动去编译?

mysql使用的glibc进行开发的。glibc库是一个底层api,所以只要是linux,都会有glibc库。所以,mysql安装不需要考虑环境是否符合要求。移植性很方便。直接将编译好的二进制代码复制到另外一个机器上,也是可以用的。

原 理性东西:一般在linux下安装一个软件,不同软件所需要的函数库不同。于是会遇到一个现象:一个软件复制到另外一个平台可能无法运行。安装软件需要先 侦测环境就是出于此考虑。因为mysql使用的是通用的glibc函数库。没有对其他东西的依赖性。所以,从一个平台复制到另外一个平台能够通用。并不需 要去侦测环境。直接使用编译好的二进制即可

手动编译安装,显得步骤麻烦。基于mysql的特点,二进制安装完全可以。

注:mysql5.5安装的时候,需要用到cmake命令,所以需要保证你的机器上安装了该命令。没有的话,还要去安装该cmake。也显得麻烦。我暂时不想去安装最新版本的了。


如果使用二进制安装升级怎么进行?

升级获取的还是二进制压缩包。那么,直接将指向目录切换到新的目录即可。

不需要涉及到像php一样,手动编译可以达到自己定制模块的好处。而mysql安装的时候不需要涉及到模块

mysql官方建议安装方式:二进制安装。

实践过程

大致思路就是:解压二进制文件放到指定的目录。然后安装基本的数据库,权限方面会用到。
然后,启动mysql就行了。

第一步:创建一个用户组和用户。

组名和用户名的名字都为mysql。

命令:1.groupadd mysql
      2.useradd -r -g mysql mysql


第二步:解压二进制压缩包。
一般放到"/usr/local/src"目录下去。
结果会变成:/usr/local/src/mysql安装目录

有很多种方式。一般可以直接进去要解压要存放的目录。
运行命令:tar zxvf 压缩包源  注释:第二个参数可以填要解压到的位置。第二个参数不填,就会将压缩包源解压到运行tar命令的当前目录。一般都是使用这种特性进行解压:你要解压到哪里就先进入哪里运行tar命令。




第三步:建立一个软链接。

在"usr/local"下建立一个软链接(自己定义名为mysql)。软链接的目录是为了指向"/usr/local/src/mysql安装目录"

命令:ln -s /usr/local/src/mysql安装目录 /usr/local/mysql    参数说明:-s参数表示建立软链接

去local目录下查看,看是否成功生成了一个软链接。使用"ls -al"查看,特点是软连接上会有个箭头符号。

其实这一步就是为了提供一种快捷操作的方式。其实不建立软连接也是可以用的,为什么要这样做?
升级管理有用:新版本单独建立一个目录存放的。假如你升级mysql了。只要将这个软连接指向的目录修改即可。


第四步:权限检查与修改
主要是保证"mysql安装目录"的所有者为mysql用户,所属组也为mysql组。

1.chown -r mysql . //将当前目录的所有者改为mysql用户  要加上-r参数。这个参数表示循环遍历子节点。子节点都起作用
2.chgrp -r mysql . //将当前目录的所有组改为mysql组

常见的问题:忘记加上-r参数。结果下面节点没有权限。启动错误,访问错误等等一系列的问题。




第五步:安装初始化数据库
运行mysql安装目录下的文件:/scripts/mysql_install_db

命令备忘:scripts/mysql_install_db --user=mysql //这是进入mysql安装目录下进行运行的,所以需要输入路径"scripts/"
注意:必须在安装目录下执行。不能切换到scripts目录下,然后执行"./mysql_install_db --user=mysql",否则会报如下错误:

fatal error: could not find ./bin/my_print_defaults

因为脚本mysql_install_db里面所使用的是这种形式的相对路径"./bin/my_print_defaults",所以必须是在"mysql安装目录"下,才能找得到所需文件。

第二次试验的时候,还报出一个错误:./bin/my_print_defaults: cannot execute binary file




第六步:my.cnf配置文件拷贝
将my.cnf文件移到etc/目录下去。
命令:cp support-files/my-medium.cnf /etc/my.cnf






第七步:启动mysql


马上启动mysql的命令是:bin/mysqld_safe --user=mysql & //"&"表示在后台运行
这里使用&的经验备忘:执行上面命令后,一直定在一个地方。没有任何反应了。并没有报错信息。还是成功的。此时使用ctrl c。然后去看看


之后,想让服务器启动的时候就跟着启动mysql服务器,在一个目录下放一个文件:

cp support-files/mysql.server /etc/init.d/mysql.server
support-files/mysql.server在二进制安装目录下可以找到的。












完成后进行的步骤:
第一步:如何查看mysql是否安装成功。
一个方法是:去查看3306端口是否开启
命令:netstat -ntl  可以列出所有侦听的端口

第二个方法:使用mysql命令连接一次服务器
命令: mysql -u root

小技巧:为了省去每次执行客户端都要进入目录的麻烦。将客户端的路径加入环境变量中去。

shell命令:export path=$path:/usr/local/src/mysql-5.1/bin/

export命令备忘: export 变量名=变量值,这里变量名是path 变量值设置成在原来的$path基础上加,有多个值,那么值之间以分号":"隔开。
这样,在任意路径中。都可以通过:"mysql -u 用户名 -p" 的形式使用客户端了。

所遇问题总结

第一个问题:

问题描述:sqlstate[hy000] [2002] can't connect to local mysql server through socket '/usr/local/mysql/tmp/mysql.sock'


问题经验:

不能通过 '/tmp/mysql.sock'连到服务器,而php标准配置正是用过'/tmp/mysql.sock'

1.php.ini中可以配置通过哪个sock去连接mysql
2.而mysql的配置文件中也可以自由配置使用哪个位置的sock文件

错误提示中显示了错误2002号。结合手册如下说明:

错误:2002 (cr_connection_error)

消息:不能通过套接字'%s' (%d)连接到本地mysql服务器。


第二个问题:权限问题。

解决问题的经验是:如果遇到启动mysql错误。首先应该去看看权限是否有。设置对了没。

比如启动使用"service mysqld start"常常看到如下错误提示:

mysqld_safe logging to '/usr/local/mysql/data/localhost.localdomain.err'.
110306 23:17:20 mysqld_safe starting mysqld daemon with databases from /usr/local/mysql/data
110306 23:17:20 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended

看不懂意思。这些信息会在data/*.err文件中记录的。不知道上述报错信息的原因。

查看目录下的子节点,发现所有者和所属组并不都是mysql。我直接设置好目录的所有者和所属组都是mysql后。就行了。


====================================================================
个人测试成功过程:
shell> groupadd mysql 
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-version-os.tar.gz
shell> ln -s full-path-to-mysql-version-os mysql
shell> cd mysql
shell> chown -r mysql .
shell> chgrp -r mysql .
shell> scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
shell> chown -r root .
shell> chown -r mysql data
# next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql &
# next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
启动后的日志写在/var/log/mysql/error.log文件下,可直接到这个文件下去查看。


simone 2011-10-24 19:14
]]>
/etc/profile和/etc/environment的比较 http://www.blogjava.net/wangxinsh55/archive/2011/10/24/361906.htmlsimonesimonemon, 24 oct 2011 08:33:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/24/361906.htmlhttp://www.blogjava.net/wangxinsh55/comments/361906.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/24/361906.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361906.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361906.html
       先将export lang=zh_cn加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile 中的export lang=zh_cn删除,将lnag=zh_cn加入/etc/environment,退出系统重新登录,登录提示显示中文。用户环境建立的过程中总 是先执行/etc/profile然后在读取/etc/environment。为什么会有如上所叙的不同呢?

        应该是先执行/etc/environment,后执行/etc/profile。
        /etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。
       系统应用程序的执行与用户环境可以是无关的,但与系统环境是相关的,所以当你登录时,你看到的提示信息,象日期、时间信息的显示格式与系统环境的lang 是相关的,缺省lang=en_us,如果系统环境lang=zh_cn,则提示信息是中文的,否则是英文的。



       对于用户的shell初始化而言是先执行/etc/profile,再读取文件/etc/environment.对整个系统而言是先执行/etc/environment。这样理解正确吗?
       /etc/enviroment --> /etc/profile --> $home/.profile   -->$home/.env (如果存在)


       /etc/profile 是所有用户的环境变量
       /etc/enviroment是系统的环境变量
       登陆系统时shell读取的顺序应该是
             /etc/profile ->/etc/enviroment -->$home/.profile   -->$home/.env
       原因应该是jtw所说的用户环境和系统环境的区别了



       如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值那应该是以用户环境为准了。


(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
(3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(5) ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。


simone 2011-10-24 16:33
]]>
图文解说:nginx tomcat ubuntu10配置负载均衡http://www.blogjava.net/wangxinsh55/archive/2011/10/21/361695.htmlsimonesimonefri, 21 oct 2011 01:59:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/21/361695.htmlhttp://www.blogjava.net/wangxinsh55/comments/361695.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/21/361695.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361695.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361695.html阅读全文

simone 2011-10-21 09:59
]]>
ubuntu 11.04下jdk安装与配置http://www.blogjava.net/wangxinsh55/archive/2011/10/20/361647.htmlsimonesimonethu, 20 oct 2011 04:02:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/20/361647.htmlhttp://www.blogjava.net/wangxinsh55/comments/361647.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/20/361647.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361647.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361647.html
http://fredric0611.iteye.com/blog/1074006


到http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html 下载sudo ./jdk-6u26-linux-i586.bin
   放置于主目录中。

 

shell代码  
  1. sudo ./jdk-6u26-linux-i586.bin  

 安装成功。

然后要配置环境变量

 

shell代码  
  1. sudo gedit /etc/environment   

 在文件中添加

 

gedit代码  
  1. export java_home=/home/fredric/jdk1.6.0_23   
  2. export jre_home=/home/fredric/jdk1.6.0_23/jre   
  3. export classpath=$classpath:$java_home/lib:$java_home/jre/lib  

 然后修改第二个文件

 

shell代码  
  1. sudo gedit /etc/profile   

 在文件中最后一行的前面添加

 

gedit代码  
  1. export java_home=/home/fredric/jdk1.6.0_23   
  2. export jre_home=/home/fredric/jdk1.6.0_23/jre   
  3. export classpath=$classpath:$java_home/lib:$java_home/jre/lib   
  4. export path=$java_home/bin:$java_home/jre/bin:$path:$home/bin  

 由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。

执行

 

shell代码  
  1. sudo update-alternatives --install /usr/bin/java java /home/fredric/jdk1.6.0_12/bin/java 300  
  2. sudo update-alternatives --install /usr/bin/javac javac /home/fredric/jdk1.6.0_12/bin/javac 300  

 通过这一步将我们安装的jdk加入java选单。

然后执行

 

shell代码  
  1. update-alternatives --config java  

 通过这一步选择系统默认的jdk

这样,再在shell中输入

 

shell代码  
  1. java -version  



simone 2011-10-20 12:02
]]>
ubuntu 11.04 下安装配置 jdk 7http://www.blogjava.net/wangxinsh55/archive/2011/10/20/361646.htmlsimonesimonethu, 20 oct 2011 03:51:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2011/10/20/361646.htmlhttp://www.blogjava.net/wangxinsh55/comments/361646.htmlhttp://www.blogjava.net/wangxinsh55/archive/2011/10/20/361646.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/361646.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/361646.html

第一步:下载jdk-7-linux-i586.tar.gz

  1. wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz  
(注:如果下载不下来,建议使用迅雷下载,然后拷贝到linux系统上。)


第二步:解压安装

  1. sudo tar zxvf ./jdk-7-linux-i586.tar.gz  -c /usr/lib/jvm  
  2. cd /usr/lib/jvm  
  3. sudo mv jdk1.7.0/ java-7-sun  

第三步:修改环境变量

  1. vim ~/.bashrc  
添加:
 
  1. export java_home=/usr/lib/jvm/java-7-sun  
  2. export jre_home=${java_home}/jre  
  3. export classpath=.:${java_home}/lib:${jre_home}/lib  
  4. export path=${java_home}/bin:$path  

保存退出,输入以下命令使之立即生效。

  1. source ~/.bashrc  

第四步:配置默认jdk版本

由于中可能会有默认的jdk,如openjdk,所以,为了将我们安装的jdk设置为默认jdk版本,还要进行如下工作。
执行代码:
  1. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300  
  2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300  
执行代码:
  1. sudo update-alternatives --config java  
系统会列出各种jdk版本,如下所示:
  1. www.linuxidc.com@linux:~$ sudo update-alternatives --config java  
  2. 有 3 个候选项可用于替换 java (提供 /usr/bin/java)。  
  3.   
  4.   
  5.   选择       路径                                    优先级  状态  
  6. ------------------------------------------------------------  
  7. * 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自动模式  
  8.   1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手动模式  
  9.   2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手动模式  
  10.   3            /usr/lib/jvm/java-7-sun/bin/java           300       手动模式  
  11.   
  12.   
  13. 要维持当前值[*]请按回车键,或者键入选择的编号:3  
  14. update-alternatives: 使用 /usr/lib/jvm/java-7-sun/bin/java 来提供 /usr/bin/java (java),于 手动模式 中。  

第五步:测试

  1. www.linuxidc.com@linux:~$ java -version  
  2. java version "1.7.0"  
  3. java(tm) se runtime environment (build 1.7.0-b147)  
  4. java hotspot(tm) server vm (build 21.0-b17, mixed mode)  
参考链接:
在 10.10下安装jdk配置eclipse及tomcat
java学习_jdk安装 

simone 2011-10-20 11:51
]]>
linux 定时任务 crontab 详细解释http://www.blogjava.net/wangxinsh55/archive/2010/05/27/322004.htmlsimonesimonethu, 27 may 2010 04:00:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2010/05/27/322004.htmlhttp://www.blogjava.net/wangxinsh55/comments/322004.htmlhttp://www.blogjava.net/wangxinsh55/archive/2010/05/27/322004.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/322004.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/322004.html 引用: 
/sbin/service crond start //启动服务 
/sbin/service crond stop //关闭服务 
/sbin/service crond restart //重启服务 
/sbin/service crond reload //重新载入配置 
很多时候,你没有办法重新启动crond,这个时候可以先killall crond 然后再crond restart就哦ok了。我就是这么干的。
你也可以将这个服务在系统启动的时候也自动启动: 
引用: 
在/etc /rc.d/rc.local这个脚本的末尾加上: 
/sbin/service crond start 
现在cron这个服 务已经在进程里面了,我们就可以用这个服务了,cron服务提供以下几种接口供大家使用: 
1.直接用crontab命令编辑 
cron 服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: 
引用: 
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 
crontab -l //列出某个用户cron服务的详细内容 
crontab -r //删除没个用户的cron服务 
crontab -e //编辑某个用户的cron服务 
比如说root查看自己的cron设置: 
引用: 
crontab -u root -l 
再例如,root想删除fred的cron设置: 
引用: 
crontab -u fred -r 
在编辑cron服务时,编辑的内容有一些格式和约定,输入: 
引用: 
crontab -u root -e 
进入vi编辑模式,编辑的内容一定要符合下面的格式: 
引用: 
*/1 * * * * ls >> /tmp/ls.txt 
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些 命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数 字,数字的取值范围和含义如下: 
引用: 
分钟 (0-59) 
小时 (0-23) 
日期 (1-31) 
月份 (1-12) 
星期 (0-6)//0代表星期天 
除了数字还有几个个特殊的符号就 是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数 字,","分开几个离散的数字。以下举几个例子说明问题: 
引用: 
每天早上6点 
0 6 * * * echo "good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。 
每两个小时 
0 */2 * * * echo "have a break now." >> /tmp/test.txt 
晚上11点到 早上8点之间每两个小时,早上八点 
0 23-7/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt 
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
0 11 4 * 1-3 command line 
1月1日早上4点 
0 4 1 1 * command line 
每次编辑 完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这 个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 
2.编辑 /etc/crontab 文件配置cron 
cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务 做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: 
引用: 
shell=/bin/bash 
path=/sbin:/bin:/usr/sbin:/usr/bin 
mailto=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 
home=/ 
# run-parts 
01 * * * * root run-parts /etc/cron.hourly //每个小时去执行一遍/etc/cron.hourly内的脚本 
02 4 * * * root run-parts /etc/cron.daily //每天去执行一遍/etc/cron.daily内的脚本 
22 4 * * 0 root run-parts /etc/cron.weekly //每星期去执行一遍/etc/cron.weekly内的脚本 
42 4 1 * * root run-parts /etc/cron.monthly //每个月去执行一遍/etc/cron.monthly内的脚本 
使 用者 运行的路径 
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。 
cron 
定时执行指令 ( cron ): 
crontab [*/minute] [*/hour] [*/day] [*/month] [*(/dayofweek)?] command 
minute: 分钟,1 ~ 59 
hour : 小时,0 ~ 23 
day : 日期,1 ~ 31 
month : 月份,1 ~ 12 或 jan、feb... 
dayofweek? : 0(星期日)~ 6(星期六),或 mon、tue... 
command : 所要执行的指令,中间以 ; 来分隔多个指令。 
-e : 编辑 /var/spool/cron/crontabs/username 这一个档案。以 # 开头代表批注。 
-l : 列出 /var/spool/cron/crontabs/username 这一个档案的内容。 
-d : 删除使用者的工作排程。 
-r : 删除使用者的工作排程档。 
minute,houre,day,month,dayofweek? 为条件式,需要符合所有条件的那个时刻指令才会执行。 
用 * 来代表略过这一个条件。 
如果同一个字段有多个条件,中间要 用 , 分开。 
如果是指连续一段时间,中间则以 - 分开。 
如果要每隔固定时间执行,则使用 /#,指每隔 # 时刻执行。 
crontab 的指令,预设是以 /bin/sh 为直译器,而以使用者的家目录为工作目录。然而使用者可以用 home、shell、path 的变量改变执行时的直译器、预设执行目录与路径。也可以透过设定 mailto 设定执行后的纪录要以电子邮件记送到何处。 
# use /bin/sh to run commands, no matter what /etc/passwd says 
shell=/bin/sh 
# mail any output to `paul', no matter whose crontab this is 
mailto=paul 

# run five minutes after midnight, every day 
5 0 * * * $home/bin/daily.job >> $home/tmp/out 2>&1 
# run at 2:15pm on the first of every month -- output mailed to paul 
15 14 1 * * $home/bin/monthly 
# run at 10 pm on weekdays, annoy joe 
0 22 * * 1-5 mail -s "it's 10pm" joe%joe,%%where are your kids?% 
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" 
5 4 * * sun echo "run at 5 after 4 every sunday" 
root 可以用 -u user name 来编辑其它使用者的 crontab 设定。 
crontab -u username -e 
在开机时,rc 档会载入 crond 这一个 daemon, 
它会定时去读取这个档案,并依其内容执行指令。 
而指令的执行结果(标准输出/错误输 出,stdout/stderr)会以邮件方式寄给系统管理者, 
即 /etc/aliases 档案中的 root : username 。 
也可以先将指令储存成档案,然后使用 
crontab filename 
来将要执行 的指令写入 /var/spool/cron/crontabs/username 这一个档案中

simone 2010-05-27 12:00
]]>
vi 命令说明http://www.blogjava.net/wangxinsh55/archive/2006/03/30/38235.htmlsimonesimonethu, 30 mar 2006 04:56:00 gmthttp://www.blogjava.net/wangxinsh55/archive/2006/03/30/38235.htmlhttp://www.blogjava.net/wangxinsh55/comments/38235.htmlhttp://www.blogjava.net/wangxinsh55/archive/2006/03/30/38235.html#feedback0http://www.blogjava.net/wangxinsh55/comments/commentrss/38235.htmlhttp://www.blogjava.net/wangxinsh55/services/trackbacks/38235.html

1.6.1  vi 的工作模式

vi 在初始启动后首先进入编辑模式,当用户在编辑模式下键入 i, a, o 等命令之后,可进入插入模式;键入 : 可进入命名模式。在插入模式下,用户随后输入的,除 esc 之外的任何字符均将被看成是插入到编辑缓冲区中的字符。按 esc 之后,从插入模式切换到编辑模式。

1.6.2  编辑模式

1. 移动光标

要对正文内容进行修改,首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、
右箭头键。除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅
速到达指定的行或列,实现定位。例如:
k、j、h、l 功能分别等同于上、下、左、右箭头键
ctrl b 在文件中向上移动一页(相当于 pageup 键)
ctrl f 在文件中向下移动一页(相当于 pagedown 键)
h 将光标移到屏幕的最上行(highest)
nh 将光标移到屏幕的第 n 行
2h 将光标移到屏幕的第 2 行
m 将光标移到屏幕的中间(middle)
l 将光标移到屏幕的最下行(lowest)
nl 将光标移到屏幕的倒数第 n 行
3l 将光标移到屏幕的倒数第 3 行
w 在指定行内右移光标,到下一个字的开头
e 在指定行内右移光标,到一个字的末尾
b 在指定行内左移光标,到前一个字的开头
0 数字0,左移光标,到本行的开头
$ 右移光标,到本行的末尾
^ 移动光标,到本行的第一个非空字符

2. 替换和删除

将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多
个字符。例如:
rc 用 c 替换光标所指向的当前字符
nrc 用 c 替换光标所指向的前 n 个字符
5rc 用 c 替换光标所指向的前 5 个字符
x 删除光标所指向的当前字符
nx 删除光标所指向的前 n 个字符
3x 删除光标所指向的前 3 个字符
dw 删除光标右侧的字
ndw 删除光标右侧的 n 个字
3dw 删除光标右侧的 3 个字
db 删除光标左侧的字
ndb 删除光标左侧的 n 个字
5db 删除光标左侧的 5 个字
dd 删除光标所在行,并去除空隙
ndd 删除 n 行内容,并去除空隙
3dd 删除 3 行内容,并去除空隙

3. 粘贴和复制

从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可
将其粘贴到正文中的指定位置。完成这一操作的命令是:
p 小写字母 p,将缓冲区的内容粘贴到光标的后面
p 大写字母 p,将缓冲区的内容粘贴到光标的前面
如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前
光标所在行的上一行或下一行。
注意上述两个命令中字母的大小写。vi 编辑器经常以一对大、小写字母(如 p 和 p)来提供一对相似的功能
。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。
有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是
剪切)到内存缓冲区。完成这一操作的命令是:
yy 复制当前行到内存缓冲区
nyy 复制 n 行内容到内存缓冲区
5yy 复制 5 行内容到内存缓冲区

4. 搜索字符串

和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以
用 vi 直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后
按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的
开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向
搜索(朝文件开头方向)。例如:
/str1 正向搜索字符串 str1
n 继续搜索,找出 str1 字符串下次出现的位置
?str2 反向搜索字符串 str2
无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。

5. 撤销和重复

在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新
的光标位置重复前面执行过的编辑命令,可用重复命令。
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令

6. 文本选中

vi 可进入到一种成为 visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再执行其他编辑操作,例如删除、复制等。 v 字符选中命令 v 行选中命令

#demo#

1.6.3  插入模式

1. 进入插入模式

在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:
i 在光标左侧输入正文
a 在光标右侧输入正文
o 在光标所在行的下一行增添新行
o 在光标所在行的上一行增添新行
i 在光标所在行的开头输入正文
a 在光标所在行的末尾输入正文
上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段
正文,从而实现正文的替换。这些命令包括:
s 用输入的正文替换光标所指向的字符
ns 用输入的正文替换光标右侧 n 个字符
cw 用输入的正文替换光标右侧的字
ncw 用输入的正文替换光标右侧的 n 个字
cb 用输入的正文替换光标左侧的字
ncb 用输入的正文替换光标左侧的 n 个字
cd 用输入的正文替换光标的所在行
ncd 用输入的正文替换光标下面的 n 行
c$ 用输入的正文替换从光标开始到本行末尾的所有字符
c0 用输入的正文替换从本行开头到光标的所有字符

2. 退出插入模式

退出插入模式的方法是,按 esc 键或组合键ctrl [ 。

#demo#

1.6.4  命令模式

在 vi 的命令模式下,可以使用复杂的命令。在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在那里显示冒号,此时已进入命令模式。命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后一行,按回车键,vi 执行命令。

1. 退出命令

在编辑模式下可以用 zz 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。如果只需要
退出编辑程序,而不打算保存编辑的内容,可用下面的命令:
: q 在未作修改的情况下退出
: q! 放弃所有修改,退出编辑程序

2. 行号与文件

编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:
: n 将光标移到第 n 行
命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符
符“$”表示正文最后一行的行号;简单的表达式,例如“. 5”表示当前行往下的第 5 行。例如:
:345 将光标移到第 345 行
:345w file 将第 345 行写入 file 文件
:3,5w file 将第 3 行至第 5 行写入 file 文件
:1,.w file 将第 1 行至当前行写入 file 文件
:.,$w file 将当前行至最后一行写入 file 文件
:.,. 5w file 从当前行开始将 6 行内容写入 file 文件
:1,$w file 将所有内容写入 file 文件,相当于 :w file 命令
在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:
:w 将编辑的内容写入原始文件,用来保存编辑的中间结果
:wq 将编辑的内容写入原始文件并退出编辑程序(相当于 zz 命令)
:w file 将编辑的内容写入 file 文件,保持原有文件的内容不变
:a,bw file 将第 a 行至第 b 行的内容写入 file 文件
:r file 读取 file 文件的内容,插入当前光标所在行的后面
:e file 编辑新文件 file 代替原有内容
:f file 将当前文件重命名为 file
:f 打印当前文件名称和状态,如文件的行数、光标所在的行号等

3. 字符串搜索

给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“
/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。例如:
:/str/ 正向搜索,将光标移到下一个包含字符串 str 的行
:?str? 反向搜索,将光标移到上一个包含字符串 str 的行
:/str/w file 正向搜索,并将第一个包含字符串 str 的行写入 file 文件
:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写
入 file 文件

4. 正文替换

利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

5. 删除正文

在命令模式下,同样可以删除正文中的内容。例如:
:d 删除光标所在行
:3d 删除 3 行
:.,$d 删除当前行至正文的末尾
:/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行

6. 恢复文件

vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:
:recover 恢复文件
也可以在启动 vi 时利用 -r 选项。


simone 2006-03-30 12:56
]]>
网站地图