您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

我的漂亮的 Linux 开发环境

时间:2022-01-04 10:12:33  来源:  作者:木偶跳舞
我的漂亮的 Linux 开发环境

 

我在会议演讲后经常收到的一个问题很奇怪,不是关于我演讲的内容,而是关于我的linux桌面环境。人们对这个漂亮的发行版更感兴趣,而不是我刚才做的精彩演示

我不是在抱怨,我喜欢我的桌面设置。我非常喜欢它,以至于在我该买一台新PC的时候,我都不敢去买。我担心自己会把事情搞砸(我过去曾多次这样做,我想Linux用户可以和我有同感)。

因此,我决定为任何有兴趣使用Linux作为其主要操作系统进行开发的人介绍我的发行版最重要的方面。

我的漂亮的 Linux 开发环境

 

这不仅仅是我的工作笔记本电脑;这是我用于以下所有内容的主要机器。

JAVA、JS、TS、Go、Python和web开发

•JHipster 开发

•在本地运行多个web应用程序

•运行Docker容器

•用于windows测试和其他虚拟机的VirtualBox

•Kubernetes、Terraform、CloudFormation 开发和部署

•使用必要的CLI工具进行Azure、AWS和GCP部署

•大量使用浏览器

•电子邮件、聊天和视频会议

•Plex 媒体服务器

•博客

•Youtube与社交媒体

机器配置

机器的配置对于任何开发都非常重要。所以我的笔记本电脑是戴尔Precision 5530移动工作站。我的旧Dell 5510也有完全相同的设置。我仍然把它作为备用笔记本电脑,它已经有两年的历史了,但它仍然有比今天的大多数高端笔记本电脑更好的性能。

当时,我使用Dell的自定义配置选项来获得最佳设置。这并不便宜,但我的公司XebiaLabs提供了可观的预算,我认为每一分钱都是值得的。在我看来,这是开发人员最好的笔记本电脑之一。下面是我电脑的配置:

处理器: Intel® Core™ i9-8950HK CPU @ 2.90GHz × 12

内存: 32GB, DDR4-2666MHz SDRAM, 2 DIMMS, Non-ECC

硬盘: M.2 1TB NVMe PCIe SED class 40 SSD

显卡: NVIDIA Quadro P2000 with 4 GB GDDR5 memory & Intel® UHD Graphics 630 (Coffeelake 3x8 GT2)

无线网卡: Intel Wifi Link 9260 2x2 802.11AC + BT 4.2 vPro wireless card

键盘: English QWERTY US, backlit

显示器: 15.6寸 FHD 1920x1080 Anti-Glare LED-backlit Non-touch IPS UltraSharp™

电池: 带快速充电的6芯(97Wh)锂离子电池™

操作系统和桌面环境

当然,最重要的是操作系统。我目前使用的的是 Fedora 30 ,桌面是GNOME 3.32.2,我很满意。我发现Fedora比其他发行版更适合于开发机器,因为它的发布周期短,而且相当稳定,所以您可以随时获得最新且稳定的软件。

我的漂亮的 Linux 开发环境

 

没有漂亮主题的桌面有什么用,对吧?当涉及到主题时,GNOME是很棒的,我选择了 Arc-Flatabimous 主题,并且从没后悔过。对于图标,我使用 Paper,因为我喜欢带Material风格图标的主题。

我的漂亮的 Linux 开发环境

 

当然,如果没有一些不错的GNOME插件,它是不完整的。下面是我使用的插件。

•Dash to Dock

•Always Zoom Workspaces

•Auto Move Windows

•Native Window Placement

•Launch new instance

•Steal My Focus

•AlternateTab

•Window List

Applications Menu

•Caffeine

•Clipboard Indicator

•Gistnotes

•OpenWeather

•Places Status Indicator

•System-monitor

•Todo.txt

•TopIcons Plus

•User Themes

开发工具

接下来,介绍的这些都是客观的选择,只要你对所选择的工具感到满意,其实并不重要。以下是我对一些重要开发类别的选择。不包括像 Vim、Git、NodeJS、Docker、Kubernetes等显而易见的东西。

Shell:这对于开发人员来说是最重要的。我使用 ZSH 和很棒的 Oh My ZSH 作为我的shell工具。当然,如果没有一些漂亮的插件和主题,这将是不完整的。我使用 powerlevel9k 主题并进行了一些定制。我还为Oh My ZSH 安装了 zsh-autosuggestions、git、docker、docker-compose、autojump、zsh-syntax-highlighting、dnf和npm插件。这是我的.zshc文件,其中包含所有自定义内容。

这篇文章的一条评论建议用 powerlevel10k 替代 powerlevel9k 主题,我尝试了一下,结果证明它确实比powerlevel9k快得多。所以我想我要用powerlevel10k作为我的shell主题。

Terminal:没有好的终端,好的 shell 有什么用。幸运的是,我们有 Tilix ,这是目前最好的终端应用程序之一。它有工作区、选项卡、拆分窗口、Quake模式等等。

我的漂亮的 Linux 开发环境

 

集成开发环境(IDE):IntelliJ IDEA Ultimate - 我用它来开发Java和其他JVM语言

代码编辑器:Visual Studio Code - 我的首选编辑器。我喜欢它。我使用VSCode进行web开发、Go、Python、JS开发、DevOps,以及除了JVM语言之外的一切。如果没有一些好的插件,VSCode的设置是不完整的。这儿是我正在使用的插件。您可以运行脚本来安装他们。

我使用的其他值得注意的开发工具有GitKraken 用于Git仓库管理、Beyond Compare 用于代码比较、VirtualBox、NVM 用于 NodeJS版本管理和SDKMan 用于JDK版本管理。

生产力工具

生产力工具也非常重要,下面是我的选择。

浏览器:谷歌浏览器是我的主要浏览器。我有时也使用Firefox和Opera。我确实喜欢Opera的用户体验,我很想把它作为我的主要浏览器,但我不能没有我在 Chrome 中我的 google 帐户同步的所有内容。

电子邮件:我使用 Mailspring 作为我的电子邮件客户端。这是一个相当不错的邮件客户端,有很好的主题和简单的用户界面。

office:我主要在线使用 Google Docs 和 Microsoft Office,但是当我必须在桌面上处理某些事情时,我会使用 LibreOffice,这是一个很好的 Office 套件,甚至可以处理 Microsoft Office 和 Keynote 格式文本。

通讯:我使用 Slack,而对于视频会议,我使用 BlueJeans。

屏幕截图:我使用这个名为 Peek 的漂亮工具进行屏幕录制,使用 Shutter 进行屏幕截图。

结论

我还使用了许多其他小而精巧的应用程序;大多数是命令行应用。有一些值得提及,例如 Timeshift,它非常适合备份您的电脑。

当然,在 Linux 世界中并非一切都是完美的,但对于每个操作系统都是一样的。在切换到 Linux 之前,我是 Windows 的长期用户。所以和每个 Linux 用户一样,我时不时会把事情搞砸。 Linux 世界中有许多古怪的现象,但没有什么能让我感到困扰。我过去遇到的一些最烦人的问题如下,现在,我没有任何明显的问题。

•切换应用程序时滚动位置跳动 - 升级到 Fedora 30 后修复

•休眠被打断 - 升级到 Fedora 30 后修复

•插入耳机时不能选择音频输出方式 - 在 Fedora 28 后修复

希望这个对你有帮助。如果您有任何问题,或者您认为我遗漏了什么,请添加评论。

如果你喜欢这篇文章,请留下一个赞或评论。

引用链接

[1] Fedora 30: https://getfedora.org/
[2] GNOME 3.32.2: https://www.gnome.org/
[3] Arc-Flatabimous: https://github.com/andreisergiu98/arc-flatabulous-theme
[4] Paper: https://github.com/snwh/paper-icon-theme
[5] Dash to Dock: https://extensions.gnome.org/extension/307/dash-to-dock/
[6] Always Zoom Workspaces: https://extensions.gnome.org/extension/503/always-zoom-workspaces/
[7] Auto Move Windows: https://extensions.gnome.org/extension/16/auto-move-windows/
[8] Native Window Placement: https://extensions.gnome.org/extension/18/native-window-placement/
[9] Launch new instance: https://extensions.gnome.org/extension/600/launch-new-instance/
[10] Steal My Focus: https://extensions.gnome.org/extension/234/steal-my-focus/
[11] AlternateTab: https://extensions.gnome.org/extension/15/alternatetab/
[12] Window List: https://extensions.gnome.org/extension/602/window-list/
[13] Applications Menu: https://extensions.gnome.org/extension/6/applications-menu/
[14] Caffeine: https://extensions.gnome.org/extension/517/caffeine/
[15] Clipboard Indicator: https://extensions.gnome.org/extension/779/clipboard-indicator/
[16] Gistnotes: https://extensions.gnome.org/extension/917/gistnotes/
[17] OpenWeather: https://extensions.gnome.org/extension/750/openweather/
[18] Places Status Indicator: https://extensions.gnome.org/extension/8/places-status-indicator/
[19] System-monitor: https://extensions.gnome.org/extension/120/system-monitor/
[20] Todo.txt: https://extensions.gnome.org/extension/570/todotxt/
[21] TopIcons Plus: https://extensions.gnome.org/extension/1031/topicons/
[22] User Themes: https://extensions.gnome.org/extension/19/user-themes/
[23] ZSH: https://www.zsh.org/
[24] Oh My ZSH: https://ohmyz.sh/
[25] powerlevel9k: https://github.com/bhilburn/powerlevel9k
[26] zsh-autosuggestions: https://github.com/zsh-users/zsh-autosuggestions
[27] zsh-syntax-highlighting: https://github.com/zsh-users/zsh-syntax-highlighting
[28] .zshc文件: https://gist.github.com/deepu105/9723cb70032eca98ff09d110369af67a
[29] powerlevel10k: https://github.com/romkatv/powerlevel10k
[30] Tilix: https://gnunn1.github.io/tilix-web/
[31] IntelliJ IDEA Ultimate: https://www.jetbrains.com/idea/
[32] Visual Studio Code: https://code.visualstudio.com/
[33] 这儿: https://gist.github.com/deepu105/4599d3b381218b9d1a63119fbf9ca537
[34] GitKraken: https://www.gitkraken.com/
[35] Beyond Compare: https://www.scootersoftware.com/
[36] VirtualBox: https://www.virtualbox.org/
[37] NVM: https://github.com/nvm-sh/nvm
[38] SDKMan: https://sdkman.io/
[39] Mailspring: https://getmailspring.com/
[40] LibreOffice: https://www.libreoffice.org/
[41] Slack: https://slack.com/
[42] BlueJeans: https://www.bluejeans.com/
[43] Peek: https://github.com/phw/peek
[44] Shutter: https://launchpad.net/shutter
[45] Timeshift: https://github.com/teejee2008/timeshift



Tags:Linux 开发   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
我在会议演讲后经常收到的一个问题很奇怪,不是关于我演讲的内容,而是关于我的Linux桌面环境。人们对这个漂亮的发行版更感兴趣,而不是我刚才做的精彩演示我不是在抱怨,我喜欢我...【详细内容】
2022-01-04  Tags: Linux 开发  点击:(0)  评论:(0)  加入收藏
▌简易百科推荐
我在会议演讲后经常收到的一个问题很奇怪,不是关于我演讲的内容,而是关于我的Linux桌面环境。人们对这个漂亮的发行版更感兴趣,而不是我刚才做的精彩演示我不是在抱怨,我喜欢我...【详细内容】
2022-01-04  木偶跳舞    Tags:Linux 开发   点击:(0)  评论:(0)  加入收藏
写在前面有时候可能做项目组长,负责一个项目开发,但是工作是内网,也没有公司的版本库权限,那这个时候,我们怎么用处理版本控制,可以用集中式的版本库工具SVN,或者分布式的Git,这里和...【详细内容】
2021-12-31  山河已无恙被注册了    Tags:Git版本库   点击:(5)  评论:(0)  加入收藏
1、什么是YAMLYAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。YAML的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。主要强度...【详细内容】
2021-12-29  编程菌zfn    Tags:YAML   点击:(8)  评论:(0)  加入收藏
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(10)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(17)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(11)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(11)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(9)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(12)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(19)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条