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

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

26253 次点击
所在节点    Linux
138 条回复
encro
2019-12-12 09:44:09 +08:00
喜欢折腾:

ubuntu 用了一年,
转 debian 用了一年多,
然后 fedora 两年多,
最近转 manjora 用了半年,
在公司目前 win10+wsl2。

谈谈 fedora 的体验:
1,fedora 每 1-2 周更新发布,经常纠结更还是不更呢;
2,fedora 感觉比 manjora 和 ubuntu 稳定和流畅,就是默认没有 aur 那么多第三方库,但是可以用 alien 将 deb 转为 rpm ;
3,n 卡当然用 bumblebee 第三方库一键安装,自动更新;
4,其他:
Atom=>vscode
eclipse=>IDEA、
Mysql Workbench=>datagrid,navicat
Postman=>httpie
Team Viewer => nps,frp
vpn => v2ray
微信 => electron 版本,或者深度版本
输入法 => ibus+第三方词库 or fcitx-sougou
inclulu
2019-12-12 09:59:14 +08:00
一直 ubuntu,毕竟就写写服务端,玩的东西也没啥被限制的,感觉还好。
每个人情况不一样,周围大多数同事还是 win10 或者 macos 较多
wszbdyyy
2019-12-12 10:05:25 +08:00
各种 linux 都用过,现在用 Arch Linux
pony279
2019-12-12 10:11:35 +08:00
@itskingname

奇怪的逻辑

这种心态大概率基础太差

如果每条展开来讲,大概率也没耐心看完,又要抱怨写的太啰嗦臃肿
reus
2019-12-12 10:17:16 +08:00
@charlie21 你也会说“万一”“临时”,我何必为了一种万一的情况,而放弃对效率的追求?何况,我的使用习惯是对基本功能的扩充,而不是更改,怎么会不习惯?鼠标还是那样用,键盘还是那样用。按你这种逻辑,那些用 mac 的人,岂不也是“自绝于人民”?
能让使用者更高效率地工作的东西,有什么不好?我说的自动管理窗口的功能,windows 也有类似的软件,mac 也有类似的软件,不是 linux 特有的,是各个平台追求交互效率的人,都可能选择的方式。我选择 linux 作为基础系统,是因为 linux 更容易配置出这个效果。就算只有 windows 或者 mac 给我用,我一样会为了效率而进行改造。
你根本就不知道别人是怎么用电脑的,总以为“折腾”linux 是为了让它更像其他系统。你错了,不管用什么系统,总有人可以用得比你更好。
mq4079
2019-12-12 10:17:40 +08:00
windows 加虚拟机不香吗
cmdOptionKana
2019-12-12 10:20:34 +08:00
1. win 的程序可以固定到任务栏,然后 win+数字 即可实现你的第一个需求。

2. win 自带窗口层叠、堆叠、并排等功能,而且四指上推即可显示全部窗口的缩略图。虽然与你的习惯有细微差别,但实际使用上的方便程度差不多。(其中层叠的效果与你描述的非常接近)
raawaa
2019-12-12 10:21:34 +08:00
在家完全使用 Linux 一年。我也不是程序员,只是日常办公和偶尔写一点 node 和 shell 脚本。
raawaa
2019-12-12 10:22:23 +08:00
刚刚没写完,不小心摁了提交……

前阵子用 windows10 不断更新后,觉得 windows 越来越好用了。把 linux 给删了。
luvroot
2019-12-12 10:23:39 +08:00
黑苹果走起,既有 linux 的工具包,又有 mac 的美感,也有 windows 下的各类软件。linux 下用钉钉,深恶痛绝
qiangmin
2019-12-12 10:25:05 +08:00
赞。
同使用 1 年。只不过我是 Ubuntu。
reus
2019-12-12 10:42:17 +08:00
@cmdOptionKana 自动管理才是重点,不需要动手才是重点,能自己写程序来控制逻辑才是重点。例如“跳到上一个使用的终端窗口”这个功能,我可以自己实现而不需要官方提供,无非就是遍历一下窗口,判断是不是终端,根据使用时间来选择出一个,然后切换。写成 js 就是 windows.reduce(...).activate()。
如果 windows 也可以让我写 js 就能控制桌面的行为,我也有可能选择使用 windows。我现在用 linux,是技术原因,不是宗教原因。
crc8
2019-12-12 10:44:58 +08:00
其实吧我感觉 Windows 桌面比 Linux 更折腾,各种域,各种认证,各种 360.
forrestshuang
2019-12-12 10:47:47 +08:00
HIDPI 怎么弄,草折腾一年了
blackshow
2019-12-12 10:48:52 +08:00
macOS 用了 5 年,准备换 linux 了
SpongeNobody
2019-12-12 10:54:30 +08:00
搭飞机的话,如果服务商有 Clash 订阅,可以尝试下 Clashy 这个 App~
photon006
2019-12-12 11:00:48 +08:00
@cmdOptionKana

“1. win 的程序可以固定到任务栏,然后 win+数字 即可实现你的第一个需求。”

ubuntu 也有同样功能,“win + 数字”打开 dock 栏对应软件。


而且 ubuntu 下 chrome 有个 win10 没有的功能,可以按“alt + 数字”切换 tab,数字 1 - 8 代表第一...第八个标签页,“alt + 9”会切换到最后一个 tab,再搭配 F6、vimium 全键盘操作非常爽。
Pagliacii
2019-12-12 11:02:58 +08:00
ScepterZ
2019-12-12 11:13:23 +08:00
用 manjaro kde 当主力一年了,除了 qq 蛋疼,迅雷蛋疼,百度云蛋疼,没有别的什么问题了
也体验过完美 wine 的感受,可惜最近随着系统更新还是不知道别的什么更新,全挂了,惨
cominghome
2019-12-12 11:29:11 +08:00
两三年前尝试过在 ubuntu 和 deepin 上 办公&日常使用, 算下来各自用了半个月左右。
最后弃坑的原因:
1. 更新坑。每次更新,必有莫名其妙的问题,不算什么严重的问题,但是足够劝退新人。
2. 软件少,兼容差。ubuntu 就算了,去软件服务商官网下 linux 版,少归少也不是不能用。deepin 那个自己的商城,真的血妈炸。
3. UI 粗糙。不知道是不是我的问题,ubuntu 和 deepin,UI 真的 8 行,而且分辨率总觉得被降维了一档。
4. 游戏。不沉迷游戏,但是总是要娱乐的,我玩的游戏基本上都不支持。

最后总结就是,苹果大法好,不然还是别瞎折腾了。

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

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

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

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

© 2021 V2EX