Windows+Linux----打造和谐的开发环境
其实Windows和Linux并非水火不容,相反,我觉得,如果将二者结合起来,取长补短,便可打造一个华丽、实用的开发环境。
吾以为,不会用linux的人,不能称为一个程序猿,但是一味觉得Linux很吊,把windows完全当做shit,据而远之的话也是装13。
话不多说,下面我们一起看下Windows+Linux可以打造出一个什么样的开发环境!
【系统安装】
既然要同时实用Windows和Linux,那必然就要装两个系统?是装双系统还是虚拟机呢?当然是虚拟机,否则来回切换还不玩死你。
那么实在windows下虚拟linux还是在Linux下虚拟windows呢?我选择了前者,一是考虑到在本地windows下还能挂个QQ、打个游戏,另一方面是虚拟机上跑windows有些费劲,跑linux压力就小多了。
至于虚拟机软件,是Vmware还是VirtualBox?我推荐VirtualBox,一是VB比较简单易用,另一方面是它免费的,我不想再去破解vmware,缺德的事少做为好,嘿嘿。。。
1.安装VirtualBox
直接在360的软件中心搜索VirtualBox,然后直接安装,你懂的,so easy!
2.新建一个虚拟机用于安装linux,配置基本分配1G内存,两个CPU核就够了,如果你机器狗吊,可以在提高些配置,硬盘直接创建一个vdi文件,选择浮动大小。
另外值得注意的是网络里面最好将连接方式设置成桥接网卡,这样主机能上网,虚拟机就能上网,而且虚拟机还有独立IP,便于从主机对其进行各种访问,后面你就知道了。
这里选择安装Ubuntu,安装方法很简单,基本原则就是先下载一个ubuntu系统镜像ISO文件,然后将虚拟机光驱设置映射到这个ISO文件,再设置虚拟机优先从光驱启动。
ubuntu的具体安装过程就不罗嗦了,网上一搜一大堆。

【主机访问虚拟机linux】
文件访问:在linux里面配置samba用户
samba用户可以通过在etc/samba/smbusers中配置虚拟账户实现,也可以创建系统账户,这里推荐配置系统账户,这样既可用这个账户浏览linux文件目录也可以用它来ssh到linux上。
创建系统账户:
sudo useradd -d /home/yang -m yang
设置系统账户密码
sudo passwd yang
然后输入密码,例如,1234
为yang开通smab账号
sudo smbpasswd -a yang
此处密码也设置成1234
配置samba共享目录
编辑/etc/samba/smb.conf,在末尾加上
[yang]
comment = Shared Folder with username and passwd
path = /home/yang
public = no
writeable = yes
valid users = yang
create mask = 0777
directory mask = 0777
available = yes
重启samba服务器
sudo /etc/init.d/samba restart
设置完毕之后,在Windows文件浏览器中输入虚拟linux的IP地址(用ifconfig获取),就能看到共享目录,双击打开,输入刚才配置的用户名和密码,既可打开
另一方面,可以通过ssh远程登录虚拟linux,进行终端命令行操作,这里推荐使用xshell,使用方法百度一下既可
【Ubuntu安装后的一些基本配置】
此处以ubuntu为例,介绍系统安装完成后需要做的一些配置,为何选择ubuntu不解释
1、分区的划分(额,这个好像安装时就要做的。。),建议如下
swap 2G
/home 根据你要保存的个人数据大小而定(类似windows的我的文档,如果重新安装linux,可以只覆盖根分区,这个分区可以保留下来,所以你希望保留的个人数据都可以放在这里)
/ 占据剩下所以空间(linux系统就安装在跟分区,包括安装的程序,只划一个跟分区,让ubuntu自动划分就好了)
2、虚拟机设置ubuntu屏幕大小自适应
虚拟机窗口点击“设备”-》“安装增强功能”,这时会发现ubuntu挂载了一个虚拟光盘,一般在类似"/media/VBOXADDITIONS_4.0.10_72479"的目录下,进去sudo执行“VBoxLinuxAdditions.run”既可安装增强功能
重启ubuntu,会发现虚拟机窗口“视图”里面的自适应屏幕尺寸可以用了
3、VIM安装
ubuntu自带的vi编辑器很诡异,直接使用“sudo apt-get install vim”安装vim,搞定!
4、设置软件源
ubuntu默认的源比较慢,国内的话可以使用阿里源,很快
首先备份一下默认的源,防止后悔:
sudo cp /etc/apt/source.list /etc/apt/source.list.back
然后再以sudo方式编辑source.list加入阿里源信息:
阿里更新源(14.04)
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
【软件、工具的选择】
1、代码托管 -- git(linux)
代码当然放在虚拟机linux中,用git托管,git、linux,得一既可得天下,哈哈
2、代码阅读 -- notepad++(Windows), vim(linux),SourceInsight(Windows)
因为之前已经介绍过Samba的配置,所以Linux和Windows两个系统之间的文件传输共享早就不是事儿了,所以对于代码阅读,你可以尽情选择你喜欢的方式
喜欢图形化的可以使用notepad++或者SE,喜欢纯命令行的朋友可以使用vim,vim配上自动补全插件加上linux命令行天然就支持的强大文本搜索命令,完全可以handle住类似android源码这样规模的项目
3、编程环境 -- VS(Windows),GCC,G++。。。。(Linux)
觉得命令行很恐怖的同学完全可以使用VisualStudio,但是你如果不会用git,我跟你说不到一块。
再漂亮的IDE也是讲各种编译工具组合在一起的结果,只不过它过于华丽的外壳已经喧宾夺主了,IDE能做到的,makefile一定能做到,反之不然,不敢想象如果用VS来编译管理一套android源码。。。画面太美了
用自动化脚本调动各种编译、连接工具去处理你的代码,得到可执行程序,是的,勇敢的学会它吧
4、文字排版 -- Word(Windows),Latex(Linux)
Word不讲了
至于Latex,讲个故事:我的硕士论文,一开始用word排版的,辛苦搞了将近一个月,正准备去打印,结果莫名其妙的发现格式又不对了,疯了。。。
一怒之下,我找来一位大牛导师写的论文模板,在linux下仅仅用一周时间,就“编译"出了一份清清爽爽的论文。
5、图像处理 -- GIMP(Linux), PS(Windows)
PS也不讲了
GIMP,是GNU,Image,Process,的缩写,顾名思义,遵循GNU协议的图像处理软件,号称Linux下的PS,有了它,可以不用再昧着良心去用盗版的PS了。
6、打游戏 -- 去用Windows吧,使用Linux的人很少有时间去打游戏,真的
7、虚拟机软件 -- VirtualBox(Windows,Linux),Vmware(Windows)
推荐使用VirtualBox,不光免费,而且很简单,不失强大
Windows+Linux----打造和谐的开发环境的更多相关文章
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- linux(ubuntu)和windows下面快速搭建android开发环境
在windows和linux下面搭建android开发环境,一般要安装以下几个软件: 1.JDK安装 2.Eclipse安装 3.Android SDK安装 4.在eclipse里面安装ADT 5.e ...
- vagrant打造自己的开发环境
vagrant打造自己的开发环境 缘由: 在网上看到斌哥,爽神都写了关于vagrant的博客,都在说很强大,所以很好奇这玩意怎么个强大,然后也就自己来一发玩玩看看. 真实缘由: 说实话是电脑配置太低, ...
- Linux下配置PHP开发环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- Windows下搭建objective C开发环境
摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...
- Windows在结构objective C开发环境
对于近期打算iPhone.iPod touch和iPad开发一些应用程序,所以.需要开始学习Objective C(苹果推出的类似C语言的开发语言).因为苹果的自我封闭的产业链发展模式(从芯片.机器. ...
- 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...
- Linux操作系统的种种集成开发环境
Linux操作系统的种种集成开发环境 随着Linux的逐渐兴起,已经有为数众多的程序在上面驰骋了,许多开发环境(Development Environment)也应运而生.好的开发环境一定是集成了编辑 ...
- 「C语言」在Windows平台搭建C语言开发环境的多种方式
新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于 Windows 平台搭建C语言集成开发环境 ...
随机推荐
- jquery制作论坛或社交网站的每天打卡签到特效
效果:http://hovertree.com/texiao/jquery/50/ 现在许多社区,购物等网站都设置签到功能,打开可以收获经验.虚拟币等,提高用户粘性,增加浏览量,是一个不错的功能.本文 ...
- de4dot3.14更新文件打包下载
刚发现de4dot更新了,虽然只是10月份的文件更新,并未发布新的release,但好多人还不会编译... 关于de4dot有何功能就不再讲了. 本文主要提供编译通过后的打包文件下载. 首先下载de4 ...
- java实现双链表(差点没写吐系列...)
刚才把单链表写完了,现在又把双链表写了,双链表和单链表的区别就是每个节点有prior和next两个指针,不同于单链表的一个next指针,而且,正是因为有这两个指针,所以双链表可以前后两个方向去移动指针 ...
- [Cordova] Plugin里使用Android Library
[Cordova] Plugin里使用Android Library 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了 ...
- 图片效果集合(js、jquery或html5)
1.jQuery HTML5 幻灯片使用支持HTML5的浏览器会有特殊效果,即切换图片时颜色的改变文章:http://keleyi.com/a/bjac/b8i3xdui.htm效果:http://k ...
- js事件浅析
js中关于DOM的操作很多,因此js事件机制也就尤为重要. 事件绑定形式: 一. 内联形式 耦合度高,不利于维护 <button onclick="alert('你点击了这个按钮'); ...
- iOS笔记之NSSet
一.简介 NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的, ...
- [Infopath]使用jquery给infopath表单的的field赋值。 how to set value to Infopath field by Jquery
客户有个需求,需要在infopath表单中嵌入一段我们自己的东西,计算后要更新infopath某一个field. 1. 怎么去获取到那个field 由于infopath生产的html非常的复杂,嵌套太 ...
- Android—初识AsyncTask
AsyncTask是用来处理一些后台的比较耗时的任务,给用户带来良好的体验.AsyncTask扩展Thread,增强了与主线程的交互能力. 首先介绍AsyncTask中定义的以下几个方法: onPre ...
- Linux常用命令:sed
本文记录的是自己在学习<Linux私房菜>中正则表达式的笔记. 关于行尾符$ 如果文件本身没有内容,比如使用touch新建的文件,那么$将会没有意义.例如下面操作: 先使用touch新建了 ...