【原文】https://www.toutiao.com/i6594291159911105031/

Ubuntu 我现在已经基本不开windows了.学习娱乐开发基本都在Ubuntu

  • 首先你要接受的是,没有QQ, 因为我本来平常生活就不需要用QQ. 如果你对QQ需求很大的话建议不要装Ubuntu. Ubuntu下基本没有好的QQ解决方案.
  • 当时想转到Ubuntu是因为以后要做web后端开发必须要很熟悉Linux, 其次是觉得Ubuntu的整个UI要比Windows好看. 所以我建议装好以后可以把Ubuntu折腾漂亮一点. 比如装Unity Tweak Took, compizConfig Setting Manager等配置软件, 看看网上的教程可以把Ubuntu弄的很炫酷..各种透明,动画,3D效果....还有推荐一套图标主题: Numix Circle 主题图标, 非常好看强烈推荐
  • 其次是输入法, 强烈推荐搜狗输入法, 安装稍有点麻烦
  • 办公系统那一套, 三种解决方案, LibreOffice, WPS和Google doc. 如果不是需要经常修改MS word,上面三种写写文档都够用...
  • 开发相关, 工具应有尽有...文本编辑器推荐Sublime Text, IDE推荐Intellij那一套. 其他什么工具需要就直接terminal输sudo apt-get install ... 搞定
  • 用Ubuntu一定要会Google!!!! 很多问题中文资料根本查不到....

之前写代码的时候是在 Windows 上,某一天舍友大人装完 Ubuntu 回来,给我 show 了一下,看了第一眼,那时觉得好神奇好酷炫,于是在某天我也装了,那时还是 Ubuntu 12.10,然后搁置了一年╭(╯3╰)╮,转眼过了一年,升级到 13.04 后终于下定决心在 Ubuntu 上干活,推荐题主装 64 位的。

说了这么多,体验来了!

1. 装软件:刚开始什么 deb、tar.gz、.run 完全看不懂,最后发现一条神奇的命令

sudo apt-get install

什么 emaces、vim 无痛安装。当然如果你选择的是 deb 格式的安装包的话,我推荐 GDebi 这个软件,安装 deb 非常的方便。

2. 开发工具:咳咳!作为一个前端工程师偏爱的编辑器是要的,Sublime Text: The text editor you'll fall in love with 什么!sublime 输入不了中文! 当然一个编辑器可能满足不了你写代码的欲望,vim 的配置:spf13-vim - The Ultimate Vim Distribution

3. 娱乐:听课基本上就是豆瓣 FM 还有网易云音乐。

4. 通信:QQ 用的是 wine QQ,用着还好

  • 5. 终端:肯定是这货 Oh My Zsh 。

我从windows转到ubuntu有两三个月了,最开始确实有很多不习惯。

诸如

1.ubuntu常常开机就遇到的 内部错误 是么东西。

2.在编辑器里中文输入法各种不能使用是怎么回事

3.网页版qq真的不好用啊,wineqq又各种掉线

4.想看个视频 字幕没有咋办啊 在线匹配字母的效率也太低了吧

5.让做个ppt, linux下的ppt真心不好用。。 要修改个图片没有photoshop怎么办?GIMP试了一下,有点无从下手

6.啊,想玩游戏了,让我打两盘魔兽吧,红警也行

好处

1.想要安装个软件,真心方便,apt-get 一条命令搞定。文件的管理,配置等等终端里一条命令搞定。

2.想体验最新的版本,也是超方便,终端里一条命令搞定。

3.终端或者说命令行真强大(恩)

4.对程序员来说,确实也很方便。。。(这个怎么说呢。。 其他人补充吧)

5.不用担心病毒了什么的

但是还不能用qq,玩魔兽,所以现在我用virtualbox虚拟机装了个xp系统。

然后开启virtualbox的无缝模式,之后的事。简直跟同时用两个系统一样。

1.virtualbox安装xp 给的配置并不高,但足够其运行。主要是分给其两核+1G内存+32M显存。本人的电脑配置是I5 3520(好象是。)+6G内存+HD4000+GT630 ,所以剩余的配置足够运行调试程序了。

2.替换了ubuntu 14.04里默认桌面成gnome3,这个稳定性确实很好,而且对中文输入法的支持也很不错。

3.不要使用ubuntu kylin.虽然增加的对中文的支持,但是各种不好用。

综合来讲 10.04版本的综合体验是最好的。

然后我就切换到 Fedora了,一直到现在。

Ubuntu的系统升级也是相当酸爽的,尤其是半途中 Adobe, LibreOffice 下不下来什么的。就算能下下来,升级过程也会问你很多的傻逼问题,深夜睡不着的时候可以尝试折腾一下还是相当有趣的。你可以猜测一下下一个问题会在几个小时内问。当然了,当然了,这些都是小事情,深夜看球,或者看个WWDC什么的不是也得熬夜嘛。其实升完级以后发现无线网络驱动不起来了才真的酸爽呢。

驱动无线网络需要重新升级内核,发行版里的内核永远都是连不了无线的,据说这叫FEATURE,这不叫BUG。重新升级内核需要能够联网,无线网络不通可以连有线,上京东买网线需要联网。别说什么手机上京东就买了,Ubuntu 1x的时候移动互联网还不知道在哪儿呢。当然还有一个终极解决办法,单位肯定是有网线的,对吧?升级Ubuntu这么高风险的事情当然是休长假的时候才会干的。不要跟我说到中关村买根线不就完了吗?坐466来回四个多小时买根线就为升级个Ubuntu我还不如跑趟单位呢。

如果是软件开发的话,是没有什么问题的。毕竟游戏资源比较少这个问题和日常工作的相关度不大,所以没什么不可以的,而且对于开发者来说个人推荐使用“类 UNIX 系统”,Linux 也好, Mac 也好,就是不要使用 Windows,除非你开发的是 .net,原因会在下文介绍。

Linux 坑还是有的,Ubuntu 自己的坑也是一样的。

年前重装过系统后,现在的系统每次开机都要显示出现了问题,虽然我都没感觉出来出现了什么问题,自然也不影响正常使用。如果你想折腾电脑的话,推荐你去使用 Arch Linux,这样你会更有快感的,但是作为实用的系统的话还是用 Ubuntu 就可以了。我绝对不会告诉你,我只用两年更新一次长期支持版本。既然要工作,还是少折腾为妙,毕竟时间还是很重要的,特别是你可能还没有什么 Linux 平台的经验。

在 Linux 这个平台上,坑还是有的,我个人感觉比较突出的坑就是删除文件,特别是系统文件。曾经为了删除一个软件的残留文件把主目录给删除了,后来通过复制了一份 Guest 账户的主目录才给恢复了,后来又干过把 /usr/bin 目录给删掉了,通过安装光盘才给恢复的。所以在这个平台上删除文件的时候最好小心点,特别是使用 root 账户的时候。特别是 Linux 的文件是可以在使用的时候修改的,所以可能你删除了某些文件你都不知道,但是等到下次开机的时候就坑了,并且你还不知道为什么。因此除了准备了一个安装光盘外,对于重要的数据我都会备份,以防下次不小心误操作后的带来的重大损失。如果你不幸真误操作了,询问 Google 会是一个很好的习惯。

另外,我最早装的时候,是用 Windows 系统来引导的,这直接导致了系统检测不到笔记本的电池,最后造成关机的时候只会切断电源关不掉屏幕。到了后来用了 Grub 来引导双系统后以上问题就都消失了。所以,很多时候在 Linux 上的感觉就是为什么会这样?怎么又好了……

从我用 Ubuntu 到现在,遇到了很多的坑,自己也重装过很多次系统了,目前正在积极的帮身边的同学装系统中(因为可以突破瑞捷,开启 wifi)。

为什么不推荐使用 Windows 呢?

(1) 考虑了国内的大环境。Windows 太糟糕,太糟糕。我的 Windows 里装了一个360,因为我自从安装了“猎豹wifi”之后就经常被金山杀毒给欺骗了,不得不用360来清理。而今天360赠送给我360手机助手和360移动版,所以我决定让它去面壁了,毕竟太主动了我害怕。而我又比较懒,比较粗心大意。

(2) 另外 Linux 能够取代 Windows 最大的理由就是 Linux 的 Shell。之前用 Shell 写了一个爬虫把全校学生的入学照片都爬了下来,还顺带统计了一下没有修改默认密码的学生数,感觉无比很方便。这种方便指的是编写方便,使用方便。而如果换到 Windows 平台,我真没有想到有什么好的解决方案。

(3) Linux 文件特殊的结构也是一个优势。在 Linux 下要搜索文件可以通过命令来查询,而如果在 Windows 下,你要面对那么多的分区,每次查找文件的时候总是慢得要死。而且 Linux 也更方便管理,自己的信息就放在主目录下,命好名字,往往都是很好找的。另外 find 命令也是很强大的。

(4) 字符编码,中文的问题太严。现在是跨平台的时代,不是 utf-8 的都太折腾,可惜 Windows 下就不是 utf-8,为了保证兼容我还得下个文本编辑器,这样的体验实在太不好,另外 Git 这样的工具也是基于 Linux,更加坚定我放弃 Windows 的决心。所以目前除了玩游戏,已经不怎么用 Windows 了。

Ubuntu 如何入门 ?

个人感觉 Ubuntu 已经很像 Windows 了,如果你不用命令行的话,它其实就是一个另类的 Windows(操作体验上来看是这样子的)。所以,你可以通过点击鼠标的方式上上网,安装安装软件等。我觉得刚开始使用的时候,你是不需要去关注命令行的。因为,当初让我选择 Ubuntu 的原因是这个系统可以在校园网里很方便的开 wifi。所以你在前期你可以像使用 Windows 一样来使用它,否则你会被太多太复杂的命令行吓走的。就如我第一次接触那样的,借了一本命令行的书整天敲,敲到最后就记住了:

sudo shutdown -h now

然后我就放弃了。直到后来可以开 wifi ……

所以,对于初学者还是先培养兴趣就好。然后就可以开始安装软件了,这样你就会记住一大堆的命令。什么 apt-get ,dpkg ,tar 等等。所以,你也就入了门。

之后你可能得配置配置系统的环境,因为有些软件就是需要系统环境,这下你就可以学习如何使用 Vim 这样的工具了。再往下,如果你有兴趣的话,你可以学习学习 wget,curl 这样的命令,当你发现了 awk,sed 后你会深深的喜欢上这些工具的。这时候你可以再学学管道的知识。这样你 Linux 的基础也不算太差了。而且不会浪费时间。

当然作为一个开发者,你肯定不会满足与这样,你可以去尝试尝试 LAMP,用手输入简直是麻烦得不得了,所以你觉得你应该写个脚本,更何况,有可能明天系统又崩溃了。所以你要学习 Shell。后来,你会发现你能用 Shell 做更多,这时候 Linux 真的已经击败了 Windows ,因为可能在开机的时候,你的电脑就已经开始在跑你写下的脚本,而在 Windows 上,你根本不知道这要怎么做,或者它的学习成本太高了。

在Linux世界混,你看有多少跨平台软件不是支持WIn+MAC+Ubuntu+源码安装???

去开发Rails去开发Django以及各种环境配置,ubuntu就几条命令就搞定了,用别的还需要熟悉linux各种奇葩的坑(没折腾过7-8个Linux系统,我敢这样说?)

强调一下重点:

  1. 不要折腾Ubuntu的桌面,用它开发就好了。
  2. Linux的GUI真心不如Windows(谁要是能用Linux解决一下问题我全身心马不停蹄的转Linux)
  3. 谁要是能解决Linux下面用户界面庞大的占内存问题以及有工具可以替代win上的(everything + totalcommad + autohotkey这种Windows神级杀手应用,我立马转那个系统)
  4. 但Linux的命令真心强大。(或者说,相对而言,Windows上的非图形工具们不够开源)

从04年开始用Linux,那时候用Fedora 4;06年工作开始用Solaris;08年开始用OSX。现在日常使用OSX,有一台uBuntu 16.04作为开发备用机。

Vim用的很熟练,平时写脚步:python,shell,自己的tool就用vim,不用什么插件。但是真正做Java,Rails,Node的开发,我用IntelliJ,RubyMine(Node也可以用RubyMine)。

基本结论:uBuntu的桌面不太好用,比OSX差很远。但是有时候要测试真正的平台特性,譬如:docker,譬如node的ps-node库,我就会用这台uBuntu。我SSH上去,跑各种脚步,平时基本不需要界面。偶尔需要看看测试覆盖率,我会用 python -m SimpleHTTPServer 9000开一个server,然后用chrome连上去看,很方便;如果再需要界面,我优先推荐X11 Forwarding。

Vim就是一个编辑器,没必要把他整成IDE。他最大的优势就是哪里都能用,编辑速度快。但是查看代码覆盖率,调试,重构,不是他的强项。IntelliJ Community免费,RubyMine 1年200$(个人用户$89一年)。Oh-My-Zsh我卸载了,因为它启动有些慢,或者说我不需要它那些我用不上的功能。我用原生的zsh,配合zsh-git-prompt,zsh-history,autojump,再把history设成10w条,然后alias一堆常用的路径:譬如godev,就是到dev目录,就足够了。另外需要说明,有些tool在zsh上安装完成之后需要手动做些改动(这一点zsh不如bash,因为用bash的还是多)。tmux我天天用,但其实我很少使用分割窗口的功能,所以其实screen更适合我:因为screen可以加密码。但现在机器是我一个人用,所以就继续用tmux了。

结论就是:如果你和我一样写Server程序,做云端跑的程序,你应该选择OSX或者

【转】Ubuntu做日常开发电脑的系统是一种怎样的体验的更多相关文章

  1. java日常开发必备:list的四种遍历

      在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式.这里以java.util.ArrayList为例来演示.   这里有一个最简单的 ...

  2. 使用 Python 控制自己的电脑和键盘是一种什么样的体验?python学习的正确姿势

    可能有时候你需要在电脑做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己爱干嘛干嘛去,有点 “按键精灵” 的意思,是不是感觉有点爽呢? 那么 ...

  3. 日常开发用Windows 好还是 Ubuntu好?

    最近打算给电脑重新装系统,纠结了很久,不知道应该是换Windows还是Ubuntu,今天通过我自身的体验,来为大家分析一下,日常开发环境到底是用Windows和Ubuntu. [系统介绍] Windo ...

  4. 从日常开发说起,浅谈HTTP协议是做什么的。

    引言 HTTP协议作为Web开发的基础一直被大多数人所熟知,不过相信有很多人只知其一不知其二.比如咱们经常用到的session会话机制是如何实现的,可能很多人都说不出来吧.其实session会话就是H ...

  5. ubuntu,kali linux和windows三系统流水账——写给自己

    我先说一下ubuntu和windows双系统安装的几种方法,最后总结kali linux的安装,想起什么写什么,所以有点乱.然后记录一下自己的使用过程中遇见的问题和解决的方法,还有我的个人建议. 我个 ...

  6. IDEA的几个常用配置,日常开发必备。

    用了IDEA有很长时间了,身边的同事朋友也都慢慢的开始都从Eclipse切换到IDEA了,其实无论是Eclipse还是IntelliJ IDEA都是开发工具而已,各自都有优点.但是刚从Eclipse切 ...

  7. 公司最近把开发人员的系统全部改为windows了

    公司最近把开发人员的开发环境全部改为windows了,唯一linux系统(一位做python 开发的同事自己安装的),被要求下午下班前改为windows 系统,windows 是公认的不适合开发,我家 ...

  8. Nodejs开发人脸识别系统-教你实现高大上的人工智能

    Nodejs开发人脸识别系统-教你实现高大上的人工智能   一.缘起缘生 前段时间有个H5很火,上传个头像就可以显示自己穿军装的样子,无意中看到了一篇帖子叫 全民刷军装背后的AI技术及简单实现 ,里面 ...

  9. 64位ubuntu下Android开发环境的配置

    本文介绍如何在64位ubuntu上搭建android的开发环境. 系统:ubuntu12.04LTS 使用的是ADT Bundle for Linux和jdk1.7(open jdk也可) 一共分为3 ...

随机推荐

  1. nginx把两个不同的网站挂到同一台服务器的80端口上

    本文主要分享如果利用nginx把两个不同的网站挂到同一台服务器的80端口上 最终效果 例如:www.manyjar.com (web服务器是8080端口)和ishenghuo.manyjar.com ...

  2. mongodb操作技巧

    1.添加字段或更新值 db.getCollection('test').updateMany( {}, { $set:{ 'createTime':'2017-06-29 08:08', 'updat ...

  3. Spring-mvc登录方法及JSP的拦截

    添加登录拦截器:LoginInterceptor import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Htt ...

  4. WinMain函数详解(转载再编辑)

    在Windows应用程序中,我们可以认为 WinMain() 函数是程序的入口,WinMain()的原型如下: int WINAPI WinMain( HINSTANCE hInstance, HIN ...

  5. MySQL5.7 常用用户操作

    目录 MySQL5.7 常用用户操作 1. 新建用户 2. 授权 3. 创建用户时授权 4. 设置与更改用户密码(root) 5. 撤销用户权限 6. 删除用户 7. 查看用户的授权 8. 显示当前用 ...

  6. redis-java基础操作

    安装 windows版的Redis,打开即可,默认端口6379 导入两个jar包  commons-pool2-2.3.jar   jedis-2.7.0.jar 一 写配置文件 redis.setM ...

  7. 伯克利开源 Confluo,吞吐量是 Kafka 的 4 到 10 倍

    近日伯克利 RISE Lab 开源了一个多数据流实时分布式分析系统 Confluo,它既是一个网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统. 源码地址:https://github.co ...

  8. npm WARN checkPermissions Missing write access to 解决办法

    解决办法 删除掉 C:\Users\dd\AppData\Roaming\npm-cache\ C:\Users\dd\AppData\Roaming\npm\  两个文件夹

  9. java队列Queue及阻塞队列

    java队列 接口Queue类在java.util包,定义了以下6个方法 详细查看官方文档https://docs.oracle.com/javase/7/docs/api/java/util/Que ...

  10. js-react组件生命周期

    组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMoun ...