Linux知识扩展:vim与yum指令

176 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一个很现实的问题:

  • 我们后端开发者因为种种原因只能拥有 Windows 的操作系统,要怎么样才能进行 Linux 系统编程?

办法总比问题多,我们想要在非Linux操作系统搭建好Linux环境进行编程需要两个材料:

1. 虚拟机

我们这里用到的虚拟机为VMware Workstation 12,大家可以在官网上自行下载 www.vmware.com/

2. 镜像文件/光盘

同时搭建好Linux环境还需要Linux系统的镜像文件或者光盘 简便起见我们使用CentOS 7 的镜像文件,读者也可以在网上获取到.

接下来就是配置操作系统,教程很多,大家可以自查.

Linux系统编程

Linux操作系统下的编程与Windows操作系统环境下的编程其实内核是完全相同的.

比如在Windows系统中使用Visual Stutio这个IDE (集成开发环境) ,它的核心功能有以下 4 个模块: 代码编辑器 / 编译器 / 调试器 / 工程管理工具

这四个功能在Linux中有着对应相同的工具:

  1. 代码编辑器 vim
  2. 编译器 gcc
  3. 调试器 gdb
  4. 工程管理工具 Makefile

这里着重讲解一下第一项

<1> 代码编辑器

vim编辑器是vi编辑器的延伸,继承了vi的优秀特性并加以扩展,是非常强大的代码编辑器. 代码编辑器领域的两巨头是: ①vimemacs

江湖戏称: vim神之编辑器 emacs编辑器之神 从二者的称号就可知晓其举足轻重的江湖地位了.

vim是凭借什么更胜一筹的呢?

  • 支持丰富的快捷键和编辑方式.

  • 支持强大的扩展能力 (这两方巨头甚至背后都有一门语言的支持) vim -----> viml语言 emacs--->lisp语言 (lisp语言对函数式编程支持得非常好,函数式编程的常见代表又如scala)

  • 非常丰富的插件系统

  • 任一Linux系统自带vim / vi (这也是最重要的一点,平台决定高度,显而易见)

除了vim,其实还有很多代码编辑器,这里简单罗列: ③notepad++source in sight

sublime text 这个编辑器也曾做到了撼动两神位,不过好景不长,现已式微

vscode 微软官方打造,也是Github 2018年最火项目 它还有一个优于众人的特点:插件安装容易.

atom Github官方打造,但是有一点限制了它的发展:卡顿,十分影响用户体验

neovim 这个是目前竞争力十分强大的代码编辑器,与前几个不同,它的两点在于:支持在终端上使用 这个特点决定了它的应用范围扩展到底层没有图形化界面的硬件,功能强大 作为后起之秀能否超越经典,我们拭目以待.

我们的操作系统自带了vim / gcc / gdb / makefile,我们直接使用就可以了 如果需要下载相关功能插件,可以使用yum指令进行下载,例如yum install gcc

yum指令

来自缩写:Yellowdog Updater ,Modified,是Linux下非常常用的一中包管理器,主要应用在Fedora,RedHat,Centos等发行版上。 使用yum指令的大前提:

  1. 当前为root用户
  2. 物理机和虚拟机必须能够联网 (可以使用网络诊断工具ping指令,来诊断自己电脑物理机网络是否畅通) (例如ping www.baidu.com,如果出现了如图所示的网络延时,证明你的物理机是可联网的,如果什么都不会显示,证明你的物理机不可以上网) 虚拟机可以通过设置就可以保证可以联网了 明确电脑可否连网之后使用Ctrl + c结束ping指令,就又可以在终端输入指令了
  • yum名为==包管理器==,相当于系统的"应用商店",可以用这个语句 下载软件包: yum install xx 卸载软件包: yum remove xx

例如我们尝试在应用商店查询与rzsz相关的软件包: 指令:

yum list | grep rzsz

注:这里的|相当于管道,它把前一个指令的输出内容变成第二个指令的输入内容grep文本过滤指令结合使用,实现筛选的功能.

当有一个匹配项,想要下载它就可以使用yum指令进行下载.

yum install lrzsz.x86_64
  1. root用户执行此指令: 没有root权限无法使用该指令进行软件包下载,可以通过su指令进行切换

  2. root用户执行此指令 这样就可以开始正常下载这个软件包了.

用于演示的这个rzsz软件包的作用是什么呢?

Linux系统下传输方式很多,比如:通过FTP SFTP … 等等,但传输效率不尽如人意。

  • 所以linux服务器通过ssh来进行远程的登陆和管理后,能够快速的和本地机器进行文件的交互,也就是上传和下载文件到服务器和本地
  • 我们ssh + ip地址连接好本地机后,根据下好的rzsz软件包,就可以实现两机文件的快速传输

rz

本机机文件 ----> 虚拟机 例如把一个.txt文件直接拖拽到Xshell中:

sz

虚拟机文件 -----> 本地机 例如把虚拟机中一个文件a.txt传输到本机:

输入指令sz a.txt,设置好希望存放的保存路径,就可以从虚拟机实现向本地机的文件传输了

yum指令可以安装很多的软件包,但也并非包罗万象,有的软件还是无法安装的,这就要求用户自己去找源代码,编译,自己安装.