我的 2018 年 Linux 开发环境
在这篇博文中,我将简单介绍一下我的 Linux 个人笔记本电脑的设置和软件。这篇文章的灵感来源于这篇文章,但针对的是基于 Linux 的设置。
我不会列出我在机器上安装的所有应用程序,而只会列出我认为相关且更侧重于开发的应用程序。
基础系统
我的机器现在运行的是 Linux Mint 18.3,但我打算等 Ubuntu 18.04 出来后再换回去。我对 Mint 没什么意见,但既然 Unity 被 Gnome 3 取代了,我想试试看。
生产力工具
-
Boostnote — 我的主要笔记应用。我主要用它来存储代码片段和开发活动的参考资料。它开源、跨平台,并且完全离线工作。我希望有一种更简单的方法在多台机器之间同步,但由于笔记存储为 CSON 文件,所以我使用私有的 Git 仓库进行同步。
-
Simplenote — 我使用 Simplenote 作为我的“便笺簿”,用于快速记录和思考。主要是在我的手机上。
-
Cerebro — Cerebro 是一款开源的跨平台启动器,类似于 Spotlight 和 Mac 版 Alfred。目前维护成本较低,我觉得有必要 fork 它一下,但它运行起来相当不错。它的插件数量不如 Alfred 多,但我一直在开发一些。
互联网
-
Google Chrome — 我的主要浏览器选择。
-
Firefox — 我的辅助浏览器。
-
Min — Min 是一款极简主义的网页浏览器。由于 Linux 系统没有像Mac 版Fenetre那样的浏览器,所以我会在浏览文档、学习教程或以画中画/并排模式观看视频时使用它。
-
Dropbox — 用于共享文件。
-
Mailspring——电子邮件客户端。
-
Corebird ——Twitter 桌面客户端
-
Ramme — Instagram 桌面客户端
-
Caprine ——Facebook Messenger 桌面客户端
-
Whatsapp 桌面——带有内置通知和系统托盘集成的 WhatsApp 桌面客户端。
-
Slack——用于聊天和与社区互动。
-
Wireshark — 用于网络嗅探。在开发过程中查看多个应用程序之间的通信时非常有用。
图形和多媒体
-
Pinta — Pinta 是一款免费的开源绘图和图像编辑程序。它是我首选的图像编辑器。虽然 Gimp 是 Linux 上最受欢迎的图像编辑器,但我发现 Pinta 使用起来更简单,而且更像 Photostop。
-
XnConvert——一款功能强大且免费的跨平台批量图像处理器,允许您组合超过 80 种操作。
-
Draw.io — Draw.io 是我设计各种图表的首选应用,从流程图到序列图,甚至线框图。它完全免费,并且可以与 Google Drive 集成。
-
快门——用于截取屏幕截图并用箭头、方框等快速注释。它还有一些不错的效果,例如模糊图像的敏感部分。
-
ffmulticonverter — 用于在多种格式之间转换图像/视频。
-
Peek — Peek 允许录制屏幕并保存为 GIF 格式。例如,对于创建用于项目自述文件的演示 gif 非常有用。
-
pick — 颜色选择器
-
Trimage——图像压缩工具
声音和视频
系统实用程序
編輯
-
Jetbrains(PHPstorm、WebStorm)——我的首选 IDE,
-
Visual Studio Code — 一体化文本编辑器
-
vim(用于在命令行上编辑文件)
终端设置
-
Tilix — 我最喜欢的终端模拟器。
-
Zsh shell — 功能丰富的 bash 替代品
-
zplug — 管理 zsh 插件。
-
zsh-completions — Zsh 的附加完成定义。
命令行实用程序
-
tldr — tldr 是手册页的替代品,但只包含必要的内容。快速查找任何命令语法的好方法。
-
yadm — 点文件管理器
-
fasd — Fasd 是一款命令行效率提升工具。Fasd 为 POSIX shell 提供了快速访问文件和目录的功能。它的灵感来源于autojump、z和v等工具。Fasd 会跟踪您访问过的文件和目录,以便您在命令行中快速引用它们。
-
fzf — 命令行模糊查找器
-
silver searcher — 类似于 ack 的代码搜索工具,但速度更快
-
lf — 命令行文件管理器。
-
pandoc — 从命令行在多种文件类型之间进行转换。
-
pwgen——密码生成器
-
lnav — 适用于小规模的高级日志文件查看器
-
trash-cli —trash-cli 会删除记录原始路径、删除日期和权限的文件。
-
opn-cli — 打开网站、文件、可执行文件等。跨平台。
-
ascicinema — 以正确的方式记录和分享您的终端会话。
-
hostess — 用于管理 /etc/hosts 文件的幂等命令行实用程序。
-
get-port-cli — 获取可用端口
-
public-ip-cli — 获取你的公共 IP 地址
-
i internal-ip-cli — 获取你的内部 IP 地址
-
speedtest-cli——使用 speedtest.net 测试互联网带宽的命令行界面
-
fkill-cli — 高效地终止进程。跨平台。
-
doctoc — 为本地 git 仓库中的 Markdown 文件生成目录。链接兼容 GitHub 或其他网站生成的锚文本。
开发环境
我在开发环境中广泛使用 Docker。我的主机上仍然安装了常见的运行时,例如 go、php、node(使用nvm)和 ruby(使用rvm )。
-
Docker-compose — 使用 Docker 定义和运行多容器应用程序
-
Minikube — 在本地运行 Kubernetes
-
Telepresence——针对远程 Kubernetes 或 OpenShift 集群进行本地开发
-
ctop——类似 Top 的容器指标接口
-
Vagrant — 轻松上手的开发环境。我现在很少用 Vagrant,除非我想做些基础设施相关的工作。(比如:测试新集群的运行,或者测试 Ansible 的 playbook)。
-
Dnsdock——用于管理 Docker 容器的 DNS。
开发工具
-
how2 — 终端的堆栈溢出
-
Pet——简单的命令行代码片段管理器。我用它来存储我最常用的命令。
-
caniuse-cmd — Caniuse 命令行工具
-
hub — hub 是一个命令行工具,它包装了 git,以便使用额外的功能和命令来扩展它,使使用 GitHub 变得更加容易。
-
conventional-changelog — 从 git 元数据生成变更日志
-
release-it — Git repos 和 npm 包的 CLI 发布工具。
-
git-open — 键入
git open
以在浏览器中打开存储库的 GitHub 页面或网站。 -
git-semver — 用于语义版本控制的 Git 插件
-
tig ——git 的文本模式界面
-
jq — jq 是一个轻量级且灵活的命令行 JSON 处理器
-
python-gitlab — GitLab 客户端
-
overcommit — 一个管理和配置Git hooks 的工具。
-
gitbook-cli — GitBook 的命令行界面
-
pageres-cli — 捕获网站截图
-
httpie — 现代命令行 HTTP 客户端 — 用户友好的 curl 替代品,具有直观的 UI、JSON 支持、语法高亮、类似 wget 的下载、扩展等
-
yeoman — Yeoman 是一个允许通过一系列模板搭建项目的工具。
-
generator-editorconfig — 生成 .editorconfig 文件。
-
许可证——从命令行创建许可证。
-
gi — 为你的项目创建有用的 .gitignore 文件
-
travis.rb — Travis CI 客户端(CLI 和 Ruby 库)
-
http-server — http-server 是一个简单、零配置的命令行 http 服务器。它功能强大,足以满足生产环境的需求,同时又足够简单易用,可以用于测试、本地开发和学习。
-
codeclimate-cli — codeclimate 是 Code Climate 分析平台的命令行界面。它允许您在本地计算机上的 Docker 容器内运行 Code Climate 引擎。
-
mycli — 具有自动完成和语法高亮功能的 MySQL 终端客户端。
-
json-server — 在不到 30 秒的时间内获得一个完整的、无需任何编码的虚假 REST API。
-
localtunnel — localtunnel 将您的本地主机公开到外部世界,方便测试和共享!无需费心处理 DNS 或部署,即可让其他人测试您的更改。
-
mailhog — 基于 Web 和 API 的 SMTP 测试
-
artilery — Artillery 是一款现代、强大且易于使用的负载测试工具包。使用它来交付可扩展的应用程序,使其在高负载下保持性能和弹性。
-
Postman ——Postman 使 API 开发变得简单。
-
Devdocs-Desktop — DevDocs.io将多个 API 文档整合到一个快速、有序且可搜索的界面中。这是一款非官方的桌面应用。
DevOps 工具
-
doctl — DigitalOcean 服务的命令行工具。
-
gcloud-sdk — 与 Google Cloud 基础设施交互的官方 sdk。
-
aws-cli — 该软件包为 Amazon Web Services 提供了统一的命令行界面。
-
ansible — 自动化基础设施
-
terraform — 编写、规划和创建基础设施即代码
-
kubectl — kubectl 是一个针对 Kubernetes 集群运行命令的命令行界面
-
kubectx — 在 kubectl 中快速切换集群和命名空间!
-
kubeval — 验证您的 Kubernetes 配置文件,支持多个 Kubernetes 版本
-
helm — Kubernetes 包管理器
-
heroku-cli — Heroku 命令行界面 (CLI) 让您可以轻松地直接从终端创建和管理 Heroku 应用。它是使用 Heroku 的重要组成部分。
-
forge.sh — 从源代码定义和部署 Kubernetes 中的多容器应用程序
-
Firebase 工具— Firebase 命令行工具
-
dpl — Dpl(dee-pee-ell)是一种用于持续部署的部署工具。
结论
这是当前的开发机器。希望对您有所帮助。
我一直在寻找改进工作流程的方法,因此如果您使用任何您认为有用的工具并且它没有列在这里,请随时评论这篇文章。
Linux 可以是一个非常强大的开发环境。可惜的是,像Alfred或Fenetre这样优秀的 Mac 应用程序竟然没有 Linux 上的替代方案。这正是我最怀念的。虽然我从未使用过 Mac,但我感受到了这些应用程序的强大!
文章来源:https://dev.to/brpaz/my-linux-development-environment-of-2018-ch7