小二是公司新來的實習生,之前面試的過程中對答如流,所以我非常看好他。第一天,我給他了一臺新電腦,要他先在本地搭建個 Java 開發環境。
二話不說,他就開始馬不停蹄地行動了。真沒想到,他竟然是通過命令行的方式安裝的 JDK,這遠遠超出了我對他的預期。
我以為,他會使用圖形化的方式來安裝 JDK 的,就像這樣。
![e889375e-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CSARBPtAABCzYWuo7Q816.png)
還有這樣。
![e8975ce4-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CSAOO9vAAA9KLfYszY317.png)
結果他是這樣的。
![e8ab19a0-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CWAEfbrAAPm9vRZx8c980.png)
臥槽!牛逼高大上啊!
看著他熟練地在命令行里安裝 JDK 的樣子,我的嘴角開始微微上揚,真不錯!這次總算招到了一個靠譜的。
于是我就安排他做一個記錄。從他嘴里了解到,他用的命令行軟件管理器叫 chocolatey,這是一個Windows下的命令行軟件管理器,可以方便開發者像在Linux下使用yum命令來安裝軟件,或者像在macOS下使用brew 命令來安裝軟件,我感覺非常酷炫。
![e8caefd2-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CWAcMPGAAaRguKf4tQ923.png)
以下是他的記錄,一起來欣賞下。
關于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 ..
返回上級目錄。
![e8dec25a-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CWANF2HAAOKOK2LCc8553.png)
-
目錄列表,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 下都可以使用上下箭頭來選擇以往執行過的命令。
![e8f97e9c-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CWASJnUAAP_8Zg8ZTk851.png)
-
命令歷史,macOS/Linux 下可以使用
history
命令查看所有使用過的命令。Windows 可以按下 F7 鍵。
![e9151ef4-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CaAJ_cVAARLXvmQGg8749.png)
- 解壓文件,后綴名為“.zip”的文件是一個包含了其他文件的壓縮包,macOS/Linux 系統自身已經提供了用于解壓的 unzip 命令, Windows 的話需要手動安裝。
安裝JDK
1)Windows
推薦先安裝 chocolatey。這是一個Windows下的命令行軟件管理器,可以方便開發者像在Linux下使用yum命令來安裝軟件,或者像在macOS下使用brew 命令來安裝軟件,非常酷炫。
The biggest challenge is reducing duplication of effort, so users turn to Chocolatey for simplicity
傳統的安裝方式要么非常耗時,要么非常低效,在命令行安裝軟件除了簡單高效,還能自動幫我們配置環境變量。
- 官方地址:https://chocolatey.org/
- 安裝文檔:https://chocolatey.org/install#individual
安裝完成后如下圖所示:
![e93b833c-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CaAJM5UAAc6p2mLF7Y550.png)
如果不確定是否安裝成功的話,可以通過鍵入choco
命令來確認。
![e94c6fa8-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CaATdqJAAFK0AjErjc051.png)
這里推薦幾個非常高效的操作命令:
- 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。
![e957b53e-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CaAUOWwAAaU6kBDy1s971.png)
好,現在可以直接在shell中鍵入choco install jdk8
來安裝 JDK8 了,并且會自動將Java加入到環境變量中,不用再去「我的電腦」「環境變量」中新建 JAVA_HOME 并復制 JDK 安裝路徑配置 PATH 變量了,是不是非常 nice?
稍等片刻,鍵入java -version
就可以確認Java是否安裝成功了。
![e97ff5bc-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CeAEjiOAAQ1j3Pv21w294.png)
不得不承認!非常nice!
2)macOS
首先推薦安裝 homebrew,這是macOS下的命令行軟件管理器,用來簡化 macOS 上軟件的安裝過程。homebrew 是開源的,在 GitHub 已收獲 32k star。
![e9a6bba2-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CeAU6_kAALjzMzO0sE129.png)
homebrew 的安裝也非常的簡單,只需要一行命令即可。
官方網址:https://brew.sh/index_zh-cn
![e9b59f1e-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CeAWSa4AAML1hcCtMw331.png)
-
使用
brew install xxx
可以安裝 macOS 上沒有預裝的軟件 -
使用
brew install --cask yyy
可以安裝 macOS 其他非開源軟件。
這里是 homebrew 常用命令的一個清單,可供參考。
命令 | 描述 |
---|---|
brew update | 更新 Homebrew |
brew search package | 搜索軟件包 |
brew install package | 安裝軟件包 |
brew uninstall package | 卸載軟件包 |
brew upgrade | 升級所有軟件包 |
brew upgrade package | 升級指定軟件包 |
brew list | 列出已安裝的軟件包列表 |
brew services command package | 管理 brew 安裝軟件包 |
brew services list | 列出 brew 管理運行的服務 |
brew info package | 查看軟件包信息 |
brew deps package | 列出軟件包的依賴關系 |
brew help | 查看幫助 |
brew cleanup | 清除過時軟件包 |
brew link package | 創建軟件包符號鏈接 |
brew unlink package | 取消軟件包符號鏈接 |
brew doctor | 檢查系統是否存在問題 |
安裝完 homebrew 后,建議替換homebrew 的默認源為中科大的,原因就不用我多說了吧?替換方法如下所示:
替換brew.git:
cd"$(brew--repo)"
gitremoteset-urloriginhttps://mirrors.ustc.edu.cn/brew.git
替換homebrew-core.git:
cd"$(brew--repo)/Library/Taps/homebrew/homebrew-core"
gitremoteset-urloriginhttps://mirrors.ustc.edu.cn/homebrew-core.git
如何知道 homebrew 倉庫中都有哪些安裝包可用呢?
第一種,通過brew search xxx
命令搜索,比如說我們要搜索 jdk
![e9c7cf22-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CeAQopmAAPgo6wiOG0202.png)
第二種,通過 homebrew 官網搜索,比如說我們要搜索 openjdk。
官方地址:https://formulae.brew.sh
![e9ffb676-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CeAfeSRAAGPSkD-auQ921.png)
這里有一份不錯的 homebrew 幫助文檔,可供參考:
https://sspai.com/post/56009
OK,我們來安裝JDK,只需要簡單的一行命令就可以搞定。
brew install openjdk@8
對比下載安裝包,通過圖形化界面的方式安裝 JDK,是不是感覺在 Shell 下安裝 JDK 更炫酷一些?
關鍵是還省去了環境變量的配置。
記得還沒有走出新手村的時候,就經常被環境變量配置煩不勝煩。那下載這種命令行的方式,要比手動在環境變量中配置要省事一百倍,也更不容易出錯。
關于編輯器
安裝完 Java 之后,你還需要一個編輯器,用來編寫 Java 代碼。
編輯器多種多樣,常見的有集成開發環境(IDE,比如 Intellij IDEA 和 vscode),和簡單的文本編輯工具(比如 sublime text)。
我建議這三個工具都要裝,日常開發中,我會在這三個編輯器中來回切換。
Intellij IDEA:主要用來編寫Java代碼,并且最好安裝旗艦版,社區版用來學習JavaSE部分是綽綽有余的,但要想擁有更強大的生產力,旗艦版是必須的,因為功能更加強大。
比如說 idea 旗艦版中可以直接通過 Initializr 來創建springboot項目,但社區版就沒有此功能。
![ea18e254-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CiAcuqqAAMBuF7qz7k973.png)
vscode:更加輕量級的 IDE,在編寫Java代碼上可以和idea媲美,但要想調試Java代碼的話,vscode 和idea的差距還是非常明顯的。
![ea40e25e-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CiAchoAAALdenGfxYU820.png)
我會使用 Intellij IDEA 開發編程喵的后端代碼,vscode 來開發編程喵的前端代碼。
sublime text:功能更強大的文本編輯器,比記事本這種強大一萬倍,也更符合21世紀開發者的外觀審美。如果只是簡單的修改一下代碼格式,或者注釋,顯然更加方便,因為idea還是比較吃內存的,出差旅行的時候,在筆記本上緊急修改一些代碼時,更易用。
![ea61e42c-ccf1-11ec-bce3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/59/wKgaomTm_CiAHOKSAAW9UL38iwA361.png)
我會配合 GitHub 桌面版來使用 sublime text,編輯 MD 文檔的時候會比較舒服。
有了 chocolatey 和 homebrew,以后再安裝任何一款軟件,只要倉庫里有,只需要一行命令就可以搞定了,還是非常值得給大家安利的。
-
JAVA
+關注
關注
19文章
2976瀏覽量
105223 -
Shell
+關注
關注
1文章
366瀏覽量
23476
原文標題:發現一款好用到爆的Shell工具,被驚艷到了!
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
curl wget bond:深入解析命令行工具的差異與應用場景
圖形用戶界面與命令行接口的比較
Mobaxterm 的命令行使用方法
APM32F411板的python+pyocd命令行操作
![APM32F411板的python+pyocd<b class='flag-5'>命令行</b>操作](https://file1.elecfans.com/web2/M00/0A/AB/wKgaomcSGo6ACHfMAABgDG6E4iw831.jpg)
Windows操作系統中的常用命令
![Windows操作系統中的常用<b class='flag-5'>命令</b>](https://file1.elecfans.com/web2/M00/01/0A/wKgZomazJUWAJFZVAAAvbHDDnEo201.png)
請問CY8CKIT-005-A是否支持命令行編程?
Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2無法使用操作系統內置的網絡管理器管理Wi-Fi如何解決?
鴻蒙ArkUI-X跨平臺開發:【命令行工具(ACE Tools)】
![鴻蒙ArkUI-X跨平臺開發:【<b class='flag-5'>命令行</b>工具(ACE Tools)】](https://file1.elecfans.com/web2/M00/E7/65/wKgaomZHTraAVXmkAABqDt1o7NY191.jpg)
高效云端管理的秘訣——華為云命令行工具 KooCLI
![高效云端<b class='flag-5'>管理</b>的秘訣——華為云<b class='flag-5'>命令行</b>工具 KooCLI](https://file1.elecfans.com/web2/M00/E4/97/wKgaomY8-LeAb9B6AAUazYvO40U491.png)
鴻蒙OpenHarmony南向:【Hi3516標準系統入門(命令行方式)】
![鴻蒙OpenHarmony南向:【Hi3516標準系統入門(<b class='flag-5'>命令行</b>方式)】](https://file1.elecfans.com/web2/M00/E1/C7/wKgZomY52MmAS66XAAADCp1_zEY399.jpg)
評論