MatthieuCNEUDE译者
弯月,责编
屠敏出品
CSDN(ID:CSDNnews)
以下为译文:
曾经,我是一名骄傲的Ubuntu用户。Ubuntu不仅易于安装,而且易于使用。在此之前,我是Windows用户,感觉Windows和Ubuntu很相似。
然而,日复一日,年复一年,我的自豪感逐渐消失了,取而代之的却是无边无尽的烦恼。Ubuntu让我大失所望:
有时会显示奇怪的错误。
非常慢。
必须手动编译许多官方代码库中没有的应用程序。
必须手动编译许多官方代码库中完全过时的应用程序。
为了尽可能多地使用键盘,必须学习大量随机快捷键,尽管只是一款基本的工具。
由于没有更好的选择,所以我坚持了好多年。某天早上,我兴致勃勃地打算升级LTS版本。然而,一切都崩溃了。我甚至无法启动Ubuntu。我想方设法修复所有问题,但当时的我对Linux一无所知,不知该从何处下手,毫无头绪。Ubuntu论坛也没有提供太多帮助,于是我决定重新安装。
我的内心充满了痛苦,然而,我的老朋友Ubuntu,又一次华丽丽地让我失望了。
几个月后,我有幸与一群出色的开发人员合作,他们向我展示了如何构建高效的开发环境。
于是,我的整个工作流程都发生了转变。我从Ubuntu转移到了ArchLinux、从Unity到i、从PhpStorm到Neovim。经过多年的默默抗争,我终于拥有了一个可扩展、稳定、高效的新系统。我甚至编写了一堆脚本,只需一个命令即可安装我所需要的一切。一切准备就绪,我可以大展拳脚了。
不黑不吹,这成为了我职业生涯中最重要的一个转变。为什么?
感谢ArchLinux,我学到了很多有关Linux的知识。
为了解决各种问题,了解操作系统抽象层下的工作方式非常重要。
我认为开发人员必须了解Linux,因为Web服务器主要运行在基于Linux的系统上。
我习惯于在所有工具中使用一套统一的快捷键。
我可以通过键盘完成90%的系统操作。我能记住这些快捷键,是因为这些键位的设置很合理,而不像ctrl+shift+alt+e等常见的GUI快捷键。
当切换到如今使用的这套工具后,我真正体会到拥有一个优秀、高效及可扩展的开发环境有多么重要。我感到宾至如归。这套系统终于能够满足我所有的需求,我无需再跟系统作斗争了。
如今的我非常享受开发的工作,而且我可以说:我享受到了十倍的编程乐趣!
在本文中,我们将讨论:
为什么Linuxshell是开发人员的最佳工具?
为什么我们应该使用ArchLinux?
什么是i?
如何使用urxvt、tmux和tmuxp创建功能强大的终端?
一款迄今为止我所见过的最强大的IDE,它可以将LinuxShell的功能发挥到极致。
如何改善在终端中使用git的体验?
如何在shell中获得更好的MySQL和PostgreSQL使用体验?
你对这些话题感兴趣吗?下面请随我一起畅游无鼠标开发环境的梦幻世界。
开发人员的好朋友,Shell图:简单高效的Shell
在本文中,我将反复提到shell,最常见的shell有bash和Zsh,我使用的是后者,而且我强烈推荐。
纯文本的力量你可能在想:为什么要使用基于文本的Shell?
基于文本的Shell下有丰富的应用程序。即便没有完全满足需要的工具,也可以很轻松地开发一个shell工具,无需设计最上层的GUI。
可以为最终用户提供许多可选的功能,让最终用户完全按照自己的意愿选择。你不可能在一个图形界面中塞入0个按钮吧?但是,基于命令行的应用程序可以有0个选项。
Unix的思想允许你使用特定的工具来满足特定的需求。通过管道将一种工具的输出作为输入传递到另一种工具,这可以提供无穷无尽的可能性。
你可以利用Shell非常轻松地自动化常见的乏味任务。自动化是提高生产力并节省精力的关键。
通常命令行的执行速度非常快。没有沉重的图形界面,也没有D菜单,来拖慢计算机的速度。
命令行不会占用大量内存。相比起Chrome来说,命令行可以节省80%的RAM。
“命令行工具比Hadoop集群快5倍。”
——AdamDrake
我鼓励你尽可能使用Shell。虽然刚开始的时候,你可能会不适应,但Shell可以让你受益良多。
CLI应用程序之上的图形界面又如何呢?在我看来,它有严重的缺点:
隐藏了许多可以通过CLI轻松使用的功能。
无法解决(甚至无法理解)来自CLI层的任何错误。
遇到以下情况,你会感到很困惑:
在没有图形界面的情况下,在远程服务器上使用这类工具。
向经验不足的开发人员介绍该工具的实际工作原理。你可以解释GUI,但不能解释应用程序本身,尤其是当GUI和CLI采用了不同技术的时候,而且不幸的是这种情况非常普遍。
我有一段使用sourcetree的亲身经历,sourcetree是git的图形界面。当时我在和一名初级开发人员一起工作,而他不懂得git是如何工作的。每当出现问题时,他都搞不明白GUI在后台调用了什么命令。这比直接在Shell使用CLIgit更令人沮丧。
无鼠标方式使用Shell的时候,你主要依赖键盘。可能你会觉得有点吃惊,但我会尽量避免使用鼠标。因为这是提高效率的关键之一:双手放在键盘上可以加快你的速度,而且更重要的是,可以让你更加快乐。
以下是无鼠标方式的一些优点:
将手从键盘移到鼠标很累。试试看不用移动手,你就明白了。
双手一直放在键盘上会让你倍感轻松。你无需在敲键盘和移动光标之间不断切换。
即便只是编写购物清单,也有一种黑客的感觉!很酷,是不是?
ArchLinux:获取最新的软件图:ArchLinux在虚拟机上流畅地运行
与其他Linux发行版相比,ArchLinux具有许多优势。
滚动发布系统滚动发布系统究竟是什么?ArchLinux社区会不断为我们和用户提供所有软件的更新。可确保你安装的程序是最新版本。
你无需担心自己是否错过了某个工具的强大功能和修复补丁。ArchLinux可以保证你的系统保持最新版本。
那么应用程序是不是很丰富?ArchLinux的官方代码库非常庞大。大多数时候,你都可以找到自己所需的一切。如果找不到,你还可以访问AUR(Arch用户代码库),找到你想要的一切。我一点也没有夸张。在使用ArchLinux多年之后,AUR仍然能不断带给我惊喜。
唯一的缺点:AUR的应用程序并不一定经过了良好的测试。所以,请谨慎使用。但是,只要查看其构建记录就可以知道安装之后会发生什么。
当从头开始安装ArchLinux时,你可以选择每一个需要安装的应用程序。凡是你不需要的东西,都不会出现在你的硬盘上。未经你的同意,任何应用程序都无法在后台运行,你是掌控一切的主人。
ArchLinux周围的社区也很强大。一般他们都值得信赖,而且他们不会在stackoverflow上随便抛出一些Shell命令却不做任何解释(这一点与Ubuntu有很大的不同)。
再说,谁稀罕stackoverflow呀?ArchWiki才是最出色的LinuxWiki。同样,这个网站至今仍然能带给我很多惊喜,里面几乎应有尽有。
现在,你可能在想:ArchLinux稳定吗?它是否会每两周崩溃一次,让你感觉无望?
你会发现网上的很多人都在长篇大论讨论这个问题。我的建议?别听他们的。我每天都在使用ArchLinux,已经坚持了5年。在我安装的过程中,ArchLinux从未崩溃过,要说有也是在我刚刚开始尝试使用的时候。
如果你谨慎使用AUR,那么完全可以依赖这款功能强大、轻巧且可自定义的Linux发行版。
有时,pacman(不是吃豆人,而是ArchLinux的打包管理器)会要求你进行一些手动修改。但ArchLinux的官方网站会提供详细记录,而且可以立即解决。
使用i管理窗口图:i的窗口
ArchLinux不带任何类型的桌面或窗口管理器。你需要自行安装。我毫不犹豫地选择了iWindowsManager。
这是一款非常轻便、快速且易于使用的窗口管理器。i没有精致的D效果。一切都是为了提高效率和生产力,避免在视觉上造成干扰。
你可以使用i创建工作区。工作区占据整个屏幕,而且还可以从一个屏幕移动到另一个屏幕。你可以在工作区中打开一个或多个窗口。它们会嵌入到你喜欢的应用程序。
很简单,对不对?而且最吸引人部分是:你可以使用键盘轻松完成所有操作。你可以通过简单的按键来打开、移动和关闭工作区或窗口。你还可以使用快捷键来调整窗口大小。你甚至可以使用快捷键来打开自己喜欢的应用程序。
一切都合乎逻辑。在第一次安装i后,只过了-天,我就可以顺畅地使用它。你的肌肉可以记住你需要的快捷键。
i的配置灵活性很大。如果你想尝试一下的话,可以参考这篇文章(