Golang 學習:基礎命令
本文內容整理自郝林老師的《go語言第一課》
一、go run
用於運行命令源碼文件,只能接收一個命令源碼文件以及若干個庫源碼文件作爲參數。先將源碼文件編譯成臨時文件,然後再運行這個臨時文件,臨時文件可能包括可執行文件和歸檔文件。這些臨時文件如果不做命令標記,會在被運行後被刪除。
下面是go run
命令常用的標記:
–a : 強制編譯相關代碼文件,無論代碼文件是否有更新
–n : 打印編譯過程中所需要的命令,但是不執行它
–p N : 並行編譯,其中N爲CPU邏輯個數
–v : 列出被編譯的代碼包名稱
–work : 顯示編譯時創建的臨時工作目錄,注意這些目錄並不會刪除
–x : 打印編譯過程中需要的命令,並執行
二、go build
用於編譯源碼文件或代碼包,編譯非命令源碼文件不會產生結果文件,它只會檢查源碼文件的有效性;go build
編譯命令源碼文件會在當前源碼文件所在目錄下生成可執行文件。
- 執行該命令且不追加任何參數,他會試圖把當前目錄作爲代碼包並編譯
- 以代碼包導入路徑作爲參數,該代碼包及其依賴會被編譯
- 以若干源碼文件作爲參數,只會編譯參數列出的源碼文件,這是需要注意列出源碼文件的完整性
三、go install
go run
用於編譯並安裝代碼包或源碼文件。安裝代碼包會在/<當前工作區>/pkg/<平臺相關目錄>/下生成歸檔文件;安裝命令源碼文件會在當前工作區的bin目錄下或$GOBIN下生成可執行文件。
- 執行該命令且不追加任何參數時,它會試圖把當前目錄作爲代碼包編譯並安裝
- 執行該命令且以代碼包的導入路徑作爲參數時,該代碼包及依賴會被安裝
- 執行該命令且以源碼文件作爲參數,只有這些源碼文件被編譯安裝
四、go get
go get
用於從遠程代碼倉庫下載並安裝代碼包,它所支持的代碼控制系統:
- Git
- SVN
- Mercurial(hg)
- Bazaar
指定的代碼包會被下載到$GOPATH中包含的第一個工作區的src目錄中。
下面是go get
命令常用的標記:
- -d : 只執行下載動作不執行安裝動作
- -fix : 在下載代碼包後先執行修正動作,然後再進行編譯安裝
- -u :利用網絡來更新已有的代碼包及其依賴
注:當使用go get
命令時,其實使用了git等管控工具進行操作。加-u
標記會remote後執行pull的操作。可以加上-x
標記查看它所使用命令。
五、推薦
go run
,go build
,go install
,go get
是經常會使用到的一些基礎命令,另外從github上會有更加詳細和全面的命令。可以瀏覽一遍,在實際遇到問題的時候可以參考。
參考:
郝林 《go語言第一課》
郝林老師的GitHub https://github.com/hyper0x/go_command_tutorial