一个很现实的问题:
- 我们后端开发者因为种种原因只能拥有 Windows 的操作系统,要怎么样才能进行 Linux 系统编程?
办法总比问题多,我们想要在非Linux操作系统搭建好Linux环境进行编程需要两个材料:
1. 虚拟机
我们这里用到的虚拟机为VMware Workstation 12,大家可以在官网上自行下载
https://www.vmware.com/
2. 镜像文件/光盘
同时搭建好Linux环境还需要Linux系统的镜像文件或者光盘
简便起见我们使用CentOS 7
的镜像文件,读者也可以在网上获取到.
接下来就是配置操作系统,教程很多,大家可以自查.
Linux系统编程
这里是简单的内容讲解,详细的Linux编程操作讲解请看后续博客
Linux操作系统下的编程与Windows操作系统环境下的编程其实内核是完全相同的.
比如在Windows系统中使用Visual Stutio
这个IDE (集成开发环境) ,它的核心功能有以下 4 个模块:
代码编辑器 / 编译器 / 调试器 / 工程管理工具
这四个功能在Linux中有着对应相同的工具:
- 代码编辑器 vim
- 编译器 gcc
- 调试器 gdb
- 工程管理工具 makefile
这里着重讲解一下第一项
<1> 代码编辑器
vim
编辑器是vi
编辑器的延伸,继承了vi
的优秀特性并加以扩展,是非常强大的代码编辑器.
代码编辑器领域的两巨头是:
①vim
②emacs
江湖戏称:
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指令的大前提:
- 当前为
root
用户 - 物理机和虚拟机必须能够联网
(可以使用网络诊断工具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
-
非
root
用户执行此指令:
很明显没有root
权限无法使用该指令进行软件包下载,可以通过su
指令进行切换 -
root
用户执行此指令
这样就可以开始正常下载这个软件包了.
用于演示的这个rzsz
软件包的作用是什么呢?
Linux系统下传输方式很多,比如:通过FTP SFTP … 等等,但传输效率不尽如人意。
- 所以linux服务器通过
ssh
来进行远程的登陆和管理后,能够快速的和本地机器进行文件的交互,也就是上传和下载文件到服务器和本地 - 我们
ssh
+ ip地址连接好本地机后,根据下好的rzsz
软件包,就可以实现两机文件的快速传输
rz
本机机文件 ----> 虚拟机
例如把一个.txt
文件直接拖拽到Xshell中:
给大家演示一下:
很快就显示传输完成,并且我们ls
罗列一下目录中文件就可以看到这个传输好的文件了:
sz
虚拟机文件 -----> 本地机
例如把虚拟机中一个文件a.txt
传输到本机:
输入指令sz a.txt
,设置好希望存放的保存路径
,就可以从虚拟机实现向本地机的文件传输了
yum
指令可以安装很多的软件包,但也并非包罗万象,有的软件还是无法安装的,这就要求用户自己去找源代码,编译,自己安装.