四、Vim(文本编辑器)常用操作

1、Vim工作模式

centos7 文件批量改成可执行文件 centos替换文件_CentOS

2、插入命令

命令

作用

a

在光标所在字符后插入

i (字母i)

在光标所在字符前插入

o(字母o)

在光标下插入新行

A

在光标所在行尾插入

I (大写字母I)

在光标所在行首插入

O (大写字母O)

在光标上插入新行

3、定位命令

命令

作用

:set nu

设置行号

:set nonu

取消行号

gg

到第一行

G

到最后一行

nG

到第n行

:n

到第n行

命令

作用

$

移动至行尾

0(零)

移动至行首

4、删除命令

命令

作用

x

删除光标所在处字符

nx

删除光标所在处后n个字符

dd

删除光标所在行,ndd删除n行

dG

删除光标所在行到文件末尾内容

D

删除光标所在处到行尾内容

:n1,n2d

删除指定范围的行

5、替换和取消命令

命令

作用

r

取代光标所在处字符

R

从光标所在处开始替换字符,按ESC结束

u

取消上一步操作

6、搜索和搜索替换命令

命令

作用

/string

搜索指定字符串(搜索时忽略大小写:set ic)

n

搜索指定字符串的下一个出席位置

:%s/old/new/g

全文替换指定字符串

:n1,n2s/old/new/g

在一定范围内替换指定字符串

7、保存和退出命令

命令

作用

:w

保存修改

:w new_filename

另存为指定文件

:wq

保存修改并退出

ZZ

快捷键,保存修改并退出

:q!

不保存修改退出

:wq!

保存修改并退出(文件所有者和root可以使用)

8、使用技巧

导入命令执行结果:r! 命令

定义快捷键:map 快捷键 触发命令

示例:map ^P I#

:map ^B 0x

连续行注释:n1,n2s/^/#/g

:n1,n2s/^#/ /g

:n1,n2s/^ /// /g

五、软件包管理

1、软件包分类

|–源码包

|–脚本安装包

|–二进制包(RPM包、系统默认包)


2、源码包

源码包的优点:

开源,可以修改源码

可以自由选择需要的功能

软件需要编译安装,更加适合自己的系统,稳定,效率高

卸载方便

源码包的确缺点:

安装过程步骤较多,特别是安装大的软件集合时,容易出现拼写错误

编译时间过长,安装比二进制安装时间长

因为是编译安装,安装过程中一旦报错新手很难解决

3、RPM包

二进制包的优点:

包管理系统简单,容易实现安装、升级、查询和卸载

安装速度比源码包快很多

二进制包缺点:

经过编译,看不到源码

功能选择不如源码包灵活

依赖性强

4、RPM包依赖性

树形依赖:a->b->c

环形依赖:a->b->c->a

模块依赖:模块依赖关系模糊,有的依赖,只在特定的RPM包里有,需要下载另外的RPM包

5、RPM命令管理-安装卸载

1、RPM包命名原则

示例:httpd-2.2.15.e16.centos.1.i686.rpm

httpd

软件包名

2.2.15

软件版本

15

软件发布的次数

e16.centos

适合的Linux平台

i686

适合的硬件平台

rpm

rpm包扩展名

2、RPM安装

rpm -ivh 包全名

选项:

-i (install) 安装

-v (verbose) 显示详细信息

-h (hash) 显示进度

–nodeps 不检测依赖性 (一般不使用)

3、RPM包升级

rpm -Uvh 包全名

选项:

-U (upgrade) 升级

4、卸载

rpm -e 包名

选项:

-e (erase) 卸载

–nodeps 不检测依赖性

6、RPM命令管理-查询

1、查询是否安装

rpm -q 包名

选项:

-q (query) 查询

-a (all) 所有

2、查询软件包中文件安装位置

rpm -ql 包名

选项:

-l (list) 列表

-p (package) 查询未安装包信息

3、查询软件包详细信息

rpm -qi 包名

选项:

-i (information) 查询软件信息

-p (package) 查询未安装包信息

4、查询系统文件属于哪个RPM包

rpm -qf 系统文件名

选项:

-f (file) 查询系统文件属于哪个软件包

5、查询软件包的依赖性

rpm -qR 包名

选项:

-R (requires) 查询软件包的依赖性

7、RPM命令-校验和文件提取

1、RPM包校验

rpm -V 已安装的包名

选项:

-V (verify) 校验指定RPM包中的文件

验证内容中的8个信息的具体内容:

S

文件大小是否改变

M

文件的类型或文件的权限(rwx)是否被改变

5

文件MD5校验和是否改变(可以看成文件内容是否改变)

D

设备的中,从代码是否改变

L

文件路径是否改变

U

文件的所有者是否改变

G

文件的所属组是否改变

T

文件的修改时间是否改变

文件类型:

c

配置文件(config file)

d

普通文件(documentaction)

g

“鬼”文件(ghost file),该文件不应该被这个RPM包包含

l

授权文件(license file)

r

描述文件(read me)

2、RPM包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

rpm2cpio 将rpm转换为cpio格式的命令

cpio 一个标准工具,用于创建软件文档文件和从档案文件中提取文件

cpio 选项 <[文件|设备]>

选项:

-i copy-in模式,还原

-d 还原时自动新建目录

-v 显示还原过程

示例:

rpm -qf /bin/ls (查询ls命令属于哪个软件包)

mv /bin/ls /tmp/ (造成ls命令误删除的假象)

rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv ./bin/ls

(提取RPM包中的ls命令到当前目录的/bin/ls下)

cp /root/bin/ls /bin/ (把ls命令复制到/bin/目录,修复文件丢失)

8、yum 管理

1、IP地址配置

setup (使用setup配置地址)

vi /etc/sysconfig/network-scripts/ifcfg-etho (包ONBOOT=‘no’ 改为yes 启动网卡)

service network restart (重启网络服务)

2、网络yum源

vi /etc/yum.repos.d/CentOS-Base.repo

[base]

容器名称,一定要放在[]中

name

容器说明,可以自定义

mirrorlist

镜像站点(可以注释掉)

baseurl

yum源服务器地址,默认是CentOS官方yum源服务器

enabled

用于指定容器是否生效,enabled=1生效,enabled=0不生效

gpgckeck

指定RPM的数字证书是否生效

gpgkey

数字证书的公钥保存位置,不用修改

9、yum命令

1、查询

yum list (查询所有可用软件包列表)

yum search 关键字 (查询服务器上所有和关键字相关的包)

2、安装

yum -y install 包名

选项:

install 安装

-y 自动回答yes

3、升级

yum -y update 包名

选项:

update 升级

4、卸载

yum -y remove 包名

选项:

remove 卸载

5、YUM软件组管理命令

yum grouplist (列出所有的可用软件组列表)

yum groupinstall 软件组名 (安装指定软件组,组名由grouplist查询)

yum groupremove 软件组名 (卸载指定软件组)

6、光盘yum源搭建步骤

(1)挂载光盘

mount /dev/sr0 /mnt/cdrom/

(2)让网络源文件失效

cd /etc/yum.repos.d/

mv /CentOS-Base.repo /CentOS-Base.repo.bak (改名,将.repo改为.bak让其无法识别)

mv /CentOS-Debuginfo.repo /CentOS-Debuginfo.repo.bak

mv /CentOS-Vault.repo /CentOS-Vault.repo.bak

(3)修改光盘yum源文件

vim CentOS-Media.repo

将enabled=0改为enabled=1,使这个yum源配置文件生效

10、源码包与RPM包的区别

1、RPM包安装位置

是否安装在默认位置中

/etc/

配置文件安装目录

/usr/bin/

可执行的命令安装目录

/usr/lib/

程序所使用的函数库保存位置

/usr/share/doc/

基本的软件使用手册保存位置

/usr/share/man/

帮助文件保存位置

2、源码包安装位置

源码包安装在指定位置中,一般是:/usr/loal/软件名/

3、安装位置不同带来的影响

RPM包安装的服务可以使用系统服务管理命令(service)来管理,RPM包安装的apache的启动方法是:

/etc/rc.d/init.d/httpd start

service httpd start

源码包安装的服务不能被服务管理命令管理,因为没有安装在默认路径中。所以只能使用绝对路径进行服务的管理,如:

/usr/local/apache/bin/apachectl start