解放雙手!推薦一款 GitHub 星標 8.2k+的命令列軟體管理器,非常酷炫!

2022-05-24 12:03:20

小二是公司新來的實習生,之前面試的過程中對答如流,所以我非常看好他。第一天,我給他了一臺新電腦,要他先在本地搭建個 Java 開發環境。

二話不說,他就開始馬不停蹄地行動了。真沒想到,他竟然是通過命令列的方式安裝的 JDK,一行命令就搞定了!連環境變數都不用設定,這遠遠超出了我對他的預期

我以為,他會傻乎乎地下一步下一步來安裝 JDK,就像這樣。

然後這樣設定環境變數。

結果他是這樣的,就一行命令,環境變數也不用設定!

臥槽!牛逼高大上啊!

看著他熟練地在命令列裡安裝 JDK 的樣子,我的嘴角開始微微上揚,真不錯!這次總算招到了一個靠譜的。

於是我就安排他做一個記錄,打算髮表在我的小破站《Java 程式設計師進階之路》上。從他嘴裡瞭解到,他用的命令列軟體管理器叫 chocolatey,這是一個Windows下的命令列軟體管理器,在 GitHub 上已經收穫 8.2k+的星標,可以方便開發者像在Linux下使用yum命令來安裝軟體,或者像在macOS下使用brew 命令來安裝軟體,非常酷炫。

以下是他的記錄,一起來欣賞下。

先來了解 shell

對於一名 Java 後端程式設計師來說,初學階段,你可以選擇在 IDE 中直接編譯執行 Java 程式碼,但有時候也需要在 Shell 下編譯和執行 Java 程式碼。

Windows 下自帶的 Shell 叫命令提示字元,或者 cmd 或者 powershell,macOS 下叫終端 terminal。

但當你需要在生產環境下部署 Java專案或者檢視紀錄檔的話,就必然會用到 Shell,這個階段,Shell 的使用頻率高到可以用一個成語來形容——朝夕相伴。

一些第三方軟體會在原生的 Shell 基礎上提供更強大的功能,常見的有 tabby、Warp、xhsell、FinalShell、MobaXterm、Aechoterm、WindTerm、termius、iterm2 等等,有些只能在 Windows 上使用,有些只能在 macOS 上使用,有些支援全平臺。還有 ohmyzsh 這種超神的 Shell 美化工具。

這裡,我們列舉一些 Shell 的基本操作命令(Windows 和 macOS/Linux 有些許差異):

  • 切換目錄,可以使用 cd 命令切換目錄,cd .. 返回上級目錄。

  • 目錄列表,macos/linux 下可以使用 ls 命令列出目錄下所有的檔案和子目錄(Windows 下使用 dir 命令),使用萬用字元 * 對展示的內容進行過濾,比如 ls *.java 列出所有 .java字尾的檔案,如果想更進一步的話,可以使用 ls H*.java 列出所有以 H 開頭 .java 字尾的檔案。
  • 新建目錄,macOS/Linux 下可以使用 mkdir 命令新建一個目錄(比如 mkdir hello 可以新建一個 hello 的目錄),Windows 下可以使用 md 命令。
  • 刪除檔案,macOS/Linux 下可以使用 rm 命令刪除檔案(比如 rm hello.java 刪除 hello.java 檔案),Windows 下可以使用 del 命令。
  • 刪除目錄,macOS/Linux 下可以使用 rm -r 命令刪除目錄以及它所包含的所有檔案(比如說 rm -r hello 刪除 hello 目錄)。Windows 下可以使用 deltree 命令。
  • 重複命令,macOS/Linux/Windows 下都可以使用上下箭頭來選擇以往執行過的命令。

  • 命令歷史,macOS/Linux 下可以使用 history 命令檢視所有使用過的命令。Windows 可以按下 F7 鍵。

  • 解壓檔案,字尾名為「.zip」的檔案是一個包含了其他檔案的壓縮包,macOS/Linux 系統自身已經提供了用於解壓的 unzip 命令, Windows 的話需要手動安裝。

再來了解chocolatey

先安裝 chocolatey。這是一個Windows下的命令列軟體管理器,可以方便開發者像在Linux下使用yum命令來安裝軟體,或者像在macOS下使用brew 命令來安裝軟體,非常酷炫。

The biggest challenge is reducing duplication of effort, so users turn to Chocolatey for simplicity

傳統的安裝方式要麼非常耗時,要麼非常低效,在命令列安裝軟體除了簡單高效,還能自動幫我們設定環境變數。

第一步,以管理員的身份開啟 cmd 命令列。

第二步,執行以下命令:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

稍等片刻,就完成安裝了。

安裝完成後如下圖所示:

如果不確定是否安裝成功的話,可以通過鍵入 choco 命令來確認。

這裡推薦幾個非常高效的操作命令:

  • choco search xxx,查詢 xxx 安裝包
  • choco info xxx,檢視 xxx 安裝包資訊
  • choco install xxx,安裝 xxx 軟體
  • choco upgrade xxx,升級 xxx 軟體
  • choco uninstall xxx, 解除安裝 xxx 軟體

如何知道 chocolatey 倉庫中都有哪些安裝包可用呢?

可以通過上面提到的命令列的方式,也可以存取官方倉庫進行篩選。

https://community.chocolatey.org/packages

比如說我們來查詢 Java。

好,現在可以直接在shell中鍵入 choco install jdk8 來安裝 JDK8 了,並且會自動將Java加入到環境變數中,不用再去「我的電腦」「環境變數」中新建 JAVA_HOME 並複製 JDK 安裝路徑設定 PATH 變數了,是不是非常 nice?

稍等片刻,鍵入 java -version 就可以確認Java是否安裝成功了。

不得不承認!非常nice!

再比如說安裝 Redis,只需要找到 Redis 的安裝命令在 Choco 下執行一下就 OK 了。

安裝 Git:

choco install git.install 

安裝 node.js

choco install nodejs.install 

安裝 7zip

choco install 7zip

安裝 Filezilla

choco install filezilla

Choco 上的軟體包也非常的多,基本上軟體開發中常見的安裝包都有。

小結

通過小二的實戰筆記,我們可以瞭解到。

對比下載安裝包,通過圖形化介面的方式安裝 JDK,然後下一步,下一步是不是感覺在 Shell 下安裝 JDK 更炫酷一些?

關鍵是還省去了環境變數的設定。

記得還沒有走出新手村的時候,就經常被環境變數設定煩不勝煩。那下載這種命令列的方式,要比手動在環境變數中設定要省事一百倍,也更不容易出錯。

通過 Choco 可以集中安裝、管理、更新各種各樣的軟體。特別適合管理一些輕量級的開源軟體,一條命令搞定,升級的時候也方便,不用再重新去下載新的安裝包,可以有效治癒更新強迫症患者的症狀。

如果不想特殊設定的話,Chocolatey 整體的操作與使用還是比較親民的。就連剛接觸軟體開發的小白也可以直接使用,而且路人看著會覺得你特別厲害。


本文已收錄到 GitHub 上星標 2.2k+ 的開源專欄《Java 程式設計師進階之路》,據說每一個優秀的 Java 程式設計師都喜歡她,風趣幽默、通俗易懂。內容包括 Java 基礎、Java 並行程式設計、Java 虛擬機器器、Java 企業級開發、Java 面試等核心知識點。學 Java,就認準 Java 程式設計師進階之路