1.写测试demo
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", hello)
server := &http.Server{
Addr: ":8888",
}
fmt.Println("server startup...")
if err := server.ListenAndServe(); err != nil {
fmt.Printf("server startup failed, err:%v\n", err)
}
}
func hello(w http.ResponseWriter, _ *http.Request) {
w.Write([]byte("hello golang.com!"))
}
2.编译成可执行文件demo
用makefile写
.PHONY: all build run gotool clean help
BINARY="appdemo"
all: gotool build
build:
#这个应该是mac上的命令,我们用win,用下面即可
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./bin/${BINARY}
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -ldflags "-s -w" -o ./bin/${BINARY}
目录结构如下,在当前项目目录命令行make命令即可生成appdemo文件,无后缀Linux可执行文件
Windows文件打包上传到Linux
在xshell里面拖拽也行(使用于单个文件),多个文件上传就要打包了,打包步骤如下:
1.在win先用把文件打包成xxx.tar
2.再把xxx.tar打包成xxx.tar.gz
3.用xshell将文件上传到Linux
4.解压文件
1、压缩命令:
命令格式:
tar -zcvf 压缩文件名 .tar.gz 被压缩文件名
可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。
2、压缩命令:
tar -zxvf xxx.tar.gz -C /xxx/
-z是使用gzip来解压或者压缩文件
-x是释放文件,或者说叫解压文件
-v是报告文件详情信息,如果不加这一条的话,就不会一直滚动的信息条了,建议加上,如果出了错还是会更加直观的看出来是什么原因
-f是指定名字
后续跟的是要解压的文件名,-C是指定目录,后续跟的也就是目标目录
3、解压缩命令:
命令格式:
tar -zxvf 压缩文件名.tar.gz
解压缩后的文件只能放在当前的目录。
4、运行程序
打开腾讯云安全组 --自定义 --tcp --8888
设置appdemo权限
chmod 777 ./appdemo
运行程序:Linux程序没有后缀,执行./文件路径即可
./appdemo
关闭终端不停止运行
sudo nohup ./bin/appdemo > nohup_appdemo.log 2>&1 &
杂项问题解决
Linux端口被占用怎么解决