软件包管理(rpm、yum、源码编译)、打包压缩、vim

  1. rpm工具
    rpm全称为Redhat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的。

rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型。有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。

安装一个包:rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm
-i 表示安装

-v 可视化

-h 显示安装进度
–force : 强制安装,即使覆盖属于其他包的文件也要安装
–nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

[root@localhost mnt]# rpm -ivh tree-1.5.3-2.el6.i686.rpm
Preparing… ########################################### [100%]
1:tree ########################################### [100%]

升级:rpm -Uvh filename.rpm
-U 就是升级的意思

rpm的卸载:
rpm -e filename //这里的filename是通过rpm的查询功能所查询到的
rpm -qa |grep libjpeg-turbo-devel
rpm -e libjpeg-turbo-devel

[root@localhost ~]# rpm -q tree
tree-1.5.3-2.el6.i686
[root@localhost ~]# rpm -e tree
[root@localhost ~]# echo $?
0
echo $? 查看上一条命令执行状态,返回0表示执行成功,非0为不成功;

查询一个包是否安装

rpm -q 包名 (不带有平台信息以及后缀名 )

[root@localhost ~]# rpm -q tree
package tree is not installed

查询当前系统所有安装过的rpm包
rpm -qa

查询rpm包的相关信息 :
rpm -qi 包名

列出一个rpm所安装的文件:
rpm -ql 包名

[root@localhost ~]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/ex
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
/usr/share/man/man1/rvim.1.gz
/usr/share/man/man1/vimdiff.1.gz
/usr/share/man/man1/vimtutor.1.gz

查看某个文件属于哪个rpm包:
rpm -qf filename

[root@localhost ~]# rpm -qf /etc/passwd
setup-2.8.14-20.el6_4.1.noarch

  1. yum工具
    yum list 列出所有可用rpm包资源
    搜索某个包: yum search ‘keywords’或 yum list |grep ‘keywords’
    yum 安装包: yum install -y filename(包名)
    yum 卸载包: yum remove -y filename (包名)
    yum 升级包: yum update -y filename(包名)

yum 查找包:yum provides “*/vim” //这里用通配,可以查找一个命令由哪个包安装来的

yum grouplist 列出所有的套件
yum groupinstall 安装套件
yum groupremove 卸载套件

创建本地的yum源
mount /dev/cdrom /mnt
cp -r /etc/yum.repos.d /etc/yum.repos.d.bak //先备份一下
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/dvd.repo #加入如下内容:
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0
yum list //查看是否有dvd的标志出现

安装yum扩展源epel 可以安装nginx、zabbix

rpm -ivh www.lishiming.net/data/attachmen … e-6-8_32.noarch.rpm

(其他地址http://www.aminglinux.com/bbs/thread-6721-1-1.html)

[root@localhost ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
Retrieving http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpmwarning: /var/tmp/rpm-tmp.YcVQW6: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYPreparing… ########################################### [100%] 1:epel-release ########################################### [100%]
安装完成之后yum list 右侧可以列出很多epel的包,供以后使用;

使用yum下载rpm包,而不安装,方法1:

yum有一个plugin(插件)叫做yum-downloadonly,可以实现让用户只下载软件包的功能;

首先需要安装插件:yum install -y yum-plugin-downloadonly

安装完成后:yum install 包名 -y --downloadonly

#这样就已经下载,centos6默认在 /var/cache/yum/i386/6/base/packages 我这里是32位的显示为i386目录;

yum install 包名 -y --downloadonly --downloaddir=/usr/local/src #指定一个下载目录,如果是已经安装过的rpm包这样不成功,需要使用reinstall: yum reinstall 包名 -y --downloadonly --downloaddir=/usr/local/src
reinstall 重新安装;

示例:

[root@localhost yum]# yum install -y yum-plugin-downloadonly
[root@localhost packages]# pwd
/var/cache/yum/i386/6/base/packages
[root@localhost packages]# ls -l
-rw-r–r--. 1 root root 36464 Jul 3 2011 tree-1.5.3-2.el6.i686.rpm

使用yum下载rpm包,而不安装,方法2:

通过一个专门的包下载工具–yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。

使用命令安装:yum install -y yum-utlis

安装完成后,下载rpm包,使用命令:yumdownloader 包名

下载的包保存到当前的目录,你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是,任何依赖包不会被下载。

设置yum保留下载的rpm包

yum 默认情况下,升级或者安装后,会删除下载的rpm包。

修改 /etc/yum.conf 配置文件保留下载的包;
[main]
cachedir=/home/soft/yumcache
keepcache=1
debuglevel=2

cachedir 存放下载包的地址,可以修改为自己放置的地址;

keepcacahe设置为1,表示保存已经下载的rpm包;

  1. 源码包安装
    源码包是开源的可自行更改的程序包,大多用C语言开发,不能直接使用,需要编译成二进制的可执行文件;
    编译源码包的必须有gcc支持,如果没有需要安装 yum install -y gcc
    通常情况编译三步曲: ./configure 配置各种编译参数; make 根据指定的编译参数进行编译;make install 安装到指定目录

实例:
1、下载源码包#cd /usr/local/src/ #约定目录;

首先安装wget,安装命令:yum install -y wget

#wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.29.tar.gz
2、解压tar zxvf httpd-2.2.29.tar.gz //查看README或者INSTALL说明文件
3、指定编译参数 ./configure --help 可以查看帮助

#./configure --prefix=/usr/local/apache2 指定一个路径;

执行时提示checking for gcc… no 需要安装gcc编译器;安装命令#yum install -y gcc
4、#echo $? 验证是否成功
5、#make 编译成二进制的文件;
6、#make install 安装编译后的文件;

一、vim
yum install -y vim-enhanced //安装vim
vim /etc/vimrc` //vim配置文件
具体用法介绍http://blog.51cto.com/13569831/2073739
1.一般模式

h或者左方向键 //向左移动一个字符
l(小写L)或者右方向键 //向右移动一个字符
k或者上方向键 //向上移动一个字符
j或者下方向键 //向下移动一个字符
Ctrl+b或者pgup //向前翻页
Ctrl+f或者pgdown //向后翻页
数字0或者shift+6 //移动到本行行首
shift+4 //移动到本行行尾
gg //移动到首行
G //移动到尾行
nG(n是任意数字) //移动到n行
x,X //x向后删除一个字符,X向前删除一个字符
nx //向后删除n个字符
dd //删除/剪切光标所在的行
ndd //删除/剪切光标所在行之后的n行
yy //复制光标所在的行
p //从光标所在行开始,向下粘贴已经复制或者剪切的内容
P //从光标所在行开始,向上粘贴已经复制或者剪切的内容
nyy //从光标所在行开始向下复制n行
u //还原还是哪个一步操作,最多50次
Ctrl+r //返还原(与u相反)
v //按v后移动光标会选中指定字符,然后可以实现复制、粘贴等操作,选定后x剪切,p粘贴
2.编辑模式

i //在当前字符前插入
I //在光标所在行的行首插入
a //在当前字符后插入
A //在光标所在行的行尾插入
o //在当前所在行的下一行插入新的一行
O //在当前所在行的上一行插入新的一行
输入完内容后按ESC,然后输入:X(注意是大写的X),回车;可以加密文档
3.命令模式

/word //向光标之后查找字符串word,按n向后继续搜索
?word //向光标之前查找字符串word,按n向前继续搜索
:n1,n2s/word1/word2/g //将n1-n2行之间的word1替换为word2,不加g则只替换每行第一个word1
:1,Ss/word1/word2/g //将文档中所有的word1替换为word2,不加g则只替换每行第一个word1
:w //保存文本
:q //退出vim
:w! //强制保存,在root用户下,即使文本只读也可以完整保存
:q! //强制退出 ,所有改动不生效
:wq //保存并退出
:set nu //显示行号
:set nonu //不显示行号
二、压缩
gzip
gzip 1.txt //压缩文件,并删除源文件
gzip -d 1.txt.gz /gunzip 1.txt.gz //解压文件
压缩级别,共九个级别,默认为6,数字越小,压缩率越低,压缩后文件越大,资源耗费越小,反之亦然,一般压缩时压缩级别保持默认即可
file 1.txt.gz //查看压缩文件的信息
zcat 1.txt.gz //查看压缩文件内容
gzip -c 1.txt > /root/1.txt.gz //将文件压缩到指定路径并指定文件名而且不删除源文件
gunzip -c /root/1.txt.gz > /tmp/1.txt.new //将压缩文件解压到指定文件夹并指定文件名,不删除原压缩文件
注意:gzip不可以压缩目录
参数选项

-a或——ascii:使用ASCII文字模式;
-d或–decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或–no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
–best:此参数的效果和指定“-9”参数相同;
–fast:此参数的效果和指定“-1”参数相同。

bzip2
bzip2 1.txt / bzip2 -z 1.txt
bzip2 -d 1.txt.bz2 / bunzip2 1.txt.bz2
bzip -# 1.txt //#范围1-9,默认9
不能压缩目录
bzcat 1.txt.bz2
bzip2 -c 1.txt > /root/1.txt.bz2
bzip2 -c -d /root/1.txt.bz2 > /tmp/1.txt.new2
bzip2用法基本与gzip相同
bzcat 1.txt.bz2
查看压缩文件的文件内容
参数选项

-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
–repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
–repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。

xz
xz 1.txt / xz -z 1.txt
xz -d 1.txt.xz / unxz 1.txt.xz
xz -# 1.txt //#范围1-9,默认9
不能压缩目录
xzcat 1.txt.xz
xz -c 1.txt > /root/1.txt.xz
xz -d -c /root/1.txt.xz > 1.txt.new3
压缩后文件大小方面
gzip>bzip2>xz
也就是xz最耗费资源,压缩后文件最小

zip
yum install -y zip/unzip
zip 1.txt.zip 1.txt //压缩文件1.txt,压缩文件名称为1.txt.zip
zip -r 123.zip 123/ //压缩文件夹123/ 指定名称123.zip
unzip 1.txt.zip //zip压缩文件并不会删除源文件,解压时会提示是否覆盖已存在的文件
unzip 123.zip -d /root/456/ //解压123.zip文件到/root/456/ 目录下
unzip -l 123.zip //查看压缩文件123.zip中文件列表
tar

tar -cvf 123.tar 123 //将目录123/打包成123.tar 如果文件已存在不会有任何提示(解包时一样无提示),默认覆盖
tar -cvf 123.tar 1.txt 123 //将文件1.txt和文件夹123/打包 123.tar
tar -xvf 123.tar //解包123.tar
tar -tf 123.tar //查看123.tar中文件列表
tar -cvf 123.tar --exclude 1.txt --exclude 2 123 //将目录123打包,排除文件1.txt 和目录2,要排除的文件只能用–exclude +文件名,并且一个–exclude后只能跟一个文件名或者目录名,也可以用"*.txt",这种通配txt文件
三、打包并压缩
tar -zcvf 123.tar.gz 123 //将目录123打包并且压缩为gz格式
tar -zxvf 123.tar.gz //解包gz格式的包
tar -jcvf 123.bz2 123 //将文件夹打包并压缩成bz2格式
tar -jxvf 123.bz2 //解包
tar -Jcvf 123.xz 123 //将文件夹打包并压缩成xz格式
tar -Jxvf 123.xz //解包
tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz //无论哪种压缩格式的打包,都可以用tar -tf 查看压

你可能感兴趣的:(linux)