2014年9月10日星期三

Linux_087:常用命令之二十六:rpm

RPM(RedHat Packge Manager)是RedHat公司的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。
其中,-v是verbose,打印详细信息;-h是hash,用散列符显示进度。

常用参数说明:
(1)-ivh:安装软件包并显示安装进度。
(2)-Uvh:升级软件包。
(3)-qpl:列出RPM软件包内的文件信息[Query Package list]。
(4)-qpi:列出RPM软件包的描述信息[Query Package install packages]。
(5)-qf:查找指定文件属于哪个RPM软件包[Query File]。
(6)-qc:查询已安装软件的配置文件。
(7)-Va:校验所有的RPM软件包,查找丢失的文件[View Lost]。
(8)-e:删除软件包。

常用命令举例:

(1)查询是否安装了某软件包:# rpm -qa | grep oracle,输出如下:
oracle-xe-11.2.0-1.0.x86_64
这里,oracle-xe是软件包的名字,11.2.0是软件包的版本号,1.0是发行号,x86_64是软件包运行的硬件平台。
注意,grep命令大小写敏感,比如,# rpm -qa | grep mysql,只会输出:
mysql-workbench-community-6.1.7-1.el6.x86_64
而# rpm -qa | grep MySQL,才会输出:
MySQL-client-5.6.20-1.el6.x86_64
MySQL-server-5.6.20-1.el6.x86_64
MySQL-shared-compat-5.6.20-1.el6.x86_64
MySQL-shared-5.6.20-1.el6.x86_64
MySQL-devel-5.6.20-1.el6.x86_64

(2)卸载某软件包:# rpm -e oracle-xe

(3)一次卸载相关的软件包:# rpm -qa | grep MySQL | xargs rpm -e
会提示如下信息:
error: Failed dependencies:
    libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
    libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
    mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
这时,可以增加--nodeps参数,不管依赖关系,强行卸载: # rpm -qa | grep MySQL | xargs rpm -e --nodeps

(4)升级某软件包:# rpm -Uvh vim mysql-workbench-community-6.1.7-1.el6.x86_64
实际上升级其实分两步,先卸载,再安装,只不过用户看不到有关信息。
用户可以总是使用 -Uvh来安装软件包,即使没有安装过该软件包,也能正常运行。

参考文献:
1. http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html
2. xiaotianxin132.blog.163.com/blog/static/3511125020101026105338504/

2014年9月3日星期三

Linux_086:常用命令之二十五:update-alternatives


update-alternatives 是用于在多个同类型命令中进行切换的一个脚本。

以RHEL 6.5 为例,来说明如何使用 update-alternatives。

运行:ls -l /usr/bin/java 
结果:lrwxrwxrwx. 1 root root 22 9月   1 23:02 /usr/bin/java -> /etc/alternatives/java
说明:java这个可执行命令实际是一个链接,指向了/etc/alternatives/java。

运行:ls -l /etc/alternatives/java 
结果:lrwxrwxrwx. 1 root root 46 9月   1 23:02 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
说明:/etc/alternatives/java也是一个链接,指向了/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java,这才是最终的可执行文件。
之所以建立这样两个链接,是为了方便脚本程序的编写和系统的管理。

当我们安装了新的JDK时,特别是以解压缩的方式安装时,需要执行update-alternatives命令,切换到新安装的JDK。
以jdk-7u67-linux-x64.tar.gz为例,解压缩到/u01/app/java/jdk1.7.0_67后,
需要执行如下语句:
(1)sudo update-alternatives --install /usr/bin/java java /u01/app/java/jdk1.7.0_67/bin/java 300
(2)sudo update-alternatives --install /usr/bin/javac javac /u01/app/java/jdk1.7.0_67/bin/javac 300
(3)sudo update-alternatives --config java
(输入代表/u01/app/java/jdk1.7.0_67/bin/java 的数字)
(4)sudo update-alternatives --config javac
(输入代表/u01/app/java/jdk1.7.0_67/bin/javac 的数字)

如果有必要,还可以执行 sudo update-alternatives --remove 删除不正确的注册项。

参考文献:
1. http://paddy-w.iteye.com/blog/958062

Linux_085:常用命令之二十四:gzip gunzip

1. 压缩并保留原始文件:gzip –c filename > filename.gz 

2. 解压并保留原始文件:gunzip –c filename.gz > filename

3. 压缩当前目录每个文件(每个文件生成一个.gz压缩文件):gzip *


4. 解压当前目录每个.gz文件(每个.gz文件生成一个解压后文件):gzip -d *

5. 解压某个.gz文件:gzip -d filename.gz

6. 查看每个压缩文件的信息:gzip -l *

参考文献:
1. http://baike.baidu.com/view/966625.htm?fr=aladdin
2. http://www.jb51.net/LINUXjishu/11041.html

Cloud_023:100M宽带为何下载速度只有10M?

其实我们被电信运行商“忽悠”了,他们所说的100M,其实指的是100Mbps,注意是小写的b,而不是大写的B。

其中ps指的是“每秒”,用符号来表示就是“/s”,b是代表位,Kb代表的是千位。
Kbps指的是网络速度,也就是每秒钟传送多少个千位的信息。
电信运营商都是用Kbps来表示网络的传输速度。
 
那么大B和小b的的区别是什么呢?
这里要普及一下计算机基础知识,我们知道,计算机中的信息都是二进制的0和1来表示,其中每一个0或1被称作一个位,用小写b表示,即bit(位);大写B表示byte,即字节,1个字节=8个位,即1B=8b。

现在问题变得简单了,100Mbps的带宽,除以8,才是我们通常所理解的带宽,即约等于12M,刨去网络本身的信号的传输以及损耗,最后能够为用户使用的,最多是10MBps。

网速不仅仅与带宽有关系,跟网卡也有很大关系,我们通常所说的千兆网卡、万兆网卡,指的也是bps,而不是Bps。所以,1000Mbps的网卡,最多能用100MBps来传输数据。

参考文献:
1. http://www.weste.net/2009/3-4/14452590475.html
2. http://download.csdn.net/download/aiiaiyou/1961741
3. http://zhidao.baidu.com/link?url=2sy3lqs7bnNYmabI7nRlrYBNWXmmU2V_ITjIS3PFB8joNWZ1DXtgiYNzg1DR5XiI8gxAjPQah_wehEuGJEJ_iK