windows下搭建Linux开发环境

开发环境搭建

分享一下在windows笔记本上进行Linux开发的一些准备工作

Linux环境

做Linux开发必然需要在本机上搭建Linux环境,这里不考虑直接安装Linux物理机; 主要是考虑运行的流畅度,所以选择了 VirtualBox + Debian

  使用VirtualBox安装debian虚拟机, 在安装时不安装桌面和xfce, 仅安装命令行版本即可, 使用ssh访问

Linux网络

如果使用虚拟机的话, 必然要考虑网络的问题, 包括主机访问虚拟机,虚拟机访问外网, 所以采用双网卡的方式

双网络: virtualbox采用双网卡的方式Host only+Bridged两个网卡.

主机模式网卡: 用于和物理机通信在debian可以设置为192.168.56.xx网段的静态地址, 物理机可以固定使用该网址访问虚拟机.

桥接模式网卡: 用于访问外网, 使用dhcp模式获取地址

\color{red}{VirtualBox的页面不算复杂, 这里就不贴图了}

网络地址实例

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8f:31:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe8f:3149/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:90:e6:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic enp0s8
       valid_lft 7170sec preferred_lft 7170sec
    inet6 fe80::a00:27ff:fe90:e6b6/64 scope link
       valid_lft forever preferred_lft forever

网络文件配置:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s8
iface enp0s8 inet dhcp

auto enp0s3
iface enp0s3 inet static
        address 192.168.56.101
        netmask 255.255.255.0
#       gateway 192.168.56.1

enp0s3就是仅主机模式的网卡, enp0s8则是桥接模式的网卡

debian网络配置文件地址: /etc/network/interfaces

Linux启动

virualbox是可以采用后台启动的方式的, 就是说完全不用打开virtualbox的窗口, 为了方便 我使用了一个ps1脚本

& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' startvm  debian -type headless

sleep 20

ssh admin@192.168.56.101

& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm  debian poweroff

本人并不精通ps1脚本, 这个脚本写的也比较随意. E:\Program Files\Oracle\VirtualBox\就是virtualbox的安装地址

  这个脚本的功能就是:

  • 1, 后台启动debian;
  • 2, ssh链接debian ssh
  • 3 断开后关闭debian.

这个脚本本人放在桌面上, 另外本人安装了fluent Terminal软件, 可以直接在桌面右键打开, 然后直接运行该脚本就可以直接连接到虚拟机上了

SSH工具

  • 免费SSH工具: Xshell、MobaXterm、putty、finalshell等

  • 付费SSH工具: secureCRT、XShell商业版本等

  • 命令行工具+SSH: fluent Terminal、terminus、cmder等

共享文件夹

virtualbox提供了共享文件夹的选项, 不过虚拟机上额外需要安装VirtualBox的增强文件, 这个请自行搜索吧

  注意, 安装增强功能之前记得执行安装"apt install build-essential;apt install linux-headers-`uname -r`" 否则即使成功安装了增强功能, 可能也没办法挂载!

  此外我添加了开启启动脚本, 每次启动自行加载共享文件夹

localhost:~$ systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enab  Drop-In: /usr/lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: active (exited) since Sat 2019-09-28 16:01:43 CST; 8min ago
     Docs: man:systemd-rc-local-generator(8)
  Process: 408 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)

这是rc.local服务, debian是默认关闭的并且也没有/etc/rc.local文件

不过

#!/bin/sh

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

mount -t vboxsf winsf /home/ad/winsf

exit 0

我们可以自己添加一个/etc/rc.local脚本, 添加可执行权限, 然后systemctl start rc-local即可, 这样开机就可以自行运行该脚本挂载共享文件夹

额外一些工具推荐

包管理工具

scoop

  我主要用于安装git,gcc,make,lua等, 我仅用来管理开发相关软件, 非常好用

集成IDE

因为不管什么都需要加载虚拟机然后运行也很麻烦, 于是我使用了CLion

  对于一些程序, 我也会直接在windows上直接编译直接运行, 且可以学习一下cmake

编辑器

  编辑代码和markdown我都是使用的sublime, typora可以用来编辑markdown, 但是文件过大就会卡顿

git工具

  • sourcetree: 免费, 页面也还可以

  • gitkraken: 免费, 页面也还可以; 不过使用的是electron, 程序比较大

  • 此外: smartgit、tortoisegit

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容

  • 开发环境多种多样,然而在Win上我找不到一个很轻量又顺手的开发环境。 由于本人不是VIM/EMACS重度用户,这里...
    Dumbass阅读 458评论 0 0
  • 1.描述计算机的组成及其功能 (一)计算机的组成 1.CPU 2.CPU风扇 3.BIOS 4.内存 5.硬盘 6...
    whamai阅读 1,446评论 0 1
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,855评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,746评论 0 10
  • 目的 做过Linux开发的工程师可能都会或多或少有过如下的经验: 需要至少两台开发机器,一台Windows电脑用来...
    4d7ec8bef53b阅读 15,872评论 1 14