vim的使用与软件安装

一、vim文本编辑器

1.Vim常用操作

Vim 简介
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。Vim 没有菜单,只有命令。

  • 举例:

    • 创建一个叫 haven.msg的编辑文件 vim haven.msg
    • 输入i进入插入模式(同windows中记事本下的编辑模式)
    • 按下 ESC键 进入命令模式,$ :set number 加行号(命令模式下输入冒号进入命令的编辑模式,命令以回车结束运行)
    • $ :wq! 保存并退出文件后,显示下图表示保存成功
  • 插入命令

命令 作用
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 !命令

    1. 编辑issue文件 vim /etc/issue
    2. $ :r /etc/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命令管理

包命名与依赖性

  1. RPM包命名原则

    • httpd-2.2.15-15.el6.centos.1.i686.rpm(包全名)
      httpd----- 软件包名
      2.2.15----- 软件版本
      15----- 软件发布的次数
      el6.centos----- 适合的Linux平台
      i686----- 适合的硬件平台
      rpm----- rpm包扩展名
  2. RPM包依赖性

    • 树形依赖: a→b→c(安装时则需要按c、b、a的顺序安装,卸载时按a、b、c顺序卸载)
    • 环形依赖: a→b→c→a (解决办法,a,b,c 同时安装)
    • 模块依赖: 模块依赖查询网站:www.rpmfind.net

安装升级与卸载

  1. 包全名与包名

    • 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
    • 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
  2. RPM安装

    rpm –ivh 包全名
    
    选项:
    -i(install) 安装
    -v(verbose)  显示详细信息 
    -h(hash) 显示进度
    --nodeps  不检测依赖性
    
  3. RPM包升级

    rpm -Uvh 包全名
    选项:-U(upgrade) 升级
    
  4. 卸载

    rpm -e 包名
    选项:-e(erase)  卸载
                --nodeps 不检查依赖性
    $ rpm -e httpd 卸载apr(阿帕奇)
    

命令管理与查询

  1. 查询是否安装

    rpm -q 包名           # 查询 httpd(阿帕奇) 包是否安装
    选项:
    -q  查询(query)
    -a  所有(all)
    
    rpm –qa             		   # 查询所有已经安装的 RPM 包
    rpm –qa | grep httpd           # 查询所有已经安装的 与httpd有关的RPM 包
    
  2. 查询软件包详细信息

    rpm –qi 包名   
    选项:-i  查询软件信息(information)
         -p  查询未安装包信息(package)
        
    # rpm –qi httpd     #查询软件包httpd详细信息
    # rpm –qip 包全名      #查询未安装软件包的详细信息
    
  3. 查询包中文件安装位置

    rpm –ql 包名
    选项:-l  列表(list)
     	-p  查询未安装包信息(package)
    
    # rpm –ql httpd      #查询软件包httpd的文件安装位置 
    
  4. 查询系统文件属于哪个RPM包

    rpm –qf 系统文件名
    选项:
    -f 查询系统文件属于哪个 软件包(file)
    
    # rpm –qf  /var/www/icons/up.gif     #查询系统文件 up.gif 属于哪个RPM包
    
  5. 查询软件包的依赖性

    rpm –qR 包名
    选项:-R 查询软件包的依赖性(requires)
    	 -p 查询未安装包信息(package)
    
    rpm –qR httpd      #查询软件包httpd(阿帕奇)属于哪个RPM包
    

校验和文件提取

  1. RPM包校验

    rpm –V 已安装的包名
    选项:-V 校验指定RPM包中的文件(verify)
    
    无提示,可见未修改过
    

    例:修改 /etc/httpd/conf/httpd.conf 目录下的httpd.conf文件,保存后,再校验得可见S、5、T改变

    img

    验证内容中的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)
  2. 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源

  1. IP地址配置

    setup #使用setup工具

  2. 网络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命令

  1. 常用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
      
  2. 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包的区别

  1. 区别

    • 安装之前的区别:概念上的区别
    • 安装之后的区别:安装位置不同
  2. RPM包安装位置

    是安装在默认位置中

RPM包默认安装路径
/etc/ 配置文件安装的目录
/usr/bin/ 可执行命令安装的目录
/usr/lib/ 程序所使用的函数保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
  1. 源码包安装位置

    • 安装在指定位置当中,一般是/usr/local/软件名/

      $ rpm -ql httpd 查看阿帕奇安装包的安装位置

  2. 安装位置不同带来的影响

    • 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)说明一下:

  1. 安装准备
    安装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 版本

  2. 注意事项
    源码包保存位置:/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

  3. 解压下载到源码包
    使用命令 tar -jxvf httpd-2.4.43.tar.bz2
    如果是tar.gz压缩包可以使用 tar -zxvf 命令

  4. 进入解压缩目录
    输入命令:cd httpd-2.4.43
    INSTALL:安装说明
    README:使用说明
    进入安装说明:vi INSTALL
    $ ./configure --prefix=PREFIX 编译前准备
    $ make 进行编译
    $ make install 编译安装
    $ PREFIX/bin/apachectl star 启动命令
    这些为详细的安装步骤,其中:
    ./configure为软件配置与检查 我们也称编译前准备
    1.定义需要的功能选项。
    2.检测系统环境是否符合安装要求
    3.把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。**

  5. 定义安装路径
    退出之后
    输入命令:./configure --prefix=/usr/local/apache2
    如果报错显示:
    进以下网址寻求解决办法
    http://www.cnblogs.com/yuzhaokai0523/p/4382974.html

  6. 完成定义
    输入命令:make 进行编译

  7. 完成编译
    输入命令:make install 编译安装

  8. 启动
    输入命令:/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.脚本包管理

脚本包安装

  1. 脚本包:
    • 脚本安装包并不是独立的软件包类型,常见安装的是源码包。

    • 是人为把安装过程写成了自动安装的脚步,只要执行脚本,定义简单的参赛,就可以完成安装。

    • 非常类似于Windows下软件的安装方式。

    • 安装程序以.sh结尾 下一步点回车

    • 再输入的时候如果想删除字符按ctrl+退格键

    • 比如安装Webmin 网页系统用户管理,图形化工具管理

posted @ 2021-01-13 15:17  豆子V  阅读(347)  评论(0编辑  收藏  举报