Linux入门学习笔记(Centos7安装,基本指令,VIM操作 )

1.Linux介绍

1.1 学习Linux的原因

  1. 面试必问:基础指令、简单的shell脚本
  2. 工作必要技能
  3. 大数据框架运行的平台

1.2 起源

1.2.1 概念:

  1. Linux是一套免费使用和自由传播(开源)的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、执行多线程和多CPU的操作系统
  2. 能够运行主要的Unix的工具软件、应用程序和网络协议,支持32位和64位硬件,继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户操作系统

1.2.2 发行版本:

  1. CentOS:企业级Linux,教学使用此内核&软件
  2. RedHat:商业化产品
  3. Ubuntu:最美Linux

2.Linux系统安装

2.1 系统安装

  1. 由于学习环境中没有第二台电脑使用,所以需要使用VMware这个虚拟机软件来模拟一台电脑的使用
  2. VMware安装:
    a. 下一步安装即可,建议不要直接装在C盘中
    b. 安装路径尽量不要出现中文和空格

2.2 虚拟机的创建

  1. 注意:笔记中没有出现的截图,均表示默认执行下一步
  2. 创建空白虚拟机:
    在这里插入图片描述
  3. 选择“稍后安装”:
    在这里插入图片描述
  4. 选择客户机操作系统:
    5.
  5. 命名虚拟机:
    6.
  6. 处理核心数可以修改2-2 & 内存大小可以修改为2048M
  7. 下一步直至指定磁盘容量
    8.
  8. 完成即可
    9.

2.3 安装操作系统

  1. 将ISO镜像文件放入到虚拟机的虚拟光驱中
    2.
  2. 点击开启虚拟机:
    3.
    注意:
    a. 如果出现提示:此主机支持Intel VT-X,但是Intel VT-X处于禁用状态,则表示当前主板上的虚拟化未开
    启;
    b. 需要进入到BIOS固件界面找到相关设置调整为enable状态即可;
    c. 由于不同的电脑型号进入BIOS固件界面不同,需要自行百度
  3. 更改系统——安装位置:自定义分区
    在这里插入图片描述
    自定义分区:
    /boot引导分区,修改大小为200M
    在这里插入图片描述
    /swap交换分区,修改大小为4096M(通常是虚拟内存的两倍)
    在这里插入图片描述
    /主分区,建议使用剩余全部可用大小
    最后分区设置:
    在这里插入图片描述
    最后完成并选择接受更改
  4. 点击网络连接和主机名:
    a. 打开ens33网络,查看此时分配的IPV4:
    在这里插入图片描述
    b. 修改此虚拟机的主机名为master:
    在这里插入图片描述
  5. 点击“开始安装”,一定要为root超级管理员账户设置密码:
    6.
  6. 设置普通用户,可操作可不操作:
  7. 安装完成之后,点击重启即可
  8. 查看IP地址:ip addr
    在这里插入图片描述

2.4 finalshell远程连接工具

  1. 实际工作环境中往往不会直接在VM上操作服务器,通常是使用远程连接工具类似:finalshell来连接服务器使用
  2. 安装:下一步傻瓜式安装即可
  3. 配置远程连接:
    a. 创建连接:
    在这里插入图片描述
    b. 弹框选接受并保存:
    在这里插入图片描述
    c.配置:
    在这里插入图片描述
  4. finalshell是通过网络的方式,对服务器进行远程登录连接;如果出现服务器状态一切正常,但是finalshell无法连接上,检查Windows端的虚拟网卡VMnet8是否正确安装上:
    在这里插入图片描述
    没有以上两个网络适配器可能是由于安装Vmware过程中被安全软件或杀毒软件拦截了,建议是关闭安全软件等先尝试重置虚拟网卡,实在不行再重新安装VMware:
    在这里插入图片描述

2.5 服务器IP静态化

  1. 原因:作为服务器,应当有一个静态的IP地址用于用户的连接请求或者配置,不能发生频繁的变化
  2. 图形化界面可以通过setup指令,进入到网络配置——设备配置——ens33
  3. 命令行界面:
    a. 进入到网络配置文件所在目录下:cd /etc/sysconfig/network-scripts/
    b. 编辑其中的ifcfg-ens33:vi ifcfg-ens33:
    i. 光标移动到文件的尾行,然后敲下 o,表示插入新行
    ii. 编辑,添加以下内容(注意IPADDR&GATEWAY与自身服务器一致):
    在这里插入图片描述
    iii. 保存并退出
    敲下 esc ,表示退出编辑模式
    敲下 :wq,表示保存修改并退出编辑器
    c. 重启网络:systemctl restart network
  4. 说明:
cd切换工作目录的命令
viLinux系统中自带的文本编辑软件
/etc位于根目录下的Linux系统所有配置文件存放的目录
sysconfig系统的配置文件,往往需要管理员权限才能修改保存
network-scripts网络配置以及脚本文件
ifcfg-ens33ens33网卡的配置文件

3.Linux命令

3.1 命令提示符

  1. 格式:
    a. [root@master ~]#
    b. [tarena@master ~]$
  2. 说明:
    a. [当前登录的用户@当前主机名 当前工作目录]#超级管理员权限 || $普通用户权限
    b. 绝对路径:从根目录 / 出发的路径
    c. 相对路径:从当前工作目录出发的路径

3.2 命令的书写格式

  1. 格式:命令主体 选项 参数
  2. 说明:
    a. 三者之间往往使用空格分隔,并且选项通常要通过 - || – 来表示
    b. 命令是要运行的主要程序,选项和参数是辅助命令来运行的从而得到用户想要的结果

3.3 常见的基础命令

  1. pwd:查看当前所在的工作目录
    a. 此指令往往用于拷贝完整路径用于编写开发文档或配置文件时使用
  2. passwd:修改系统密码,建议非必要不使用
  3. mkdir:创建目录
    a. 用法:mkdir [选项]… 目录…
    b. 选项:
-p或者- -parentsno error if existing, make parent directories as needed,在有需要时,创建目标目录的父目录,即使这些父目录已经存在也不会出现错误
  1. cd:切换目录
    a. 用户:cd 目录…
    b. 特殊路径:
    符号路径:
~当前用户的家目录;单独表示当前用户的家目录,使用~用户名表示指定用户的家目录
-返回上一次所在的目录
.表示当前目录
表示父级目录
  1. ls :显示目录及文件信息
    a. 语法:ls [选项]… 目录…
    b. 选项:
-a,-all列出所有文件(文件夹),包含隐藏;Linux中的.开头的统统是隐藏
-l显示文件(文件夹)的详细信息:类型、权限、用户、用户组、大小、时间戳、名称
-h与-l联用,以符合的单位查看文件大小

c. 灵活变型:
i. ls -l 等价于 ll,选项也是通用的
ii. 多个选项可以合并写在同一个减号后面
iii. 多个参数需要通过空格区分

  1. cat || tail:查看文件内容
    a. cat:查看文件完整内容
    b. tail:查看文件末尾一千个字节的内容,往往用于查看日志文件
  2. cp:复制文件(文件夹)
    a. 语法:cp [选项]… 源文件 目的地目录
    b. 选项:
-r, --recursive递归复制目录及其子目录的所有内容

c.案例:
i. 完成了mkdir练习的前提下:
[root@master ~]#mkdir test
[root@master ~]#mkdir -p demo/demo/test
ii. 将/root目录下的test目录复制到/home目录下
[root@master ~]# cp -r test /home
iii. 将/root目录下的anaconda-ks.cfg文件复制到/home目录下,并改名为install.log
iv. 将/root目录下的demo目录复制到/home目录下
cp -r demo/ /home/
d.cp命令在拷贝过程中,支持对文件进行重命名;一般用于重要配置文件备份,语法:cp [选项]… [-T] 源文件 目标文件

  1. mv:移动文件(文件夹)
    a. 移动语法:mv [选项]… 源文件… 目录
    b. 重命名语法:mv [选项]… [-T] 源文件|目录 目标文件|目录
    c. 案例
    i. 将/home/install.log移动到test目录下
    [root@master ~]# mv /home/install.log /home/test/
    ii. 将移动后的文件重命名为install.log.bak
    [root@master test]# mv install.log install.log.bak
  2. rm:删除命令,可以用于强制删除文件(文件夹)
    a. 语法:rm [选项]… 文件…
    b. 选项:
-f, --forceignore nonexistent files and arguments, never prompt忽略不存在的文件或参数,不提示确认删除与否
-r, -R, --recursiveremove directories and their contents recursivel,递归删除文件夹

c. 案例:
i. 删除/home/test/install.log.bak文件:
[root@master test]# rm install.log.bak
rm:是否删除普通文件 “install.log.bak”?yes
[root@master test]# rm anaconda-ks.cfg
rm:是否删除普通文件 “anaconda-ks.cfg”?no
ii. 删除/home/demo目录:
[root@master home]# rm -r demo
rm:是否进入目录"demo"? yes
rm:是否进入目录"demo/demo"? yes
rm:是否删除目录 “demo/demo/test”?yes
rm:是否删除目录 “demo/demo”?yes
rm:是否删除目录 “demo”?yes
d. 说明:

  • 千万注意不要随意使用rm -rf 指令,尤其是 不能在根目录/和root目录下使用
  1. 常见目录说明
用户的家目录/root,/home/{suername}
普通用户的可执行文件所在目录/bin
系统管理用的可执行文件/sbin
配置文件/etc
共享库/lib
内核和启动文件/boot
服务器数据/var、/srv
临时文件/tmp
系统信息和挂载光盘\u盘\磁带其余目录

4.免密登录

4.1 运行级别:

  1. 运行级别
3表示命令行界面
5表示图形化界面
  1. 查看:who -r
  2. 切换:init 数字

4.2 克隆虚拟机

  1. VMware中首先将需要克隆的虚拟机关机,右键:虚拟机–管理–克隆
  2. 下一步选择“当前状态”,再下一步选择“链接克隆”
  3. 修改名称和路径
    在这里插入图片描述
  4. 点击完成
    在这里插入图片描述

4.3 开启

  1. 开启两台虚拟机,其中需要修改克隆机的hostname和IP地址
    a. 修改静态IP
    i. 查看克隆机的IP地址:
    在这里插入图片描述
    ii. 修改克隆机的静态IP为新分配的IP即可:
    编辑:vi /etc/sysconfig/network-scripts/ifcfg-ens33
    修改其中的IPADDR为此时新分配的IP:
    在这里插入图片描述
    保存退出(退出编辑 esc, 保存退出 :wq):
    iii. 再次查看,无源服务器的IP即可:
    在这里插入图片描述
    b. 修改域名:
    i. 查看:hostname
    ii. 先执行: hostname slave01(临时生效)
    iii. 然后再修改配置中的域名,编辑:vi /etc/hostname,将master修改为slave01(或者执行:hostnamectl set-hostname slave01)重启后永久生效
    iv. 查看
    在这里插入图片描述

4.4 SSH免密登录

  1. 测试:
    a. 从源服务器通过ssh方式登录到克隆服务器上:
    在这里插入图片描述
    在这里插入图片描述
    b. 登出,回到源服务器:logout
  2. 免密登录:
    a. 概述:Linux中往往在多台服务器需要以网络的形式组织成集群共同工作的场景下,需要配置此集群内的所有服务器之间可以互相免密登录
    b. 原理:Linux中免密登录通常默认使用RSA非对称加密算法,会成对的生成公钥证书和私钥证书
    c. 作用:
    i. 公钥证书:使用公钥证书对服务器或文件内容进行加密
    ii. 私钥证书:只有持有匹配的私钥证书的PC才能正常访问到被公钥证书加密的内容
    iii. 注意:这种只要持有私钥就能访问公钥加密内容的方式,才存在风险,因为一旦私钥文件泄露,服务器上的数据也就存在泄露的风险,不过Linux同时也支持对两个公钥&私钥证书文件进行加密。
  3. 使用场景:
    a. 单纯使用证书来登录服务器:
    好处:
    i. 使用证书的登录方式可以避免密码泄露或遗忘
    ii. 同时证书登录服务器的方式也是有服务器加固的方式
    iii. 服务器可以设置不允许使用密码进行远程服务器,只允许证书的方式登录
    iv. 证书本身也可以支持加密,所以即使证书丢失,在不知道此密码的情况,证书属于无效文件
    b. 集群中使用证书进行免密登录:
    i. 因为但凡是涉及到集群的情况,通常都不会小数目的服务器数量,众多的服务器之间进行相互通信以及数据传输等操作,如果没有免密登录则需要频繁的输入密码
    ii. 因此使用证书来管理集群内部服务器之间的登录方式,免除需要手动输入密码的情况
  4. 工作原理图解:
    在这里插入图片描述
  5. 证书操作:
    a. 在源服务器bigdata01上,执行生成证书:
    ssh-keygen
    回车执行即可
    在这里插入图片描述
    查看证书:
    在这里插入图片描述
id_rsa私钥证书
id_rsa.pub公钥证书
known_hosts访问过的服务器只要确认记录则会保存在此文件中

b. 将源服务器的公钥证书内容发送给克隆服务器bigdata02,执行拷贝公钥证书内容:
ssh-copy-id {remoteUsername}@{remoteServerIP}
例如: ssh-copy-id root@192.168.88.178
执行指令,首次会要求输入远程服务器的对应用户的密码,这一步是向远程服务器发送当前服务器的公钥证书文件id_rsa.pub
在这里插入图片描述
i.查看克隆服务器上/root/.ssh中的证书:

authorized_keys存放在远程服务器上,用于记录来访服务器的公钥证书内容

说明:此文件可以同时保存多台 服务器的公钥证书内容,内容都来自于证书注册方式;也即如果这文件中不存在相应公钥证书内容,则无法建立免密互通
ii. 验证:
直接在源服务器上执行:ssh 192.168.88.178
在这里插入图片描述
此时无需输入远程服务器的密码,表示免密互通建立成功

5. Linux之软件包管理

5.1压缩和打包

  1. 压缩:通过某些算法的支持,将文件尺寸进行缩小,同时不会损坏文件的内容,保证文件内容的完整性
  2. 打包:将多个文件或文件夹整理成一个文件,这个文件称之为包文件,更便于进行传输和部署
  3. 注意:Linux系统中文件的后缀名不重要,但是针对于压缩文件||压缩包文件的后缀名是必须的,因为需要让程序员根据此时压缩|包文件的后缀名来使用相应的算法进行解压处理
  4. 常见的压缩文件|包的后缀名
*.gzgzip程序压缩的文件
*.tartar程序打包的文件,此时未压缩
*.tar.gztar程序打包的文件,并通过gzip算法进行压缩;Linux系统中最为常见的解压版程序软件的后缀名

5.2 压缩

  1. gzip指令:通过指定选项来实现压缩或者解压缩
    a. 语法:gzip 【选项…】 【文件…】
    b. 可用选项:
-d解压缩
-v,–verbose可以显示出源文件/压缩文件的压缩比等详细信息
-l查看压缩文件的压缩比
-1……9压缩等级:1压缩最快但是压缩比最差,9压缩最慢但压缩比最佳,默认是6
-c将压缩的数据输出到标准输出
-t查看压缩文件的压缩比,检查是否无误

c. 案例:
i. 将/root/anaconda-ks.cfg 压缩,并显示其压缩信息
gzip -v anaconda-ks.cfg
注意:gzip算法压缩,不会保留源文件
ii. 解压上一个案例的压缩文件
gzip -d anaconda-ks.cfg.gz
iii. 扩展:如要想要保留源文件,使用数据重导向技术: >覆盖 && >>追加
压缩并将压缩数据进行重导向: gzip -c anaconda-ks.cfg > install.log.gz
检查压缩文件是否无误:gzip -tl install.log.gz
iii. 扩展:如要想要保留源文件,使用数据重导向技术: >覆盖 && >>追加
检查压缩文件是否无误:gzip -tl install.log.gz
compressed uncompressed ratio uncompressed_name
891 1555 44.9% install.log

5.3 打包和解打包指令

  1. tar指令:可以将一个或多个文件、文件夹打包成一个文件,并且可以结合上述的gzip压缩算法来实现对包文件
    的压缩和解压缩操作
  2. 语法:
    a. 打包并压缩:tar 【选项…】 【newFileName.tar.gz】 【sourceFileName…】
    b. 解打包并解压缩:tar 【选项…】 【sourceFileName.tar.gz】 【选项】【dirPath】
  3. 常用选项:
-c建立打包文件,与压缩算法选项联用可以表示压缩
-x解打包文件,与压缩算法选项联用可以表示解压缩
-t查看打包文件的内容:包含哪些文件或文件夹
-zgzip算法选项,表示通过gzip算法的支持进行压缩或解压缩;此时文件后缀必须是.tar.gz
-f,–filefilename,紧跟着需要处理的文件名称,表示此选项一定是在组合选项最后一位
-v在压缩、解压缩的过程中将所有正在处理的文件名显示出来,不使用则无任何显示
-C用于解压时,表示将解压文件到特定的目录下;不使用则表示解压到当前工作目录下
  1. 练习:
    a. 对root目录下的anaconda-ks.cfg文件进行打包并压缩
    tar -czvf anaconda-ks.cfg.tar.gz anaconda-ks.cfg
    b. 将/home目录和/root目录打包并压缩成 bakDir.tar.gz文件
    tar -czvf bakDir.tar.gz /home /root
    c. 将上述案例中的压缩包文件解压到当前目录下
    tar -xzvf anaconda-ks.cfg.tar.gz
    d. 将上述案例中的压缩包文件解压到/home目录下
    tar -xzvf anaconda-ks.cfg.tar.gz -C /home
  2. 总结常用组合选项:
    a. 压缩并打包:-czvf || -czf
    b. 解压缩并解打包:-zxvf || -xzf
    c. 选项中除了-f一定是在末尾,其余三个任意

5.4 软件管理——RPM

  1. 起源:最初只有*.tar.gz这类的压缩包文件,用户需要去编译每个想要在Linux上运行的软件;用户认为系统很
    有必要一种方法来管理这些安装在机器上的软件包;RedHat开发的“rpm”包管理系统
  2. 特点:
    a. 自带编译后的文件,免除了用户对软件编译 的过程
    b. 可以自动检测文件系统(硬盘)的容量、系统的版本;避免软件安装出现错误导致安装不完全
    c. 自带软件的版本信息、帮助文档、用途说明
  3. 缺点:
    a. 无论是要安装还是要卸载,RPM有一个非常关键的依赖关系
    b. 所安装的软件需要依赖,则要优先安装依赖;卸载同理
  4. 默认路径:
/etc一些配置文件放置的目录
/usr/bin一些可执行文件,也即指令
/usr/lib一些程序使用的动态链接库或jar包库
/usr/share/doc一些基本的软件使用手册和说明文件
/usr/share/man一些Linux命令的随机帮助说明文件
  1. 操作:
    a. 语法:rpm [选项] {文件.rpm||文件名称关键字}
    b. 查询
    i. 选项:
-q仅仅查询,后面要指明需要查询的软件名或keyword;
-qa列出所有已经安装在Linux系统上的所有软件
-qR列出和该软件有关的相依赖的软件所包含的文件

ii. 变形,结合管道符 | 来搭配其他命令使用:
查看已安装软件的前三个: rpm -qa | head -n 3
查看指定软件是否已安装:rpm -qa | grep java

c. 安装:
i. 选项:

-iinstall 表示安装
-v表示显示详细安装过程
-h表示显示处理进度(进度条)

ii. 案例:
在Linux文件系统的/home目录下创建软件管理目录:mkdir -p /home/software
将nc*****.rpm文件上传到Linux系统中的/home/software:
在这里插入图片描述
通过rpm指令安装nc这个小型网络管理工具:
rpm -ivh nc-1.84-22.el6.x86_64.rpm
在这里插入图片描述
查看nc指令是否存在并可用:
在这里插入图片描述
iii. 进阶使用:
可以直接安装网络中的rpm包:rpm -ivh http://网络地址/package.rpm
可以同时安装多个rpm包(按照包名顺序执行安装):rpm -ivh pkg.rpm1 pkg.rpm2 ……
d. 卸载:
i. 选项:

-e卸载指定的软件,需要指定软件的完整名称

ii. 案例:
rpm -e nc-1.84-22.el6.x86_64
e. 更新:
i. rpm -Uvh pakName
无论系统中是否安装此软件,执行后都会安装最新版
ii. rpm -Fvh pakName
只有安装过的软件才能执行此更新操作

5.5 软件管理——YUM

  1. YUM:是RedHat以及CentOS中使用的shell前端软件包管理器,基于RPM包管理,能够从指定的服务器上自
    动下载RPM包并安装,并且可以自动处理依赖关系,也即一次安装所有依赖的软件包
  2. 原理:
    a. 通过分析RPM的信息进行软件的安装、升级以及卸载等等;
    b. 优点在于可以解决RPM的依赖问题;缺点在于YUM的所有执行操作都需要repo文件——YUM源
  3. YUM源:
    a. 通常YUM源文件存储在/etc/yum.repos.d/目录下,此目录下所有以.repo结尾的文件统统都是YUM源文件
    在这里插入图片描述
    b. 此类文件可以手写,通常建议上网搜索权威结构提供的YUM源
    c. 查看目录下 的CentOS-Base.repo文件:
    i. [extras]:YUM的ID,必须唯一的
    ii. name:具体的名称
    iii. mirrorlist:镜像服务器的地址,有很多可用的服务器地址,用于下载软件
    iv. gpkcheck:1表示使用公钥校验rpm的正确性
    v. gpgkey:校验的key地址
  4. YUM操作:
    a. 查询:yum search pkgName || yum list
    i. search :查询某个软件名或包含关键字的软件
    ii. list:列出目前yum所管理的所有软件名以及版本信息
    b. 安装:yum install [-y] pkgName
    i. 案例:安装vim指令(最小化安装模式)
    指令:yum -y install vim
    安装完成之后,测试可用:
    在这里插入图片描述
    c. 卸载:yum remove pkgName
    d. 更新:yum update pkgName
  5. 替换YUM源——CentOS7系列替换成aliyun的YUM源
    a. 当前工作目录/etc/yum.repos.d/
    b. 首先备份原先官方的Base源:cp CentOS-Base.repo CentOS-Base.repo.bak
    c. 获取阿里的YUM源覆盖本地的YUM源
    wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    d. 或者,删除掉此时的CentOS-Base.repo:rm -rf CentOS-Base.repo
    e. 然后将群内的CentOS-Base.repo文件上传到/etc/yum.repos.d/目录下
    f. 确保内容中的baseurl内容为aliyun:
    在这里插入图片描述g. 再次去执行yum安装vim或者安装wget等等
  6. YUM客户端的运行机制
    a. 客户端每次使用YUM调用install或者search的时候,都会去解析/etc/yum.repos.d/下的所有.repo结尾的源文件,此文件中指明了可用的YUM服务器地址
    b. YUM需要定期去“更新”yum服务器上的RPM“清单”,然后将“清单”下载 保存到YUM自己的cache当中;也即/var/cache/yum/x86_64/7/base目录下
    c. 每次调用yum安装包的时候都会去此cache目录下找“清单”,根据“清单”中的RPM包描述从而确定安装包的名称、版本、所需要的依赖包等等,如果不存在cache则连接yum服务器进行下载并安装
  7. RPM和YUM的取舍
    a. 如果安装、卸载、更新的软件是单个独立的离线安装包,那么就建议使用RPM的方式
    b. 如果安装某个软件时候,发现此软件有众多的依赖环境,建议首选YUM方式
    i. 例如安装上传工具lrzsz:yum -y install lrzsz
    ii. 然后可以直接使用 rz 命令打开上传窗口,完成文件上传

6.Linux之vim编辑器

6.1 VIM概述

  1. 一个类VI的文本编辑器,只不过在vi的基础上增加了一些新特性,比如说给字体添加配色方案、简单的代码语法正确性检查;vim也是公认的最好用的类vi编辑器

6.2 使用VIM编辑器:

  1. vim有三种模式:一般(查看、复制等)模式、编辑模式、命令模式
    三种模式之间的转换:
    只能由一般模式转到编辑模式或命令模式
    编辑和命令之间无法相互转换
  2. 任意复制一份模本文件以供操作演示:cp /etc/profile /home
  3. 以/home/profile为例进行演示:cp /etc/profile /home
  4. 一般模式:
h或←光标左移一个字符。如果是20h,表示左移20个字符。
j或↓光标下移一个字符 同上
k或↑光标上移一个字符 同上
l或→光标右移一个字符 同上
[Ctrl]+[f]屏幕向下移动一页 Page Down!!
[Ctrl]+[b]屏幕向上移动一页 Page Up !!
0或[Home]移动到此行最前面字符处!!
$或[End]移到光标所在行的行尾!!
H光标移到当前屏幕最上方行的第一个字符!!
M光标移到当前屏幕中间行的第一个字符!!
L光标移动到当前屏幕最下方行第一个字符!!
G移到此文件最后一行!!!
nG移到第n行
gg相当于1G,即移到第一行!!!
n[Enter]光标下移n行
/word向下查找单词“word”(!!!)
?word向上查找单词“word”(!!!)
n表示重复前一个查找操作
N与n相反(反向查找)
yy复制光标所在行(!!)
nyy复制光标所在向下n行(n为数字)
y1G或ygg复制光标所在行到第一行所有数据
yG复制光标所在行到最后一行所有数据
y$复制光标所在处到同行最后一个字符
y0复制光标所在处到同行第一个字符
p将已复制的数据粘贴到光标所在下一行
P将已复制的数据粘贴到光标所在上一行
u复原前一个操作(类似于windows中的ctrl+z)!!!
Ctrl+R表示恢复上一个撤销
x向后删除一个字符
nx向后删除n个字符(n为数字)
X向前删除一个字符
dd删除光标所在行(!!!)
ndd删除光标所在行以下n行(n为数字,包含当前行在内)
d1G删除光标所在行到第一行所有数据(包括所在的行)
dG删除光标所在行到最后一行(!!)
d$或d end删除光标所在处到同行最后一个字符(!!)
d0或d home删除光标所在处到同行第一个字符。(!!)
  1. 编辑模式:
    a. 进入编辑模式的快捷键:
i从光标所在处插入
I从光标所在行的第一个非空白字符处插入
a从光标所在处的下一个字符处插入
A从光标所在行的最后一个字符处插入
o从光标所在行的下一行插入新行
O从光标所在行的上一行插入新行
r替换光标所在处字符一次
R一直替换光标所在处字符知道按下ESC

b. 退出编辑模式:ESC

  1. 命令模式:
    a. 进行命令模式的快捷键:
输入命令
/ ?查找单词,被查找到的所有单词会高亮显示,并且是Linux系统中所有文件中的此单词均会高亮显示;一处查找处处高亮

b. 常用命令:

w保存
w filename另存为
q退出编辑器:如果文件内容发生过修改并且未保存,则无法直接退出
q!不保存修改强制退出
wq保存修改并退出
!commandcommand表示所有可在Linux系统中执行的命令,例如:!ip addr,会将IP信息打印在屏幕上,按任意键可以重新回到编辑器汇总
set nu显示 行号
set nonu取消显示行号
noh取消高亮
  1. 扩展:Linux系统中vim编辑文件,发生过修改则一定要正确的使用指令q退出编辑器,否则会出现交换文件导致下一次使用此文件出现异常提示:交换文件 “/home/.profile.swp” 已存在!
    可以按照提示:删除此交换文件 或者 修复文件
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CentOS 7 中的 Vim 插件 youcompleteme 的安装步骤如下: 1. 安装必要的依赖包: ``` sudo yum install cmake gcc-c++ python3-devel ``` 2. 安装 Vim 和 Vundle(一个 Vim 插件管理器): ``` sudo yum install vim git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 3. 在 Vim 配置文件中添加以下内容: ``` set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'Valloric/YouCompleteMe' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line ``` 4. 在 Vim安装插件: 打开 Vim,输入`:PluginInstall`,回车即可。 5. 安装 YouCompleteMe: ``` cd ~/.vim/bundle/YouCompleteMe python3 install.py --all ``` 6. 重启 Vim,即可使用 YouCompleteMe 插件了。 注意:如果你需要 C++ 补全功能,还需要安装 Clang,详情请参考 YouCompleteMe 的官方文档。 ### 回答2: 在CentOS 7上安装vim插件YouCompleteMe,您可以按照以下步骤进行操作: 1. 首先,确保您的CentOS 7系统已经安装vim和cmake。如果没有安装,可以使用以下命令安装: ``` sudo yum install vim cmake ``` 2. 安装YouCompleteMe插件依赖的一些软件包。打开终端,运行以下命令: ``` sudo yum install python-devel python3-devel ``` 3. 下载YouCompleteMe插件的源代码。您可以在GitHub的YouCompleteMe项目页面上找到源代码的下载链接。使用git命令克隆源代码库到本地: ``` git clone https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe ``` 4. 切换到插件的目录,并构建插件。进入YouCompleteMe目录: ``` cd ~/.vim/bundle/YouCompleteMe ``` 5. 使用下面的命令来构建YouCompleteMe插件: ``` python3 install.py --clangd-completer ``` 6. 构建完成后,启动vim编辑器。在vim中,输入以下命令来安装插件的管理工具vim-plug(如果您已经安装了其他插件管理工具,您可以使用该工具): ``` curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` 7. 编辑您的vim配置文件,并按照以下示例添加YouCompleteMe插件的配置: ``` call plug#begin('~/.vim/plugged') Plug 'ycm-core/YouCompleteMe' call plug#end() ``` 8. 保存并退出vim配置文件后,重新打开vim并执行以下命令,安装插件: ``` :PlugInstall ``` 9. 插件安装完成后,您可以使用YouCompleteMe插件来提供自动补全和代码建议。 ### 回答3: 在CentOS 7上安装YouCompleteMe插件,需要进行以下步骤: 1. 首先,确保已经安装vim和python-devel: ``` sudo yum install vim python-devel ``` 2. 安装CMake(用于编译YouCompleteMe的依赖项): ``` sudo yum install cmake ``` 3. 使用git克隆YouCompleteMe仓库: ``` git clone https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe ``` 4. 进入YouCompleteMe目录,并编译插件: ``` cd ~/.vim/bundle/YouCompleteMe python3 install.py --clang-completer ``` 这里使用了`--clang-completer`选项来启用C/C++代码补全。如果需要其他语言的补全支持,可以查阅YouCompleteMe的文档并添加相应的选项。 5. 最后,编辑vim配置文件,添加YouCompleteMe插件的设置: ``` vi ~/.vimrc ``` 在文件中添加以下内容: ``` set nocompatible set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'Valloric/YouCompleteMe' call vundle#end() ``` 6. 保存并退出vim,然后重新打开vim。运行`:PluginInstall`命令,安装YouCompleteMe插件: ``` :PluginInstall ``` 这样,YouCompleteMe插件就成功安装CentOS 7下的vim中了。您可以根据需要自定义配置,以适应您的开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K1ndred-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值