1 环境搭建
1 环境搭建 (Ubuntu 20.04)#
- 添加普通用户
useradd going # 创建 going 用户,通过 going 用户登录开发机进行开发
passwd going # 设置密码
Changing password for user going.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- 添加sudoers
# 普通用户就可以(不用密码)通过 sudo 命令来暂时获取 Root 的权限
sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
- $HOME/.bashrc (根据个人需要选择是否配置)
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
# Basic envs
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd $WORKSPACE # 登录系统,默认进入 workspace 目录
- 配置Git
git config --global user.name "bmxm" # 用户名改成自己的
git config --global user.email "bmwxm@outlook.com" # 邮箱改成自己的
git config --global credential.helper store # 设置 Git,保存用户名和密码
git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
git config --global core.quotepath off # 在 Git 中,非 ASCII 字符也叫Unusual 字符,在 Git 输出到终端的时候默认是用 8 进制转义字符输出的(以防乱码),但现在的终端多数都支持直接显示非 ASCII 字符,所以我们可以关闭掉这个特性
# 如果你觉得访问 github.com 太慢,可以通过国内 GitHub 镜像网站来访问,配置方法如下
# 注意,通过镜像网站访问仅对 HTTPS 协议生效,对 SSH 协议不生效,并且 github.com.cnpmjs.org 的同步时间间隔为 1 天
git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
# GitHub 限制最大只能克隆 100M 的单个文件,为了能够克隆大于 100M 的文件,我们还需要安装 Git Large File Storage
git lfs install --skip-repo
- 配置Go环境
wget https://golang.google.cn/dl/go1.17.2.linux-amd64.tar.gz -O /tmp/go1.17.2.linux-amd64.tar.gz
mkdir -p $HOME/go
tar -xvzf /tmp/go1.17.2.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.17.2
追加环境变量
tee -a $HOME/.bashrc <<'EOF'
export GOVERSION=go1.17.2 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$GOROOT/gopath # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
- ProtoBuf 编译环境安装
# 第一步:安装 protobuf
cd /tmp/
git clone --depth=1 https://github.com/protocolbuffers/protobuf
cd protobuf
./autogen.sh
# 可能会提示./autogen.sh: 41: autoreconf: not found
# 执行 sudo apt-get install autoconf automake libtool
./configure
# 可能会提示 configure: error: C++ preprocessor "/lib/cpp" fails sanity check
# 执行 sudo apt-get install build-essential g++
make
sudo make install
protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功
# 可能会报错 : protoc: error while loading shared libraries: libprotoc.so.30: cannot open shared object file: No such file or directory
# 再.bashrc 中加 export LD_LIBRARY_PATH=/usr/local/lib
# bash 或 source
# 第二步:安装 protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go
- 配置NeoVim
# 老版本的Ubuntu可能需要先安装PPA
# sudo apt-get install software-properties-common
sudo apt-add-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
# 配置 nvim 的别名为 vi,这样当我们执行 vi 时,Linux 系统就会默认调用 nvim。同时,配置 EDITOR 环境变量可以使一些工具
tee -a $HOME/.bashrc <<'EOF'
# Configure for nvim
export EDITOR=nvim # 默认的编辑器(git 会用到)
alias vi="nvim"
EOF
- 配置SpaceVim
# SpaceVim是一个开源的模块化配置集合,可以通过它很方便的打造出适用于各种开发场景的IDE。
curl -sLf https://spacevim.org/cn/install.sh | bash
# SpaceVim 安装 Go 工具
# 这里提供了两种方式
# 1 - Vim 底线命令安装:vi test.go,然后执行::GoInstallBinaries 安装。
# 2 - 拷贝工具:直接将整理好的工具文件拷贝到$GOPATH/bin 目录下
cd /tmp
wget https://marmotedu-1254073058.cos.ap-beijing.myqcloud.com/tools/gotools-for-spacevim.tgz
mkdir -p $GOPATH/bin
tar -xvzf gotools-for-spacevim.tgz -C $GOPATH/bin
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)