vim的使用与软件安装
一、vim文本编辑器
1.Vim常用操作
Vim 简介
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。Vim 没有菜单,只有命令。
-
举例:
- 创建一个叫 haven.msg的编辑文件
vim haven.msg
- 输入
i
进入插入模式(同windows中记事本下的编辑模式) - 按下 ESC键 进入命令模式,$ :
set number
加行号(命令模式下输入冒号进入命令的编辑模式,命令以回车结束运行) - $ :wq! 保存并退出文件后,显示下图表示保存成功
- 创建一个叫 haven.msg的编辑文件
-
插入命令
命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
- 定位命令
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg | 定位到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
- 删除命令
命令 | 作用 |
---|---|
x | 删除光标所在处的字符 |
nx | 删除光标所在处后的n个字符 |
dd | 删除光标所在行,ndd删除n行 |
dG | 删除光标所在行到文件末尾的内容 |
D | 删除光标所在处到行尾的内容 |
:n1,n2d | 删除指定范围的行 |
- 复制和剪切命令
命令 | 作用 |
---|---|
yy | 复制当前行 |
nyy | 复制当前行以下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行 |
p、P | 粘贴在当前光标所在行下或行上 |
- 替换和取消命令
命令 | 作用 |
---|---|
r | 取代光标所在处的字符 |
R | 从光标所在处开始替换字符,按Esc结束 |
u | 取消上一步操作 |
- 搜索和搜索替换命令
命令 | 作用 |
---|---|
/string | 搜索指定字符串 搜索时忽略大小写 :set ic |
n | 搜索指定字符串下一个出现的位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
- 保存和退出命令
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:wq | 保存修改退出 |
ZZ | 快捷键,保存修改退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者和root可使用) |
2.Vim使用技巧
-
导入命令执行结果 :r !命令
- 编辑issue文件
vim /etc/issue
- $ :r /etc/issue 将issue文件中的内容导入到当前文件光标所在位置
- 编辑issue文件
-
$ :r !date 将当前日期内容导入到当前文件光标所在位置
-
定义快捷键 :
-
map 快捷键 触发命令
范例: : map ^P I#使用该命令后,在命令模式时按下ctrl + p 则可以跳到行首并插入#注释号(即 I 的作用) -
注:图中^P要同时按下ctrl + v + p
按下ctrl + p 便可注释当前行
-
-
二 、Linux 软件安装
1.软件包管理简介
- 软件包分类
- 源码包(脚本安装包,例如C源码包)
- 二进制包(RPM包、系统默认包)(即源码经过编译后生成的二进制包)
- 源码包
- 源码包的优点是:
- 开源,如果有足够的能力,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
- 卸载方便
- 源码包的缺点:
- 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
- 编译过程时间较长,安装比二进制安装时间长
- 因为是编译安装,安装过程中一旦报错新手很难解决
- 源码包的优点是:
- RPM包
- 二进制包的优点:
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
- 安装速度比源码包安装快的多
- 二进制包缺点:
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活
- 依赖性(安装过程由于依赖性,手动安装很繁琐)
- 二进制包的优点:
2.RPM包管理-rpm命令管理
包命名与依赖性
-
RPM包命名原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
(包全名)
httpd----- 软件包名
2.2.15----- 软件版本
15----- 软件发布的次数
el6.centos----- 适合的Linux平台
i686----- 适合的硬件平台
rpm----- rpm包扩展名
-
RPM包依赖性
- 树形依赖: a→b→c(安装时则需要按c、b、a的顺序安装,卸载时按a、b、c顺序卸载)
- 环形依赖: a→b→c→a (解决办法,a,b,c 同时安装)
- 模块依赖: 模块依赖查询网站:www.rpmfind.net
安装升级与卸载
-
包全名与包名
- 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
- 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
-
RPM安装
rpm –ivh 包全名 选项: -i(install) 安装 -v(verbose) 显示详细信息 -h(hash) 显示进度 --nodeps 不检测依赖性
-
RPM包升级
rpm -Uvh 包全名 选项:-U(upgrade) 升级
-
卸载
rpm -e 包名 选项:-e(erase) 卸载 --nodeps 不检查依赖性 $ rpm -e httpd 卸载apr(阿帕奇)
命令管理与查询
-
查询是否安装
rpm -q 包名 # 查询 httpd(阿帕奇) 包是否安装 选项: -q 查询(query) -a 所有(all) rpm –qa # 查询所有已经安装的 RPM 包 rpm –qa | grep httpd # 查询所有已经安装的 与httpd有关的RPM 包
-
查询软件包详细信息
rpm –qi 包名 选项:-i 查询软件信息(information) -p 查询未安装包信息(package) # rpm –qi httpd #查询软件包httpd详细信息 # rpm –qip 包全名 #查询未安装软件包的详细信息
-
查询包中文件安装位置
rpm –ql 包名 选项:-l 列表(list) -p 查询未安装包信息(package) # rpm –ql httpd #查询软件包httpd的文件安装位置
-
查询系统文件属于哪个RPM包
rpm –qf 系统文件名 选项: -f 查询系统文件属于哪个 软件包(file) # rpm –qf /var/www/icons/up.gif #查询系统文件 up.gif 属于哪个RPM包
-
查询软件包的依赖性
rpm –qR 包名 选项:-R 查询软件包的依赖性(requires) -p 查询未安装包信息(package) rpm –qR httpd #查询软件包httpd(阿帕奇)属于哪个RPM包
校验和文件提取
-
RPM包校验
rpm –V 已安装的包名 选项:-V 校验指定RPM包中的文件(verify) 无提示,可见未修改过
例:修改 /etc/httpd/conf/httpd.conf 目录下的httpd.conf文件,保存后,再校验得可见S、5、T改变
验证内容中的8个信息的具体内容如下:
- S 文件大小是否改变
- M 文件的类型或文件的权限(rwx)是否被改变
- 5 文件MD5校验和是否改变(可以看成文件内容是否改变)
- D 设备的中,从代码是否改变
- L 文件路径是否改变
- U 文件的属主(所有者)是否改变
- G 文件的属组是否改变
- T 文件的修改时间是否改变
文件类型
- c 配置文件(config file)
- d 普通文档(documentation)
- g “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含
- l 授权文件(license file)
- r 描述文件(read me)
-
RPM包中文件提取(主要用来文件修复)
rpm2cpio 包全名 | cpio -idv .文件绝对路径 rpm2cpio # 将 rpm 包转换为 cpio 格式的命令 cpio # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件 cpio 选项 < [文件|设备] 选项: -i:copy-in模式,还原 -d:还原时自动新建目录 -v:显示还原过程
例:删除ls命令后再修复 rpm -qf /bin/ls # 查询 ls 命令属于哪个软件包 mv /bin/ls /tmp/ # 将ls命令所在的文件移动到tmp中,造成 ls 命令误删除假象,则ls命令失效 rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls # 提取 RPM 包中 ls 命令复制到当前目录的 /bin/ls 下 cp /root/bin/ls /bin/ ---------# 把 ls 命令复制会 /bin/ 目录,修复文件丢失
3.RPM包管理-yum在线管理(自动在线安装)
IP地址配置和网络yum源
-
IP地址配置
setup #使用setup工具
-
网络yum源(即网络地址池)
默认在:
vi /etc/yum.repos.d/CentOS-Base.repo
打开CentOS-Base.repo文件- [base] 容器名称,一定要放在[]中
- name 容器说明,可以自己随便写 mirrorlist 镜像站点,这个可以注释掉
- baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
- enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效
- gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
- gpgkey 数字证书的公钥文件保存位置。不用修改
yum命令
-
常用yum命令
-
查询
yum list # 查询所有可用软件包列表 yum search 关键字 # 搜索服务器上所有和关键字相关的包 yum search httpd # 搜索服务器上和httpd相关的包
-
安装
yum –y install 包名 选项:install 安装 -y 自动回答yes $ yum -y install gcc #便可以自动完成gcc编译器的安装,不需要考虑依赖性,相当于会自动安装(所有的源码包必须通过gcc编译器才能翻译成计算机可以识别的机器语言) rpm -q 包名 # 查询 gcc 包是否安装
-
升级
yum -y update 包名 选项:update 升级 -y 自动回答yes
-
卸载(不是很安全)
yum -y remove 包名 选项:remove 卸载 -y 自动回答yes
-
-
YUM软件组管理命令
yum grouplist #列出所有可用的软件组列表 yum groupinstall 软件组名 #安装指定软件组,组名可以由grouplist查询出来 yum groupremove 软件组名 #卸载指定软件组
光盘yum源搭建步骤
- 第一步:挂载光盘
mount /dev/sr0 /mnt/cdrom - 第二步:让网络yum源失效
把/etc/yum.repos.d/文件里除了CentOS-Media.repo文件的其他文件全部改名,把repo后缀改了,随便改一个,比如.bak
还可以让每个文件里面的enabled=0 - 第三步:修改光盘yum源文件
vim CentOS-Media.repo
[容器] 改为c6-media 叫什么都可以
name=CentOS-$releaserver - Media 名称叫什么都可以
baseurl=file:///mnt/cdrom 地址为自己的光盘挂载地址 file:// 为固定格式不能省略 /mnt/cdrom为光盘挂载地址
把下面两个多余地址用#注释了
然后把enabled=0改为enabled=1 让源配置文件生效
注意:千万不要随意改配置文件格式,加注释,加空格缩紧 都会造成命令错误!!!!!
4.源码包管理
源码包和RPM包的区别
-
区别
- 安装之前的区别:概念上的区别
- 安装之后的区别:安装位置不同
-
RPM包安装位置
是安装在默认位置中
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装的目录 |
/usr/bin/ | 可执行命令安装的目录 |
/usr/lib/ | 程序所使用的函数保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
-
源码包安装位置
-
安装在指定位置当中,一般是
/usr/local/软件名/
$ rpm -ql httpd 查看阿帕奇安装包的安装位置
-
-
安装位置不同带来的影响
-
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
/etc/rc.d/init.d/httpd start
(启动方法一)service httpd start
(启动方法二,红帽系列专有命令,如果没有只能靠/etc/rc.d/init.d./启动) -
而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:
/usr/local/apache2/bin/apachectl start
-
源码包安装过程
这里举例(安装Apache)说明一下:
-
安装准备
安装C语言编译器
使用命令:
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
下载源码包
http://mirror.bit.edu.cn/apache/httpd/
选择任何版本,比如:
httpd-2.4.43.tar.bz2 版本 -
注意事项
源码包保存位置:/usr/local/src
软件安装位置:/usr/local
然后确定安装过程报错:
安装过程停止,并出现error,warning或者no提示,即发生错误
把电脑本机下载好的源码包传输到Linux系统或者服务器上
Windows下载WinSCP软件进行本机与虚拟机或者远程传输
Mac连接远程阿里云服务器,终端使用命令 scp进行传输:
scp -r localfile.txt username@192.168.0.1:/home/username/
其中,
1)scp是命令,-r是参数
2)localfile.txt 是文件的路径和文件名
3)username是服务器账号,一般为root
4)192.168.0.1是要上传的服务器ip地址
5)/home/username/是要拷入的文件夹路径,一般为/root 家目录
例子:
scp -r /Users/yangyangyang/Desktop/httpd-2.4.43.tar.bz2 root@47.95.5.171:/root -
解压下载到源码包
使用命令 tar -jxvf httpd-2.4.43.tar.bz2
如果是tar.gz压缩包可以使用 tar -zxvf 命令 -
进入解压缩目录
输入命令:cd httpd-2.4.43
INSTALL:安装说明
README:使用说明
进入安装说明:vi INSTALL
$ ./configure --prefix=PREFIX 编译前准备
$ make 进行编译
$ make install 编译安装
$ PREFIX/bin/apachectl star 启动命令
这些为详细的安装步骤,其中:
./configure为软件配置与检查 我们也称编译前准备
1.定义需要的功能选项。
2.检测系统环境是否符合安装要求
3.把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。** -
定义安装路径
退出之后
输入命令:./configure --prefix=/usr/local/apache2
如果报错显示:
进以下网址寻求解决办法
http://www.cnblogs.com/yuzhaokai0523/p/4382974.html -
完成定义:
输入命令:make 进行编译 -
完成编译:
输入命令:make install 编译安装 -
启动:
输入命令:/usr/local/apache2/bin/apachectl start
$ PREFIX/bin/apachectl star中 $ PREFIX为软件安装路径
启动apache遇到错误:httpd: Could not reliably determine the server’s fully qualified domain name
解决办法:
1.cd /usr/local/apache2/conf
2.vi httpd.conf
找到#ServerName www.example.com:80
并且在下面一行添加
ServerName localhost:80 localhost可以换成阿里云的IP
3.保存并退出
4.再重新启动apache
/usr/local/apache2/bin/apachectl start
5.脚本包管理
脚本包安装
- 脚本包:
-
脚本安装包并不是独立的软件包类型,常见安装的是源码包。
-
是人为把安装过程写成了自动安装的脚步,只要执行脚本,定义简单的参赛,就可以完成安装。
-
非常类似于Windows下软件的安装方式。
-
安装程序以.sh结尾 下一步点回车
-
再输入的时候如果想删除字符按ctrl+退格键
-
比如安装Webmin 网页系统用户管理,图形化工具管理
-