﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-LIULIANG-随笔分类-Ubuntu</title><link>http://www.cppblog.com/LIULIANG/category/19609.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 10 Oct 2013 14:30:27 GMT</lastBuildDate><pubDate>Thu, 10 Oct 2013 14:30:27 GMT</pubDate><ttl>60</ttl><item><title>Ubuntu下进行安装视频录制</title><link>http://www.cppblog.com/LIULIANG/archive/2013/10/10/203648.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 10 Oct 2013 14:20:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2013/10/10/203648.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/203648.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2013/10/10/203648.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/203648.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/203648.html</trackback:ping><description><![CDATA[<p>因为工作需要，所以到网上搜索在Ubuntu系统下的屏幕录制软件。在搜索中遇到RecordMyDesktop这个软件，亲自安装试用了一下操作简单易用。声音和画面可以同步录制。在Ubuntu系统下需要炫自己屏幕作品的人可以下载试用一下。</p>
<p>文件名：recordMyDesktop</p>
<p>参考文献出处：<a href="http://sosyi.iteye.com/blog/1130992">&nbsp;<wbr> http://sosyi.iteye.com/blog/1130992</a></p>
<p>目前为止我只在Gnome桌面环境下使用，所以就gnome环境下的安装方法简要说明。按装方法很简单，在终端输入一下命令就可以安装。</p>
<p>命令行：sudo apt-get install gtk-recordmydesktop</p>
<p>依照上面的文献，KDE环境的用户输入以下命令</p>
<p>命令行：sudo apt-get install qt-recordmydesktop</p>
<p>安装完成后可以在 Applications -&gt; Video &amp; Sound 下面找到。<br />使用recordMyDesktop录制的视频是ogv格式的视频，将其转换为avi格式的，就要使用到mencoder软件，<br />安装mencoder软件：<br />sudo apt-get install mencoder<br />转换：<br />mencoder out.ogv -o out.avi -oac mp3lame -ovc lavc<br />如果不需要声音的话，可以这样<br />mencoder out.ogv -o out.avi -nosound -ovc lavc<br /><br />来自：<br /><a href="http://blog.sina.com.cn/s/blog_4a504d380100yees.html">http://blog.sina.com.cn/s/blog_4a504d380100yees.html</a><br /><a href="http://www.cnblogs.com/linuxcat/archive/2012/10/04/2711389.html">http://www.cnblogs.com/linuxcat/archive/2012/10/04/2711389.html</a></p><img src ="http://www.cppblog.com/LIULIANG/aggbug/203648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2013-10-10 22:20 <a href="http://www.cppblog.com/LIULIANG/archive/2013/10/10/203648.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux查看linux版本，内核版本，系统位数，gcc版本</title><link>http://www.cppblog.com/LIULIANG/archive/2012/11/23/195590.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Fri, 23 Nov 2012 03:05:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/11/23/195590.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/195590.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/11/23/195590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/195590.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/195590.html</trackback:ping><description><![CDATA[<div><h2>linux查看linux版本，内核版本，系统位数，gcc版本</h2>     <p>1. 查看linux版本</p><p>&nbsp; sunny@ubuntu:~$cat /etc/issue<br />Ubuntu 11.04 \n \l</p><p>&nbsp;</p><p>2. 查看内核版本</p><p>1) sunny@ubuntu:~$ cat /proc/version<br />Linux  version 2.6.38-13-generic (buildd@rothera) (gcc version 4.5.2  (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #57-Ubuntu SMP Mon Mar 5 18:10:14 UTC  2012</p><p>2)&nbsp; uname命令</p><p>sunny@ubuntu:~$ uname -a<br />Linux ubuntu 2.6.38-13-generic #57-Ubuntu SMP Mon Mar 5 18:10:14 UTC 2012 i686 i686 i386 GNU/Linux</p><p>&nbsp;</p><p>[ -------------------------------------------------------------------------------<br />&nbsp; -a, --all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print all information, in the following order,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看全部信息<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except omit -p and -i if unknown:<br />&nbsp; -s, --kernel-name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print the kernel name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看内核名字<br />&nbsp; -n, --nodename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print the network node hostname<br />&nbsp; -r, --kernel-release&nbsp;&nbsp;&nbsp;&nbsp; print the kernel release&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看内核发行版本<br />&nbsp; -v, --kernel-version&nbsp;&nbsp;&nbsp;&nbsp; print the kernel version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看内核版本<br />&nbsp; -m, --machine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print the machine hardware name<br />&nbsp; -p, --processor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print the processor type or "unknown"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp; -i, --hardware-platform&nbsp; print the hardware platform or "unknown"<br />&nbsp; -o, --operating-system&nbsp;&nbsp; print the operating system&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看操作系统<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --help&nbsp;&nbsp;&nbsp;&nbsp; display this help and exit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --version&nbsp; output version information and exit</p>--------------------------------------------------------------------------------------]<p>&nbsp;</p>3.查看系统位数<p>1) sunny@ubuntu:~$ getconf WORD_BIT<br />32</p><p>2)sunny@ubuntu:~$ file /bin/bash<br />/bin/bash:  ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically  linked (uses shared libs), for GNU/Linux 2.6.15, stripped</p><p>&nbsp;</p><p>4. 查看gcc版本</p>sunny@ubuntu:~$ gcc --version<br />gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2</div><br />转自：<div>http://hi.baidu.com/sunnnnnnnnny/item/b20fb816164a445ef0090ebd</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/195590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-11-23 11:05 <a href="http://www.cppblog.com/LIULIANG/archive/2012/11/23/195590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu    /etc/network/interface </title><link>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195569.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 22 Nov 2012 10:58:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195569.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/195569.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/195569.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/195569.html</trackback:ping><description><![CDATA[<div>######################################################################<br /># /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)<br />#<br /># A "#" character in the very first column makes the rest of the line<br /># be ignored. Blank lines are ignored. Lines may be indented freely.<br /># A "\" character at the very end of the line indicates the next line<br /># should be treated as a continuation of the current one.<br />#<br /># The "pre-up", "up", "down" and "post-down" options are valid for all<br /># interfaces, and may be specified multiple times. All other options<br /># may only be specified once.<br />#<br /># See the interfaces(5) manpage for information on what options are<br /># available.<br />######################################################################<br /><br /># We always want the loopback interface.<br />#<br /># auto lo<br /># iface lo inet loopback<br /><br /># An example ethernet card setup: (broadcast and gateway are optional)<br />#<br /># auto eth0<br /># iface eth0 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.0.42<br />#&nbsp;&nbsp;&nbsp;&nbsp; network 192.168.0.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; broadcast 192.168.0.255<br />#&nbsp;&nbsp;&nbsp;&nbsp; gateway 192.168.0.1<br /><br /># A more complicated ethernet setup, with a less common netmask, and a downright<br /># weird broadcast address: (the "up" lines are executed verbatim when the<br /># interface is brought up, the "down" lines when it's brought down)<br />#<br /># auto eth0<br /># iface eth0 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.1.42<br />#&nbsp;&nbsp;&nbsp;&nbsp; network 192.168.1.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.128<br />#&nbsp;&nbsp;&nbsp;&nbsp; broadcast 192.168.1.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2<br />#&nbsp;&nbsp;&nbsp;&nbsp; up route add default gw 192.168.1.200<br />#&nbsp;&nbsp;&nbsp;&nbsp; down route del default gw 192.168.1.200<br />#&nbsp;&nbsp;&nbsp;&nbsp; down route del -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2<br /><br /># A more complicated ethernet setup with a single ethernet card with<br /># two interfaces.<br /># Note: This happens to work since ifconfig handles it that way, not because<br /># ifup/down handles the ':' any differently.<br /># Warning: There is a known bug if you do this, since the state will not<br /># be properly defined if you try to 'ifdown eth0' when both interfaces<br /># are up. The ifconfig program will not remove eth0 but it will be<br /># removed from the interfaces state so you will see it up until you execute:<br /># 'ifdown eth0:1 ; ifup eth0; ifdown eth0'<br /># BTW, this is "bug" #193679 (it's not really a bug, it's more of a<br /># limitation)<br />#<br /># auto eth0 eth0:1<br /># iface eth0 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.0.100<br />#&nbsp;&nbsp;&nbsp;&nbsp; network 192.168.0.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; broadcast 192.168.0.255<br />#&nbsp;&nbsp;&nbsp;&nbsp; gateway 192.168.0.1<br /># iface eth0:1 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.0.200<br />#&nbsp;&nbsp;&nbsp;&nbsp; network 192.168.0.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br /><br /># "pre-up" and "post-down" commands are also available. In addition, the<br /># exit status of these commands are checked, and if any fail, configuration<br /># (or deconfiguration) is aborted. So:<br />#<br /># auto eth0<br /># iface eth0 inet dhcp<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up [ -f /etc/network/local-network-ok ]<br />#<br /># will allow you to only have eth0 brought up when the file<br /># /etc/network/local-network-ok exists.<br /><br /># Two ethernet interfaces, one connected to a trusted LAN, the other to<br /># the untrusted Internet. If their MAC addresses get swapped (because an<br /># updated kernel uses a different order when probing for network cards,<br /># say), then they don't get brought up at all.<br />#<br /># auto eth0 eth1<br /># iface eth0 inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.42.1<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /path/to/check-mac-address.sh eth0 11:22:33:44:55:66<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /usr/local/sbin/enable-masq<br /># iface eth1 inet dhcp<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /path/to/check-mac-address.sh eth1 AA:BB:CC:DD:EE:FF<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /usr/local/sbin/firewall<br /><br /># Two ethernet interfaces, one connected to a trusted LAN, the other to<br /># the untrusted Internet, identified by MAC address rather than interface<br /># name:<br />#<br /># auto eth0 eth1<br /># mapping eth0 eth1<br />#&nbsp;&nbsp;&nbsp;&nbsp; script /path/to/get-mac-address.sh<br />#&nbsp;&nbsp;&nbsp;&nbsp; map 11:22:33:44:55:66 lan<br />#&nbsp;&nbsp;&nbsp;&nbsp; map AA:BB:CC:DD:EE:FF internet<br /># iface lan inet static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 192.168.42.1<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /usr/local/sbin/enable-masq $IFACE<br /># iface internet inet dhcp<br />#&nbsp;&nbsp;&nbsp;&nbsp; pre-up /usr/local/sbin/firewall $IFACE<br /><br /># A PCMCIA interface for a laptop that is used in different locations:<br /># (note the lack of an "auto" line for any of these)<br />#<br /># mapping eth0<br />#&nbsp;&nbsp;&nbsp; script /path/to/pcmcia-compat.sh<br />#&nbsp;&nbsp;&nbsp; map home,*,*,*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; home<br />#&nbsp;&nbsp;&nbsp; map work,*,*,00:11:22:33:44:55&nbsp; work-wireless<br />#&nbsp;&nbsp;&nbsp; map work,*,*,01:12:23:34:45:50&nbsp; work-static<br />#<br /># iface home inet dhcp<br /># iface work-wireless bootp<br /># iface work-static static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 10.15.43.23<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; gateway 10.15.43.1<br />#<br /># Note, this won't work unless you specifically change the file<br /># /etc/pcmcia/network to look more like:<br />#<br />#&nbsp;&nbsp;&nbsp;&nbsp; if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi<br />#&nbsp;&nbsp;&nbsp;&nbsp; get_info $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp; case "$ACTION" in<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'start')<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /sbin/ifup $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'stop')<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /sbin/ifdown $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />#&nbsp;&nbsp;&nbsp;&nbsp; esac<br />#&nbsp;&nbsp;&nbsp;&nbsp; exit 0<br /><br /># An alternate way of doing the same thing: (in this case identifying<br /># where the laptop is is done by configuring the interface as various<br /># options, and seeing if a computer that is known to be on each particular<br /># network will respond to pings. The various numbers here need to be chosen<br /># with a great deal of care.)<br />#<br /># (note the lack of an "auto" line for any of these)<br />#<br /># mapping eth0<br />#&nbsp;&nbsp;&nbsp; script /path/to/pcmcia-compat.sh<br />#&nbsp;&nbsp;&nbsp; map home,*,*,*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; home<br />#&nbsp;&nbsp;&nbsp; map work,*,*,00:11:22:33:44:55&nbsp; work-wireless<br />#&nbsp;&nbsp;&nbsp; map work,*,*,01:12:23:34:45:50&nbsp; work-static<br />#<br /># iface home inet dhcp<br /># iface work-wireless bootp<br /># iface work-static static<br />#&nbsp;&nbsp;&nbsp;&nbsp; address 10.15.43.23<br />#&nbsp;&nbsp;&nbsp;&nbsp; netmask 255.255.255.0<br />#&nbsp;&nbsp;&nbsp;&nbsp; gateway 10.15.43.1<br />#<br /># Note, this won't work unless you specifically change the file<br /># /etc/pcmcia/network to look more like:<br />#<br />#&nbsp;&nbsp;&nbsp;&nbsp; if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi<br />#&nbsp;&nbsp;&nbsp;&nbsp; get_info $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp; case "$ACTION" in<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'start')<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /sbin/ifup $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'stop')<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /sbin/ifdown $DEVICE<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />#&nbsp;&nbsp;&nbsp;&nbsp; esac<br />#&nbsp;&nbsp;&nbsp;&nbsp; exit 0<br /><br /># An alternate way of doing the same thing: (in this case identifying<br /># where the laptop is is done by configuring the interface as various<br /># options, and seeing if a computer that is known to be on each particular<br /># network will respond to pings. The various numbers here need to be chosen<br /># with a great deal of care.)<br />#<br /># iface eth0 inet manual<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; up ifconfig $IFACE 0.0.0.0 up<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; up ip link set $IFACE promisc on<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; down ip link set $IFACE promisc off<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; down ifconfig $IFACE down<br /><br /># Set up an interface which will not be allocated an IP address by<br /># ifupdown but will be configured through external programs. This<br /># can be useful to setup interfaces configured through other programs,<br /># like, for example, PPPOE scripts.<br />#<br /># auto eth0<br /># iface eth0 inet manual<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; up ifconfig $IFACE 0.0.0.0 up<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; up /usr/local/bin/myconfigscript<br />#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; down ifconfig $IFACE down</div><br />转自：<div>http://blog.chinaunix.net/uid-93067-id-90196.html</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/195569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-11-22 18:58 <a href="http://www.cppblog.com/LIULIANG/archive/2012/11/22/195569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网卡工作原理</title><link>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195561.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 22 Nov 2012 10:01:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195561.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/195561.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/11/22/195561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/195561.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/195561.html</trackback:ping><description><![CDATA[<div style="layout-grid:  15.6pt none">
<p align="center"><strong><span style="font-family: 黑体; font-size: 15pt">网卡工作原理</span></strong></p>
<p style="text-indent: 21pt">Linux<span style="font-family: 宋体">操作系统的功能可以概括为进程管理、内存管理、文件系统管理、设备管理、网络等几部分。所有的系统操作最终都可以映射到对物理设备的操作。除去对</span>CPU<span style="font-family: 宋体">、内存以及其他少数几个物理实体的操作之外，系统对其他设备的所有操作都通过专门的称为驱动程序的代码完成。系统中存在的每种外设在内核中都必须有对应的设备驱动程序对其进行处理。所以分析网卡的工作原理即是分析网卡的驱动程序。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">网络是独立的一个模块。为了屏蔽网络环境中物理网络设备的多样性，</span>Linux<span style="font-family: 宋体">对所有的设备进行抽象并定义了一个统一的概念，称之为接口。所有对网络硬件的访问都是通过接口进行的，接口提供了一个对所有类型的硬件一致化的操作集合来处理基本数据发送和接收。一个网络接口被看作是一个发送和接收数据包的实体。对于每个网络接口，都用一个</span>net_device<span style="font-family: 宋体">的数据结构来表示。</span>net_device<span style="font-family: 宋体">中有很多提供系统访问和协议层调用的设备方法，包括提供设备初始化和往系统注册用的</span>init<span style="font-family: 宋体">函数，打开和关闭网络设备的</span>open<span style="font-family: 宋体">和</span>stop<span style="font-family: 宋体">函数，处理数据包发送的函数</span>hard_start_xmit<span style="font-family: 宋体">，以及中断处理函数。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">所有被发送和接收的包都用数据结构</span>sk_buff<span style="font-family: 宋体">表示。要发送数据时，网络系统将分局系统路由表选择相应的网络接口进行数据传输；当接收数据包时，通过驱动程序登记的中断服务程序进行数据的接口处理。</span></p>
<p style="text-indent: 21pt">Linux<span style="font-family: 宋体">网络驱动程序崇尚倒下分为四层：协议接口层、网络设备接口层、设备驱动功能层、网络设备和网络媒介层。如下图所示：</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"><span style="font-size: 10.5pt" times="" new=""  ar-sa?="" 1.0pt;?? roman?;??><a href="http://blog.chinaunix.net/attachment/201102/27/23208702_1298783439GKfa.jpg" target="_blank"><img border="0" src="http://blog.chinaunix.net/attachment/201102/27/23208702_1298783439GKfa.jpg"  ;="" load="imgResize(this, 650);"  .  alt="" /></a> </span></span></p>
<p align="center"></p>
<p><strong><span style="font-family: 黑体; font-size: 14pt">网卡初始化</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">网络设备初始化主要工作时检测设备的存在、初始化描述设备的</span>net_device<span style="font-family: 宋体">结构及在系统中登记该设备。在系统初始化完成以后，系统检测到的网络设备将保存在链表</span>dev_base<span style="font-family: 宋体">中，其中每个链表单元</span>net_device<span style="font-family: 宋体">对应一个存在的物理网络设备。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">初始化过程首先检测网络物理设备是否存在，这是通过检测物理设备的硬件特征来完成；然后对设备进行资源配置，这些完成之后就要构造设备的</span>net_device<span style="font-family: 宋体">数据结构，用检测到值对</span>net_device<span style="font-family: 宋体">中的变量初始化；最后</span>Linux<span style="font-family: 宋体">内核中注册该设备并申请内存空间。</span></p>
<p style="text-indent: 21.1pt"><strong>&nbsp;</strong></p>
<p><strong><span style="font-family: 黑体; font-size: 14pt">网卡的打开与关闭</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">为了使用网络设备，需要打开网卡，打开和关闭的一个接口是由</span>shell<span style="font-family: 宋体">命令</span>ifconfig<span style="font-family: 宋体">调用的，而</span>ifconfig<span style="font-family: 宋体">则要调用一个通用的设备打开函数</span>dev_open<span style="font-family: 宋体">（</span>net/core/dev.c<span style="font-family: 宋体">），相应的还有一个</span>dev_close<span style="font-family: 宋体">函数，这两个函数提供独立于设备的操作接口的打开和关闭功能。一般打开函数执行的操作包括注册中断函数，分配并初始化网卡所需要的接收与发送缓冲区，启动硬件检查网络连接线状态等。</span></p>
<p style="text-indent: 21pt">&nbsp;</p>
<p><strong><span style="font-family: 黑体; font-size: 14pt">数据包的发送与接收</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">数据包的发送和接收是实现</span>Linux<span style="font-family: 宋体">网络驱动程序中两个最关键的过程。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">当物理网络设备接收到数据是，系统通过两种途径解决这个问题。一种方法是轮询方式，另一种方式是中断法师。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在轮询方式中，系统每隔一定的时间间隔就去检查一次物理设备，若设备有数据到达，就调用读取数据的程序。</span>Linux<span style="font-family: 宋体">中通过定时器实现，但是此法有一个明显的缺点：不管设备是否有数据，系统总是要固定的消耗</span>CPU<span style="font-family: 宋体">资源去查看设备，并且可能对一些紧急数据处理予以延迟。从资源的利用率以及工作的效率上看都不是最优的。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">中断方式利用硬件体系结构的中断机制实现设备和系统的应答对话，即当物理设备需要</span>CPU<span style="font-family: 宋体">处理数据时，就向</span>CPU<span style="font-family: 宋体">发送一个终端信号，系统则在收到信号后调用相应的中断服务程序响应对设备中断的处理。因此，基本在所有的网络设备驱动程序中都是用中断方式的。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">每一个网卡上都有一块</span>FIFO<span style="font-family: 宋体">存储器，对于</span>NIC<span style="font-family: 宋体">（</span>Network Interface Controller<span style="font-family: 宋体">），</span>FIFO<span style="font-family: 宋体">存储器是用来通过系统总线传送数据到系统存储器之前，缓存从</span>LAN<span style="font-family: 宋体">上接收到的数据。对与快速以太网还有一个直接内存存取（</span>DMA<span style="font-family: 宋体">：</span>Directly Memory Access<span style="font-family: 宋体">）控制器，用于提供对系统存储器的可靠访问。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">驱动为网卡分配一个环形缓冲区，在一段连续的物理内存中实现。</span></p>
<p style="text-indent: -18pt; margin-left: 39pt"><span>1、&nbsp;</span><span style="font-family: 宋体">数据接收</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（1）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">接收来自</span>MAC<span style="font-family: 宋体">的数据包，先暂存于片内</span>FIFO<span style="font-family: 宋体">接收队列；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（2）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当接收器达到早期接收上线时就移至环形缓冲区；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（3）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">待整个数据包全部从</span>FIFO<span style="font-family: 宋体">移至缓存后，将接收状态寄存器和包长度写入接收的数据包头部，并更新</span>CBA<span style="font-family: 宋体">（</span>Current Buffer Address<span style="font-family: 宋体">）寄存器的值；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（4）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>CMD<span style="font-family: 宋体">（</span>Command<span style="font-family: 宋体">）寄存器中的</span>BufferEmpty<span style="font-family: 宋体">位和</span>ISR<span style="font-family: 宋体">（中断状态寄存器）寄存器的</span>ROK<span style="font-family: 宋体">位置</span>1<span style="font-family: 宋体">，并发出</span>ROK<span style="font-family: 宋体">的中断；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（5）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>ISR<span style="font-family: 宋体">中断调用完成后，清除</span>ISR<span style="font-family: 宋体">（</span>ROK<span style="font-family: 宋体">）并更新</span>CAPR<span style="font-family: 宋体">（</span>Current Address of Packet Read<span style="font-family: 宋体">，指向接收缓存的已读取包的地址），完成本次接收。</span></p>
<p style="text-indent: -18pt; margin-left: 39pt"><span>2、&nbsp;</span><span style="font-family: 宋体">数据发送</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（1）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">将待传送的数据写入主存中一段连续的缓存空间，由</span>OS<span style="font-family: 宋体">配合驱动程序完成；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（2）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">找到一个可用的描述器，并写入内容，包括该数据包的开始物理地址和传输状态字（包的大小、可传送下限、</span>OWN<span style="font-family: 宋体">位）；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（3）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>OWN<span style="font-family: 宋体">位有效，将数据从缓存移至片内</span>FIFO<span style="font-family: 宋体">队列；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（4）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当</span>FIFO<span style="font-family: 宋体">队列中的数据达到早期传送下限，</span>NIC<span style="font-family: 宋体">的传送单元就会启动，将数据顺序输出至线路；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（5）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当整个数据包都已经传至</span>FIFO<span style="font-family: 宋体">，</span>OWN<span style="font-family: 宋体">位置</span>1<span style="font-family: 宋体">；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（6）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当整个数据包都已经传至线路上，</span> TOK<span style="font-family: 宋体">寄存器置</span>1<span style="font-family: 宋体">；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（7）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当</span>TOK<span style="font-family: 宋体">（</span>IMR<span style="font-family: 宋体">）和</span>TOK<span style="font-family: 宋体">（</span>ISR<span style="font-family: 宋体">）多置</span>1<span style="font-family: 宋体">，就发出</span>TOK<span style="font-family: 宋体">中断；</span></p>
<p style="text-indent: -36pt; margin-left: 57pt"><span>（8）<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>TOK<span style="font-family: 宋体">中断调用完成以后，清除</span>TSD<span style="font-family: 宋体">状态字，完成本次传送。</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">可以看出，网卡需要发送</span>/<span style="font-family: 宋体">接收数据，都必须以中断的方式告诉系统，系统处理中断后做出相应操作。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">网卡存在一定大小的</span>FIFO<span style="font-family: 宋体">存储器，同时还有缓冲区，缓冲区是由系统以及驱动共同分配一段连续的物理内存，所有的发送</span>/<span style="font-family: 宋体">接收的数据，都必须通过</span>FIFO<span style="font-family: 宋体">已经缓冲区，只有一包数据都发送成功后，才能继续发送下一包数据。系统维护缓冲区，只有当缓冲区有空间时才会接受上层来的数据，而网卡处理数据的速率远高于接收数据的最大速率，因此在网卡上不会存在堵塞情况。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">对编程而言，在应用层调用传输层函数</span>send/sendto<span style="font-family: 宋体">，使用套接字传送数据，屏蔽了底层的所有实现。此时，</span>send/sendto<span style="font-family: 宋体">函数是没有阻塞的，只要调用，必然有返回值，成功返回发送数据的长度，失败则返回负值（失败的主要原因是网络连接的问题），因此可能存在数据丢失的现象，需要写程序的时候保证数据的传输成功。但是只有</span>send/sendto<span style="font-family: 宋体">函数返回后，程序才会执行下一次发送，因此编程时没必要考虑数据会在传输层上出现阻塞。<br /><br /><font face="Verdana">转自：<a href="http://blog.chinaunix.net/uid-25839577-id-3035405.html">http://blog.chinaunix.net/uid-25839577-id-3035405.html</a></font></span></p></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/195561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-11-22 18:01 <a href="http://www.cppblog.com/LIULIANG/archive/2012/11/22/195561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu常用命令大全 </title><link>http://www.cppblog.com/LIULIANG/archive/2012/11/17/195299.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Sat, 17 Nov 2012 06:17:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/11/17/195299.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/195299.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/11/17/195299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/195299.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/195299.html</trackback:ping><description><![CDATA[<div class="postTitle"><a id="viewpost1_TitleUrl" class="postTitle2" href="http://www.blogjava.net/bukebushuo/archive/2009/06/21/283427.html">Ubuntu常用命令大全</a> </div>Ubuntu常用命令大全 
<p>查看软件xxx安装内容<br /><strong>#dpkg -L xxx</strong></p>
<p>查找软件<br /><strong>#apt-cache search 正则表达式</strong><br />查找文件属于哪个包<br /><strong>#dpkg -S filename apt-file search filename</strong></p>
<p>查询软件xxx依赖哪些包<br /><strong>#apt-cache depends xxx</strong></p>
<p>查询软件xxx被哪些包依赖<br /><strong>#apt-cache rdepends xxx</strong></p>
<p>增加一个光盘源<br /><strong>#sudo apt-cdrom add</strong></p>
<p>系统升级<br /><strong>#sudo apt-get update<br />#sudo apt-get upgrade<br />#sudo apt-get dist-upgrade</strong></p>
<p>清除所以删除包的残余配置文件<br /><strong>#dpkg -l |grep ^rc|awk &#8216;{print $2}&#8217; |tr [&#8221;"n&#8221;] [&#8221; &#8220;]|sudo xargs dpkg -P -</strong></p>
<p>编译时缺少h文件的自动处理<br /><strong>#sudo auto-apt run ./configure</strong></p>
<p>查看安装软件时下载包的临时存放目录<br /><strong>#ls /var/cache/apt/archives</strong></p>
<p>备份当前系统安装的所有包的列表<br /><strong>#dpkg &#8211;get-selections | grep -v deinstall &gt; ~/somefile</strong></p>
<p>从上面备份的安装包的列表文件恢复所有包<br /><strong>#dpkg &#8211;set-selections &lt; ~/somefile sudo dselect</strong></p>
<p>清理旧版本的软件缓存<br /><strong>#sudo apt-get autoclean</strong></p>
<p>清理所有软件缓存<br /><strong>#sudo apt-get clean</strong></p>
<p>删除系统不再使用的孤立软件<br /><strong>#sudo apt-get autoremove</strong></p>
<p>查看包在服务器上面的地址<br /><strong>#apt-get -qq &#8211;print-uris install ssh | cut -d"&#8217; -f2</strong></p>
<h3><font color="#ff6600"><u><strong>系统</strong></u></font></h3>
<p>查看内核<br /><strong>#uname -a</strong></p>
<p>查看Ubuntu版本<br /><strong>#cat /etc/issue</strong></p>
<p>查看内核加载的模块<br /><strong>#lsmod</strong></p>
<p>查看PCI设备<br /><strong>#lspci</strong></p>
<p>查看USB设备<br /><strong>#lsusb</strong></p>
<p>查看网卡状态<br /><strong>#sudo ethtool eth0</strong></p>
<p>查看CPU信息<br /><strong>#cat /proc/cpuinfo</strong></p>
<p>显示当前硬件信息<br /><strong>#lshw</strong></p>
<h3><font color="#ff6600"><u><strong>硬盘</strong></u></font></h3>
<p>查看硬盘的分区<br /><strong>#sudo fdisk -l</strong></p>
<p>查看IDE硬盘信息<br /><strong>#sudo hdparm -i /dev/hda</strong></p>
<p>查看STAT硬盘信息<br /><strong>#sudo hdparm -I /dev/sda<br /></strong>或 <strong><br />#sudo apt-get install blktool<br />#sudo blktool /dev/sda id</strong></p>
<p>查看硬盘剩余空间<br /><strong>#df -h<br />#df -H</strong></p>
<p>查看目录占用空间<br /><strong>#du -hs 目录名</strong></p>
<p>优盘没法卸载<br /><strong>#sync fuser -km /media/usbdisk</strong></p>
<h3><font color="#ff6600"><u><strong>内存</strong></u></font></h3>
<p>查看当前的内存使用情况<br /><strong>#free -m</strong></p>
<h3><font color="#ff6600"><u><strong>进程</strong></u></font></h3>
<h3>查看当前有哪些进程<br /><strong>#ps -A</strong></h3>
<p>中止一个进程<br /><strong>#kill 进程号(就是ps -A中的第一列的数字) 或者 killall 进程名</strong></p>
<p>强制中止一个进程(在上面进程中止不成功的时候使用)<br /><strong>#kill -9 进程号 或者 killall -9 进程名</strong></p>
<p>图形方式中止一个程序<br /><strong>#xkill 出现骷髅标志的鼠标，点击需要中止的程序即可</strong></p>
<p>查看当前进程的实时状况<br /><strong>#top</strong></p>
<p>查看进程打开的文件<br /><strong>#lsof -p</strong></p>
<p>ADSL 配置 ADSL<br /><strong>#sudo pppoeconf</strong></p>
<p>ADSL手工拨号<br /><strong>#sudo pon dsl-provider</strong></p>
<p>激活 ADSL<br /><strong>#sudo /etc/ppp/pppoe_on_boot</strong></p>
<p>断开 ADSL<br /><strong>#sudo poff</strong></p>
<p>查看拨号日志<br /><strong>#sudo plog</strong></p>
<p>如何设置动态域名<br />#首先去http://www.3322.org申请一个动态域名<br />#然后修改 /etc/ppp/ip-up 增加拨号时更新域名指令<strong> sudo vim /etc/ppp/ip-up</strong><br />#在最后增加如下行 w3m -no-cookie -dump</p>
<h3><font color="#ff6600"><u><strong>网络</strong></u></font></h3>
<p>根据IP查网卡地址<br /><strong>#arping IP地址</strong></p>
<p>查看当前IP地址<br /><strong>#ifconfig eth0 |awk &#8216;/inet/ {split($2,x,&#8221;:&#8221;);print x[2]}&#8217;</strong></p>
<p>查看当前外网的IP地址<br /><strong>#w3m -no-cookie -dumpwww.edu.cn|grep-o</strong><strong>&#8216;[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}&#8217;<br />#w3m -no-cookie</strong> <strong>-dumpwww.xju.edu.cn|grep-o&#8217;[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}&#8217;</strong> <strong><br />#w3m -no-cookie -dump ip.loveroot.com|grep -o&#8217;[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}".[0-9]"{1,3"}&#8217;</strong></p>
<p>查看当前监听80端口的程序<br /><strong>#lsof -i :80</strong></p>
<p>查看当前网卡的物理地址<br /><strong>#arp -a | awk &#8216;{print $4}&#8217; ifconfig eth0 | head -1 | awk &#8216;{print $5}&#8217;</strong></p>
<p>立即让网络支持nat<br /><strong>#sudo echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />#sudo iptables -t nat -I POSTROUTING -j MASQUERADE</strong></p>
<p>查看路由信息<br /><strong>#netstat -rn sudo route -n</strong></p>
<p>手工增加删除一条路由<br /><strong>#sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1<br />#sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1</strong></p>
<p>修改网卡MAC地址的方法<br /><strong>#sudo ifconfig eth0 down </strong>关闭网卡<strong><br />#sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE</strong> 然后改地址<br />#<strong>sudo ifconfig eth0 up</strong> 然后启动网卡</p>
<p>统计当前IP连接的个数<br /><strong>#netstat -na|grep ESTABLISHED|awk &#8216;{print $5}&#8217;|awk -F: &#8216;{print $1}&#8217;|sort|uniq -c|sort -r -n<br />#netstat -na|grep SYN|awk &#8216;{print $5}&#8217;|awk -F: &#8216;{print $1}&#8217;|sort|uniq -c|sort -r -n</strong></p>
<p>统计当前20000个IP包中大于100个IP包的IP地址<br /><strong>#tcpdump -tnn -c 20000 -i eth0 | awk -F &#8220;.&#8221; &#8216;{print $1&#8243;.&#8221;$2&#8243;.&#8221;$3&#8243;.&#8221;$4}&#8217; | sort | uniq -c | sort -nr | awk &#8216; $1 &gt; 100 &#8216;</strong></p>
<p>屏蔽IPV6<br /><strong>#echo &#8220;blacklist ipv6&#8243; | sudo tee /etc/modprobe.d/blacklist-ipv6</strong></p>
<h3><font color="#ff6600"><u><strong>服务</strong></u></font></h3>
<p>添加一个服务<br /><strong>#sudo update-rc.d 服务名 defaults 99</strong></p>
<p>删除一个服务<br /><strong>#sudo update-rc.d 服务名 remove</strong></p>
<p>临时重启一个服务<br /><strong>#/etc/init.d/服务名 restart</strong></p>
<p>临时关闭一个服务<br /><strong>#/etc/init.d/服务名 stop</strong></p>
<p>临时启动一个服务<br /><strong>#/etc/init.d/服务名 start</strong></p>
<h3><font color="#ff6600"><u><strong>设置</strong></u></font></h3>
<p>配置默认Java使用哪个<br /><strong>#sudo update-alternatives &#8211;config java</strong></p>
<p>修改用户资料<br /><strong>#sudo chfn userid</strong></p>
<p>给apt设置代理<br /><strong>#export http_proxy=http://xx.xx.xx.xx:xxx</strong></p>
<p>修改系统登录信息<br /><strong>#sudo vim /etc/motd</strong></p>
<h3><font color="#ff6600"><u><strong>中文</strong></u></font></h3>
<p>转换文件名由GBK为UTF8<br /><strong>#sudo apt-get install convmv convmv -r -f cp936 -t utf8 &#8211;notest &#8211;nosmart *</strong></p>
<p>批量转换src目录下的所有文件内容由GBK到UTF8<br /><strong>#find src -type d -exec mkdir -p utf8/{} "; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} "; mv utf8/* src rm -fr utf8</strong></p>
<p>转换文件内容由GBK到UTF8<br /><strong>#iconv -f gbk -t utf8 $i &gt; newfile</strong></p>
<p>转换 mp3 标签编码<br /><strong>#sudo apt-get install python-mutagen find . -iname &#8220;*.mp3&#8221; -execdir mid3iconv -e GBK {} ";</strong></p>
<p>控制台下显示中文<br /><strong>#sudo apt-get install zhcon 使用时，输入zhcon即可</strong></p>
<h3><font color="#ff6600"><u><strong>文件</strong></u></font></h3>
<p>快速查找某个文件<br /><strong>#whereis filename</strong><br /><strong>#find 目录 -name 文件名</strong></p>
<p>查看文件类型<br /><strong>#file filename</strong></p>
<p>显示xxx文件倒数6行的内容<br /><strong>#tail -n 6 xxx</strong></p>
<p>让tail不停地读地最新的内容<br /><strong>#tail -n 10 -f /var/log/apache2/access.log</strong></p>
<p>查看文件中间的第五行（含）到第10行（含）的内容<br /><strong>#sed -n &#8216;5,10p&#8217; /var/log/apache2/access.log</strong></p>
<p>查找包含xxx字符串的文件<br /><strong>#grep -l -r xxx .</strong></p>
<p>全盘搜索文件(桌面可视化)<br /><strong>gnome-search-tool</strong></p>
<p>查找关于xxx的命令<br /><strong>#apropos xxx man -k xxx</strong></p>
<p>通过ssh传输文件<br /><strong>#scp -rp /path/filenameusername@remoteIP:/path</strong><br />#将本地文件拷贝到服务器上<br /><strong>#scp -rpusername@remoteIP:/path/filename/path</strong><br />#将远程文件从服务器下载到本地</p>
<p>查看某个文件被哪些应用程序读写<br /><strong>#lsof 文件名</strong></p>
<p>把所有文件的后辍由rm改为rmvb<br /><strong>#rename &#8217;s/.rm$/.rmvb/&#8217; *</strong></p>
<p>把所有文件名中的大写改为小写<br /><strong>#rename &#8216;tr/A-Z/a-z/&#8217; *</strong></p>
<p>删除特殊文件名的文件，如文件名：&#8211;help.txt<br /><strong>#rm &#8212; &#8211;help.txt 或者 rm ./&#8211;help.txt</strong></p>
<p>查看当前目录的子目录<br /><strong>#ls -d */. 或 echo */.</strong></p>
<p>将当前目录下最近30天访问过的文件移动到上级back目录<br /><strong>#find . -type f -atime -30 -exec mv {} ../back ";</strong></p>
<p>将当前目录下最近2小时到8小时之内的文件显示出来<br /><strong>#find . -mmin +120 -mmin -480 -exec more {} ";</strong></p>
<p>删除修改时间在30天之前的所有文件<br /><strong>#find . -type f -mtime +30 -mtime -3600 -exec rm {} ";</strong></p>
<p>查找guest用户的以avi或者rm结尾的文件并删除掉<br /><strong>#find . -name &#8216;*.avi&#8217; -o -name &#8216;*.rm&#8217; -user &#8216;guest&#8217; -exec rm {} ";</strong></p>
<p>查找的不以java和xml结尾,并7天没有使用的文件删除掉<br /><strong>#find . ! -name *.java ! -name &#8216;*.xml&#8217; -atime +7 -exec rm {} ";</strong></p>
<p>统计当前文件个数<br /><strong>#ls /usr/bin|wc -w</strong></p>
<p>统计当前目录个数<br /><strong>#ls -l /usr/bin|grep ^d|wc -l</strong></p>
<p>显示当前目录下2006-01-01的文件名<br /><strong>#ls -l |grep 2006-01-01 |awk &#8216;{print $8}&#8217;</strong></p>
<h3><font color="#ff6600"><u><strong>FTP</strong></u></font></h3>
<p>上传下载文件工具-filezilla<br /><strong>#sudo apt-get install filezilla<br /></strong></p>
<p>filezilla无法列出中文目录？<strong><br />站点-&gt;字符集-&gt;自定义-&gt;输入：GBK</strong></p>
<p>本地中文界面<br /><strong>1）</strong>下载filezilla中文包到本地目录，<strong>如~/</strong><br /><strong>2）#unrar x Filezilla3_zhCN.rar</strong><br /><strong>3) </strong>如果你没有unrar的话，请先<strong>安装rar和unrar</strong><br /><strong>#sudo apt-get install rar unrar</strong><br /><strong>#sudo ln -f /usr/bin/rar /usr/bin/unrar</strong><br /><strong>4）</strong>先<strong>备份</strong>原来的语言包,再安装；实际就是拷贝一个语言包。<br /><strong>#sudo cp /usr/share/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo.bak</strong><br /><strong>#sudo cp ~/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo</strong><br /><strong>5）重启</strong>filezilla,即可！</p>
<h3><font color="#ff6600"><u><strong>解压缩</strong></u></font></h3>
<p>解压缩 xxx.tar.gz<br /><strong>#tar -zxvf xxx.tar.gz</strong></p>
<p>解压缩 xxx.tar.bz2<br /><strong>#tar -jxvf xxx.tar.bz2</strong></p>
<p>压缩aaa bbb目录为xxx.tar.gz<br /><strong>#tar -zcvf xxx.tar.gz aaa bbb</strong></p>
<p>压缩aaa bbb目录为xxx.tar.bz2<br /><strong>#tar -jcvf xxx.tar.bz2 aaa bbb</strong></p>
<p>解压缩 RAR 文件<br /><strong>1) </strong>先安装<br /><strong>#sudo apt-get install rar unrar<br />#sudo ln -f /usr/bin/rar /usr/bin/unrar<br />2)</strong> 解压<br /><strong>#unrar x aaaa.rar</strong></p>
<p>解压缩 ZIP 文件<br /><strong>1) </strong>先安装<br /><strong>#sudo apt-get install zip unzip<br />#sudo ln -f /usr/bin/zip /usr/bin/unzip<br />2)</strong> 解压<br /><strong>#unzip x aaaa.zip</strong></p>
<h3><font color="#ff6600"><u><strong>Nautilus</strong></u></font></h3>
<p>显示隐藏文件<br /><strong>Ctrl+h</strong></p>
<p>显示地址栏<br /><strong>Ctrl+l</strong></p>
<p>特殊 URI 地址<br /><strong>* computer:/// </strong>- 全部挂载的设备和网络<br /><strong>* network:///</strong> - 浏览可用的网络<br /><strong>* burn:///</strong> - 一个刻录 CDs/DVDs 的数据虚拟目录<br /><strong>* smb:///</strong> - 可用的 windows/samba 网络资源<br /><strong>* x-nautilus-desktop:///</strong> - 桌面项目和图标<br /><strong>*file:///</strong>- 本地文件<br /><strong>* trash:///</strong> - 本地回收站目录<br /><strong>* ftp://</strong> - FTP 文件夹<br /><strong>* ssh:// </strong>- SSH 文件夹<br /><strong>* fonts:/// </strong>- 字体文件夹，可将字体文件拖到此处以完成安装<br /><strong>* themes:///</strong> - 系统主题文件夹</p>
<p>查看已安装字体<br /><strong>在nautilus的地址栏里输入&#8221;fonts:///&#8220;，就可以查看本机所有的fonts</strong></p>
<h3><font color="#ff6600"><u><strong>程序</strong></u></font></h3>
<p>详细显示程序的运行信息<br /><strong>#strace -f -F -o outfile</strong></p>
<p><strong>日期和时间</strong></p>
<p>设置日期<br /><strong>#date -s mm/dd/yy</strong></p>
<p>设置时间<br /><strong>#date -s HH:MM</strong></p>
<p>将时间写入CMOS<br /><strong>#hwclock &#8211;systohc</strong></p>
<p>读取CMOS时间<br /><strong>#hwclock &#8211;hctosys</strong></p>
<p>从服务器上同步时间<br /><strong>#sudo ntpdate time.nist.gov<br />#sudo ntpdate time.windows.com</strong></p>
<p><u><strong>控制台</strong></u></p>
<p>不同控制台间切换<br /><strong>Ctrl + ALT + &#8592; Ctrl + ALT + &#8594;</strong></p>
<p>指定控制台切换<br /><strong>Ctrl + ALT + Fn(n:1~7)</strong></p>
<p>控制台下滚屏<br /><strong>SHIFT + pageUp/pageDown</strong></p>
<p>控制台抓图<br /><strong>#setterm -dump n(n:1~7)</strong></p>
<h3><font color="#ff6600"><u><strong>数据库</strong></u></font></h3>
<p>mysql的数据库存放在地方<br /><strong>#/var/lib/mysql</strong></p>
<p>从mysql中导出和导入数据<strong><br />#mysqldump 数据库名 &gt; 文件名 </strong>#导出数据库<br /><strong>#mysqladmin create 数据库名 </strong>#建立数据库<br /><strong>#mysql 数据库名 &lt; 文件名 </strong>#导入数据库</p>
<p>忘了mysql的root口令怎么办<br /><strong>#sudo /etc/init.d/mysql stop</strong><br /><strong>#sudo mysqld_safe &#8211;skip-grant-tables </strong><br /><strong>#sudo mysqladmin -u user password &#8216;newpassword&#8221;<br />#sudo mysqladmin flush-privileges</strong></p>
<p>修改mysql的root口令<br /><strong>#sudo mysqladmin -uroot -p password &#8216;你的新密码&#8217;</strong></p>
<h3><font color="#ff6600"><u><strong>其它</strong></u></font></h3>
<p><strong>下载网站文档</strong><br /><strong>#wget -r -p -np -khttp://www.21cn.com</strong><br />&#183; r：在本机建立服务器端目录结构；<br />&#183; -p: 下载显示HTML文件的所有图片；<br />&#183; -np：只下载目标站点指定目录及其子目录的内容；<br />&#183; -k: 转换非相对链接为相对链接。</p>
<p>如何删除Totem电影播放机的播放历史记录<br /><strong>#rm ~/.recently-used</strong></p>
<p>如何更换gnome程序的快捷键<br />点击菜单，鼠标停留在某条菜单上，键盘输入任意你所需要的键，可以是组合键，会立即生效； 如果要清除该快捷键，请使用backspace</p>
<p>vim 如何显示彩色字符<br /><strong>#sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc</strong></p>
<p>如何在命令行删除在会话设置的启动程序<br /><strong>#cd ~/.config/autostart rm 需要删除启动程序</strong></p>
<p>如何提高wine的反应速度<br /><strong>#sudo sed -ie &#8216;/GBK/,/^}/d&#8217; /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE</strong></p>
<p><strong>#chgrp</strong><br />[语法]: chgrp [-R] 文件组 文件&#8230;<br />[说明]： 文件的GID表示文件的文件组，文件组可用数字表示， 也可用一个有效的组名表示，此命令改变一个文件的GID，可参看chown。<br />-R 递归地改变所有子目录下所有文件的存取模式<br />[例子]:<br /><strong>＃chgrp group file </strong>将文件 file 的文件组改为 group</p>
<p><strong>#chmod</strong><br />[语法]: chmod [-R] 模式 文件&#8230;<br />或 chmod [ugoa] {+|-|=} [rwxst] 文件&#8230;<br />[说明]: 改变文件的存取模式，存取模式可表示为数字或符号串，例如：<br /><strong>＃chmod nnnn file</strong> ， n为0-7的数字，意义如下:<br />4000 运行时可改变UID<br />2000 运行时可改变GID<br />1000 置粘着位<br />0400 文件主可读<br />0200 文件主可写<br />0100 文件主可执行<br />0040 同组用户可读<br />0020 同组用户可写<br />0010 同组用户可执行<br />0004 其他用户可读<br />0002 其他用户可写<br />0001 其他用户可执行<br />nnnn 就是上列数字相加得到的，例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。<br />-R 递归地改变所有子目录下所有文件的存取模式<br />u 文件主<br />g 同组用户<br />o 其他用户<br />a 所有用户<br />+ 增加后列权限<br />- 取消后列权限<br />= 置成后列权限<br />r 可读<br />w 可写<br />x 可执行<br />s 运行时可置UID<br />t 运行时可置GID<br />[例子]:<br /><strong>＃chmod 0666</strong> file1 file2 将文件 file1 及 file2 置为所有用户可读可写<br /><strong>＃chmod u+x file</strong> 对文件 file 增加文件主可执行权限<br /><strong>＃chmod o-rwx</strong> 对文件file 取消其他用户的所有权限</p>
<p><strong>#chown</strong><br />[语法]: chown [-R] 文件主 文件&#8230;<br />[说明]: 文件的UID表示文件的文件主，文件主可用数字表示， 也可用一个有效的用户名表示，此命令改变一个文件的UID，仅当此文件的文件主或超级用户可使用。<br />-R 递归地改变所有子目录下所有文件的存取模式<br />[例子]:<br /><strong>#chown mary file </strong>将文件 file 的文件主改为 mary<br /><strong>#chown 150 file</strong> 将文件 file 的UID改为150</p>
<h3><u><font color="#ff6600">Ubuntu命令行下修改网络配置</font></u></h3>
<p><strong>以eth0为例</strong><br /><strong>1. 以DHCP方式配置网卡</strong><br />编辑文件/etc/network/interfaces:<br /><strong>#sudo vi /etc/network/interfaces</strong><br />并用下面的行来替换有关eth0的行:<br /># The primary network interface - use DHCP to find our address<br />auto eth0<br />iface eth0 inet dhcp<br />用下面的命令使网络设置生效:<br /><strong>#sudo /etc/init.d/networking restart</strong><br />当然,也可以在命令行下直接输入下面的命令来获取地址<strong><br />#sudo dhclient eth0</strong></p>
<p><strong>2. 为网卡配置静态IP地址</strong><br />编辑文件/etc/network/interfaces:<br /><strong>#sudo vi /etc/network/interfaces</strong><br />并用下面的行来替换有关eth0的行:<br /># The primary network interface<br />auto eth0<br />iface eth0 inet static<br />address 192.168.3.90<br />gateway 192.168.3.1<br />netmask 255.255.255.0<br />network 192.168.3.0<br />broadcast 192.168.3.255<br />将上面的ip地址等信息换成你自己就可以了.</p>
<p>用下面的命令使网络设置生效:<br /><strong>#sudo /etc/init.d/networking restart</strong></p>
<p><strong>3. 设定第二个IP地址(虚拟IP地址)</strong><br />编辑文件/etc/network/interfaces:<br /><strong>#sudo vi /etc/network/interfaces</strong><br />在该文件中添加如下的行:<br />auto eth0:1<br />iface eth0:1 inet static<br />address 192.168.1.60<br />netmask 255.255.255.0<br />network x.x.x.x<br />broadcast x.x.x.x<br />gateway x.x.x.x<br />根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息.<br />用下面的命令使网络设置生效:<br /><strong>#sudo /etc/init.d/networking restart</strong></p>
<p><strong>4. 设置主机名称(hostname)</strong><br />使用下面的命令来查看当前主机的主机名称:<br /><strong>#sudo /bin/hostname</strong><br />使用下面的命令来设置当前主机的主机名称:<br /><strong>#sudo /bin/hostname newname</strong><br />系统启动时,它会从/etc/hostname来读取主机的名称.</p>
<p><strong>5. 配置DNS</strong><br />首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.<br />要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件.<br />假设DNS服务器的IP地址是192.168.3.2, 那么/etc/resolv.conf文件的内容应为:<br />search test.com<br />nameserver 192.168.3.2</p>
<h3><font color="#ff6600"><u><strong>安装AMP服务</strong></u></font></h3>
<p>如果采用Ubuntu Server CD开始安装时，可以选择安装，这系统会自动装上apache2,php5和mysql5。下面主要说明一下如果不是安装的Ubuntu server时的安装方法。<br />用命令在Ubuntu下架设Lamp其实很简单，用一条命令就完成。在终端输入以下命令：<br /><strong>#sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd #phpmyadmin</strong><br />装好后，<strong>mysql管理员是root，无密码</strong>，通过http://localhost/phpmyadmin就可以访问mysql了</p>
<p><u><strong>修改 MySql 密码</strong></u><br />终端下输入：<br /><strong>#mysql -u root</strong><br /><strong>#mysql&gt; GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY &#8220;123456&#8243;;</strong><br />&#8217;123456&#8216;是root的密码，可以自由设置，但最好是设个安全点的。<br /><strong>#mysql&gt; quit; </strong>退出mysql</p>
<p><u><strong>apache2的操作命令</strong></u><br />启动：<strong>#sudo /etc/init.d/apache2 start</strong><br />重启：<strong>#sudo /etc/init.d/apache2 restart</strong><br />关闭：<strong>#sudo /etc/init.d/apache2 stop</strong><br /><strong>apache2的默认主目录：/var/www/<br /><br /><br /><br />转自：<a href="http://www.blogjava.net/bukebushuo/archive/2009/08/27/283427.html">http://www.blogjava.net/bukebushuo/archive/2009/08/27/283427.html</a></strong></p><img src ="http://www.cppblog.com/LIULIANG/aggbug/195299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-11-17 14:17 <a href="http://www.cppblog.com/LIULIANG/archive/2012/11/17/195299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu忘记密码和破解登陆密码（转载） </title><link>http://www.cppblog.com/LIULIANG/archive/2012/10/14/193276.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Sun, 14 Oct 2012 13:28:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/10/14/193276.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/193276.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/10/14/193276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/193276.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/193276.html</trackback:ping><description><![CDATA[如果谁说他的Linux从来没有遇到&#8220;疑难杂症&#8221;，我觉得是不可信的，就算是操作界面最友好的Window XP也时常遇到各种各样的问题，有的问题实在蹊跷到只有更换硬件才能解决！Linux也是这样的，而且他的自由性，更是加大出问题的频繁程度。当然也是因 为Linux开源的特点，不管出了什么问题，你都可以在源代码级找到症结所在，这正是Linux魅力所在。 
<p>　　1、在不登录情况下，获得root权限</p>
<p>　　如果没有设置GRUB密码，那我们可以使用最简单的方法，首先启动电脑，等待GRUB菜单，如果GRUB菜单隐藏，可以按Esc调出， 选择Ubuntu, kernel 2.6.12-*-* (recovery mode)，也就是&#8220;恢复模式&#8221;按Enter启动就可以了。 　　 　　另外一个办法是用Ubuntu安装盘获得root权限，用Ubuntu安装盘启动电脑，当显示&#8220;boot:&#8221;时，输入&#8220;rescue&#8221;</p>
<p>　　boot: rescue</p>
<p>　　按屏幕提示操作就可以了。</p>
<p>　　2、通过改变内核启动参数获得根权限</p>
<p>　　启动电脑，等待GRUB菜单，如果GRUB菜单隐藏，可以按Esc调出，如果设置了GRUB密码，按p来解锁，比如我们选择了 Ubuntu, kernel 2.6.12-8-386，按e在启动前编辑启动参数，选择kernel /boot/vmlinuz-2.6.12-8-386 root=/dev/hda2 ro quiet splash，按e编辑选定的启动菜单项，在参数最后添加rw init=/bin/bash，即改为如下命令行：</p>
<p>　　grub edit&gt; kernel /boot/vmlinuz-2.6.12-8-386 root=/dev/hda2 ro quiet splash rw init=/bin/bash</p>
<p>　　按b启动即可。</p>
<p>　　3、忘记了root用户/主用户密码</p>
<p>　　按照第一项：在不登录情况下，获得root权限后，在命令行输入：</p>
<p>　　passwd root 　　 　　按照提示，输入两次密码就可以设定root用户密码了.</p>
<p>　　要更改主用户密码：</p>
<p>　　passwd system_main_username</p>
<p>　　按照提示，输入两次密码就可以了。</p>
<p>　　4、忘记了GRUB菜单密码</p>
<p>　　在命令行输入</p>
<p>　　grub 　　等提示符变为grub&gt; 后，输入： 　　md5crypt 　　这是计算密码的md5值，也就是加密值，然后在提示Password:后，输入新密码： 　　Password: ****** (ubuntu) 　　系统会计算出加密值： 　　Encrypted: $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 　　按quit退出</p>
<p>　　然后备份并编辑文件menu.lst： sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup sudo gedit /boot/grub/menu.lst</p>
<p>　　找到</p>
<p>　　password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/</p>
<p>　　替换为</p>
<p>　　password --md5 $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (这是我们上面计算出的加密值)</p>
<p>　　保存文件即可。</p>
<p>　　5、在安装Windows后恢复GRUB启动菜单</p>
<p>　　经常出现的情况是，我们想重装一下windows系统，但是重装会把启动Linux的菜单冲掉，这是个让人头疼的问题，我们这样来解决它： 　　首先按照第一项，用Ubuntu安装盘获得root权限，我们假定 /dev/hda 为 /boot 所在分区，然后在提示符输入：</p>
<p># grub-install /dev/hda</p>
<p>　　这样grub-install程序会为我们安装grub菜单。</p>
<p>　　6、在Windows中读取Linux分区(ext2, ext3) 　　我们用软件Ext2fs可以在Windows中读取Linux分区，软件官方首页：http://www.fs- driver.org/index.html，下载地址是：http://www.fs- driver.org/download/Ext2IFS_1_10b.exe</p>
<p>　　7、 开机时，某些服务启动太慢</p>
<p>　　比如Configuring network interfaces...和Synchronizing clock to ntp.ubuntulinux.org...可能要长时间才能启动，对于这些服务，我们可以用Ctrl＋C在启动时暂时跳过一些服务的启动</p>
<p>　　也可以运行服务设置：系统-&gt;系统管理-&gt;服务，清除勾选&#8220;时钟同步服务(ntpdate)&#8221;等服务，然后 确定。</p>
<p>　　8、把系统时间从UTC (GMT)改回来</p>
<p>　　如果你装linux系统时，设置启用UTC (GMT)，那么每当重启到了我的 windws 分区，系统时间总是和本地时间有 N 小时的误差。在 Ubuntu 下我这样解决这个问题呢。</p>
<p>　　编辑文件 /etc/default/rcS ，在命令行输入： sudo cp /etc/default/rcS /etc/default/rcS_backup sudo gedit /etc/default/rcS</p>
<p>　　找到</p>
<p>　　UTC=yes</p>
<p>　　替换为</p>
<p>　　UTC=no</p>
<p>　　保存文件，在系统-&gt;系统管理-&gt;日期和时间中，设置为正确的日期和时间，在命令行输入下面的命令重启时间：</p>
<p>　　sudo /etc/init.d/hwclock.sh restart</p>
<p>　　9、给Flash配置声音</p>
<p>　　如果你播放Flash是没有声音，在命令行输入这个命令：</p>
<p>　　sudo ln -fs /usr/lib/libesd.so.0 /usr/lib/libesd.so.1</p>
<p>　　10、强制清空回收站</p>
<p>　　如果你点了清空回收站，但还是有垃圾的话，你可以运行这个命令：</p>
<p>　　sudo rm -fr $HOME/.Trash/</p>
<p>　　Ubuntu Linux的回收站就是一个隐藏文件夹，在主目录的.Trash/下，rm -fr命令的意思是强制、递归的删除。</p>
<p>　　11、清除GNOME菜单中的重复项</p>如果菜单中出现重复项，不能像windows里一样，直接删去，我们要启动Applications Menu Editor：应用程序-&gt;系统工具-&gt; Applications Menu Editor，逐个删除重复项即可。 <br /><br /><br />转载自：<a href="http://hi.baidu.com/hosewen/item/b0800fdad131dc3f48e1dda8">http://hi.baidu.com/hosewen/item/b0800fdad131dc3f48e1dda8</a><br /><br />作者是个牛人啊。。。<img src ="http://www.cppblog.com/LIULIANG/aggbug/193276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-10-14 21:28 <a href="http://www.cppblog.com/LIULIANG/archive/2012/10/14/193276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu快捷键 终端快捷键</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/24/191877.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Mon, 24 Sep 2012 12:38:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/24/191877.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191877.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/24/191877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191877.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191877.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">1.关于终端的快捷键：</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Tab：tab键是比较常用的一个快捷键，它的作用是补全文件名或者路径。举例 来说，输入&#8221;<a href="http://www.linuxso.com/command/cd.html" target="_blank"><u>cd</u></a> /ho&#8221;在按一下tab键，终端里就会显示&#8221;cd /home&#8221;了。如果您的文件夹下，有两个名字开头部分相同的文件，比如有&#8221;picture001.bmp&#8221;和&#8221;picture002.bmp&#8221;两个文 件，输入&#8221;<a href="http://www.linuxso.com/command/rm.html" target="_blank"><u>rm</u></a> pic&#8221;以后按下tab键，就会补全成&#8221;rm picture&#8221;，您可以接着输入剩下的名字。使用tab键补全还支持对于扩展名的识别，比如您的文件夹下有&#8221;TH2AD_CHS.<a href="http://www.linuxso.com/command/ex.html" target="_blank"><u>ex</u></a>e文件和 TH2AD_CHS.ini文件，当您输入&#8221;wine TH&#8221;再按下tab后，会补全成&#8221;wine TH2AD_CHS.exe&#8221;而不会补全.ini文件，因为wine和.exe文件是关联的。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">C<a href="http://www.linuxso.com/command/tr.html" target="_blank"><u>tr</u></a>l+C：这个键可不是用来复制的，在中端下，按下Ctrl+C就代表结速当前终端执行的程序，按下的时候一定要慎重。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+A：将光标移动到<a href="http://www.linuxso.com/command/" target="_blank"><u>命令</u></a>行的开始处。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+E：将光标移动到命行令的结尾处。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+U：删除行首到光标出的字符。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Z：把当前进程送到后台处理。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Alt+F1：切换到第一个文本终端。在Linux下你可以有多达六个不同的终端。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Alt+F7：切换到第一个图形用户界面（一般来说X-window在第七个终端）。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">～：～好像不能算一个快捷键吧？～的作用是代替您的主文件夹，比如您的用户名是user，那么 &#8220;/home/user/桌面&#8221; 和 &#8220;~/桌面&#8221; 是等价的。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff;">CTRL+INSERT ：复制</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff;">SHIFT+INSERT：粘贴 </span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff;"><br /></span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff;"><br /></span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">2.Gnome下的快捷键：</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F1：类似Windows下的Win键，在GNOME中打开&#8221;应用程序&#8221;菜单(Appli<a href="http://www.linuxso.com/command/cat.html" target="_blank"><u>cat</u></a>ions)<br />（在KDE下同样适用。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F2：类似Windows下的Win + R组合键，在GNOME中运行应用程序</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl + Alt + D：类似Windows下的Win + D组合键，显示桌面。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl + Alt + L：锁定桌面并启动屏幕保护程序，取消锁定时需要输入密码。<br />（在KDE下有效。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + Tab：同Windows下的Alt + Tab组合键，在不同程序窗口间切换。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">PrintScreen：全屏抓图，由于这个功能的反应有点慢，请不要反复按这个键，否则可能会死机。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + PrintScreen：当前窗口抓图，弹出抓图对话框。<br />（在KDE下会将图片报存到剪贴板中。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl + Alt + &#8594; / &#8592;：在不同工作台间切换。<br />（在KDE下使用 Ctrl+Tab 键完成这个功能。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl + Alt + Shift + &#8594; / &#8592;：移动当前窗口到不同工作台</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Alt+Shift+Fn：终端N或模拟终端N(n和N为数字1－6)</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Alt+F7：返回桌面，如果您用 Ctrl+Alt+F1</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F4：关闭窗口</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F5：取消最大化窗口 (恢复窗口原来的大小)</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F7：移动窗口 (注: 在窗口最大化的状态下无效)</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F8：改变窗口大小 (注: 在窗口最大化的状态下无效)</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F9：最小化窗口</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + F10：最大化窗口</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt + Space：打开窗口的控制菜单 (点击窗口左上角图标出现的菜单)</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">单击鼠标滚轮：当您选中一段文字后，按下鼠标滚轮键，可以将选中的文字复制到鼠标所指的位置，在中端中也有效。<br />（KDE中未测试。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Atl+单击鼠标拖动：移动窗口的位置。<br />（在KDE和Compiz中同样有效。）</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">3.Firefox的快捷键：</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Alt+左方向键 或 Backspace：后退。<br />Shift+Backspace 或 Alt+右方向键：前进。<br />Alt+Home：首页。（这里指的是用户自定义的首页）<br />Ctrl+O：打开文件。<br />F5 或 Ctrl+R：重新载入。<br />Ctrl+F5 或 Ctrl+Shift+R：重新载入 (忽略缓存)。<br />Esc：停止。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">End：到页面底部。<br />Home：到页面顶部。<br />F6 ：移到下一帧。<br />Shift+F6：移到上一帧。<br />Ctrl+U：页面源代码。<br />Ctrl+P：打印。<br />Ctrl+S：页面另存为。<br />Ctrl+&#8221;+&#8221;：放大文字。<br />Ctrl+&#8221;-&#8221;：缩小文字。<br />Ctrl+0：恢复文本大小。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+F：本页查找。<br />F3：再次查找。<br />&#8216;：输入查找链接。<br />/：输入查找文本。<br />Shift+F3：查找。<br />Ctrl+K 或 Ctrl+E：网页搜索。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+W 或 Ctrl+F4：关闭标签。<br />Ctrl+Shift+W 或 Alt+F4：关闭窗口。<br />Ctrl+左方向键 或 Ctrl+上方向键：向左移动标签。<br />Ctrl+右方向键 或 Ctrl+下方向键：向右移动标签。<br />Ctrl+Home：移动标签到开头。<br />Ctrl+End：移动标签到结尾。<br />Ctrl+T：新建标签页。<br />Ctrl+N：新建窗口。<br />Ctrl+Tab 或 Ctrl+PageDown：下一个标签页。<br />Alt+Enter：在新标签页打开网址。<br />Ctrl+Shift+Tab 或 Ctrl+PageUp：前一个标签页。<br />Ctrl+Shift+T：撤销关闭标签页。<br />[1 到 8]： Ctrl+[1 到 8]：选择标签页。<br />Ctrl+9：选择最后标签页。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Shift+D:添加所有为书签。<br />Ctrl+D:添加当前为书签。<br />Ctrl+B 或 Ctrl+I：打开书签。<br />F7：插入浏览。<br />Ctrl+J：下载。<br />Ctrl+H：历史。<br />Ctrl+Shift+Del：清除私有数据。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ctrl+Enter：补全 .com 地址。<br />Shift+Enter：补全 .net 地址。<br />Ctrl+Shift+Enter：补全 .org 地址。<br />Del：删除选定的自匹配输入。<br />F11：全屏。<br />Alt+D 或 F6 或 Ctrl+L：选择地址条。<br />Alt+上方向键 或 Alt+下方向键 或 F4：选择或管理搜索引擎。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Shift+向上滚动滚轮：前进。<br />Shift+向下滚动滚轮：后退。<br />在标签上按鼠标中键：关闭标签页。<br />Ctrl+滚动滚轮：改变页面比例。<br />在标签页栏双击鼠标：新建标签页。<br />Ctrl+Left-click 或 点击鼠标中键：在后台打开标签页。<br />Shift+Ctrl+Left-click 或 Shift+点击鼠标中键：在前台打开标签页。<br />Shift+Left-click：在新窗口打开。<br />Shift+Reload button：刷新 (覆盖缓存)。<br />Alt+Left-click：保存页面为。<br />Alt+滚轮：逐行滚动。</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">#####################################</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">Ubuntu操作基本快捷键 <br />* 打开主菜单 = Alt + F1 <br />* 运行 = Alt + F2 <br />* 显示桌面 = Ctrl + Alt + d <br />* 最小化当前窗口 = Alt + F9 <br />* 最大化当前窗口 = Alt + F10 <br />* 关闭当前窗口 = Alt + F4 <br />* 截取全屏 = Print Screen <br />* 截取窗口 = Alt + Print Screen <br />默认特殊快捷键 <br />* 展示所有窗口程序 = F10 <br />* 展示当前窗口最上层程序 = F11 <br />* 展示当前窗口所有程序 = F12 <br />* 切换窗口 = Alt + Tab <br />* 旋转3D桌面 = Ctrl + Alt + 左/右箭头（也可以把鼠标放在标题栏或桌面使用滚轮切换） <br />* 旋转3D桌面（ 活动窗口跟随） = Ctrl + Shift + Alt + 左/右箭头 <br />* 手动旋转3D桌面 = Ctrl + Alt + 左键单击并拖拽桌面空白处 <br />* 窗口透明/不透明 = possible with the &#8220;trans<a href="http://www.linuxso.com/command/set.html" target="_blank"><u>set</u></a>&#8221; utility or Alt + 滚轮 <br />* 放大一次 = 超级键 + 右击 <br />* 手动放大 = 超级键 + 滚轮向上 <br />* 手动缩小 = 超级键 + 滚轮向下 <br />* 移动窗口 = Alt + 左键单击 <br />* 移动窗口时贴住边框 = 左键开始拖动后再 Ctrl + Alt <br />* 调整窗口大小 = Alt + 中击 <br />* Bring up the window below the top window = Alt + m<a href="http://www.linuxso.com/command/id.html" target="_blank"><u>id</u></a>dle-click <br />* 动态效果减速 = Shift + F10 <br />* 水纹 = 按住 Ctrl+超级键 <br />* 雨点 = Shift-F9 <br />* 桌面展开＝ Ctrl + Alt + 下箭头，然后按住 Ctrl + Alt 和左/右箭头选择桌面 <br /><br /><br />Alt + Shift+ Up Arrow - 以很酷的方式显示当前窗口 <br />Nautilus <br /><br />11. Shift+Ctrl+N - 新建文件夹, 很有用 <br /><br />12. Alt + Enter - 查看选择文件/文件夹的属性，代替单击右键选择属性 <br /><br />13. Ctrl + 1/2 - 改变文件夹视图查看方式，图标视图/列表视图 <br /><br />14. Ctrl + W - 关闭当前Nautilus窗口 <br /><br />15. Ctrl + Shift + W - 关闭所有Nautilus窗口 <br /><br />16. Ctrl+T - 在Nautilus中新建一个标签 <br /><br />17. Alt + Up/Down Arrow - 移动到父文件夹/选择的文件夹 <br /><br />18. Alt + Left/Right Arrow - 后退/前进 <br /><br />19. Alt + Home -直接移动到主文件夹 <br /><br />20. F9 - 开关显示Nautilus侧边栏 <br /><br />21. Ctrl + H -开关显示隐藏文件夹 <br /><br />程序中常用的快捷键： <br />Ctrl+N 新建 <br />Ctrl+X 剪切 <br />Ctrl+C 复制 <br />Ctrl+V 粘贴 <br />Ctrl+Z 撤销 <br />Ctrl+S 保存 <br /><br />Ubuntu Gnome的桌面技巧： <br />===键盘类=== <br />1.先同时按住 Alt + Ctrl 键，再按键盘上的左 右光标 键 可以切换工作区 <br />2.web时按 "/" 键 等于 查找功能,桌面或者目录时按" /" 等于"打开.." <br />3.当前目录下快速文件(夹)定位, 直接输入文件(夹)名字 <br />4.shift键 可以对scim的中英输入快速切换,windows下的智能ABC一样 <br />5.alt+左右可以前进后退页面 <br />6.屏幕锁定: Alt+Ctrl+L 等价于Windows中的Win键 + L, ctrl+alt+d 相当于Windows中的Win键 +D <br />&#8212;&#8212;换句话说,Alt+Ctrl相当于Win键&#8212;&#8212; <br />7.Ctrl+Alt+Shift+左右方向键，可以把当前窗口移到上一个或下一个桌面 <br />8.Alt+Tab向左切换窗口,Alt+Shift+Tab向友切换窗口 <br /><br />===鼠标类=== <br />1.直接拖拉在最大化时的窗口标题可以还原窗口大小,再拖放回去就最大化 <br />2.在音量控制处用鼠标滚轮滚动可以直接调整音量,在任务栏中滚动滚轮可以切换任务栏,工作区则切换工作区 <br />3.浏览网页的时候直接把图片落到保存目录既可下载 <br />4.按鼠标滚轮即张贴, 同时按下鼠标 左右键等价于按鼠标中键 --&gt;引伸到,在web上选中文字,直接双键(中键)可以张贴选中的文字 <br />5.工作区里的小窗口可以在不同工作区内拖拉,即移动到....(工作区)的功能 <br />6.shift + 鼠标滚轮 可以后退页面 <br />7.鼠标中键点标题栏可以隐藏当前窗口 <br />8.按住shift 拖动窗口可以吸附上下边缘的移动 <br />9.直接将 文件管理器 中的文件拖到 GNOME终端 中就可以在终端中得到完整的路径名 <br />10.修改目录图标：可将文件管理器中的图片直接拖到文件夹属性所在的图标上. <br />11.鼠标中键直接单击 滚动条 的空白处，屏幕即滚动到那处。 <br />12.中键拖动图片到桌面，可选择设为墙纸 <br /><br /><br />其他 <br /><br />22. Ctrl + Alt + L -锁屏 <br /><br />23. Alt + F1 - 打开应用程序菜单 <br /><br />24. Alt + F2 - 打开运行应用程序对话框 <br /><br />25. Win + 鼠标滚轮 - 放大/缩小屏幕</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"> </p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">先来是GNOME下的快捷键，其实的kde和Xfce我用得比较少<br /><br />通用快捷键 <br /><br />Alt + F1 类似Windows下的Win键，在GNOME中打开"应用程序"菜单(Applications) <br /><br />Alt + F2 类似Windows下的Win + R组合键，在GNOME中运行应用程序 <br /><br />Ctrl + Alt + D 类似Windows下的Win + D组合键，显示桌面 ！ <br /><br />Ctrl + Alt + L 锁定桌面并启动屏幕保护程序 <br /><br />Alt + Tab 同Windows下的Alt + Tab组合键，在不同程序窗口间切换 <br /><br />PrintScreen 全屏抓图 <br /><br />Alt + PrintScreen 当前窗口抓图 <br /><br />Ctrl + Alt + &#8594; / &#8592; 在不同工作台间切换 <br /><br />Ctrl + Alt + Shift + &#8594; / &#8592; 移动当前窗口到不同工作台 <br /><br />Ctrl+Alt+Shift+Fn 终端N或模拟终端N(n和N为数字1－6) <br /><br />Ctrl+Alt+F7 返回桌面 <br /><br />Ctrl+Alt+Shift+F8 未知（终端或模拟终端） <br />窗口操作快捷键 <br /><br />Alt + F4 关闭窗口 <br /><br />Alt + F5 取消最大化窗口 (恢复窗口原来的大小) <br /><br />Alt + F7 移动窗口 (注: 在窗口最大化的状态下无效) <br /><br />Alt + F8 改变窗口大小 (注: 在窗口最大化的状态下无效) <br /><br />Alt + F9 最小化窗口 <br /><br />Alt + F10 最大化窗口 <br /><br />Alt + Space 打开窗口的控制菜单 (点击窗口左上角图标出现的菜单) <br />应用程序中的常用快捷键 <br /><br />(注: 并不适用于所有程序) 基本和win没什么区别 <br /><br />Ctrl+N 新建窗口 <br /><br />Ctrl+X 剪切 <br /><br />Ctrl+C 复制 <br /><br />Ctrl+V 粘贴 <br /><br />Ctrl+Z 撤销上一步操作 <br /><br />Ctrl+Shift+Z 重做刚撤销的一步操作 <br /><br />Ctrl+S 保存 <br />文件浏览器（部分） <br /><br />Ctrl+H 显示隐藏文件（切换键） <br /><br />Ctrl+T 新建标签 <br /><br />Ctrl+W 关闭标签 <br /><br />Ctrl+Page Up 上一个标签 <br /><br />Ctrl+Page Down 下一个标签 <br /><br />Alt+N 切换到第N个标签（N为数字） <br />在Ubuntu中自定义快捷键 <br /><br />访问&#8220;System&gt;Prefere<a href="http://www.linuxso.com/command/nc.html" target="_blank"><u>nc</u></a>es&gt;Keyboard Short<a href="http://www.linuxso.com/command/cut.html" target="_blank"><u>cut</u></a>s&#8221;，选定想要设置的项目，然后键入快捷键即可生效。 <br /><br /><br /><br />还有一些终端输命令时常用到的快捷键 <br /><br />tab=补全 <br />ctrl+a=开始位置 <br />ctrl+e=最后位置 <br />ctrl+k=删除此处至末尾所有内容 <br />ctrl+u=删除此处至开始所有内容 <br />ctrl+d=删除当前字母 <br />ctrl+w=删除此处到左边的单词 <br />ctrl+y=粘贴由ctrl+u，ctrl+d，ctrl+w删除的单词 <br />ctrl+r=正在测试，还没弄明白，呵呵。 <br />ctrl+l=相当于<a href="http://www.linuxso.com/command/clear.html" target="_blank"><u>clear</u></a> <br />ctrl+b=向回移动 <br />ctrl+f=向前移动 <br />ctrl+p=向上显示缓存命令 <br />ctrl+n=向下显示缓存命令 <br />ctrl+d=关闭终端 <br />shift+上或下=终端上下滚动 <br />shift+pgup或pgdown=终端上下翻页滚动 <br />ctrl+shift+f=全屏（仅限于konsole） <br />ctrl+shift+n=新终端（terminal和konsole有所不同） <br />ctrl+c=终止</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"> </p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">窗口管理</span></p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"> </p> <p style="margin-bottom: 1em; line-height: 26px; font-family: arial; padding: 0px;"><span style="color: #3366ff; background-color: #ffffff; font-size: small;">1. Win+E - 显示所有桌面，方便的左右选择。<br /><br />2. Alt+Ctrl+Left/Right Arrow -切换桌面<br /><br />3. Alt+Ctrl+Shift+Left/Right Arrow - 移动当前窗口到其他桌面<br /><br />4. Alt + Shift+ Up Arrow - 以很酷的方式显示当前窗口<br /><br />5. Alt+F9/F10 - 最小化/最大化当前窗口<br /><br />6. Alt+F5 -不最大化当前窗口<br /><br />7. Alt+F7 - 激活当前窗口的移动选项，你可以使用方向键移动当前窗口，甚至移动到其他桌面。<br /><br />8. Alt+F8 - 用方向键调整当前窗口大小<br /><br />9. Ctrl + Alt + D - 显示桌面/恢复当前窗口<br /><br />10. Alt+ Tab - 切换窗口<br /><br />Nautilus<br />11. Shift+Ctrl+N - 新建文件夹, 很有用<br /><br />12. Alt + Enter - 查看选择文件/文件夹的属性，代替单击右键选择属性<br /><br />13. Ctrl + 1/2 - 改变文件夹视图查看方式，图标视图/列表视图<br /><br />14. Ctrl + W - 关闭当前Nautilus窗口<br /><br />15. Ctrl + Shift + W - 关闭所有Nautilus窗口<br /><br />16. Ctrl+T - 在Nautilus中新建一个标签<br /><br />17. Alt + Up/Down Arrow - 移动到父文件夹/选择的文件夹<br /><br />18. Alt + Left/Right Arrow - 后退/前进<br /><br />19. Alt + Home -直接移动到主文件夹<br /><br />20. F9 - 开关显示Nautilus侧边栏<br /><br />21. Ctrl + H -开关显示隐藏文件夹<br /><br />其他<br />22. Ctrl + Alt + L -锁屏<br /><br />23. Alt + F1 - 打开应用程序菜单<br /><br />24. Alt + F2 - 打开运行应用程序对话框<br /><br />25. Win + 鼠标滚轮 - 放大/缩小屏幕</span></p></div>转自：<div>http://www.linuxso.com/linuxpeixun/10203.html</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/191877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-24 20:38 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/24/191877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu11.10 安装tpc_w</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/23/191710.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Sun, 23 Sep 2012 06:53:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/23/191710.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191710.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/23/191710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191710.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191710.html</trackback:ping><description><![CDATA[<div>首先简介一下在安装tpc_w时我们需要安装的软件<br />&nbsp;jdk，tomcat，ant，jdbc，servlet，mysql，tpc_w<br />下面是具体的安装步骤<br />&nbsp;一、安装jdk<br />&nbsp;下载jdk-7u5-linux-i586.tar.gz<br />&nbsp;下载地址：http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz<br />&nbsp;安装jdk<br />&nbsp;解压刚才下载的jdk-7u5-linux-i586.tar.gz<br />&nbsp;然后在配置环境变量，命令如下：<br />&nbsp;sudo gedit /etc/profile<br />&nbsp; 在文件后面添加如下环境变量:<br />&nbsp;export JAVA_HOME=/jdk/jdk1.7.0<br />&nbsp;export JRE_HOME=${JAVA_HOME}/jre<br />&nbsp;export CATALINA_HOME=/tomcat/tomcat-7.0.30<br />&nbsp;export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH<br />&nbsp;export PATH=${JAVA_HOME}/bin:$PATH<br />保存，关闭profile文件，然后时当前配置生效，使用命令如下：<br />&nbsp;source /etc/profile <br />&nbsp;然后再使用命令查看是否安装成功，命令如下：<br />&nbsp;&nbsp; java -version<br />&nbsp;会打印如下信息：<br />&nbsp;java version "1.7.0_05"<br />&nbsp;Java(TM) SE Runtime Environment (build 1.7.0_05-b05)<br />&nbsp;Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode)<br />说明已经安装成功了。<br /><br /><br />二、安装tomcat<br />&nbsp; 首先下载apache-tomcat-7.0.30.tar.gz<br />&nbsp; 然后解压上面的文件，<br />&nbsp;配置环境变量<br /><br />　　$ cd programs/tomcat7/bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #进入tomcat安装目录下的bin目录<br /><br />　　$ sudo gedit ./catalina.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #在打开的文本编辑器中加入<br /><br />编辑catalina.sh文件，在<br />cygwin=false<br />darwin=false<br />os400=false<br />前面加入一下语句<br />　　JAVA_HOME=/home/newbie/jdk7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #/home/newbie/jdk7 为jdk的安装路径<br />　　JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:PermSize=600M -XX:MaxPermSize=600m -Dcom.sun.management.jmxremote"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #这句也可以没有<br />　　保存退出<br /><br />　　在tomcat7/bin目录下<br /><br />　　$ sudo ./startup.sh 若显示<br />Using CATALINA_BASE:&nbsp;&nbsp; /tpc_w_all/tomcat7.0.30/apache-tomcat-7.0.30<br />Using CATALINA_HOME:&nbsp;&nbsp; /tpc_w_all/tomcat7.0.30/apache-tomcat-7.0.30<br />Using CATALINA_TMPDIR: /tpc_w_all/tomcat7.0.30/apache-tomcat-7.0.30/temp<br />Using JRE_HOME:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /tpc_w_all/jdk1.7/jdk1.7.0_05<br />Using CLASSPATH:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /tpc_w_all/tomcat7.0.30/apache-tomcat-7.0.30/bin/bootstrap.jar:/tpc_w_all/tomcat7.0.30/apache-tomcat-7.0.30/bin/tomcat-juli.jar<br /><br />　浏览器 输入 http://localhost:8080/ 可见缺省页面。配置成功。<br /><br /><br />三、 ant安装<br />&nbsp; 1. 运行：<br /><br />&nbsp;&nbsp;&nbsp; sudo apt-get install ant<br /><br />&nbsp;2. 查看成够安装否<br />root@ub-virtual-machine:~# ant -version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #查看ant版本<br />Apache Ant(TM) version 1.8.2 compiled on August 19 2011 <br />root@ub-virtual-machine:~# ant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #使用ant<br />Buildfile: build.xml does not exist!<br />Build failed<br /><br />若出现以上信息信息，则代表成够安装。<br /><br /><br />四、jdbc和server安装<br />&nbsp; 首先我们要下载mysql-connector-java-5.1.22.tar.gz<br />&nbsp; 然后解压给文件，然后在解压目录下找到mysql-connector-java-5.1.22-bin.jar<br />&nbsp; servlet-api.jar在我们安装tomcat的路径下lib目录下即可找到<br />&nbsp; 然后将该这两个jar包添加到我们的环境变量中，这里我们同样使用<br />&nbsp; sudo gedit /etc/profile<br />&nbsp; 在profile文件中的CLASSPATH环境变量中添加mysql-connector-java-5.1.22-bin.jar所在路径信息，在我本机中为：<br />export CLASSPATH=.:${CATALINA_HOME}/lib/servlet-api.jar:${CATALINA_HOME}/webapps/tpcw/WEB-INF/lib/mysql-connector-java-5.1.22-bin.jar:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH<br /><br />五、mysql的安装<br />下载地址：<br />http://dev.mysql.com/downloads/mysql/<br /><br />1、添加用户组<br />#&gt; groupadd mysql<br />2、添加用户<br />#&gt; useradd -r -g mysql mysql<br />3、切换目录<br />#&gt; cd /usr/local<br />4、解压(mysql-5.5.22-linux2.6-i686.tar.gz已经复制到/usr/local下)<br />#&gt; tar zxvf mysql-5.5.22-linux2.6-i686.tar.gz<br />5、创建软链接<br />#&gt; ln -s mysql-5.5.22-linux2.6-i686 mysql<br />6、删除压缩包(可操作)<br />#&gt; rm mysql-5.5.22-linux2.6-i686.tar.gz<br />7、进入mysql目录<br />#&gt; cd mysql<br />8、改变用户权限和组权限<br />#&gt; chown -R mysql .<br />#&gt; chgrp -R mysql .<br />9、初始化数据库<br />&lt;1&gt; 保证在/etc/目录下面没有my.cnf、mysql文件夹，如果有请删除<br />&lt;2&gt; 安装libaio1.so 执行sudo apt-get install libaio1 安装了则跳过<br />#&gt; scripts/mysql_install_db --user=mysql<br /><br /><br />初始化成功则出现如下提示：<br />Installing MySQL system tables...<br />OK<br />Filling help tables...<br />OK<br /><br /><br />To start mysqld at boot time you have to copy<br />support-files/mysql.server to the right place for your system<br /><br /><br />PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !<br />To do so, start the server, then issue the following commands:<br /><br /><br />./bin/mysqladmin -u root password 'root'<br />./bin/mysqladmin -u root -h VWmare password 'new-password'<br /><br /><br />Alternatively you can run:<br />./bin/mysql_secure_installation<br /><br /><br />which will also give you the option of removing the test<br />databases and anonymous user created by default.&nbsp; This is<br />strongly recommended for production servers.<br /><br /><br />See the manual for more instructions.<br /><br /><br />You can start the MySQL daemon with:<br />cd . ; ./bin/mysqld_safe &amp;<br /><br /><br />You can test the MySQL daemon with mysql-test-run.pl<br />cd ./mysql-test ; perl mysql-test-run.pl<br /><br /><br />Please report any problems with the ./bin/mysqlbug script!<br /><br /><br />10、修改权限<br />#&gt; chown -R root .<br />#&gt; chown -R mysql data<br /><br /><br />11、复制配置文件<br />#&gt; cp support-files/my-medium.cnf /etc/my.cnf<br />#&gt; cp support-files/mysql.server /etc/init.d/mysql.server<br /><br /><br />12、启动数据库<br />#&gt; bin/mysqld_safe --user=mysql &amp;<br /><br /><br />13、查看是否有3306端口启动<br />#&gt; netstat -nat<br /><br /><br />14、设置密码<br />#&gt; ./bin/mysqladmin -u root password 'new-password'<br />或者<br />#&gt; ./bin/mysql_secure_installation<br /><br /><br />15、使用mysql<br />#&gt; cd bin &nbsp;<br />#&gt; ./mysql -u root -p<br /><br /><br />16、设置开机自动启动<br />#&gt; cd /etc/init.d/<br />sudo update-rc.d mysql.server defaults<br /><br />17、设置默认编码为UTF8<br /><br />登录MySQL,执行编码显示:<br /><br />show variables like 'character%';<br /><br />QUOTE:<br /><br />+--------------------------+----------------------------+<br />| Variable_name | Value |<br />+--------------------------+----------------------------+<br />| character_set_client | latin1 |<br />| character_set_connection | latin1 |<br />| character_set_database | latin1 |<br />| character_set_filesystem | binary |<br />| character_set_results | latin1 |<br />| character_set_server | latin1 |<br />| character_set_system | utf8 |<br />| character_sets_dir | /usr/share/mysql/charsets/ |<br />+--------------------------+----------------------------+<br /><br />sudo vi /etc/mysql/my.cnf<br /><br /><br />找到[client] 添加:<br /><br /><br /><br />default-character-set=utf8<br /><br />找到[mysqld] 添加:<br /><br />character_set_server = utf8<br /><br />init_connect='SET NAMES utf8'<br /><br />修改好后,重新启动mysql 即可.<br />sudo/etc/init.d/mysql.server restart<br /><br />若启动异常则把[mysqld]处修改为<br /><br />default-character-set=utf8<br /><br />init_connect='SET NAMES utf8'<br /><br /><br />查询一下show variables like 'character%';<br /><br />QUOTE:<br /><br />+--------------------------+----------------------------+<br />| Variable_name | Value |<br />+--------------------------+----------------------------+<br />| character_set_client | utf8 |<br />| character_set_connection | utf8 |<br />| character_set_database | utf8 |<br />| character_set_filesystem | binary |<br />| character_set_results | utf8 |<br />| character_set_server | utf8 |<br />| character_set_system | utf8 |<br />| character_sets_dir | /usr/share/mysql/charsets/ |<br />+--------------------------+----------------------------+<br /><br /><br />六、tpcw_w安装<br />&nbsp;&nbsp; 首先下载tpcw-java-dist-1.0.zip，下载网址：http://mitglied.multimania.de/jankiefer/tpcw/index.html<br />&nbsp;&nbsp; 然后将该文件进行解压<br />&nbsp;&nbsp; 然后修改其中的main.properties、tpcw.properties 文件<br />下面时我的main.properties文件的内容(最后的dbName制定数据库名，在数据库里新建一个数据库名是用tpcw的数据库）<br />##############################################################################<br /># main.properties for build.xml.<br /># Copyright 2003 by Jan Kiefer.<br />#<br /># This file is distributed "as is". It comes with no warranty and the <br /># author takes no responsibility for the consequences of its use.<br />#<br /># Usage, distribution and modification is allowed to everyone, as long <br /># as reference to the author(s) is given and this license note is included.<br />##############################################################################<br /><br />#&lt;!-- Path to servlet.jar, change this ... --&gt;<br />cpServ=/tomcat/tomcat-7.0.30/lib/servlet-api.jar<br /><br />#&lt;!-- Path to the JDBC driver for your DBMS, change this ... --&gt;<br />cpJDBC=/tomcat/tomcat-7.0.30/webapps/tpcw/WEB-INF/lib/mysql-connector-java-5.1.22-bin.jar<br /><br />#&lt;!-- Directory where tpcw.war will be put with task 'inst' --&gt;<br />webappDir=/tomcat/tomcat-7.0.30/webapps/tpcw<br /><br />#&lt;!-- Path to the Perl interpreter. --&gt;<br />perlPath=/usr/bin/perl<br /><br />#&lt;!-- Directory where the Images will be put with task genimg. --&gt;<br />imagesDir=${webappDir}/Images<br /><br />#&lt;!-- Filter file for SQL queries, change this if needed --&gt;<br />sqlFilter=sql-mckoi.properties<br /><br />#dbName=std<br />dbName=tpcw<br />&nbsp;以及我的tpcw.properties：<br />##############################################################################<br /># tpcw.properties for build.xml.<br /># Copyright 2003 by Jan Kiefer.<br />#<br /># This file is distributed "as is". It comes with no warranty and the <br /># author takes no responsibility for the consequences of its use.<br />#<br /># Usage, distribution and modification is allowed to everyone, as long <br /># as reference to the author(s) is given and this license note is included.<br />##############################################################################<br /><br /># set the JDBC parameters<br />jdbc.driver=com.mysql.jdbc.Driver<br />#jdbc.driver=com.mckoi.JDBCDriver<br />jdbc.path=jdbc:mysql://localhost:3306/tpcw?user=root&amp;password=a<br />jdbc.connPoolMax=100<br /><br />sql.bigCharType=varchar(500)<br />#sql.bigCharType=tinyblob<br /><br /># set the values you want for tpcw<br />num.item=1000<br />num.eb=10<br /><br /># use the right session string for your servlet container<br />#sessionIdString=$sessionid$<br />sessionIdString=jsessionid=<br /><br />standardUrl=http://localhost:8080<br />#servletUrlPath=/servlet<br />servletUrlPath=/<br />tpcwUrlPath=/tpcw<br /><br /><br />&nbsp; 在解压后的tpc-w路径下将TPCW_Database.std.java文件改名为TPCW_Database.tpcw.java<br /><br />&nbsp;修改函数名<br />&nbsp;/home/liova/download/tpcw/tpc-w/src/rbe/util/Debug.java中<br />&nbsp;public class Debug {&nbsp; public static void assert(boolean assertCond, String message)<br />&nbsp;把assert改成你自己想要的名字，我是改成assert1。<br />&nbsp;接着以下三个文件中所有出现的Debug.assert中的assert都改成你自己修改函数名，我这里改完是Debug.assert1<br />&nbsp;/home/liova/download/tpcw/tpc-w/src/rbe/EB.java<br />&nbsp;/home/liova/download/tpcw/tpc-w/src/rbe/util/CharSetStrPattern.java<br />&nbsp;/home/liova/download/tpcw/tpc-w/src/rbe/util/Histogram.java<br />&nbsp;<br /><br />修改代码：tpc-w\tpcw\servlets\TPCW_Database.java<br />&nbsp;&nbsp;&nbsp; Class.forName(driverName); 改为：Class.forName(driverName).newInstance();//Class.forName(driverName); &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; ant<br />(1)执行命令<br /><br />&nbsp;&nbsp; ant dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (这条命令用来编译servlets以及rbe java文件)<br />&nbsp;&nbsp; ant inst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (这命令执行后，将把tpcw.war包移动到tomcat的tpcw目录下) &nbsp;<br /><br />(2)创建数据库中的表及记录,执行<br /><br />&nbsp;&nbsp; ant gendb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (这命令将调用TPCW_populate.class)<br /><br />(3)创建图像<br /><br />&nbsp;&nbsp; ant genimg&nbsp;&nbsp;&nbsp;&nbsp; (这命令将用make编译图像生成工具，用perl去运行图像生成脚本，复制静态图像到tomcat主目录)<br /><br />然后在主目录下新建一个tpcw目录和文件<br />&nbsp;新建如下路径<br />&nbsp; \tpcw\Images&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #将ant genimg生成的图片复制到该路径 <br />&nbsp; \tpcw\WEB-INF<br />&nbsp; \tpcw\WEB-INF\classes&nbsp;&nbsp; #将ant dist生成的servlet的字节文件拷贝到该路径下，就是src\serverts下的.class文件<br />&nbsp; \tpcw\WEB-INF\lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #将mysql-connector-java-5.1.22-bin.jar放到该路径（环境变量中如果有就不需要了）<br />&nbsp; \tpcw\WEB-INF\web.xml<br /><br />&nbsp;&nbsp; web.xml文件如下：<br /><br />&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br /><br />&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"<br />&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"<br />&nbsp;&nbsp;&nbsp; version="2.4"&gt;<br /><br />&nbsp; &lt;display-name&gt;TPC-W&lt;/display-name&gt;<br />&nbsp; &lt;description&gt;<br />&nbsp;&nbsp;&nbsp; TPC-W Java Implementation<br />&nbsp; &lt;/description&gt;<br /><br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_home_interaction&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_home_interaction&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_shopping_cart_interaction&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_shopping_cart_interaction&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_order_inquiry_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_order_inquiry_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_order_display_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_order_display_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_search_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_search_request_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_execute_search&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_execute_search&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_new_products_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_new_products_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_best_sellers_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_best_sellers_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_product_detail_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_product_detail_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_customer_registration_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_customer_registration_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_buy_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_buy_request_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_buy_confirm_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_buy_confirm_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_admin_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_admin_request_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br />&nbsp; &lt;servlet&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_admin_response_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;TPCW_admin_response_servlet&lt;/servlet-class&gt;<br />&nbsp; &lt;/servlet&gt;<br /><br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_home_interaction&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_home_interaction&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_shopping_cart_interaction&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_shopping_cart_interaction&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_order_inquiry_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_order_inquiry_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_order_display_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_order_display_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_search_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_search_request_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_execute_search&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_execute_search&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_new_products_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_new_products_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_best_sellers_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_best_sellers_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_product_detail_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_product_detail_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_customer_registration_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_customer_registration_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_buy_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_buy_request_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_buy_confirm_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_buy_confirm_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_admin_request_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_admin_request_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br />&nbsp; &lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;TPCW_admin_response_servlet&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/TPCW_admin_response_servlet&lt;/url-pattern&gt;<br />&nbsp; &lt;/servlet-mapping&gt;<br /><br />&nbsp; &lt;welcome-file-list&gt;<br />&nbsp;&nbsp;&nbsp; &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<br />&nbsp; &lt;/welcome-file-list&gt;<br /><br />&lt;/web-app&gt;<br /><br /><br />然后在tomcat的安装路径下 conf/Catalina/localhost/&nbsp; 目录下新建tpcw.xml文件，文件内容如下：<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;Context path="/tpcw" docBase="/tpcw" reloadable="true"/&gt;<br /><br />做到这里就安装好了，可以运行了。可以访问http://127.0.0.1:8080/tpcw/TPCW_home_interaction页面测试是否安装成功。<br /><br />运行TPC-W<br /><br />&nbsp; 1.cd /home/liova/download/tpcw/tpc-w/dist/<br />&nbsp; 2.java rbe.RBE -EB rbe.EBTPCW1Factory 30 -OUT run1.m -RU 100 -MI 1000 -RD 100 -WWW http://localhost:8080/tpcw/ -CUST 10000 -ITEM 10000<br />&nbsp; 命令的解释可参考/home/liova/download/tpcw/tpc-w/docs/use.html以及/home/liova/download/tpcw/tpc-w/dist<br />&nbsp; /doc/readme-rbe.txt<br /><br />&nbsp; 输出的结果在/home/liova/download/tpcw/tpc-w/dist/下的run1.m文件中（名字自己在参数的指定）<br /><br /><br />参考：<div>http://tcloud.sjtu.edu.cn/wiki/index.php/TPCW_INSTALL <br />http://tcloud.sjtu.edu.cn/wiki/index.php/Wooo:Building_TPCw <br />http://www.cnblogs.com/eastson/archive/2012/06/09/2543489.html <br />http://www.itpub.net/thread-1330311-1-1.html <br />http://blog.csdn.net/cybercode/article/details/6737415</div><br /></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/191710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-23 14:53 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/23/191710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cpu使用率  spu负载</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/22/191637.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Sat, 22 Sep 2012 15:14:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/22/191637.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191637.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/22/191637.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191637.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191637.html</trackback:ping><description><![CDATA[<div>http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html</div><div>http://os.51cto.com/art/201102/244884.htm</div>两篇好文章，作者很牛啊。。。<br /><img src ="http://www.cppblog.com/LIULIANG/aggbug/191637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-22 23:14 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/22/191637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>显示grub菜单(ubuntu 12.04) </title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191541.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Fri, 21 Sep 2012 14:47:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191541.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191541.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191541.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191541.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191541.html</trackback:ping><description><![CDATA[<div>默认情况下，如果系统只有一个版本的ubuntu，grub菜单是不显示的。最近由于显示驱动方面的问题，有时候因为花屏导致无法进入系统，一次使用U盘进入，一次是ssh远程进入，为了避免类似尴尬的局面，打算显示grub菜单。<br />步骤如下：<br /><ol><li>首先备份/etc/default/grub文件</li><li>打开/etc/default/grub文件，找到<br /><div id="codeText"><ol style="margin:0 1px 0 0;padding: 5px 0pt;" start="1"><li>GRUB_HIDDEN_TIMEOUT=0</li></ol></div>这行，使用#注释掉，变成<br /><div id="codeText"><ol style="margin:0 1px 0 0;padding: 5px 0pt;" start="1"><li>#GRUB_HIDDEN_TIMEOUT=0</li></ol></div></li><li>找到<br /><div id="codeText"><ol style="margin:0 1px 0 0;padding: 5px 0pt;" start="1"><li>GRUB_TIMEOUT=10</li></ol></div>把10变成3,意思是等待3秒钟。<br /><div id="codeText"><ol style="margin:0 1px 0 0;padding: 5px 0pt;" start="1"><li>GRUB_TIMEOUT=3</li></ol></div></li><li>保存后，执行命令<br /><div id="codeText"><ol style="margin:0 1px 0 0;padding: 5px 0pt;" start="1"><li>sudo update-grub</li></ol></div>现在启动的时候就会显示grub菜单了，如果3秒内不选择，则会自动进入系统。</li></ol></div>转自：<div>http://blog.chinaunix.net/uid-20147410-id-3212263.html</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/191541.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-21 22:47 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/21/191541.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu12.04安装Xen4</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191481.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Fri, 21 Sep 2012 07:16:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191481.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191481.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/21/191481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191481.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191481.html</trackback:ping><description><![CDATA[<div><div>   	 	 	 	   <p style="margin-bottom: 0in">linux3.0内核已经支持xen了，所以不用再编译内核了（对于那些内核支持的系统都不用重新编译内核）。</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第一步：安装需要的软件包</strong></p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><span>安装编译 </span>Xen <span>和 </span>Linux xen kernel 所需要的软件包：</p> <p style="margin-bottom: 0in">$ sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \</p> <p style="margin-bottom: 0in">zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \</p> <p style="margin-bottom: 0in">libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \</p> <p style="margin-bottom: 0in">libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \</p> <p style="margin-bottom: 0in">build-essential crash kexec-tools makedumpfile  libncurses5 \</p> <p style="margin-bottom: 0in">libncurses5-dev iasl gawk</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第二步：安装</strong><strong>xen vmm</strong></p> <p style="margin-bottom: 0in">32位和64位系统的区别也很重要。64位按下面步骤很简单，32位就不同，因为xen需要开启pae，默认是没有开启的，所以32位ubuntu首先得执行下面这个命令：</p> <p style="margin-bottom: 0in">sudo apt-get install linux-image-server</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in">sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils</p> <p style="margin-bottom: 0in">这里xen-hypervisor-4.1要分32位、64位，64位系统用xen-hypervisor-4.1-amd64，32位用xen-hypervisor-4.1-i386.</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第三步：安装</strong><strong>libvirt</strong><strong>和</strong><strong>Virtual Manager </strong> </p> <p style="margin-bottom: 0in">sudo apt-get install virtinst python-libvirt virt-viewer virt-manager</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第四步：重启机器，选择有</strong><strong>xen</strong><span><strong>的内核启动，进入系统之后，再检查一下 </strong></span><strong>Xen </strong><strong>是否已经成功安装：</strong></p> <p style="margin-bottom: 0in">$ sudo xm list</p> <p style="margin-bottom: 0in">Name                                        ID   Mem VCPUs      State   Time(s)</p> <p style="margin-bottom: 0in">Domain-0                                     0  1879     2     r-----      6.6</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in">出现上面的信息，则代表安装成功。</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第五步：修改配置文件</strong></p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in">sudo gedit  /etc/xen/xend-config.sxp</p> <p style="margin-bottom: 0in">将/etc/xen/xend-config.sxp文件中的&#8220;#(xend-unix-server no)&#8221;<span>注释去掉 即把&#8220;</span>#&#8221;去掉，并把&#8220;no&#8221;改成&#8220;yes&#8221;<span>，保存即可。 然后重启</span>xend服务</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in">sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话</p> <p style="margin-bottom: 0in">export VIRSH_DEFAULT_CONNECT_URI="xen:///"</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in;"><br /> </p> <p style="margin-bottom: 0in"><strong>第六步：打开</strong><strong>Virtual Manage</strong><span><strong>时，但是创建时因为相关资源路径问题可能会报以下错误 </strong></span> </p> <p style="margin-bottom: 0in">6.1  ******/usr/lib/xen/bin/qemu-dm:****<br />路径中xen应该是xen-4.1,解决办法如下</p> <p style="margin-bottom: 0in">mkdir /usr/lib/xen -p<br />cp /usr/lib/xen-4.1/* -r /usr/lib/xen/</p> <p style="margin-bottom: 0in">6.2  ****** libvirtError: POST操作失败: xend_post<span>：来自 </span>xen 守护进程的错误：****<br /><span>查看日志 </span>/var/log/xen/xend.log <span>和 </span>/var/log/xen/qemu-dm-demo.log<br />日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***<br />路径中qemu应该是qemu-linaro，解决办法如下</p> <p style="margin-bottom: 0in">cp -r /usr/share/qemu-linaro/ /usr/share/qemu</p> <p style="margin-bottom: 0in">这样创建过程基本没有问题了.</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"><strong>第七步：通过</strong><strong>libvirt</strong><strong>查看</strong><strong>xen</strong><strong>的版本信息，确认</strong><strong>libvirt</strong><strong>和</strong><strong>xen</strong><strong>都已经安装成功</strong></p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in"># virsh version</p> <p style="margin-bottom: 0in"><br /> </p> <p style="margin-bottom: 0in">Compiled against library: libvir 0.9.8</p> <p style="margin-bottom: 0in">Using library: libvir 0.9.8</p> <p style="margin-bottom: 0in">Using API: Xen  0.9.8</p> <p style="margin-bottom: 0in">Running hypervisor: Xen 4.1</p> <p style="margin-bottom: 0in"><br /> </p>  </div><div></div></div><div></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/191481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-21 15:16 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/21/191481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 12.04   查看内存使用信息</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/20/191427.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 20 Sep 2012 13:50:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/20/191427.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/191427.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/20/191427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/191427.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/191427.html</trackback:ping><description><![CDATA[<div><p>在Linux下查看内存我们一般用free命令：<br /> [root@scs-2 tmp]# free<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br /> Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3266180&nbsp;&nbsp;&nbsp; 3250004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16176&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 110652&nbsp;&nbsp;&nbsp; 2668236<br /> -/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp; 471116&nbsp;&nbsp;&nbsp; 2795064<br /> Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2048276&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80160&nbsp;&nbsp;&nbsp; 1968116</p> <p>下面是对这些数值的解释：<br /> total:总计物理内存的大小。<br /> used:已使用多大。<br /> free:可用有多少。<br /> Shared:多个进程共享的内存总额。<br /> Buffers/cached:磁盘缓存的大小。<br /> 第三行(-/+ buffers/cached):<br /> used:已使用多大。<br /> free:可用有多少。<br /> 第四行就不多解释了。<br /> 区别：第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。  这两个的区别在于使用的角度来看，第一行是从OS的角度来看，因为对于OS，buffers/cached  都是属于被使用，所以他的可用内存是16176KB,已用内存是3250004KB,其中包括，内核（OS）使用+Application(X,  oracle,etc)使用的+buffers+cached.<br /> 第三行所指的是从应用程序角度来看，对于应用程序来说，buffers/cached 是等于可用的，因为buffer/cached是为了提高文件读取的性能，当应用程序需在用到内存的时候，buffer/cached会很快地被回收。<br /> 所以从应用程序的角度来说，可用内存=系统free memory+buffers+cached。<br /> 如上例：<br /> 2795064=16176+110652+2668236</p></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/191427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-20 21:50 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/20/191427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 11.10 server 安装mysql-5.5.22-linux2.6-i686.tar.gz </title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/14/190615.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Fri, 14 Sep 2012 02:52:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/14/190615.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/190615.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/14/190615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/190615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/190615.html</trackback:ping><description><![CDATA[<div><p><span style="font-size:18px"><strong>下载地址：<br /> http://dev.mysql.com/downloads/mysql/<br /> <br /> <br /> 1、添加用户组<br /> <span style="color:#ff0000">#&gt; groupadd mysql</span><br /> 2、添加用户<br /> <span style="color:#ff0000">#&gt; useradd -r -g mysql mysql</span><br /> 3、切换目录<br /> <span style="color:#ff0000">#&gt; cd /usr/local</span><br /> 4、解压(mysql-5.5.22-linux2.6-i686.tar.gz已经复制到/usr/local下)<br /> <span style="color:#ff0000">#&gt; tar zxvf mysql-5.5.22-linux2.6-i686.tar.gz</span><br /> 5、创建软链接<br /> <span style="color:#ff0000">#&gt; ln -s mysql-5.5.22-linux2.6-i686 mysql</span><br /> 6、删除压缩包(可操作)<br /> <span style="color:#ff0000">#&gt; rm mysql-5.5.22-linux2.6-i686.tar.gz</span><br /> 7、进入mysql目录<br /> <span style="color:#ff0000">#&gt; cd mysql</span><br /> 8、改变用户权限和组权限<br /> <span style="color:#ff0000">#&gt; chown -R mysql .<br /> #&gt; chgrp -R mysql .</span><br /> 9、初始化数据库<br /> &lt;1&gt; 保证在/etc/目录下面没有my.cnf、mysql文件夹，如果有请删除<br /> &lt;2&gt; 安装libaio1.so 执行sudo apt-get install libaio1 安装了则跳过<br /> <span style="color:#ff0000">#&gt; scripts/mysql_install_db --user=mysql</span><br /> <br /> <br /> <span style="background-color:#666666">初始化成功则出现如下提示：<br /> Installing MySQL system tables...<br /> OK<br /> Filling help tables...<br /> OK<br /> <br /> <br /> To start mysqld at boot time you have to copy<br /> support-files/mysql.server to the right place for your system<br /> <br /> <br /> PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !<br /> To do so, start the server, then issue the following commands:<br /> <br /> <br /> ./bin/mysqladmin -u root password 'root'<br /> ./bin/mysqladmin -u root -h VWmare password 'new-password'<br /> <br /> <br /> Alternatively you can run:<br /> ./bin/mysql_secure_installation<br /> <br /> <br /> which will also give you the option of removing the test<br /> databases and anonymous user created by default. &nbsp;This is<br /> strongly recommended for production servers.<br /> <br /> <br /> See the manual for more instructions.<br /> <br /> <br /> You can start the MySQL daemon with:<br /> cd . ; ./bin/mysqld_safe &amp;<br /> <br /> <br /> You can test the MySQL daemon with mysql-test-run.pl<br /> cd ./mysql-test ; perl mysql-test-run.pl<br /> <br /> <br /> Please report any problems with the ./bin/mysqlbug script!</span><br /> <br /> <br /> 10、修改权限<br /> <span style="color:#ff0000">#&gt; chown -R root .<br /> #&gt; chown -R mysql data</span><br /> <br /> <br /> 11、复制配置文件<br /> <span style="color:#ff0000">#&gt; cp support-files/my-medium.cnf /etc/my.cnf<br /> #&gt; cp support-files/mysql.server /etc/init.d/mysql.server</span><br /> <br /> <br /> 12、启动数据库<br /> <span style="color:#ff0000">#&gt; bin/mysqld_safe --user=mysql &amp;</span><br /> <br /> <br /> 13、查看是否有3306端口启动<br /> <span style="color:#ff0000">#&gt; netstat -nat</span><br /> <br /> <br /> 14、设置密码<br /> <span style="color:#ff0000">#&gt; ./bin/mysqladmin -u root password 'new-password'</span><br /> 或者<br /> <span style="color:#ff0000">#&gt; ./bin/mysql_secure_installation</span><br /> <br /> <br /> 15、使用mysql<br /> <span style="color:#ff0000">#&gt; cd bin &nbsp;<br /> #&gt; ./mysql -u root -p</span><br /> <br /> <br /> 16、设置开机自动启动<br /> <span style="color:#ff0000">#&gt; cd /etc/init.d/<br /> sudo update-rc.d mysql.server defaults</span><br /> <br /> 17、设置默认编码为UTF8</strong></span></p> <p><span style="font-size:18px"><strong></strong></span></p> <p><span style="color:#ff0000">登录</span><span style="background-color:#00cccc"><span style="color:#000099">MySQL,执行编码显示:</span><br /> </span><br /> show variables like 'character%';</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <p><strong>QUOTE:</strong></p> </td> </tr> <tr> <td style="background:white"> <p>+--------------------------+----------------------------+<br /> | Variable_name | Value |<br /> +--------------------------+----------------------------+<br /> | character_set_client | latin1 |<br /> | character_set_connection | latin1 |<br /> | character_set_database | latin1 |<br /> | character_set_filesystem | binary |<br /> | character_set_results | latin1 |<br /> | character_set_server | latin1 |<br /> | character_set_system | utf8 |<br /> | character_sets_dir | /usr/share/mysql/charsets/ |<br /> +--------------------------+----------------------------+</p> </td> </tr> </tbody> </table> <br /> <span style="font-size:10.5pt; font-family:Geneva">sudo vi /etc/mysql/my.cnf</span> <p><strong><span style="font-family:Geneva"><span style="font-size:14px"><br /> </span></span></strong></p> <p><span style="font-weight:bold"><span style="font-family:Geneva"></span></span></p> <p>找到[client] 添加:</p> <p><br /> <br /> <span style="color:#ff0000">default-character-set=utf8</span><br /> <br /> 找到[mysqld] 添加:</p> <p><br /> </p> <p><span style="color:#ff0000">default-character-set=utf8<br /> </span></p> <p><span style="color:#ff0000">init_connect='SET NAMES utf8'</span><br /> </p> <p><br /> </p> <p>sudo/etc/init.d/mysql.server restart<br /> <br /> </p> <p>修改好后,重新启动mysql 即可.</p> <p><br /> </p> <p><span style="color:#ff0000">若启动异常则把<span style="font-family:Geneva; font-size:14px"><strong>[mysqld]处修改为</strong></span></span></p> <p><span style="font-family:Geneva; font-size:14px"><strong><span style="color:#ff0000">character_set_server = utf8</span></strong></span></p> <p><span style="font-family:Geneva; font-size:14px"><strong><span style="color:#ff0000">init_connect='SET NAMES utf8'</span></strong></span><br /> <span style="font-family:Geneva; font-size:14px"><strong></strong></span></p>  <br /> <p>查询一下<strong><span style="color: red;">show variables like 'character%';</span></strong></p>   <table border="0" cellpadding="0" cellspacing="0"><tbody><tr> <td> <p><strong>QUOTE:</strong></p> </td> </tr> <tr> <td style="background:white"> <p>+--------------------------+----------------------------+<br /> | Variable_name | Value |<br /> +--------------------------+----------------------------+<br /> | character_set_client | utf8 |<br /> | character_set_connection | utf8 |<br /> | character_set_database | utf8 |<br /> | character_set_filesystem | binary |<br /> | character_set_results | utf8 |<br /> | character_set_server | utf8 |<br /> | character_set_system | utf8 |<br /> | character_sets_dir | /usr/share/mysql/charsets/ |<br /> +--------------------------+----------------------------+</p></td></tr></tbody></table></div><br />转自：http://blog.csdn.net/lmyclever/article/details/7421716<br /><img src ="http://www.cppblog.com/LIULIANG/aggbug/190615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-14 10:52 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/14/190615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu12.04搭建qemu开发环境</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190443.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Wed, 12 Sep 2012 13:16:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190443.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/190443.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/190443.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/190443.html</trackback:ping><description><![CDATA[<div>一、首先安装qemu<br />&nbsp; 使用命令 sudo apt-get install qemu<br />/********************************************************/<br />/********************************************************/<br />二、安装 libvirt<br />解压libvirt-0.9.11.3.tar.gz<br />cd libvirt-0.9.11.3<br />./configure<br /><br />出现：<br /><br />checking libxml2 xml2-config &gt;= 2.6.0..<br />则：<br />sudo apt-get install libxml2 libxml2-dev<br /><br />configrue: error: you must install the gnutls library in order to compile and run libvirt<br />则：<br />sudo apt-get install gnutls-doc gnutls-bin<br />sudo apt-get install libneon27-gnutls libcurl4-gnutls-dev<br /><br />提示缺少<br />configure: error: You must install the YAJL development package in order to compile libvirt<br />从网上下载YAJL（yajl_1.0.8.orig.tar.gz），然后解压缩tar -zxvf yajl_1.0.8.orig.tar.gz&nbsp; <br /><div>进入解压后的文件夹中：cd lloyd-yajl-ce86b0f。安装YAJL。 </div>先安装C＋＋/C编译器，如果已经了就可以跳过该步执行：<br />sudo apt-get install build-essential &nbsp;<br />然后执行：<br />sudo apt-get install cmake <br />sudo apt-get install ruby<br />最后执行：<br />（1）./configure <br />（2）make install<br />又提示缺少device-mapper-devel<br />从网上下载device-mapper.1.02.28.tgz，然后解压缩tar -zxvf device-mapper.1.02.28.tgz， <br />进入解压后的文件夹中：cd device-mapper.1.02.28。安装device-mapper。 <br />&nbsp;&nbsp; （1） ./configure <br />&nbsp;&nbsp;&nbsp; (2) sudo make <br />&nbsp;&nbsp;&nbsp; (3) sudo make install <br />然后退出该文件夹，重新安装libvirt <br />You must install python-devel to build Python bindings<br />sudo apt-get install python-dev<br />&nbsp;<br />configure: error: libnl-devel &gt;= 1.1 is required for macvtap support<br />sudo apt-get install libnl-dev<br /><br />最后:<br />sudo make<br />sudo make install<br /><br />出现问题及解决方法：<br />（1）解决error while loading shared libraries: libvirt.so.0<br />&nbsp;&nbsp; &nbsp;第一种：<br />&nbsp;&nbsp; &nbsp;定义shell变量 LD_LIBRARY_PATH<br />&nbsp;&nbsp; &nbsp;$ LD_LIBRARY_PATH=/usr/local/lib<br />&nbsp;&nbsp; &nbsp;$ export LD_LIBRARY_PATH<br />&nbsp;&nbsp; &nbsp;$ ./example<br />&nbsp;&nbsp; &nbsp;第二种：<br />&nbsp;&nbsp; &nbsp;修改系统动态链接库配置文件<br />&nbsp;&nbsp; &nbsp;（the system dynamic linker configuration)<br />&nbsp;&nbsp; &nbsp;进入目录/etc/ld.so.conf.d<br />&nbsp;&nbsp; &nbsp;添加一个文件libvirt.conf,内容是：<br />&nbsp;&nbsp; &nbsp;# libvirt default configuration<br />&nbsp;&nbsp; &nbsp;/usr/local/lib<br />&nbsp;&nbsp; &nbsp;更新动态链接库缓存<br />&nbsp;&nbsp; &nbsp;sudo ldconfig<br />（2）解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory<br />&nbsp;&nbsp; &nbsp;添加libvirt用户组<br />&nbsp;&nbsp; &nbsp;sudo groupadd libvirt<br />&nbsp;&nbsp; &nbsp;添加当前用户到libvirt组里<br />&nbsp;&nbsp; &nbsp;sudo gpasswd -a&nbsp; root libvirt<br />&nbsp;&nbsp; &nbsp;记得要重启，才能有用<br /><br />(3) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located<br />&nbsp;&nbsp; &nbsp;编辑文件/usr/local/etc/libvirt/libvirtd.conf<br /><br />&nbsp;&nbsp; &nbsp;取消一下几项的注释<br />&nbsp;&nbsp; &nbsp;unix_sock_group = "libvirt"<br />&nbsp;&nbsp; &nbsp;unix_sock_ro_perms = "0777"<br />&nbsp;&nbsp; &nbsp;unix_sock_rw_perms = "0770"<br />&nbsp;&nbsp; &nbsp;unix_sock_dir = "/var/run/libvirt"修改为<br />&nbsp;&nbsp; &nbsp;unix_sock_dir = "/usr/local/var/run/libvirt"<br />&nbsp;&nbsp; &nbsp;auto_unix_ro = "none"<br />&nbsp;&nbsp; &nbsp;auth_unix_rw = "none"<br />最后：如果要启动自动运行libvirtd<br />&nbsp;&nbsp; &nbsp;编辑文件/etc/rc.local<br />&nbsp;&nbsp; &nbsp;在exit 0之前添加<br />&nbsp;&nbsp; &nbsp;sudo libvirtd &amp;<br />/********************************************************/<br />/********************************************************/<br />三、安装Virtual Machine Manager (这不是必要的)<br />&nbsp;&nbsp; sudo&nbsp; apt-get install virt-manager</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/190443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-12 21:16 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/12/190443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下查看进程端口 </title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190438.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Wed, 12 Sep 2012 12:58:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190438.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/190438.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/12/190438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/190438.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/190438.html</trackback:ping><description><![CDATA[<div><p><span style="font-size: 18px;">nmap localhost</span></p><p><span style="font-size: 18px;">（第一次使用时要安装nmap，命令如下：<div>&nbsp;apt-get install nmap</div>）<br /></span></p> <p><span style="font-size:18px"># 查看哪些进程打开了指定端口port（对于守护进程必须以root用户执行才能查看到）</span></p> <p><span style="font-size:18px">lsof -i:port</span></p> <p><span style="font-size:18px"># 查看哪些进程打开了指定端口port，最后一列是进程ID（此方法对于守护进程作用不大）</span></p> <p><span style="font-size:18px">netstat -nap|grep port</span></p> <p><span style="font-size:18px"># 查看端口号对应的系统服务名称</span></p> <p><span style="font-size:18px">cat /etc/services</span></p> <p><span style="font-size:18px"># 启动｜停止｜重启系统服务</span></p> <p><span style="font-size:18px">sudo /etc/init.d/service start|stop|restart</span></p> <p>&nbsp;</p> <p><span style="font-size:18px; color:#ff00"><strong>常见端口详细说明 </strong> </span><span style="font-size:18px"><br /> <br /> 服务及对应端口　　　 　　　　　　服务及对应端口　　　 <br /> Echo（7）　　　　　　　　　　　　　　　　　FTP（21） <br /> Ssh（22）　　　　　　　　　　　　　　　　　Telnet（23） <br /> SMTP（25）　　　　　　　　　　　　　　　　 DNS（53） <br /> HTTP（80）　　　　　　　　　　　　　　　　 MTA-X.400 over TCP/IP（102） <br /> pop3（110）　　　　　　　　　　　　　　　　NETBIOS Name Service（137、 <br /> 138、139） <br /> IMAP v2（143）　　　　　　　　　　　　　　 SNMP（161） <br /> LDAP、ILS（389）　　　　　　　　　　　　　 Https（443） <br /> IMAP(993)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL(1433) <br /> NetMeeting T.120(1503)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NetMeeting(1720) <br /> NetMeeting Audio Call Control(1731)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 超级终端(3389)&nbsp; <br /> QQ客户端(4000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pcAnywere(5631) <br /> RealAudio(6970)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sygate (7323) <br /> OICQ(8000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wingate(8010) <br /> 代理端口(8080) <br /> 1、端口：7 <br /> 服务：Echo <br /> 说明：能看到许多人搜索Fraggle放大器时，发送到X.X.X.0和X.X.X.255的信息。 <br /> 2、端口：21 <br /> 服务：FTP <br /> 说明：FTP服务器所开放的端口，用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木 马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。 <br /> 3、端口：22 <br /> 服务：Ssh <br /> 说明：PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点，如果配置成特定的模式，许多使用RSAREF库的版本就会有不少的漏洞 <br /> 存在。 <br /> 4、端口：23 <br /> 服务：Telnet <br /> 说明：远程登录，入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术，入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。 <br /> 5、端口：25 <br /> 服务：SMTP <br /> 说明：SMTP服务器所开放的端口，用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭，他们需要连接到高带宽的E- MAIL服务器上，将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu  Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。 <br /> 6、端口：53 <br /> 服务：Domain Name Server（DNS）<br /> 说明：DNS服务器所开放的端口，入侵者可能是试图进行区域传递（TCP），欺骗DNS（UDP）或隐藏其他的通信。因此防火墙常常过滤或记录此端口。 <br /> 7、端口：80 <br /> 服务：HTTP <br /> 说明：用于网页浏览。木马Executor开放此端口。 <br /> 8、端口：102 <br /> 服务：Message transfer agent(MTA)-X.400 over TCP/IP <br /> 说明：消息传输代理。 <br /> 9、端口：110 <br /> 服务：pop3<br /> 说明：POP3(Post Office Protocol  3)服务器开放此端口，用于接收邮件，客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20 个，这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。<br /> 10、端口：137、138、139 <br /> 服务：NETBIOS Name Service <br /> 说明：其中137、138是UDP端口，当通过网上邻居传输文件时用这个端口。而139端口：通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。 <br /> 11、端口：143 <br /> 服务：Interim Mail Access Protocol v2 <br /> 说明：和POP3的安全问题一样，许多IMAP服务器存在有缓冲区溢出漏洞。记住： <br /> 一种LINUX蠕虫（admv0rm）会通过这个端口繁殖，因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后，这些漏洞变的很流行。这一端口还被用于IMAP2，但并不流行。 <br /> 12、端口：161 <br /> 服务：SNMP <br /> 说明：SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中，通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。<br /> SNMP包可能会被错误的指向用户的网络。 <br /> 13、端口：389 <br /> 服务：LDAP、ILS <br /> 说明：轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口 。 <br /> 14、端口：443 <br /> 服务：Https <br /> 说明：网页浏览端口，能提供加密和通过安全端口传输的另一种HTTP。 <br /> 15、端口：993 <br /> 服务：IMAP <br /> 说明：SSL（Secure Sockets layer） <br /> 16、端口：1433 <br /> 服务：SQL <br /> 说明：Microsoft的SQL服务开放的端口。 <br /> 17、端口：1503 <br /> 服务：NetMeeting T.120 <br /> 说明：NetMeeting T.120 <br /> 18、端口：1720 <br /> 服务：NetMeeting <br /> 说明：NetMeeting H.233 call Setup。 <br /> 19、端口：1731 <br /> 服务：NetMeeting Audio Call Control <br /> 说明：NetMeeting音频调用控制。 <br /> 20、端口：3389 <br /> 服务：超级终端<br /> 说明：WINDOWS 2000终端开放此端口。 <br /> 21、端口：4000 <br /> 服务：QQ客户端<br /> 说明：腾讯QQ客户端开放此端口。 <br /> 22、端口：5631<br /> 服务：pcAnywere <br /> 说明：有时会看到很多这个端口的扫描，这依赖于用户所在的位置。当用户打开pcAnywere时，它会自动扫描局域网C类网以寻找可能的代理（这里的代理 是指agent而不是proxy）。入侵者也会寻找开放这种服务的计算机。，所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口 22的UDP数据包。 <br /> 23、端口：6970 <br /> 服务：RealAudio <br /> 说明：RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。 <br /> 24、端口：7323 <br /> 服务：[NULL] <br /> 说明：Sygate服务器端。 <br /> 25、端口：8000 <br /> 服务：OICQ <br /> 说明：腾讯QQ服务器端开放此端口。 <br /> 26、端口：8010 <br /> 服务：Wingate <br /> 说明：Wingate代理开放此端口。 <br /> 27、端口：8080<br /> 服务：代理端口<br /> 说明：WWW代理开放此端口。</span></p></div>转自：<div>http://blog.csdn.net/adparking/article/details/6947394</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/190438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-12 20:58 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/12/190438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu12.04 开启root</title><link>http://www.cppblog.com/LIULIANG/archive/2012/09/11/190314.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Tue, 11 Sep 2012 12:25:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/09/11/190314.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/190314.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/09/11/190314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/190314.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/190314.html</trackback:ping><description><![CDATA[<p>sudo gedit /etc/lightdm/lightdm.conf </p>
<p>&nbsp;<br />greeter-show-manual-login=true&nbsp;&nbsp; <br />&nbsp; <br />&nbsp;<br />allow-guest=false&nbsp;&nbsp; <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />修改完的整个配置文件是 <br />&nbsp;<br />&nbsp;<br />[SeatDefaults] <br />&nbsp;<br />greeter-session=unity-greeter <br />&nbsp;<br />user-session=ubuntu <br />&nbsp;<br />greeter-show-manual-login=true <br />&nbsp;<br />allow-guest=false <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />之后重启 ubuntu，登录窗口会有&#8220;登录&#8221;选项，这时候我们就可以通过root登录了。</p>
<p>ubuntu12.04&nbsp; 更新后似乎这样设置不行了，要在安装完系统后就首先这样设置，然后在更新系统。</p><img src ="http://www.cppblog.com/LIULIANG/aggbug/190314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-09-11 20:25 <a href="http://www.cppblog.com/LIULIANG/archive/2012/09/11/190314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu11.10 安装kvm</title><link>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188825.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 30 Aug 2012 13:39:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188825.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/188825.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/188825.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/188825.html</trackback:ping><description><![CDATA[在命令窗口中直接执行<br />sudo apt-get install qemu<br />就行了，我们这里采用的是简易安装<br />接下来我们安装Virtual Machine Manager<br /><div>sudo&nbsp; apt-get install virt-manager<br />，这样就行了。</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/188825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-08-30 21:39 <a href="http://www.cppblog.com/LIULIANG/archive/2012/08/30/188825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 11.10 安装与配置libvirt0.9.11.3</title><link>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188824.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 30 Aug 2012 13:37:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188824.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/188824.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/188824.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/188824.html</trackback:ping><description><![CDATA[<div>解压libvirt-0.9.11.3.tar.gz <br />cd libvirt-0.9.11.3 <br />./configure <br />&nbsp;<br />出现： <br />&nbsp;<br />checking libxml2 xml2-config &gt;= 2.6.0.. <br />则： <br />sudo apt-get install libxml2 libxml2-dev <br />&nbsp;<br />configrue: error: you must install the gnutls library in order to compile and run libvirt <br />sudo apt-get install gnutls-doc gnutls-bin <br />sudo apt-get install libneon27-gnutls libcurl4-gnutls-dev <br />&nbsp;<br />又提示缺少device-mapper-devel <br />从网上下载device-mapper.1.02.28.tgz，然后解压缩tar -zxvf device-mapper.1.02.28.tgz， &nbsp;<br />进入解压后的文件夹中：cd device-mapper.1.02.28。安装device-mapper。 &nbsp;<br />&nbsp;&nbsp; （1） ./configure &nbsp;<br />&nbsp;&nbsp;&nbsp; (2) sudo make &nbsp;<br />&nbsp;&nbsp;&nbsp; (3) sudo make install &nbsp;<br />&nbsp;&nbsp; &nbsp; <br />然后退出该文件夹，重新安装libvirt &nbsp;<br />You must install python-devel to build Python bindings <br />sudo apt-get install python-dev <br />&nbsp; <br />configure: error: libnl-devel &gt;= 1.1 is required for macvtap support <br />sudo apt-get install libnl-dev <br />&nbsp;<br />最后: <br />sudo make <br />sudo make install <br />&nbsp;<br />启动libvirt后台进程 <br />sudo libvirtd &amp; <br />&nbsp;<br />更新动态链接库缓存 <br />sudo ldconfig <br />&nbsp;<br />c语言库的使用 &nbsp;<br />编辑好.c源码（例如myxm.cpp)后，在命令行下编译 gcc myxm.c -lvirt -o myxm &nbsp;<br />然后运行./myxm即可 <br />&nbsp;<br />例子： <br />&nbsp;<br />#include &lt;stdio.h&gt; <br />#include &lt;stdlib.h&gt; <br />#include &lt;libvirt/libvirt.h&gt; <br />&nbsp;<br />int main() <br />{ <br />&nbsp;&nbsp; &nbsp;printf("Hello World!\n"); <br />&nbsp;&nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;virConnectPtr conn=NULL; <br />&nbsp;&nbsp; &nbsp;conn=virConnectOpenReadOnly(NULL); <br />&nbsp;&nbsp; &nbsp;if(conn==NULL) <br />&nbsp;&nbsp; &nbsp;{ <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;printf("conn is null!\n"); <br />&nbsp;&nbsp; &nbsp;} <br />&nbsp;&nbsp; &nbsp;else <br />&nbsp;&nbsp; &nbsp;{ <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;printf("connecting is successful!\n"); <br />&nbsp;&nbsp; &nbsp;} <br />&nbsp;&nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp;return 0; <br />} <br />&nbsp;<br />使用过程出现的问题： <br />&nbsp;<br />解决error while loading shared libraries: libvirt.so.0 <br />第一种： <br />定义shell变量 LD_LIBRARY_PATH <br />$ LD_LIBRARY_PATH=/usr/local/lib <br />$ export LD_LIBRARY_PATH <br />$ ./example <br />第二种： <br />修改系统动态链接库配置文件 <br />（the system dynamic linker configuration) <br />进入目录/etc/ld.so.conf.d <br />添加一个文件libvirt.conf,内容是： <br /># libvirt default configuration <br />/usr/local/lib <br />更新动态链接库缓存 <br />sudo ldconfig <br />&nbsp;<br />sudo apt-get install libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev python-dev libnl-dev</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/188824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-08-30 21:37 <a href="http://www.cppblog.com/LIULIANG/archive/2012/08/30/188824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装、配置、开启ssh服务</title><link>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188823.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Thu, 30 Aug 2012 13:34:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188823.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/188823.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/08/30/188823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/188823.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/188823.html</trackback:ping><description><![CDATA[<div>安装、配置、开启ssh服务<br /><br />sudo apt-get install openssh-server<br /><br />Ubuntu缺省安装了openssh-client,所以在这里就不安装了，如果你的系统没有安装的话，再用apt-get安装上即可。<br /><br />然后确认sshserver是否启动了：<br /><br />ps -e |grep ssh<br />就是如下就表示已经开启了ssh服务：<br />root@ub-virtual-machine:~# ps -e |grep ssh<br />&nbsp;1420 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 ssh-agent<br />&nbsp;3682 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 sshd<br /><br />如果只有ssh-agent那ssh-server还没有启动，需要/etc/init.d/ssh start，如果看到sshd那说明ssh-server已经启动了。<br /><br />ssh-server配置文件位于/ etc/ssh/sshd_config，在这里可以定义SSH的服务端口，默认端口是22，你可以自己定义成其他端口号。为了更安全，建议更改端口，然后重启SSH服务：<br /><br />sudo /etc/init.d/ssh resart</div><img src ="http://www.cppblog.com/LIULIANG/aggbug/188823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-08-30 21:34 <a href="http://www.cppblog.com/LIULIANG/archive/2012/08/30/188823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu11.10 搭建nfs</title><link>http://www.cppblog.com/LIULIANG/archive/2012/07/13/183198.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Fri, 13 Jul 2012 08:49:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/07/13/183198.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/183198.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/07/13/183198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/183198.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/183198.html</trackback:ping><description><![CDATA[<div>ubuntu11.10 搭建nfs<br />&nbsp;&nbsp; &nbsp;1.下载相关软件<br />&nbsp;&nbsp; &nbsp;2.建立共享目录<br />&nbsp;&nbsp; &nbsp;3.修改该配置文件<br />&nbsp;&nbsp; &nbsp;4.重启服务<br />&nbsp;&nbsp; &nbsp;5.测试服务器<br />&nbsp;&nbsp; &nbsp;6.测试客户端<br />&nbsp;&nbsp;&nbsp; 7。卸载nfs<br /><br />&nbsp;&nbsp; &nbsp;测试系统：Ubuntu11.10<br /><br />&nbsp;&nbsp; &nbsp;1.下载相关软件<br />&nbsp;&nbsp; &nbsp;使用如下命令，可以在ubuntu下很方便的获取并安装相关软件（经过试验，还是都安装的好）<br />&nbsp;&nbsp; &nbsp;#sudo apt-get install protmap nfs-kernel-server nfs-common<br />&nbsp;&nbsp; &nbsp;如果是要客户端和服务器端分开，可以使用如下命令<br />&nbsp;&nbsp; &nbsp; 服务器端：<br />&nbsp;&nbsp; &nbsp;#sudo apt-get install portmap nfs-kernel-server<br />&nbsp;&nbsp;&nbsp;&nbsp; 客户机端：<br />&nbsp;&nbsp; &nbsp;#sudo apt-get install portmap nfs-common<br /><br />&nbsp;&nbsp; &nbsp;2.建立共享目录&nbsp; (这一步我当时配置时没有用到)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #sudo mkdir /nfsboot<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #sudo chmod 777 /nfsboot<br /><br />&nbsp;&nbsp; &nbsp;3.修改该配置文件<br />&nbsp;&nbsp; &nbsp;刚安装完配置文件只有一些说明，其路径是：/etc/exports<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #gedit /etc/exports<br />&nbsp;&nbsp;&nbsp;&nbsp; 在文档末尾加：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /nfsboot&nbsp;&nbsp; *(rw,async,no_subtree_check,no_root_squash)<br />&nbsp;&nbsp; &nbsp;说明：<br />&nbsp;&nbsp; &nbsp;/nfsboot是要共享的目录<br />&nbsp;&nbsp; &nbsp;*代表允许所有的网络段访问（也可一制定特定网段，如192.168.11.*）<br />&nbsp;&nbsp; &nbsp;rw是可读写权限<br />&nbsp;&nbsp; &nbsp;sync是资料同步写入内存和硬盘<br />&nbsp;&nbsp; &nbsp;no_root_squash是NFS客户端分享目录使用者的权限，如果客户端使用的是root用户，那么对于该共享目录而言，该客户端就具有root权限<br /><br />&nbsp;&nbsp; &nbsp;最后重新扫描配置文件,使用户修改/etc/exports配置文件不必重启NFS服务（这一不好像也没有用到）<br />&nbsp;&nbsp; &nbsp;#sudo exportfs -ra<br />&nbsp;&nbsp; &nbsp;4.重启服务<br />&nbsp;&nbsp; &nbsp;使用如下命令重启一下服务<br />&nbsp;&nbsp; &nbsp;#sudo /etc/init.d/portmap restart<br />&nbsp;&nbsp; &nbsp;#sudo /etc/init.d/nfs-kernel-server restart<br /><br />&nbsp;&nbsp; &nbsp;5.测试服务器<br />&nbsp;&nbsp; &nbsp;查看服务目录和权限<br />&nbsp;&nbsp; &nbsp;#showmount -e<br />&nbsp;&nbsp; &nbsp;我得到的结果是：<br />&nbsp;&nbsp; &nbsp;Export list for ubuntu:<br />&nbsp;&nbsp; &nbsp;/nfsboot *<br /><br />&nbsp;&nbsp; &nbsp;6.测试客户端<br />&nbsp;&nbsp; &nbsp;在/nfsboot里新建文件，主要是作测使用<br />&nbsp;&nbsp; &nbsp;#touch /nfsboot/testfile<br />&nbsp;&nbsp; &nbsp;在其他分区挂载nfs文件系统，记得该目录要先存在才行<br />&nbsp;&nbsp; &nbsp;#sudo mount -t nfs 127.0.0.1:/nfsboot /mnt（注意：nfsboot与/mnt之间有空格，当时试验了n次都不对就是因为这一个问题）<br />&nbsp;&nbsp; &nbsp;查看一下：(其中代表本主机）<br />&nbsp;&nbsp; &nbsp;#ls /mnt<br />&nbsp;&nbsp; &nbsp;testfile<br />&nbsp;&nbsp; &nbsp;如何关闭还未试验成功 <br /><br /><br />&nbsp;&nbsp;&nbsp; 7.卸载nfs<br />&nbsp;&nbsp;&nbsp; sudo umount /mnt/12<br />&nbsp;&nbsp;&nbsp;&nbsp; 说明：/mnt/12&nbsp; 表示：本地挂在的路径<br /><br /><br /><br />参考：<div>http://blog.sina.com.cn/s/blog_6cc8508101011dq9.html</div><div>http://blog.csdn.net/youhaipeng/article/details/6940901</div></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/183198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-07-13 16:49 <a href="http://www.cppblog.com/LIULIANG/archive/2012/07/13/183198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 安装jdk1.7</title><link>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182875.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Wed, 11 Jul 2012 12:08:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182875.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/182875.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182875.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/182875.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/182875.html</trackback:ping><description><![CDATA[<div>安装jdk<br /><div>在jdk1.7时，就可以直接下载jdk-7u5-linux-i586.tar.gz<br />然后解压在当前文件下<br />然后哦配置环境变量就行了。<br />环境变量配置如下<br />$ sudo gedit /etc/profile<br />在文件最后添加<br />#set java environment<br />JAVA_HOME=/administrator/java/jdk1.7.0_05<br />export JRE_HOME=/administrator/java/jdk1.7.0_05/jre<br />export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH<br />export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH<br />重新启动计算机，用命令测试jdk的版本<br />java -version<br />显示如下信息：成功安装<br />root@liuliangVM:~# java -version<br />java version "1.7.0_05"<br />Java(TM) SE Runtime Environment (build 1.7.0_05-b05)<br />Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode)<br />root@liuliangVM:~# </div><br /><br />至于Ecplise，我们可以在Ubuntu Software Center下进行安装<br /><br /><br />在jdk1.6之前，我们使用的是<br />安装前可以查看一下jdk版本，进入Ubuntu终端 $java -version 回车，<br />我的是ubuntu11.10的，但是并没看到该版本下已经安装了别的jdk，但是我在网上看到都是是可以看到已经安装<br />了别的版本的（如看到jdk版本是1.4.2），这里就这样吧。<br /><br />安装jdk1.6<br /><br />首先，在http://java.sun.com下载jdk-6u12-linux-i586.bin,据说这个操作起来比较简单，不需要转换。<br /><br />然后，可以把它放置在任何你喜欢的文件夹，如果是像我样的菜鸟，建议把它放置到主文件夹（/home/*）下。<br />下面开始安装jdk：<br /><br />终端下进入你存放jdk-6u12-linux-i586.bin，例如我的位置是:<br />/home/liangshihong<br />//先修该文件的操作权限<br />sudo chmod u+x /home/liangshihong/jdk-6u12-linux-i586.bin<br />//解压安装<br />$ sudo -s ./jdk-6u12-linux-i586.bin<br />一路回车，直到询问是否安装，输入yes回车<br />ok，安装完毕，下面配置环境变量<br />配置classpath，修改所有用户的环境变量<br />$ sudo gedit /etc/profile<br />在文件最后添加<br />#set java environment<br />JAVA_HOME=/home/liangshihong/jdk1.6.0_12<br />export JRE_HOME=/home/liangshihong/jdk1.6.0_12/jre<br />export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH<br />export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH<br />重新启动计算机，用命令测试jdk的版本<br />java -version<br />显示如下信息：成功安装<br />java version "1.6.0_12"<br />Java(TM) SE Runtime Environment (build 1.6.0_12-b04)<br />Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)<br />liangshihong@liangshihong-Imagine:~$<br /><br /><br /></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/182875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-07-11 20:08 <a href="http://www.cppblog.com/LIULIANG/archive/2012/07/11/182875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibus_sunpingYin输入发安装</title><link>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182777.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Wed, 11 Jul 2012 02:06:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182777.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/182777.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/07/11/182777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/182777.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/182777.html</trackback:ping><description><![CDATA[<div></div><div>Ubuntu中文输入法ibus-pinyin 1.3.7稳定版本发布，支持注音模式<br /><br />Ubuntu下的中文输入法ibus-pinyin发布了最新的稳定版本ibus-pinyin 1.3.7<br />此版本较上一版本主要的改进有：<br /><br />1.增加 Ctrl + Shift + F切换简体中文和繁体中文的切换<br /><br />2.输入法启动时可设置拼音输入法的优先级<br /><br />3.增加注音模式<br /><br />4.增加了多种注音模式键盘地图支持<br /><br />ubuntu下的安装方法：<br /><br />由于Ubuntu的官方软件源不能及时更新到最新版本，我们需要使用ppa的第三方源进行更新安装。<br /><br />用终端运行：<br /><br />&nbsp;&nbsp;&nbsp; sudo add-apt-repository ppa:shawn-p-huang/ppa<br />&nbsp;&nbsp;&nbsp; sudo apt-get update<br />&nbsp;&nbsp;&nbsp; sudo apt-get install ibus-gtk ibus-qt ibus-pinyin ibus-pinyin-db-open-phrase<br /><br />进行安装，安装结束后在首选项中的ibus设置中设置为默认输入法，注销运行后就可以使用了。<br /><br />如果显示无法找到ibus-qt，可以不更新这一项，用以下命令：<br />sudo apt-get install ibus-gtk ibus-pinyin ibus-pinyin-db-open-phrase<br />进行安装。<br /><br />注意，还有一点就是，按照以上的步骤缺不能要求系统每次启动都加载ibus应用，必须每次手动设置。这个多麻烦啊，如过每次开机自动启动ibus的话，可以按照一下步骤：<br />　不管你系统是哪个版本，找到language support这个应用，然后找到keyboard input method system设置项（默认的是none），选择ibus项就可以了。<br />如果上面的方法不行，也可以使用下面的方法<br /><div><br />System &gt;&gt; Preferences &gt;&gt; Startup Applications<br />Click the button: Add<br />Name: IBus daemon<br />Command: /usr/bin/ibus-daemon -d<br />Comment: Start IBus Daemon</div><br /><span style="color: red;">关于QT中不能输入中文的解决方法：</span><br /><div>前提条件：<br />你已经安装了中文支持，即在system-&gt;administration-&gt;language support中<br />选择 Install/remove Language 中的 chinese simplified<br />一、安装ibus-qt4<br />二、终端输入：gedit ~/.profile<br />在.profile&nbsp; 中添加一下内容。<br />#ibus设置<br />export XMODIFIERS="@im=ibus"<br />export GTK_IM_MODULE=ibus<br />export QT_IM_MODULE=xim<br />export ibus &amp;<br />export LC_CTYPE=zh_CN.utf8<br />三、重启就ok了。 <br />sudo apt-get install ibus-qt4 <br />这个让我纠结的qt啊，最近使用QTextEdit控件，运行时，发现不能切换输入法，也就无法输入中文，之前还以为是程序设置问题，后来用qt官方的demo也不能输中文，我以为我qt某些插件没装，又重装了qt，发现问题还是如此<br />百度了老久了终于找到了原因和解决办法<br />qt程序需要安装专门支持qt的ibus<br />于是安装qt-ibus<br />注销重新登录，O了!</div></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/182777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-07-11 10:06 <a href="http://www.cppblog.com/LIULIANG/archive/2012/07/11/182777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu opera问题解决－－E: 软件包 opera 需要重新安装，但是我无法找到相应的安装文件。 </title><link>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175027.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Tue, 15 May 2012 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175027.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/175027.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/175027.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/175027.html</trackback:ping><description><![CDATA[<p>前几天因感受到ubuntu中firefox太不給力，于是下了个opera11.1的安装包向爽一下，结果美梦半路夭折，今天因安装gfortran困扰在opera的半成品上，不得不解决这个问题！！</p>
<p>步骤如下：</p>
<p>1。E: 软件包 opera 需要重新安装，但是我无法找到相应的安装文件。</p>
<p>用了很多办法都不理想，没有解决问题</p>
<p>2。ubuntu 清理缓存</p>
<p>&nbsp;&nbsp;&nbsp; apt-get autoclean<br />&nbsp;&nbsp;&nbsp; apt-get clean<br />&nbsp;&nbsp;&nbsp; apt-get autoremove</p>
<p><br />用了以上3条命令，无果，其中最后一条有反应了，忘了什么反应了。感叹下ubuntu 确实好用，可惜我还不够级别来使你臣服阿！</p>
<p>3。搜索关键此：ubuntu opera安装</p>
<p>想重新安装下，覆盖掉，不行阿，ubuntu 太严密了！</p>
<p>&nbsp;</p>
<p>4。打开新立德软件库，出现以下内容：E: 软件包 opera 需要重新安装，但是我无法找到相应的安装文件。 E: 打开高速缓存(1)时有内部错误。请报告。</p>
<p>找到最终解决方案：命令：sudo dpkg --remove --force-remove-reinstreq opera</p>
<p>当然这个要在关闭新历得软件库之后，不然会报错：dpkg: 另外一个进程已经为状态数据库加了锁。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>还好终于搞定了，真是的，我的主要任务可不是高opera！！fortran去了！</p><img src ="http://www.cppblog.com/LIULIANG/aggbug/175027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-05-15 22:43 <a href="http://www.cppblog.com/LIULIANG/archive/2012/05/15/175027.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Unable to locate package错误解决办法</title><link>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175025.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Tue, 15 May 2012 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175025.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/175025.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/05/15/175025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/175025.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/175025.html</trackback:ping><description><![CDATA[<div><p>　　最近刚开始接触<a title="关于Linux的学习心得" href="http://www.letuknowit.com/topics/linux" target="_blank">Linux</a>，在虚拟机中装了个<a title="关于ubuntu的学习心得" href="http://www.letuknowit.com/topics/tag/ubuntu" target="_blank">Ubuntu</a>，当前的版本是<a href="http://www.letuknowit.com/topics/tag/ubuntu-11-10" target="_blank">Ubuntu 11.10</a>，装好后自然少不了安装一些软件，在设置了软件的源后，就开始了 sudo apt-get install，结果出现了下面的Unable to locate package错误：</p> <div> <ol><li>letuknowit@ubuntu:~$ <span style="color: #0000ff;">sudo apt-get install mysql-server mysql-client</span></li><li>[sudo] password for letuknowit:</li><li>Reading package lists&#8230; Done</li><li>Building dependency tree&nbsp;&nbsp;&nbsp;&nbsp;</li><li>Reading state information&#8230; Done</li><li><span style="color: #ff0000;">E: Unable to locate package mysql-server</span></li><li><span style="color: #ff0000;">E: Unable to locate package mysql-client</span></li><li>letuknowit@ubuntu:~$</li></ol> </div> <p>　　这叫一个郁闷啊，出师不利，不带这么吓唬刚玩Ubuntu的小朋友吧~于是赶紧找资料，又回顾下前面的操作，最后发现问题出<strong><span style="color: #0000ff;">在执行sudo apt-get install之前更换了软件源，但是却忘了update下</span></strong>了，于是执行下面的命令：</p> <div> <ol><li>sudo apt-get update</li></ol> </div> <p>等上面命令执行完后，再执行sudo apt-get install就可以了！其实错误信息已经很明确了，Unable to locate packet就是无法找到包嘛，那还不赶紧sudo apt-get update下！</p><p><br /></p></div><div>转自：<a href="http://www.letuknowit.com/topics">Coding Ants</a> &#187; <a href="http://www.letuknowit.com/topics/20111125/ubuntu-unable-to-locate-package.html">Linux新手入门：Unable to locate package错误解决办法</a></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/175025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-05-15 22:43 <a href="http://www.cppblog.com/LIULIANG/archive/2012/05/15/175025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QT安装时出现的问题</title><link>http://www.cppblog.com/LIULIANG/archive/2012/05/05/173740.html</link><dc:creator>BIG森林</dc:creator><author>BIG森林</author><pubDate>Sat, 05 May 2012 06:52:00 GMT</pubDate><guid>http://www.cppblog.com/LIULIANG/archive/2012/05/05/173740.html</guid><wfw:comment>http://www.cppblog.com/LIULIANG/comments/173740.html</wfw:comment><comments>http://www.cppblog.com/LIULIANG/archive/2012/05/05/173740.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LIULIANG/comments/commentRss/173740.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LIULIANG/services/trackbacks/173740.html</trackback:ping><description><![CDATA[<div>在安装QT时，会提示没有安装C＋＋／c编译器，（就是下面的这句英文）<br />You need a C++ compiler. Please install it using the System Package Management tools.<br />所以我们要手动安装一个C＋＋/C编译器，否则就会出现出现不能新建桌面应用程序，所以在安装QT之前我们要<br />首先安装一个C＋＋/C编译器，这个很简单，使用下面的命令就可以安装<br />&nbsp;sudo apt-get install build-essential &nbsp;<br />安装了该软件包，编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序，只需要安装该软件包就可以了。<br />然后在安装QT就行了，<br /><div>1. 下载Qt_SDK_Lin32_offline_v1_1_4_en.run<br /><br />2、chmod u+x Qt_SDK_Lin32_offline_v1_1_4_en.run<br /><br />3、sudo ./Qt_SDK_Lin32_offline_v1_1_4_en.run<br /><br />注意别搞错权限了就打不开了<br />这些命令要到Qt_SDK_Lin32_offline_v1_1_4_en.run所在路径下执行<br />再安装好后。老是出现Unable to locate theme engine in module_path: "pixmap"毛病<br />解决Unable to locate theme engine in module_path: "pixmap"<br />Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"<br />纳闷老是弹这东东出来，虽然。。。貌似不影响什么，可是看着不爽<br />装下那个engines就好了，就那么一行。。。<br />sudo apt-get install gtk2-engines-pixbuf <br />（在ubuntu 11.10下没发现有gtk3的。。不过装了这一样再没提示了）</div><br /></div><img src ="http://www.cppblog.com/LIULIANG/aggbug/173740.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LIULIANG/" target="_blank">BIG森林</a> 2012-05-05 14:52 <a href="http://www.cppblog.com/LIULIANG/archive/2012/05/05/173740.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>