2019 版“完全用 Linux 工作”

2019-12-11 11:12:46 +08:00
 conanca

标题党来了,给王垠大神的名作狗尾续貂一把。注意,本文标题虽大但内容有局限性,如果你不喜欢红帽系,不喜欢 gnome,日常开发也用不到文中提到的工具、技术栈,那么其对你来说没有太大参考价值。

V 站最近讨论日常工作使用 Linux 的帖子又多起来了。有人依旧安利了一批发行版;有人认为 duck 不必花在自己不熟悉的东西上花时间;很多跃跃欲试的 V 友对此也颇有疑虑。 我呢,从 2012 年至今,一直在 fedora 上进行日常的开发工作,工作和研究方向是爬虫、微服务、容器技术、开发方法论、devops。可以说是越用越爽。借此机会来分享作为一个程序猿“完全用 Linux 工作”的体验,希望能帮上大家的忙。

首先说说在 linux 下搞开发的优势:

  1. 使用原生命令的效率更高,比如文件操作相关命令、vi、ssh、scp、curl、以及各种网络相关命令。比起 windows 下安装并打开各种软件、拿鼠标各种点击,用 linux 终端,配合一个机械键盘,相信你工作效率会直线上升,还能帮助你真正理解你所正在做的操作。更重要的是比起第三方闭源软件,这些命令更安全。
  2. 对于常用的一些开发工具原生支持和支持友好,比如 git、docker、mvn、python。其中 git 不必说了,Linus 的第二伟大发明;而 docker 本身就是依赖 linux 内核特性实现的。还是那句话,用命令比用图形界面更能帮助你真正理解你所正在做的操作。避免误操作、错误提示更详细明确。
  3. 至于环境变量、换行符、编码、目录路径、文件名大小写等等这类环境差异问题。我建议本地开发环境的配置尽量往测试或生产环境上靠拢,以避免“在我的电脑上明明是好使的!”的问题出现。
  4. 可以远离:昂贵的正版 windows 售价、病毒、恼人的系统更新、蓝屏崩溃。

Fedora 调教、使用心得

本人并不喜欢折腾(大误),所以一直用的 fedora 默认桌面版——gnome 那个。中间升级过两、三次版本,目前在用 fedora30。 硬件方面用过几台 DELL 商务机、xps 和 thinkpad。双屏。

驱动、硬件兼容问题

  1. n 卡显卡驱动 系统默认装的是开源驱动,显示效果不佳,所以必须安装官方驱动。 我的显卡一直是 n 卡,参考这篇就没错了: https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/

  2. 原生支持双屏 设置非常简单,在 Displays 里。

dnf 相关

  1. 有时显卡驱动更新不及时会导致兼容问题,所以需要排除内核更新:
    /etc/dnf/dnf.conf 文件加一行

    exclude=kernel*
    
  2. 提高安装速度
    /etc/dnf/dnf.conf 文件加一行

    fastestmirror=True
    
  3. 增加源

    sudo dnf install --nogpgcheck  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    
  4. 查找所缺少依赖库所在软件包,例如:

    dnf provides */libQt5X11Extras.so.5
    

    然后就可以根据显示的来进行安装了。

字体

如果操作系统安装时语言选择的中文,字体默认应该是思源字体。效果还可以,不需要调整。

gnome 技巧

  1. 快捷键 非常多,不一一列举了。一定要尝试多用、习惯用。 介绍几个对于新手很有用的:
    • nautilus 地址栏显示文字:Ctrl+L
    • 显示隐藏文件:Ctrl+H
    • 搜索 /选择 /切换应用:win 徽标键
  2. Desktop 文件 有些工具软件并不会生成图标,需要自己创建 Desktop 文件。推荐使用 alacarte 这个工具来生成。如果常用的话,可以拖到左侧 favorites。

推荐软件

  1. Atom、eclipse、IDEA、Mysql Workbench、Postman、robo3t、VirtualBox、Team Viewer
    这些均有 linux 版,而且表现优异
  2. 终端
    我并没有用自带的终端。而是用的 Guake。按 F12 挥之则来呼之则去非常好用。快捷键跟原生的终端一样用。
  3. 办公软件
    对于我来说用自带的 LibreOffice 足够了。我日常用纯文本写文档。没错你猜对了,本文就是 markdown 语法。
  4. 即时通讯
    微信网页版(搞一个 icon 放在 favorites )。QQ 我基本不用,不过前些天官方更新 linux 版本了,还算能用。
  5. 截图
    用自带的工具,同样也支持快捷键。
  6. 游戏
    steam 里有很多支持 linux 的游戏。
  7. docker
    有时候因为各种原因比如技术选型评估、做 benchmark,需要我们本地搭开发环境组件。像 redis、mysql、es、mongodb、nginx、consul,都可以用 docker 轻松创建运行。

搭飞机方案

用的 cisco anyconnect。fedora 也原生支持。 配置添加好 VPN 后,在 Keyboard 中配置俩快捷键,比如 Shift+Ctrl++的命令是:

nmcli con up xxxx 你配置的 VPN 名字 xxxx

Shift+Ctrl+-的命令是:

nmcli con down xxxx 你配置的 VPN 名字 xxxx

就能实现一键出国 /回国啦

24707 次点击
所在节点    Linux
138 条回复
charlie21
2019-12-12 00:19:54 +08:00
如果你折腾 linux 桌面版其目的是把它折腾得越来越像 windows 或 越来越像 mac,那么 直接买 windows 或 mac。十年之后来感谢我
charlie21
2019-12-12 00:22:04 +08:00
所谓 ‘用得顺手’:如果你折腾 linux 桌面版其目的是把它折腾得越来越像 windows 或 越来越像 mac,那么 直接买 windows 或 mac
reus
2019-12-12 03:17:42 +08:00
@charlie21
请用原生 windows 实现这样一个功能:按下 win + i 后,运行浏览器,如果已经有浏览器窗口了,就切换到最近使用的一个,而不是运行。
再来实现这个功能:所有窗口自动缩放到和屏幕等高,且宽度和高度的比例是 4:3,并且将所有窗口从左到右等距离堆叠,使所有窗口都可以看到一部分,且当前活动窗口在最上面。注意是全自动的缩放和移动,打开和关闭窗口后,都不需要用户做任何拖动窗口或者调整大小的操作。
这些都是我日常使用的习惯,什么系统可以满足我的使用习惯,什么系统就可以说是顺手。反正我用 gnome shell 实现出来也就二三十行 js。
如果你可以在 windows 上实现,那我现在就会感谢你,不用等十年。
rebeccaMyKid
2019-12-12 03:26:38 +08:00
ubuntu 使用体验真不行。。我最初选择 linux 最简单的理由就是。。我学 C++,linux 下,utf8 支持良好。。Windows 下要不是用 w_char 就是用什么乱七八糟的东西,还得设置 runtime argument,可给我新手整吐了。后来发现 ubuntu。。

1. 没有 QQ,现在有的一个是残疾版的
2. 没有微信。。只能用网页微信。
3. 更脑残的。。中文输入法配置(搜狗)是一道坎。。
4. 截图软件用古董。。。shotwell,不想说了。。printscreen 是可以但是还不是剪裁
5. 还有更脑残的。。鼠标滚轮滑动,滚动一次多少行。。不可调,搜了好久搜到一个 app 来调,还会在某种特定的情况下死掉要手动 kill。。。
6. pdf 阅读器。。有原生的和第三方的我们强大的国产的 foxit reader,但我感觉 adobe 好一点。。
7. UI 就别说了,我只想要一键换主题,做不到我就当没有。

其他都能满足吧。。打游戏除外 ;)
不过我是一台主机两个系统,两个 SSD,打机的时候就换回 Windows。
rebeccaMyKid
2019-12-12 03:27:38 +08:00
截图软件是 shutter 说错了
BenX
2019-12-12 05:45:43 +08:00
elementaryos-5.1-stable
推荐玩玩
abbottcn
2019-12-12 07:03:53 +08:00
Fedora Debian 都用过……主要以终端为主,以及 vim+latex. 后来换到 mac, 主要也是 terminal, vim+xelatex. 在我看来,没啥区别。都一样。 相对而言,如果提到 GUI,mac 可能稍微稳定些。
uuspider
2019-12-12 08:41:14 +08:00
工程狗,从 09 年开始日常 ubuntu,娱乐,文档,数据、图像、视频处理都是 ubuntu,但 CAD,UG,ANSYS 等还是会换到 win,各有所长,何必自己找不自在。
fuwu1245
2019-12-12 08:46:01 +08:00
谢谢楼主分享,有了虚拟机,宿主机用开发顺手的,虚拟机补充下就完事了
CreSim
2019-12-12 08:52:58 +08:00
macos 不香吗,linux 的 de 没找到一个对高分辨率屏幕友好的
scukmh
2019-12-12 09:03:22 +08:00
https://m.weibo.cn/status/IkbhyxBSh?type=repost&jumpfrom=weibocom
垠神都要跑路了,也没见你们关心一下。
liaojl
2019-12-12 09:03:49 +08:00
用过一年多 Linux 桌面,后面弃了,现在主要是 win+wsl,能满足我大部分需求。不用 Linux 桌面有一个原因,是我觉得部分 Linuxer 像传教士一样,很极端,用 Linux 就是为了完全替换 Windows,不能容许 Windows 的半点存在,传教的时候还不忘 diss 一下 Windows。系统这种东西,我觉得没有最好的,只有最适合的,自己用的舒服就行,但是吹嘘自己的时候不忘踩别人一脚,这种行为真的很 low。
cstj0505
2019-12-12 09:08:25 +08:00
@BlackSas debian+1,我用的 KDE
Pzqqt
2019-12-12 09:12:41 +08:00
装了双系统 win10 1809 + Ubuntu 18.04 日常工作使用用 win10 搞开发用 Ubuntu
Ubuntu 给我的感触只有两个字:卡和慢
都说 win10 bug 多 以及令人诟病的蓝屏 然而装了 MSDN 的官方 win10 1809 镜像之后用了大半年 只遇到过一次蓝屏(估计是系统休眠功能的 bug )而且并没有遇到过非常严重和明显的 bug
而 Ubuntu 呢 打开 Chromium 我可能需要等一分多钟 还可能会碰到各种插件崩溃 在 Android 内核源码目录执行一条 git status 我可能需要等 5 分钟 用 top 看了下 发现 git 的磁盘 I/O 速度极慢 领导发给我一个表格 我用 LibreOffice 打开 然后系统就卡死了 鼠标无法移动 时钟数字也不会变化了 等了 5 分钟仍然没有变化 没办法只能 Alt+F1 强制杀死桌面进程
win10 倒是很少遇到卡顿的情况 就算卡了至少鼠标有反馈 而且大部分情况下等不了多久系统会自己反应过来 不想等的话也可以随时调出任务管理器结束进程 而 Ubuntu 卡了那就是真的卡了 如果不知道如何解决 那就只有强制重启电脑了
你可以说我的电脑配置差 也可以说我不配用 Linux
kaesi0
2019-12-12 09:17:46 +08:00
@Chingim 大型外企一般使用的都是 cisco 提供的 VPN 这类,GOV 一般不会封
WheatWave
2019-12-12 09:17:59 +08:00
https://usesthis.com/interviews/jeff.dean/
互联网战神 Jeff Dean 用的啥
charlie21
2019-12-12 09:19:06 +08:00
@reus
万一需要临时用用别人的电脑,你岂不是 会很不适应
自绝于人民 是 你自己的选择,you pay for it, not me
-
charlie21
2019-12-12 09:22:10 +08:00
linux 可以帮助你一边拿大顶,一边用电脑。
欸 有谁会羡慕你吗
vipcc
2019-12-12 09:23:45 +08:00
windows,linux 都在用,为什么非要选择一个
现在硬件性能不差吧,虚拟机可以直接上
实在不行还可以多系统是吧
每样东西都各有利弊,用好优势避免劣势
别带偏见兄弟们,吃亏的是自己
Stevenv
2019-12-12 09:26:30 +08:00
如果公司用的沟通软件,是支持 linux 平台的,用 linux 就好办了。否则就特别折腾

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/627912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX