初始化root密码
sudo passwd root
创建新用户
sudo adduser jarvan1
sudo passwd jarvan1
如果是本地 wsl 或者私人服务器你可以直接使用root开发
$ wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 1
Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
$ ubuntu1804.exe config --default-user root
(adduser 是脚本,会自动创建文件夹, 比 useradd 方便)
sudoer
切换到 root 账号
tee -a /etc/sudoers <<'EOF'
# jarvan1 免密 sudo
jarvan1 ALL=(ALL) NOPASSWD:ALL
EOF
(root权限执行, jarvan1 这里是你的用户名)
创建你的工作区
mkdir $HOME/code
(所有代码都放到这里,后面要迁移比较方便)
apt国内镜像源
查看版本号
lsb_release -a
再下面的地址找到自己版本的镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
备份原来的镜像源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk
将原内容删除
sudo rm /etc/apt/sources.list
替换为新的配置内容
sudo vim /etc/apt/sources.list
# ubuntu20
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
刷新
sudo apt-get update
安装常用工具
sudo apt install net-tools -y
sudo apt install git -y
sudo apt install make -y
sudo apt install automake -y
sudo apt install cmake -y
sudo apt install telnet -y
sudo apt install gcc -y
sudo apt install g++ -y
sudo apt install libtool -y
sudo apt install unzip -y
git
安装
sudo apt install git -y
或者手动安装安装高版本的git TODO:
配置
git config --global user.name "dengjiawen"
git config --global user.email "dengjiawenxxx@gmail.com"
git config --global credential.helper store
git config --global core.longpaths true
tee -a ~/.gitconfig<<'EOF'
[core]
editor=vim
EOF
其次,如果你觉得访问 github.com 太慢,可以通过国内 GitHub 镜像网站来访问,配置方法如下(这个镜像同步更新有1天的延时):
git config --list
最后,GitHub 限制最大只能克隆 100M 的单个文件,为了能够克隆大于 100M 的文件,我们还需要安装 Git Large File Storage,安装方式如下:
git lfs install --skip-repo
go
下载指定版本的go
wget https://golang.google.cn/dl/go1.18.2.linux-amd64.tar.gz -O /tmp/go1.18.2.linux-amd64.tar.gz
解压和安装
mkdir -p $HOME/go
tar -xvzf /tmp/go1.18.2.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.18.2
配置环境变量
tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.18.2 # Go 版本设置
export GOROOT=$HOME/go/$GOVERSION # GOROOT 设置
export GOPATH=$HOME/go # 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
source ~/.bashrc
在使用模块的时候,$GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 目录中,也会把 go install 的二进制文件存放在 $GOPATH/bin 目录中。
另外,我们还要将$GOPATH/bin 、$GOROOT/bin 加入到 Linux 可执行文件搜索路径中。这样一来,我们就可以直接在 bash shell 中执行 go 自带的命令,以及通过 go install 安装的命令。
protobuf
安装 protoc
(1) goctl 工具提供了一键安装的脚本
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
goctl env check -i -f --verbose
(2) 或者手动安装
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protoc-3.20.1-linux-x86_64.zip -O/tmp/protoc-3.20.1-linux-x86_64.zip
unzip /tmp/protoc-3.20.1-linux-x86_64.zip -d /tmp/protoc-3.20.1-linux-x86_64
mv protoc-3.20.1-linux-x86_64/bin/protoc $GOPATH/bin/
安装 protoc-gen-go 和 protoc-gen-go-grpc
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
参考 protoc & protoc-gen-go安装 | go-zero
ssh远程免密登录
安装openssh-server
sudo apt remove openssh-server -y
sudo apt install openssh-server -y
修改配置文件
sudo vim /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
PubkeyAuthentication yes
PasswordAuthentication yes
生成ssh密钥(全部按 enter 默认值就行)
ssh-keygen
重启
sudo service ssh restart
将本机的 id_rsa.pub 添加到 ~/.ssh/authorized_keys 中
vim ~/.ssh/authorized_keys
修改文件权限
chmod 600 ~/.ssh/authorized_keys
vscode ssh
安装 remote ssh, remote wsl
使用对应的插件就行了
如果是 wsl 可以直接连接
如果是 ssh 输入 ssh jarvan1@IP -p PORT 就行
安装 golang 插件
快捷键 F1 然后输入 go tool 安装 go tools, 全选7个包然后安装
安装调试工具(需要确保apt 安装 gcc 等环境, 上面有 apt 安装环境的命令)
go install -v github.com/go-delve/delve/cmd/dlv@latest
写一个demo 按 F5 调试,能成功运行就 OK
关闭 go test 的缓存
打开vscode 设置,搜索 go.testFlags, 编辑 setting.json 增加如下内容, 显示测试输出和关闭测试缓存
"go.testFlags": [
"-v",
"-count=1"
],
docker ubuntu
国内脚本一键安装
curl -sSL https://get.daocloud.io/docker | sudo sh
启动+自启
sudo service docker start
sudo systemctl enable docker
安装docker-compose
sudo apt install docker-compose -y
镜像加速
sudo tee -a /etc/default/docker << 'EOF'
# docker 加速镜像
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
EOF
sudo service docker restart
TODO: docker 常用脚本和命令
参考
https://www.runoob.com/docker/ubuntu-docker-install.html
Docker 镜像加速 | 菜鸟教程 (runoob.com)
docker-desktop
如果使用 window + wsl 开发的话建议在 window 上安装 docker-desktop
docker-desktop: 下载软件即可
docker-desktop: 镜像加速
打开软件->设置->Docker Engine 添加镜像加速
"registry-mirrors": [
"https://registry.docker-cn.com"
]
|