如何在Windows上花费超过10年后迁移到*nix平台?哪种口味易于处理,让我更舒服,然后我可以切换到更多stadard*nix口味?我现在已经推迟了一段时间.帮助我额外推动.
Linux是最易于访问且具有最成熟的桌面功能. BSD(在 其 各种 口味)具有用户空间较小行李会更容易理解在最基本的层面.在这方面,它更像是传统的Unix而不是现代的Linux发行版.有些人可能会认为这是一件好事(从某些角度来看),但对于熟悉Windows的人来说会更加陌生.
主要的桌面发行版是Ubuntu和Fedora. 这些都是功能强大的系统,但在用户空间体系结构上有所不同桌面环境的工具和系统安全的默认配置在Ubuntu上的工作方式与在大多数其他Linux或Unix版本上的工作方式略有不同,但这与开发无关.从用户的角度来看,这些都是一个良好的开端.
从开发人员的角度来看,Unix和Linux的所有现代风格都非常相似,并且基本上共享相同的开发人员工具链.如果您想从程序员的角度了解系统,那么选择起来相对较少.
使用程序员的编辑器(如vim或emacs)可以非常有效地完成大多数unix编程,这两种编辑器都有文本模式和窗口风格.这些编辑器非常强大,并且具有相当古怪的用户界面 - 用户界面是常用的,但却极大地促进了工具的强大功能.如果您对这些工具不满意,本文将讨论几个其他编辑器,它们提供更接近常见Windows工具的用户体验.
有一些IDE(如Eclipse)可能对Windows/Visual Studio上的人更感兴趣.
Stackoverflow上讨论linux/unix资源的一些帖子是:
什么是优秀的linux-unix书籍为一个先进的用户
在K&R之外学习C有哪些好资源
用于学习C程序设计的资源
如果你有时间并且想要真正了解那些基本知识,那么Linux From Scratch是一个教程,可以手工构建一个Linux安装.这是一个深入学习的好方法.
对于编程,请了解K&R的C/unix以及上面链接的问题中提到的一些资源.在Unix环境中相当于Petzold,Prosise和Richter的是W Richard Stevens 在Unix环境中的高级编程和Unix网络编程.1 和2.
学习Perl或Python等动态语言之一,如果您还不熟悉这些语言,也是一件很有用的事情.作为奖励,你可以从Activestate获得上述两个好的Windows端口,这意味着这些技能在两个平台上都很有用.
如果您使用C++,请查看QT. 这可以说是市场上最好的跨平台GUI工具包,并且(再次)具有可转移回Windows的技能集和工具链的好处.也有几个 不错 的书籍关于这一主题和(作为奖金),这也与Python效果很好.
最后,Cygwin是一个在Windows上运行的unix仿真层,它提供了基本上类似unix的环境.在架构上,Cygwin是glibc的一个端口,而crt(GNU工具链的基础库)作为Win32之上的适配器.这个仿真层可以很容易地将unix/linux应用程序移植到Cygwin上.该平台附带了一套非常完整的软件 - 本质上是一个托管在Windows内核上的完整Linux发行版.它允许您在Windows上以类似unix的方式工作,而无需维护单独的操作系统安装.如果您不想运行VM,多个启动或多台PC,它可能是一种简化为unix的方法.