标题党来了,给王垠大神的名作狗尾续貂一把。注意,本文标题虽大但内容有局限性,如果你不喜欢红帽系,不喜欢 gnome,日常开发也用不到文中提到的工具、技术栈,那么其对你来说没有太大参考价值。
V 站最近讨论日常工作使用 Linux 的帖子又多起来了。有人依旧安利了一批发行版;有人认为 duck 不必花在自己不熟悉的东西上花时间;很多跃跃欲试的 V 友对此也颇有疑虑。 我呢,从 2012 年至今,一直在 fedora 上进行日常的开发工作,工作和研究方向是爬虫、微服务、容器技术、开发方法论、devops。可以说是越用越爽。借此机会来分享作为一个程序猿“完全用 Linux 工作”的体验,希望能帮上大家的忙。
首先说说在 linux 下搞开发的优势:
- 使用原生命令的效率更高,比如文件操作相关命令、vi、ssh、scp、curl、以及各种网络相关命令。比起 windows 下安装并打开各种软件、拿鼠标各种点击,用 linux 终端,配合一个机械键盘,相信你工作效率会直线上升,还能帮助你真正理解你所正在做的操作。更重要的是比起第三方闭源软件,这些命令更安全。
- 对于常用的一些开发工具原生支持和支持友好,比如 git、docker、mvn、python。其中 git 不必说了,Linus 的第二伟大发明;而 docker 本身就是依赖 linux 内核特性实现的。还是那句话,用命令比用图形界面更能帮助你真正理解你所正在做的操作。避免误操作、错误提示更详细明确。
- 至于环境变量、换行符、编码、目录路径、文件名大小写等等这类环境差异问题。我建议本地开发环境的配置尽量往测试或生产环境上靠拢,以避免“在我的电脑上明明是好使的!”的问题出现。
- 可以远离:昂贵的正版 windows 售价、病毒、恼人的系统更新、蓝屏崩溃。
Fedora 调教、使用心得
本人并不喜欢折腾(大误),所以一直用的 fedora 默认桌面版——gnome 那个。中间升级过两、三次版本,目前在用 fedora30。 硬件方面用过几台 DELL 商务机、xps 和 thinkpad。双屏。
驱动、硬件兼容问题
-
n 卡显卡驱动 系统默认装的是开源驱动,显示效果不佳,所以必须安装官方驱动。 我的显卡一直是 n 卡,参考这篇就没错了: https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/
-
原生支持双屏 设置非常简单,在 Displays 里。
dnf 相关
-
有时显卡驱动更新不及时会导致兼容问题,所以需要排除内核更新:
/etc/dnf/dnf.conf 文件加一行exclude=kernel* -
提高安装速度
/etc/dnf/dnf.conf 文件加一行fastestmirror=True -
增加源
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 -
查找所缺少依赖库所在软件包,例如:
dnf provides */libQt5X11Extras.so.5然后就可以根据显示的来进行安装了。
字体
如果操作系统安装时语言选择的中文,字体默认应该是思源字体。效果还可以,不需要调整。
gnome 技巧
- 快捷键
非常多,不一一列举了。一定要尝试多用、习惯用。
介绍几个对于新手很有用的:
- nautilus 地址栏显示文字:Ctrl+L
- 显示隐藏文件:Ctrl+H
- 搜索 /选择 /切换应用:win 徽标键
- Desktop 文件 有些工具软件并不会生成图标,需要自己创建 Desktop 文件。推荐使用 alacarte 这个工具来生成。如果常用的话,可以拖到左侧 favorites。
推荐软件
- Atom、eclipse、IDEA、Mysql Workbench、Postman、robo3t、VirtualBox、Team Viewer
这些均有 linux 版,而且表现优异 - 终端
我并没有用自带的终端。而是用的 Guake。按 F12 挥之则来呼之则去非常好用。快捷键跟原生的终端一样用。 - 办公软件
对于我来说用自带的 LibreOffice 足够了。我日常用纯文本写文档。没错你猜对了,本文就是 markdown 语法。 - 即时通讯
微信网页版(搞一个 icon 放在 favorites )。QQ 我基本不用,不过前些天官方更新 linux 版本了,还算能用。 - 截图
用自带的工具,同样也支持快捷键。 - 游戏
steam 里有很多支持 linux 的游戏。 - 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
就能实现一键出国 /回国啦