【原文】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. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  2. Java NIO系列教程(八) SocketChannel

    Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...

  3. CentOS MPlayer

    .准备软件 mplayer官网:http://www.mplayerhq.hu/design7/news.html RPM Fusion网址:http://rpmfusion.org/ EPEL网址: ...

  4. java的构造方法链

    转自:http://blog.csdn.net/Mr_KkTian/article/details/70226561 1.简介 构造一个类的实例时, 将会调用沿着继承链的所有父类的构造方法. 当构造一 ...

  5. 浅谈.net jenkins svn下自动化集成环境安装 搭建 配置

    本人做.net研发已有3年多了,之前一直偏向于技术研究,自己学了很多技术,现在突然发现学了那么多技术有什么用呢?真正用到的并不多. 现在?算是一只小鸟吧,自嘲下.....毕竟我是90后,很多领导对于9 ...

  6. JVM 综述

    概览 从 JVM 的总体上看,它解决了3个问题: Java 程序的内存管理(GC & 运行时数据区). Java Class 二进制字节流的加载(ClassLoader). Java 程序的执 ...

  7. 并发编程 —— 自己写一个异步回调 API

    1. 前言 在并发编程中,异步回调的效率不言而喻,在业务开发中,如果由阻塞的任务需要执行,必然要使用异步线程.并且,如果我们想在异步执行之后,根据他的结果执行一些动作. JDK 8 之前的 Futur ...

  8. [转]Magento2命令行配置之性能测试生成数据

    本文转自:https://blog.csdn.net/xz_src/article/details/72799539 性能测试数据概述 使用Magento性能工具包或其他工具进行性能测试,你必定产生大 ...

  9. C#中HttpWebRequest的用法详解

    原文链接:http://www.cnblogs.com/love201314/p/5029312.html 1.HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数 ...

  10. Eclipse中导入外部jar包步骤

    昨天,学习了Jar包的打包过程,现在打算记录一下,如何在Eclipse中导入外部Jar包. 第一步:在项目中鼠标右键>>New>>点击Folder. 第二步:在弹出窗口将Fol ...