GOLAND常用基本命令介紹


一,go get
    
    -d 只下載不安裝
    -f 只有在你包含了 -u 參數的時候才有效,不讓 -u 去驗證 import 中的每一個都已經獲取了,這對於本地 fork 的包特別有用
    -fix 在獲取源碼之后先運行 fix,然后再去做其他的事情
    -t 同時也下載需要為運行測試所需要的包
    -u 強制使用網絡去更新包和它的依賴包
    -v 顯示執行的命令

    執行go get 命令,在下載依賴包的同時還可以指定依賴包的版本。

    運行go get -u命令會將項目中的包升級到最新的次要版本或者修訂版本;
    運行go get -u=patch命令會將項目中的包升級到最新的修訂版本;
    運行go get [包名]@[版本號]命令會下載對應包的指定版本或者將對應包升級到指定的版本

二,gofmt
    
    go fmt命令本身只有兩個可選參數-n和-x:

            -n僅打印出內部要執行的go fmt的命令;
            -x命令既打印出go fmt命令又執行它,如果需要更細化的配置,需要直接執行 gofmt 命令

三,go install
    go install 只是將編譯的中間文件放在 GOPATH 的 pkg 目錄下,以及固定地將編譯結果放在 GOPATH 的 bin 目錄下
    go install 的編譯過程有如下規律:

       go install 是建立在 GOPATH 上的,無法在獨立的目錄里使用 go install。
       GOPATH 下的 bin 目錄放置的是使用 go install 生成的可執行文件,可執行文件的名稱來自於編譯時的包名。
       go install 輸出目錄始終為 GOPATH 下的 bin 目錄,無法使用-o附加參數進行自定義。
        GOPATH 下的 pkg 目錄放置的是編譯期間的中間文件

四,go build
    Go語言中使用 go build 命令主要用於編譯代碼。在包的編譯過程中,若有必要,會同時編譯與之相關聯的包
    使用“go build+文件列表”方式編譯時,可執行文件默認選擇文件列表中第一個源碼文件作為可執行文件名輸出
    go build -o myexec xx.go yy.go  指定生成的可執行程序名稱
    

五,go clean
    Go語言中go clean命令可以移除當前源碼包和關聯源碼包里面編譯生成的文件,這些文件包括以下幾種:

    執行go build命令時在當前目錄下生成的與包名或者 Go 源碼文件同名的可執行文件。在 Windows 下,則是與包名或者 Go 源碼文件同名且帶有“.exe”后綴的文件。
    執行go test命令並加入-c標記時在當前目錄下生成的以包名加“.test”后綴為名的文件。在 Windows 下,則是以包名加“.test.exe”后綴的文件。
    執行go install命令安裝當前代碼包時產生的結果文件。如果當前代碼包中只包含庫源碼文件,則結果文件指的就是在工作區 pkg 目錄下相應的歸檔文件。如果當前代碼包中只包含一個命令源碼文件,則結果文件指的就是在工作區 bin 目錄下的可執行文件。
    在編譯 Go 或 C 源碼文件時遺留在相應目錄中的文件或目錄 。包括:“_obj”和“_test”目錄,名稱為“_testmain.go”、“test.out”、“build.out”或“a.out”的文件,名稱以“.5”、“.6”、“.8”、“.a”、“.o”或“.so”為后綴的文件。這些目錄和文件是在執行go build命令時生成在臨時目錄中的。
    

六,go run
    go run 命令會編譯源碼,並且直接執行源碼的 main() 函數,不會在當前目錄留下可執行文件

七,go generate
    
        go generate命令格式如下所示:

        go generate [-run regexp] [-n] [-v] [-x] [command] [build flags] [file.go... | packages]
    參數說明如下:

    -run 正則表達式匹配命令行,僅執行匹配的命令;
    -v 輸出被處理的包名和源文件名;
    -n 顯示不執行命令;
    -x 顯示並執行命令;
    command 可以是在環境變量 PATH 中的任何命令。


    執行go generate命令時,也可以使用一些環境變量,如下所示:

    $GOARCH 體系架構(arm、amd64 等);
    $GOOS 當前的 OS 環境(linux、windows 等);
    $GOFILE 當前處理中的文件名;
    $GOLINE 當前命令在文件中的行號;
    $GOPACKAGE 當前處理文件的包名;
    $DOLLAR 固定的$,不清楚具體用途。


八,go test
九,go pprof
     go pprof 可以幫助開發者快速分析及定位各種性能問題,如 CPU 消耗、內存分配及阻塞分析
    go pprof 工具鏈配合 Graphviz 圖形化工具可以將 runtime.pprof 包生成的數據轉換為 PDF 格式
    每三方性能包 github.com/pkg/profile

十,go mod
    go module 是Go語言從 1.11 版本之后官方推出的版本管理工具,並且從 Go1.13 版本開始,go module 成為了Go語言默認的依賴管理工具
    Windows 下開啟 GO111MODULE 的命令為:

        set GO111MODULE=on 或者 set GO111MODULE=auto
    MacOS 或者 Linux 下開啟 GO111MODULE 的命令為:

        export GO111MODULE=on 或者 export GO111MODULE=auto
    go mod download     下載依賴包到本地(默認為 GOPATH/pkg/mod 目錄)
    go mod edit     編輯 go.mod 文件
    go mod graph     打印模塊依賴圖
    go mod init     初始化當前文件夾,創建 go.mod 文件
    go mod tidy     增加缺少的包,刪除無用的包
    go mod vendor     將依賴復制到 vendor 目錄下
    go mod verify     校驗依賴
    go mod why     解釋為什么需要依賴

 GOPROXY
proxy 顧名思義就是代理服務器的意思。大家都知道,國內的網絡有防火牆的存在,這導致有些Go語言的第三方包我們無法直接通過go get命令獲取。GOPROXY 是Go語言官方提供的一種通過中間代理商來為用戶提供包下載服務的方式。要使用 GOPROXY 只需要設置環境變量 GOPROXY 即可。

目前公開的代理服務器的地址有:

    goproxy.io;
    goproxy.cn:(推薦)由國內的七牛雲提供。


Windows 下設置 GOPROXY 的命令為:

go env -w GOPROXY=https://goproxy.cn,direct
MacOS 或 Linux 下設置 GOPROXY 的命令為:

export GOPROXY=https://goproxy.cn
Go語言在 1.13 版本之后 GOPROXY 默認值為 https://proxy.golang.org,在國內可能會存在下載慢或者無法訪問的情況,所以十分建議大家將 GOPROXY 設置為國內的 goproxy.cn。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM