MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ubuntu 超级优化,不仅仅是禁用几个服务哦

posted @ 2011-01-07 04:33 leekiang 阅读(326) | 评论 (0)编辑 收藏

About Shell
-----------
Q1.用户登录到Linux机器,系统会启动login子程序处理用户登录请求,如何自动设置用户环境变量?
比如 PATH,CVS_RSH等等

编辑/etc/profile 和 $HOME/.bash_profile $HOME/.bash_login $HOME/.profile
当退出登录时,shell会执行 ~/.bash_logout

Q2.如何快速执行历史命令?

fc -s [cmd] 执行编号为cmd的命令,缺省的话,执行最近1条指令
可以使用alias r='fc -s' 登记1个命令别名,减少键击次数

注:
fc - Fix Command

可以用bash内建的命令查找功能,在命令输入状态下输入C-R,则再输入命令,即可出现
与当前输入字符串匹配的命令列表

Q3.如何快速查看一个用户的id和组id?

输入id 即可查看当前用户的id和组id(包括数字和名称)
输入id [USERNAME] 即可查看 USERNAME的id和组id(包括数字和名称)

Q4.如何查看OS打开的所有文件句柄?

输入lsof,可查看所有的打开文件
输入lsof /path/of/file, 可查看/path/of/file目录中被打开的文件

Q5.如何转化不同编码的文件?

例如 readme.txt 是GB2312编码的,Console只支持utf-8的,要将readme.txt
打印处理,如果不作编码转换,必然出现乱码.
可以用iconv工具进行转化
cat readme.txt| iconv -f gb2312 -t utf-8

Q6.如何在当前的shell会话上下文中设置环境变量?

将设置指令写如一个特定的bash文件,如setup.sh
执行 . setup.sh 命令
注: . 也是bash的一个内建指令

Q7.如何使用Bash的花括号自动扩展?

假设我们要打印出从a到z的26个字母,那么通常做法是从a循环到z,逐个输出,但我们知道
Linux下这样的轮子大多数已经被人发明过了,Bash中就有这样的工具

输入 echo {a..z}

扩展应用:
a) 当我们要列出多个目录下的文件时,这能给我们帮助
ls /path/{dir1, dir2}
b) 当我们要改变多个目录的属主时
chown /path/{ex?.?*, how_ex}

Q8.如何把一个命令的输出赋值给某一个特定的变量?

使用语句
var1=$(command)
或者反引号
var1=`command`

Q9. Bash中如何用快捷键键?

输入 CTRL-W 删除左边文本,直至遇到空格 ( vim 中 dB )
输入 CTRL-K 删除从光标位置到行尾的文本 (vim 中 d$ )
输入 CTRL-Y 粘贴剪贴板中的文本至光标位置 (vim 中 p)
输入 CTRL-r或 CTRL-s, 可匹配增量匹配当前的字, 显示出候选的命令.如果有多个匹配
结果,则输入C-r向后搜索,输入C-s向前搜索.

Q10. 如何让Bash中在sudo/man等命令时也会自动补全命令?

可利用Bash中的Programmable Completion Builtins功能,具体语法见
INFO BASH :: Command Line Editing :: Programmable Completion
比如要让man 具备自动补全的功能,则这么写
complete -F _man $filenames man

_man 函数会被执行,请求所有可能补全的值写在COMPREPLY数组中

Q11. Bash中如何Use Here Document?
使用语法
VAR=<<"EOF"
Some here document
EOF

注: 详见Bash Info - 3.6.5 Here Documents
- read input from the current source until a line containing only WORD (with no trailing
-blanks) is seen.

Q12. Bash中[[和[有何不同?
[[是复合命令,它可以构成测试用的表达式,表达式可以是bash中的条件表达式的任一种,
单目和双目运算的均可.可以用! && || 这样的逻辑运算符.

[是内建命令,同样也是用来测试表达式,表达式可以是Bash条件表达式中的任一种.
可以用! -a -o 这样的逻辑运算符.
两者是除了逻辑运算符不同之外,并无明显区别.

About Man/Info
---------------
Q1.用户手册将命令划分为不同的类别,如何查看分属不同Section的命令?

man 7 locale # 7代表Section 号


About X
--------
X1.如何获得系统中所有的字体?

输入指令 xlsfonts

X2. 如何在ssh登录到远程机器上后在本地运行X应用程序?

假设你的本地主机HostA,远程主机HostB,那么你要远程连接到HostB上运行X应用,显示在
HostA的屏幕上.
1. 配置HostA上 ~/.ssh/config 文件

Host *
ForwardAgent yes
ForwardX11 yes

ForwardX11Trusted yes
2. ssh HostB
3. 执行X应用程序

注意:必须在HostA上开通X11的转发而不是HostB.

X3. 如果使用第2个屏幕-投影仪?

在Ubuntu 7.04以上中自动支持投影仪,即插即用,但需要插上VGA的接口,重新启动系统后方可使用
在Ubuntu 7.10版本接上投影仪后,第2个屏幕无输出,要LOGOUT后才有输出

About Maintain
--------------
R1. 目录名字不要包含大写字符,尽量少包含中文字符.

1. 中文文件名在Unix/Linux下不易输入,需要X/输入法的支持.
2. 如果采用Apache的文件访问接口,非Latin字符大多需要URL转义,这对于HTML作者不友好

R2. 请及时清理一些临时,系统日志文件,减少其对存储空间的占用,也是加快程序运行速度
1. /tmp
2. /var/log

R3. 不要直接用root用户身份登录系统

如果你不想让你系统中的重要文件因为你的操作不当在倾刻间消失,那就用吧.
有人用chown命令把整个操作系统中文件的用户/组属性改成了asterisk:asterisk
也有人曾经把/var, /etc两个目录删除,系统必须重装.

R4. 为了有助于确保Web Mail您的密码和帐户的安全,请在每个会话结束时注销帐户。

About System
------------
S1. Linux在boot起来之后,先调用/sbin/init,它是其他所有进程的父进程
1.启动时先运行boot level master script
2.执行硬件初始化脚本
3.执行run level master script,运行级别定义在/etc/inittab中
每级的脚本放在/etc/init.d/rc<X>.d中
4.到最后用户看到的即是mingetty登录界面

S2. Linux TTY这种用户接口的设计思想
用户通过本地键盘或者网络 -->命令 -->TTY -->Shell Interpreter
--> Excute Cmd --> Output --> TTY --> 本地内存或者网络 -->显示器输出
优点: 可以用不同形式的终端登录,比如本地键盘,远程网络,Modem,只有TTY与用户
之间存在某种连接即可

S3. Linux如何同一张网卡如何支持多个IP?

1. 配置 虚拟接口
ifconfig eth0:0 192.168.12.240
ifconfig eth0:0 netmask 255.255.255.0

2. 增加一个路由表
route add -net 192.168.12.0 netmask 255.255.255.0 dev eth0:0

3. 增加一个缺省的路由表

route add default gw 192.168.12.168

S4. 如果Home分区中空间不够,但是/usr分区中留有较大的空间,如何平衡利用这两空间?

目标: 1.通过Home分区文件的形式读写数据
2.实际的数据确是存储在/usr/分区中

利用符号链接的方式,在Home分区中建立一个符号链接目录,指向
ln -s /usr/local/voip ~/project/voip

S5. Apache 使用UserDir模块时,~username形式访问,Apache告之禁止访问?

比如/home/robbie 它具有drwx------属性,必须将它改为
drwxr-xr-x属性,Apache服务器才可打开用户目录

S6. 如何添加自定义的全局的初始化动作?

比如要添加这两个别名命令fcc,和fpp统计.c和.cpp源文件数目,
可在/etc/bash.bashrc.local中添加如下脚本
alias fcc='ll -R | grep "[:alpha:]*[.]c$" | nl |less'
alias fpp='ll -R | grep "[:alpha:]*[.]cpp$" | nl |less'

注:
Linux Kernel 共有7454个源文件

S7. 如何查看系统中打开某个目录/文件的进程?

fuser -v FILE_TO_LOOK_UP

S8. 如何让普通用户以超级用户身份执行命令,而不需要其输入密码?

配置/etc/sudoers,按照如下方式指定
asterisk ALL = NOPASSWD: /sbin/shutdown
注:
ALL是代表任何网络主机.

S9. 如何查看Linux系统运行了多长时间?

输入
uptime
输出
7:00pm up 3 days 9:49, 11 users, load average: 1.28, 1.29, 1.26

S10.如何查看Linux系统运行状态信息,比如cpu/内核版本/启动参数/IO口?

cat /proc/*

S11.如何备份文件?

使用cp命令,如

cp src_files dst_files
注意:
SuSE 9.3 cp 的版本为 5.3.0,对于存在相同文件的覆盖操作,默认动作是覆盖
Linux robbie 2.6.11.4-20a-default #1 Wed Mar 23 21:52:37 UTC 2005 i686 i686 i386 GNU/Linux
CentOS 分发版
Linux asterisk1.local 2.6.9-11.EL #1 Wed Jun 8 16:59:52 CDT 2005 i686 i686 i386 GNU/Linux
CentOS SMP的版本
Linux SVC9000.local 2.6.9-11.ELsmp #1 SMP Wed Jun 8 17:54:20 CDT 2005 i686 i686 i386 GNU/Linux

S12. 如何给系统增加一个路由?

存在如下的一条路由
default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0
添加一条路由
route add default 192.168.12.168

S13. 如何使用NFS?

服务器端设置 (以CentOS为例)

A. 在目标主机上设置NFS 共享目录,修改/etc/exports
增加如下条目:
/mnt/asterisk 192.168.12.0/255.255.255.0(rw)
B. 启动NFS服务
service nfs start
如果NFS服务已经启动,那么重读exports
exportfs -ra

客户端设置 (2.2.18以上内核内建支持NFS)

手工mount:
mount 192.168.12.238:/mnt/asterisk /path/of/client/nfs

自动mount:
修改 /etc/fstab,增加一条
192.168.12.238:/mnt/asterisk /path/of/client/nfs nfs rw 0
然后执行: mount -a -t nfs

注:
1. 缺省,在服务器端的共享目录的访问权限即为mount后的访问权限
2. nfs服务依赖于portmap,启动nfs前portmap必须先启动

S14.如何制作一张可以启动的CD-ROM?

1. 你需要具备以下这些文件, isolinux目录以及目录中的内核,配置,Ramdisk镜像等
可从Redhat安装盘上获得
2. 将isolinux目录拷贝至你的ISO光盘的根目录
3. 使用工具mkisofs
mkisofs -o output.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T \
-input-charset utf-8 /path/of/your/isoroot

参考:
http://syslinux.zytor.com/iso.php
注:
1. 制作SVC ISO文件耗时1m45.494s 43.170s(P4,CentOS 4.1)
2. 可以使用mkisofs将多个redhat安装盘合并为一个dvd的安装盘
使用到的开关有: -graft-points Psyche-i386-disc1
溶合的项目有 .discinfo=.discinfo isolinux/=isolinux
RedHat/=shrike-i386-disc2/RedHat RedHat/=shrike-i386-disc3/RedHat
docs/=Psyche-docs

S15. 如何刻录一张CD-R 或者CD-RW?

* 对于CD-R,假设要刻录的是mydata.iso文件,使用

cdrecord -v speed=4 dev=0,0,0 -data mydata.iso
一般,cdrecord会使用TAO mode for single session模式.

* 对于CD-RW,先要将CD-RW盘的数据内容擦除

cdrecord -v speed=2 dev=0,0,0 -blank=fast
然后和CD-R一样,再使用刻录指令.

注:
1. 参数dev=0,0,0是刻录设备的地址,可以如下命令得到
cdrecord -scanbus
2. 需要的话,在dev参数上加 ATAPI指示符,如
cdrecord -v speed=8 dev=ATAPI:0,0,0 -data boot.iso
3. 一般刻录一张 560M的CD-ROM,需925.050s

S16. 如何在单一终端中执行多个任务,并在任务之间切换?

举例:
A. vim hello.txt 编辑一个文档
B. 中途用户想退出,查看系统的CPU 运行情况
按 CTRL-Z,挂起当前vim任务;输入top
C. 用户在top任务中又想看一下硬盘的分区信息
按 CTRL-Z,挂起当前top任务;输入fdisk /dev/hda
D. 此时当前运行任务为fdisk,挂起的有2个:vim和top
在fdisk中按 CTRL-Z一样挂起它
输入: jobs -l
系统输出:
[3]+ 21731 Stopped vim hello.txt
[4] 21805 Stopped top
[5]- 21827 Stopped fdisk /dev/hda
[]中的数字代表后台任务编号,你可以根据它在任务间来回切换
输入 fg 1 或 fg vim 回到vim任务中,继续执行
输入 fg 2 或 fg top 回到top任务中
输入 fg 3 或 fg fdisk 回到fdisk任务中

S17. 如何快速查看Linux系统的分区信息?

输入 fdisk -lu /dev/hdx
可看到指定硬盘设备的分区信息.

S18. 我的FTP服务或者Web服务别人无法访问到?

很可能是你的防火墙做了限制,将你要提供的服务从禁用列表中去除即可.

S19. 软件A依赖于与库B,我安装了B,可A依然提示库B找不到?

有一种可能性,即库B不是装在系统的库文件目录/lib和/usr/lib,譬如安装于
/usr/local/lib下,这样就找不到
办法:
1 修改安装路径为/lib
2 或将/usr/local/lib添加到系统库目录中
* 编辑 /etc/ld.so.conf
加入一行 /usr/local/lib
* 重载库 sudo ldconfig

S20. 某些系统服务如mysql数据库未在启动时加载,如何配置启动时加载?

使用/sbin/chkconfig工具,如下
/sbin/chkconfig --level 2345 mysql on
就可使mysql服务器在2345级别启动时自动运行

S21. PHP许多模块未加载,如何加载它们?

修改/etc/php.ini ,比如你要加载session.so,应写为
extension=session.so

S22. 如何监控系统从开机到出现登录界面所使用的时间以及系统的运行状态?

安装bootchart软件包,之后,每次系统启动完成后会在/var/log/bootchart目录下生成
监测图,PNG格式的,里面包含着启动耗费时间、每一个服务的起止时间.

S23. Ubuntu下如何支持中文输入?

  $sudo apt-get install scim scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-input-pad
   $sudo sh -c " echo 'export XMODIFIERS=@im=SCIM ; export GTK_IM_MODULE="scim" ; export QT_IM_MODULE="scim" ; scim -d ' > /etc/X11/Xsession.d/95xinput "
  $sudo chmod +755 /etc/X11/Xsession.d/95xinput

  # 注:在Dapper下省略后两步
  #注:在Dapper里也可以直接选择系统->系统管理—>语言支持(language support)勾选Chinese 就会自动安装和配置scim

  分解一下看看:
  安装scim输入法平台

S24. NFS服务起来后,在客户端mount一直提示"mount: RPC: Timed out\n"?

表现:
* 查了portmap, nfs都服务端都没有问题
* showmount -e nfs_server也没有问题
* 就是在mount -t nfs nfs_server:/path /local/path时出"mount: RPC: Timed out\n"的错误

解决: 路由可能是原因
出现这种问题,在查遍了许多文章还没有结果的情况下,请查一下服务器的网络配置,特别小心多网卡
情况下的路由,如果你的缺省路由类似这样
default 220.250.26.1 0.0.0.0 UG 0 0 0 eth1
那么很可能路由是罪魁祸首.

S25. 双网卡如何共享网络连接?

参考 nat.sh

S26. 如何解决SCIM和Open Office不兼容,导致Open Office异常退出的问题?

问题描述
1.系统环境中设置了scim为输入法
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
2.在KDE应用比如Konsole中可以正常输入中文,但打开open office却异常退出,
打开其它应用Mozilla Thunderbird,也是异常退出

这里也有描述 https://bugs.launchpad.net/openoffice/+bug/103079
原因
scim与GTK2的应用程序存在二进制的兼容性问题,scim是c++语言实现的,而gtk2
应用比如openoffice, moizlla Thunderbird是采用C语言实现的,在加载输入法
时会导致应用程序内存分配错误.

解决办法
1. 安装scim-bridge模块
http://www.scim-im.org/projects/scim_bridge
2. 修改GTK应用程序的输入法配置
export GTK_IM_MODULE=scim-bridge
3. 登出桌面系统,再登录,即可正常打开ooffice

About Toolkit
-------------
T1. 使用grep查找.gz文件中包含特定字符串的行?
举例,有个文件,ls-lrR.txt.gz, 待查找的字符串为开头为rms,结尾为ogg的文件,可以用下列方式
gunzip -c ls-lrR.txt.gz | grep 'rms-.*ogg'
注: *NIX环境下, .可代表任何字符, *代表任意匹配,+代表至少出现1次,?代表至多出现1次

T2. Windows 2000运行有telnet服务,这样可以使用linux的konsole/或者其他终端模拟器连接windows主机.

telnet pc.window.address

T3. 如何查看PDF/ps格式的文档?

gs ps_file_name3
gs pdf_file_name

Note: gs is PostScript and PDF language interpreter and previewer

T4. 如何跟踪IP报文的路径?

Linux下,输入traceroute HOST_NAME|IP
Win32下,输入tracert HOST_NAME|IP

T5. 如何查看内核的路由表?

Linux下,输入/sbin/route
Win32下,输入route PRINT

T6. 如何内核中的网络接口卡的物理地址?

Linux下,输入/sbin/arp
Win32下,输入 arp -a

T7. 如何实现按1个快捷键即输入"年-月-日 星期x"?

可以使用map命令,将某一个快捷键变为命令输入
参考:map <F2> ggA<C-R>=strftime("%Y-%m-%d %A")<CR><Esc>

T8. 如何使用Shell工具链统计一个目录下所有.c的原文件数目?

分析:.c原文件的特征是以.c字符为结尾,可以使用正则表达是[.]c表示
ll -R | grep "[:alpha:]*[.]c$" | nl |less
正则表达式 ([0-9]{5,}) 代表由5位数字构成的单词,()是单词控制字符

T9. 如何高效的使用FTP客户端工具?

lftp 工具可以完美的支持,它支持提前信息获取,Tab目录或文件补齐.
lftp 支持下载进度指示,%形式,下载速率.
lftp 支持断线后自动恢复连接.
lftp 在绝大多数Linux分发版中都有安装.

T10. SSH远程登录工具,认证过程解析?

* 客户登录到远程主机,必须提供identity
* SSH服务器认证这个identity
* Host Key 和 Public Key的关系
* Challenge = a random number, encrypted by user's public key

T11. 如何快速的执行计算命令?

比如,计算硬盘的大小,BLOCK数18335302,每个BLOCK为512字节
echo "512*18335302" | bc

T12. vsftpd/wu-ftpd如何启用匿名ftp服务?

对于vsftpd,编辑/etc/vsftpd.conf,确认开关
anonymous_enable=YES
注:
1. 匿名ftp用户登录所见目录对应于系统中ftp用户的HOME目录,一般为/var/ftp,可变更
2. ftp用户的HOME目录owner:group要设为root:root,用户才通过匿名访问,否则有500错误

T13. 如何快速得到文件系统中各个目录对硬盘的占用情况?

在根目录下输入 du -h --max-depth=1

T14. 如何快速查看指定的man文件?

输入 man -l /path/of/your/man/file

T15. 如何查看一个IP段范围内的IP地址与前缀?

利用 ipcount命令,比如查看起始地址为 192.168.3.2
数量为100的所有ip地址前缀
输入
ipcount 192.168.3.2+100

T16. VsFtpd服务器登录时,每个文件的owner和group都显示为ftp,
因为权限受限,无法上传,怎么办?

编辑/etc/vsftpd.conff
设置 hide_ids=NO

T17. Lynx文本浏览器如何实现文本行的滚动?

输入 CTRL-N 向下翻动两行
输入 CTRL-P 向上翻动两行

T18. 如何抓取网络接口中传输的数据报文?

tcpdump -i interface

T19. 如何查看一台主机的IP地址?

host name 即可查看name对应的IP地址

T20. 如何启用NAT?

192.168.3.0/24局域网主机通过WAN连接网络

iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to 218.67.79.7
echo 1 > /proc/sys/net/ipv4/ip_forward

T21. 如何在命令行下查看word文档?

安装antiword这个工具包,输入
antiword wordfile
这个工具就会将word文档内容输出到标准输出。

注:
可以使用mc这个外包shell调用antiword,即通过查看功能

T22. 如何快速的排序一个文本文件?

执行
sort -u unsortedfile -o sortedfile

T23. 如何给源代码打上patch?

举例,给vsftpd服务器源码打上补丁
cd vsftpd-2.0.1
patch -p1 -b < patchfile
开关说明:
-p1 表示patch中必须去除一级目录前缀
-b 表示patch前备份原始文件

T24. 如何生成补丁文件?

假设有文件origfile,经过修改变为destfile
那么如何根据origfile和destfile的区别生成补丁呢?
diff -u origfile destfile > patchfile

如果是两个目录进行比较,那么需要使用
diff -urN origdir destdir > patchfile

注意: -N选项视新文件为空文件

T25. 如何通过http协议访问svn仓库?

使用apache2, 加载mod_dav.so和mod_dav_svn.so两个模块
假设你的svn仓库父目录为/srv/svnroot,如下配置即可
<Location /svn>
DAV svn
SVNParentPath /srv/svnroot
</Location>
重启apache2,使用svn co http://localhost/svn/repos 即可checkout仓库repos中的文件

注意:
1. 如果无法通过http commit,报告这样的错误
svn: Can't open activity db: APR does not understand this error code
需要将/srv/svnroot/repos/dav目录的访问权限改写为0777
2. 如果提示对“%$s”的方法 %$s 失败: 403 Forbidden (http://localhost)错误
则查看apache2的error.log,并确认dav_svn的配置中
LimitExcept GET PROPFIND OPTIONS REPORT是被注释掉的
3. 如果需要限制用安全链接访问版本库,则在Location配置选项中加入
SSLRequireSSL

T26. 如何启用Apache的https安全协议?

参考资料:
* SSL Certificates HOWTO
* Linux Apache SSL PHP/FI frontpage mini-HOWTO
* svn-book.pdf R1876
* Professional LAMP - Linux, Apache, MySQL, & PHP5 Web Development 2006.pdf
1. 编译或者下载apache2 的mod_ssl.so模块
2. 使用openssl的工具生成供您的站点使用的服务器证书和服务器公私钥
利用openssl库提供的工具CA.pl,位于/usr/lib/ssl/misc. 这里讲述自身构建CA,然
后用该CA来签名证书的过程,当然也可以提交给其他CA机构来签名认证

2.1 先生成CA以及相关的文件
$ CA.pl -newca
按照命令提示,依次输入CA的私钥密码\Country Name\Province Name\Locality Name
\Organization Name\Unit Name\Common Name\Email Address\A challenge password\
optional company name, 提示A challenge password\optional company name可以不
填.最后因为CA需要给自己签发证书,所以还得填些最开始时输入的CA的私钥密码.
在当前目录下会生成demoCA的目录,内含若干文件

2.2 再生成证书申请文件
$ CA.pl -newreq
按照命令提示,依次输入待申请证书的私钥密码\Country Name\Province Name\
Locality Name\Organization Name\Unit Name\Common Name\Email Address\
A challenge password\optional company name,最后两项亦可不填.
在当前目录下会生成证书申请文件newreq.pem和私钥文件newkey.pem

2.3 再用2.1步生成的CA为申请文件签名,生成证书
$ CA.pl -sign
按照命令提示,输入CA的私钥密码并确认签名,并提交到CA的签名数据库中,得到签名后的
证书文件newcert.pem

2.4 裁减证书,去除证书的私钥密码

证书只需要包含机器可读的部分,此外文字描述部分可以去掉,方法如下
$ openssl x509 -in newcert.pem -out www.crt
证书的私钥提供给Apache使用,要求去除私钥的密码,方法如下
$ openssl rsa -in newkey.pem -out wwwkey.pem
该命令需要输入私钥密码,之后生成的私钥wwwkey.pem中就剥去密码了
3. 配置apache2,使用签名的证书www.crt与私钥wwwkey.pem
添加对443端口的侦听
Listen 443 https
加载mod_ssl.so模块
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
配置https的虚拟服务器
NameVirtualHost *:443
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost

SSLCertificateFile /etc/apache2/ssl/www.crt
SSLCertificateKeyFile /etc/apache2/ssl/wwwkey.pem

SSLEngine On

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
注意:
* NameVirtualHost *:443 后面要带上443这个端口,普通80端口的VirtualHost要写为
NameVirtualHost *:80
* VirtualHost总配置选现中写为 _default_:443,表示侦听任何网络接口上的443端口
* 如果先前80端口的站点配置为 VirtualHost *,将它改写为VirtualHost _default_:80
* SSLCertificateFile 指向证书文件的路径
* SSLCertificateKeyFile 指向证书对应的私钥文件路径
重新启动apache2,使用curl测试
curl https://localhost/
* SSLEngine On 启用ssl连接

T27. VMWare Guest操作系统中时钟总是不准确,比如Guest OS为WinXP,时钟总是比Host OS要慢?

安装vmware tools套件,然后复选Time synchronization between the virtual machine
and the host operating system
对于win, 在VMWare Workstation中选择Install VMware Tools,然后在Guest Win OS中会自动
出现虚拟驱动器,打开可以看到安装程序
对于lin, 在VMWare Workstation中选择Install VMware Tools,然后在Guest Lin OS中会出现
/dev/hdc设备,将此文件自动挂载,即可实现

T28. 在更新Linux Kernel后,VMWare无法使用了?

Ubuntu的内核更新到2.6.20-16-386之后,VMWare Workstation活VMWare Player都无法使用了,
需要重新编译内核模块vmnet 和vmmon,使用vmvmware-config.pl工具,但这个工具依赖于内核
版本,

1. 下载vmware-any-any-update110.tar.gz
http://knihovny.cvut.cz/ftp/pub/vmware/

2. 解压,运行runme.pl,程序会自动重新编译vm内核模块
3. 再运行VMWare Workstation 或 VMWare Player OK

T29. VMWare如何使用远程管理接口,如果自动运行客户操作系统?

安装VMWare Server ,当前版本为1.0.2, 它即可桌为虚拟机服务器,自动运行客户操作系,
通过网络从远程开启,关闭,操作客户操作系统.

提示: VMWare Server Console的注册序列号
9AXPN-Y0QD0-24K7M-40K0M
98WMH-Y2PF1-2F7EM-4022D

注意: 1.0.2版本有个小BUG,GUEST OS通过网络访问HOST OS上资源速度很慢,有时还达不到
1K/s,但HOST OS访问GUEST OS上的速度正常,比如GUEST OS为win,开放文件共享,从HOST OS
Ubuntu上Copy共享文件,速度正常.

T30. 如何创建临时文件,而保证文件名不重复?

Bash中执行 mktemp 可以得到文件名

或者

通过<stdlib.h>中调用用户接口
char *mktemp(char *template);

T31. 使用wget下载html文件中的所有链接文件?

可以通过wget的递归下载功能,如下

wget -r -l 1 http://www.sipfoundry.org/pub/sipX/3.6/CentOS/4/RPM/
说明:
-r 代表递归下载
-l num 代表递归的深度
-p 代表仅下载页面必要的元素

T32. 如何创建一个tap接口供虚拟机VirtualBox使用?

对Debian/Ubuntu系统可参考VirtualBox的User Manual

1. 配置tap0接口,在/etc/network/interfaces文件中增加
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user robbie

T33. 如何在linux下打开中文window下用zip压缩的文件?
使用unzip,但是要加上编码的选项-O

unzip -O cp936 zip_file_name
说明:
cp936是中文windows的默认编码

About Development
-----------------
D1. Makefile中的.PHONY目标有什么作用?

写法
.PHONY: TARGET
它让.PHONY依赖的目标TARGET都能执行它的规则,而不关TARGET文件是否存在.

http://blog.csdn.net/dadoneo/archive/2010/10/25/5965088.aspx

posted @ 2011-01-07 02:05 leekiang 阅读(2064) | 评论 (0)编辑 收藏

1,sudo apt-get install ruby-full,
     安装后执行ruby -v,显示“ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]“
     查了一下(用的命令是locate ruby),安装到了/usr/lib/ruby/1.8目录,但哪些位置还有ruby的文件未知。
     注意:不需要再手动把ruby路径加到PATH,因为已经加好了,见/usr/bin
2,sudo apt-get install rubygems
     执行gem -v,显示“1.3.7”
     注意:据说ruby1.9自带gem。
3,gem install rails -v=2.3.5
     发现会自动安装rake-0.8.7,原来rake是rails自带的东西。
     会自动安装到/var/lib/gems/1.8/gems目录下。
     但在命令行下,rails -v仍然报错:"程序 rails 尚未安装"。
     改正:在用户的 .bashrc文件中追加export PATH=/var/lib/gems/1.8/bin:$PATH
     感谢这篇文章,也可看一下这篇
     后注:应该加到全局环境变量里,因为有的命令,如rake,需要root用户执行


4,下载redmine1.0.5,解压,用netbeans6.9.1导入项目时提示缺少i18n,
     按照提示,在root下执行gem install -v=0.4.2 i18n
5,
把database.yml.example改为database.yml
在每种环境下都加属性socket: /var/run/mysqld/mysqld.sock,为什么

6,解决mysql乱码问题
sudo  gedit  /etc/mysql/my.cnf
在[client]区域和[mysqld]区域都添加一行:
default-character-set = utf8
然后重启:sudo /etc/init.d/mysql restart
可通过show variables like 'character%'命令查看修改前后的变化。
参考
http://jiessiedyh.javaeye.com/blog/468338
有人提到[mysqld]的skip-character-set-client-handshake属性

7,mysql驱动
执行gem install mysql,报
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.
解决:因为找不到mysql_config造成的,只要安装“libmysqlclient15-dev”就可以了sudo apt-get install libmysqlclient15-dev

8,"A key is required to write a cookie containing the session data. Use config.action_controller.session = {:key => "_myapp_session", :secret => "some secret phrase"} in config/environment.rb"
please do as the suggestion, add following config to enviroment.rb file:
config.action_controller.session = { :key => "_redmine_session", :secret => "aa3be4f950045ce76451b8197bf06b6d" }

在typo上执行“刷新任务”时,报错:Rake aborted! Uninitialized constant bundler ,搜索后执行gem install bundler,再执行“刷新任务”,提示执行“bundle install”,但在控制台里报没有这个命令。bundler是rails3出来的新东西?


参考:
在 Ubuntu 10.10下搭建ror(ruby on rails)开发环境
在debian(ubuntu)上建立Ruby on Rails的开发环境step by step
Ubuntu下搭建Redmine
Ubuntu 10.04上搭建Ruby on Rails环境
Ubuntu下一步安装ruby on rails环境的脚本
Ubuntu8.10下使用mysql数据库方式安装Redmine
Redmine在Ubuntu10.04上的安装配置
Ubuntu 10.04默认安装Redmine注意事项

posted @ 2011-01-06 01:40 leekiang 阅读(551) | 评论 (0)编辑 收藏

环境:xp+vmware7.1.3+ubuntu10
常见的网络配置有两种:
1,Bridged方式,即桥接方式


2,NAT方式



NAT方式下有时候上不了网,在ubuntu运行ping www.163.com报错:ping: unknown host www.163.com
解决:gedit /etc/resolv.conf,
 加一行nameserver 192.168.0.1,此ip为主机的DNS。
好像有时候管用,要等很久。但只要一重启ubuntu,新加的这一行没有了。

不过上网的事情搞的很郁闷,Ubuntu不知道怎么每次重新启动都会把我的eth0的配置改成auto,即使是改了/etc/network /interfaces也不起作用,后来只好换了一种方法,另外添加了一个eth1的配置,这样子就不会被系统改动了。不过改的过程中一不小心注释掉了 “iface lo inet loopback”,导致我可以ping通给这个机器指定的ip,却始终不能ping通localhost(127.0.0.1),外面机器也无法 ping通这个Ubutntu的ip,不过“sudo ifconfig lo 127.0.0.1 up”一下就好了~  出处


VMware三种网络模式根本区别:Bridged & NAT & Host-Only

虚拟机Vmware下 linux上网设置 (bridged NAT 方式) +图
http://www.linuxdiyf.com/viewarticle.php?id=81538

posted @ 2011-01-05 05:10 leekiang 阅读(1776) | 评论 (0)编辑 收藏

首先要启动窗口混合特效,Compiz Fusion或是metacity。
metacity的设置如下:
ALT-F2打开运行程序窗口,输入gconf-editor,导航到Apps->metacity->general,并选中compositing_manager

sudo add-apt-repository ppa:docky-core/ppa
sudo apt-get update
sudo apt-get install docky

应用程序->附件->docky
系统->首选项->外观->主题,然后选择"清爽"主题,勾选顶部和底部的面板的“显示隐藏按钮”属性。
暂时没有安装其他主题。

参考:
Ubuntu高仿MAC界面
Docky官方wiki
Ubuntu 10.10下安装仿Mac OS X主题:Macbuntu
Ubuntu 10.04下一键安装Mac OS X主题桌面


posted @ 2011-01-04 00:54 leekiang 阅读(1020) | 评论 (0)编辑 收藏

管理Linux主机的性能看起来经常象是在变魔术一样。许多管理员在遇到性能问题的时候常常简单化处理,依靠硬件的更新换代,更大的内存和更强的CPU来解决问题。事实上,利用一些简单的命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题。 

  一、top

  对许多管理员来说,最新学会的就是TOP命令,它可以显示出当前运行的所有内核任务,并且提供了一些主机状态的统计报告。默认地,TOP命令每隔五分钟自动更新一次这个数据(这个更新间隔是可设置的)。

 


 

  TOP命令的功能丰富到令人难以置信(估计很少有人使用过一半以上的功能)。一般来说你会以‘h’键开始,就是‘help’(说明文档也非常精 彩)。帮助参数可以快速显示出你能从中增加和减去的内容,同时也可以改变排序。你还可以用k来结束进程或者用r标注特别的进程。

 

  Top命令显示当天的正常运行时间、系统负载、处理器的数量、内存的使用率和哪些进程使用了大多数CPU资源(包括每个进程的大量相关信息,例如在线用户和正在执行的命令等)。

二、vmstat  

  Vmstat命令提供给你一个当前CPU、IO、进程和内存使用率的快照。和TOP命令一样,它自动动态刷新,并且可以用下面的命令执行:

 

  $ vmstat 10

 

  在这里延迟是指两次刷新间隔的以秒为单位的时间,这里是10秒钟。VMSTAT命令会将检查的结果不停刷新显示在屏幕上,直到你用CTRL-C 命令结束它(或者你也可以在执行的时候设置一个限制)。这个持续输出的结果有时候被用来导入到文件中用来分析性能趋势,但是我们将找到更好的方式来做这件 事情,在文章后面的部分会介绍。

 

 

   第一列显示的是处理器, r列是待命的处理器,而b列是休眠的处理器。如果你在这里看到好多个待命的处理器,那说明你可能在某个地方遇到了性能瓶颈。第二列显示的是内存:虚拟的, 空闲的,缓冲和缓存内存。第三列显示的是交换存储以及具体有多少内存在和磁盘做交换。第四列则是I/O信息,显示了块服务接收和发送的块数据信息。

 

  最后两列显示了系统和CPU相关的信息。系统列显示的是冲突的数量和每秒钟的交换。CPU列是显示了特别有用的信息。每个分列显示了一个CPU时间的百分比。这些分列如下:

 

  US:运行用户任务和代码耗费的时间
  SY:运行内核或者系统代码耗费的时间
  ID:空闲时间
  WA:等待IO耗费的时间
  ST:虚拟机占用的时间

 

  VMSTAT命令擅长用来查询CPU使用情况,虽然记住每个参数主要取决于持续的监控,因为对CPU进行短时间的观察你可能无法获知CPU真正的问题所在。你需要查看长期的运行趋势来获得一个确切的CPU性能信息。

三、iostat  

  我们接下来要讲的命令是IOSTAT。IOSTAT命令(在UBUNTU、红帽和FEDORA系统中都是由SYSSTAT软件包提供的)可以提 供三个报告:CPU使用率、设备使用率和网络文件系统使用率。如果你不加任何参数地运行该命令,它会显示所有这三个报告,你可以通过加参数-c、-d和 -h来单独显示它们中的一种。

 

iostat命令



  在上面的图中你可以看到它们中的其中两个报告,第一个是CPU使用率,它将各进程占用的CPU用百分比分类列出来了。你能看到用户进程、系统进程、iowait和空闲时间等信息。

 

  第二个报告是关于设备使用率,显示了安装在该主机上的每个设备和一些有用的信息,诸如每秒传输量、数据块读写,并且允许你对有性能问题的设备做 标记。你可以通过添加-k或者-m参数来按照千字节或者兆字节显示统计信息,而不是以数据块为单位,这样在某些情况下会更便于查阅和理解。

 

  最后一个报告,没有截图,显示的信息和上面介绍的设备使用率有点相似,只是对象从附件的设备换成了挂载的网络文件系统。

 

  四、free

 

  下一个命令free,可以显示主内存和交换内存的统计量。

 

free命令

 你可以通过添加-t参数来显示总的内存,或者通过添加-b参数和-m参数来用字节数显示(默认情况是用千字节为单位)。

 

  FREE命令还可以通过使用-s参数来使其以某个间隔时间持续刷新地运行:

 

  $ free -s 5

 

  这个命令是以每隔5秒钟刷新一次的方式运行FREE命令并输出结果。

五、sar  

  象我们见过的许多其它工具一样,我们可以用sar命令来收集、查看和记录服务器的性能数据。它比我们见过的任何类似工具都更强大,并且可以收集 和显示长时间段的数据。在红帽和UBUNTU上,它通过SYSSTAT包来安装。让我们从不添加任何参数运行SAR命令开始吧:

 

  $ sar

 

sar命令

 

  从这里我们可以看到sar命令的基本输出信息,包括CPU统计(每隔10分钟一次的数据和最后的平均数据)。该信息是从一个以24小时为单位不 停收集信息的日统计文件中抓取出来的(这个文件存储在目录/var/log/sa/中,并且被命令为saxx这样的格式,xx代表该数据收集的日期)。另 外它还收集关于内存、设备、网络等的统计信息(例如,通过加-b参数可以查看块设备统计信息,-n采查看网络数据,-r参数看内存使用)。你还可以用-A 参数来查看所有收集的数据。

 

  你还可以长时间运行sar命令然后将输出数据导入一个文件中来收集数据。要达到这个效果,需要使用参数-o和一个文件名称,要运行该命令的时间 间隔(记得收集数据会导致性能变差,所以最好确保这个间隔不要太短)和循环的次数-你要记录的间隔次数。如果你不输入循环次数,则sar命令会一直运行下 去,例如:

 

  $ sar -A -o /var/log/sar/sar.log 600 >/dev/null 2>&1 &

  这里我们将收集所有数据(-A),记录到文件/var/log/sar/sar.log中,每隔600秒(或者5分钟)收集一次,持续在后台运行。如果接下来我们想要显示这个数据我们可以用sar命令加上-f参数,例如:

  $ sar -A -f /var/log/sar/sar.log

  这是一个非常基本的sar命令介绍。用sar命令还可以得到许多很有用的数据,这能使得查看主机性能变得更加方便和有效。我建议你去查看一下sar命令的说明文档从而获得更详细的方法来获得你需要的数据。

  这这篇文章中,我们看到了5个基本的用在linux主机上管理和查看性能状态的命令工具。除此之外,去看一下其它一些工具如munin和 collected等也是非常值得的,它们不仅收集关于性能的数据,还能查看应用程序和服务等,包括使用你自己的插件等。这些工具都支持增加图形化的输 入,这样可以让你用图形更直观的查看你的数据。

转自http://www.cnblogs.com/xhjsuccess/archive/2010/06/06/1752602.html

posted @ 2011-01-03 23:05 leekiang 阅读(345) | 评论 (0)编辑 收藏

总有很多朋友对于Linux的内存管理有疑问,而在新版核心中,似乎对这个问题提供了新的解决方法。

当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。通过以下方法,可以快速释放你的内存。

注:不建议在数据库之类的服务器上手动释放内存,有可能造成数据丢失。

1.查看内存使用情况
free -m
2.释放内存
sync
echo "1">/proc/sys/vm/drop_caches
3.查看内存使用情况
free -m

转自http://www.gaojinbo.com/%e5%9c%a8linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e6%89%8b%e5%b7%a5%e9%87%8a%e6%94%be%e5%86%85%e5%ad%98.html

posted @ 2011-01-03 20:03 leekiang 阅读(336) | 评论 (0)编辑 收藏

Linux最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。

Linux 的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以 Debian为代表。下面介绍一下各个发行版本的特点:

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu 等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于 Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo,伟大的 Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行 版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与 Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比 较。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运 行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选 择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

下面给为选择一个Linux发行版本犯愁的朋友一些建议:

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己 定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅 是桌面程序的不一样。

如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!

如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。

如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。

如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。

转自http://www.it118.org/specials/56d6e494-acb5-403c-8676-f959ae5cf778/098d4e2e-26bc-4e31-a34c-28ff3875af42.htm


对各种操作系统的用户分布方面的概括:
  Mac –> Windows –> Linux–> BSD –> UNIX
  从左边到右边,分别是”使用该OS的人里精通电脑的用户群最少”到”使用该OS的人里精通电脑的用户群最多”的过渡。我们可以看到,Linux的被放置在了中间,而BSD则更接近于右边。许多人会对此有争论,也有些人可能会感觉被冒犯了。但是,个人认为这是一个对”哪些用户使用哪些系统”相当准确的概括。
来源:FreeBSD与Linux系统十个本质上的区别

posted @ 2011-01-03 17:45 leekiang 阅读(8865) | 评论 (0)编辑 收藏

安装emacs:sudo apt-get install emacs,然后敲入emacs就可以用了。
安装vim:sudo apt-get install vim-gnome


参考:
http://kooyee.javaeye.com/blog/432576
从Vim到Emacs
【Linux】vim的用法
ubuntu上的vim
Gvim安装及帮助文档的设置
Vim和插件在Ubuntu


GNU的精髓:为什么要学习Emacs

lisp语言,如果一个程序员学过一两门函数式语言可以更好的理解编程。学了函数语言特别是lisp我感觉彻底了解编程,自我感觉良好:-)。emacs是gnu进化的一环,如果没有研究emacs,知识链就少一环。emacs里面的知识能把linux里面的知识相互验证。

posted @ 2011-01-02 03:58 leekiang 阅读(305) | 评论 (0)编辑 收藏

先安装好jdk,见前面的博客。
下载netbeans
sudo chmod +x netbeans-6.9.1-ml-linux.sh
./netbeans-6.9.1-ml-linux.sh

posted @ 2011-01-02 03:19 leekiang 阅读(310) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 5 6 7 8 9 10 11 12 13 下一页 Last