【转】Ubuntu做日常开发电脑的系统是一种怎样的体验
【原文】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系统,我敢这样说?)
强调一下重点:
- 不要折腾Ubuntu的桌面,用它开发就好了。
- Linux的GUI真心不如Windows(谁要是能用Linux解决一下问题我全身心马不停蹄的转Linux)
- 谁要是能解决Linux下面用户界面庞大的占内存问题以及有工具可以替代win上的(everything + totalcommad + autohotkey这种Windows神级杀手应用,我立马转那个系统)
- 但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做日常开发电脑的系统是一种怎样的体验的更多相关文章
- java日常开发必备:list的四种遍历
在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式.这里以java.util.ArrayList为例来演示. 这里有一个最简单的 ...
- 使用 Python 控制自己的电脑和键盘是一种什么样的体验?python学习的正确姿势
可能有时候你需要在电脑做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己爱干嘛干嘛去,有点 “按键精灵” 的意思,是不是感觉有点爽呢? 那么 ...
- 日常开发用Windows 好还是 Ubuntu好?
最近打算给电脑重新装系统,纠结了很久,不知道应该是换Windows还是Ubuntu,今天通过我自身的体验,来为大家分析一下,日常开发环境到底是用Windows和Ubuntu. [系统介绍] Windo ...
- 从日常开发说起,浅谈HTTP协议是做什么的。
引言 HTTP协议作为Web开发的基础一直被大多数人所熟知,不过相信有很多人只知其一不知其二.比如咱们经常用到的session会话机制是如何实现的,可能很多人都说不出来吧.其实session会话就是H ...
- ubuntu,kali linux和windows三系统流水账——写给自己
我先说一下ubuntu和windows双系统安装的几种方法,最后总结kali linux的安装,想起什么写什么,所以有点乱.然后记录一下自己的使用过程中遇见的问题和解决的方法,还有我的个人建议. 我个 ...
- IDEA的几个常用配置,日常开发必备。
用了IDEA有很长时间了,身边的同事朋友也都慢慢的开始都从Eclipse切换到IDEA了,其实无论是Eclipse还是IntelliJ IDEA都是开发工具而已,各自都有优点.但是刚从Eclipse切 ...
- 公司最近把开发人员的系统全部改为windows了
公司最近把开发人员的开发环境全部改为windows了,唯一linux系统(一位做python 开发的同事自己安装的),被要求下午下班前改为windows 系统,windows 是公认的不适合开发,我家 ...
- Nodejs开发人脸识别系统-教你实现高大上的人工智能
Nodejs开发人脸识别系统-教你实现高大上的人工智能 一.缘起缘生 前段时间有个H5很火,上传个头像就可以显示自己穿军装的样子,无意中看到了一篇帖子叫 全民刷军装背后的AI技术及简单实现 ,里面 ...
- 64位ubuntu下Android开发环境的配置
本文介绍如何在64位ubuntu上搭建android的开发环境. 系统:ubuntu12.04LTS 使用的是ADT Bundle for Linux和jdk1.7(open jdk也可) 一共分为3 ...
随机推荐
- nginx把两个不同的网站挂到同一台服务器的80端口上
本文主要分享如果利用nginx把两个不同的网站挂到同一台服务器的80端口上 最终效果 例如:www.manyjar.com (web服务器是8080端口)和ishenghuo.manyjar.com ...
- mongodb操作技巧
1.添加字段或更新值 db.getCollection('test').updateMany( {}, { $set:{ 'createTime':'2017-06-29 08:08', 'updat ...
- Spring-mvc登录方法及JSP的拦截
添加登录拦截器:LoginInterceptor import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Htt ...
- WinMain函数详解(转载再编辑)
在Windows应用程序中,我们可以认为 WinMain() 函数是程序的入口,WinMain()的原型如下: int WINAPI WinMain( HINSTANCE hInstance, HIN ...
- MySQL5.7 常用用户操作
目录 MySQL5.7 常用用户操作 1. 新建用户 2. 授权 3. 创建用户时授权 4. 设置与更改用户密码(root) 5. 撤销用户权限 6. 删除用户 7. 查看用户的授权 8. 显示当前用 ...
- redis-java基础操作
安装 windows版的Redis,打开即可,默认端口6379 导入两个jar包 commons-pool2-2.3.jar jedis-2.7.0.jar 一 写配置文件 redis.setM ...
- 伯克利开源 Confluo,吞吐量是 Kafka 的 4 到 10 倍
近日伯克利 RISE Lab 开源了一个多数据流实时分布式分析系统 Confluo,它既是一个网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统. 源码地址:https://github.co ...
- npm WARN checkPermissions Missing write access to 解决办法
解决办法 删除掉 C:\Users\dd\AppData\Roaming\npm-cache\ C:\Users\dd\AppData\Roaming\npm\ 两个文件夹
- java队列Queue及阻塞队列
java队列 接口Queue类在java.util包,定义了以下6个方法 详细查看官方文档https://docs.oracle.com/javase/7/docs/api/java/util/Que ...
- js-react组件生命周期
组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMoun ...