首页/技术分享/
轻松搭建高效远程开发机:实现编程无界限
轻松搭建高效远程开发机:实现编程无界限

最近,华为云的云服务器即将过期,而且centos已经停止维护。恰逢阿里推出了超值的99元一年优惠机器,我决定把开发机迁移到阿里云,并基于debian系统重新配置。接下来,我就分享一下这个迁移和配置过程。

基础配置

首先,使用root用户登录到新的Linux服务器上。为了确保服务器的安全性和易用性,我们需要进行一些基础配置。

  1. 创建普通用户。

为了避免使用root用户执行日常操作(毕竟,谁也不能100%保证自己不会手误执行rm -rf / *这样的命令!),我们首先创建一个普通用户。这里以mafan为例:

# 创建 mafan 用户,并指定用户根目录为  /home/mafan,登录 shell 为 /bin/bash
useradd -m -d /home/mafan -s /bin/bash mafan 
# 设置 mafan 用户的登录密码 Changing password for user mafan. 
passwd mafan 

创建完普通用户之后,我们就可以使用普通用户 mafan 登录系统,并执行各类操作,使用普通用户操作 Linux,因为权限有限,可以最大限度确保 Linux 服务器的安全。

 

  1. 赋予普通用户无密码 sudo 权限。

有时,普通用户也需要执行一些需要root权限的操作。为了安全起见,我们可以通过配置sudoers文件,允许mafan用户无密码使用sudo命令:

echo 'mafan ALL=(ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers

这条命令会将mafan ALL=(ALL) NOPASSWD: ALL添加到/etc/sudoers文件的末尾,使mafan用户可以无密码使用sudo

  1. 配置 $HOME/.bashrc 文件

完成以上两步,就可以使用刚创建的普通用mafan登录服务器了。
我们登录新服务器后的第一步就是配置 $HOME/.bashrc 文件,以使 Linux 登录 Shell 更加易用,例如:配置 LANG 解决中文乱码;配置 PS1 可以使命令行提示符显示更简洁。配置后的内容如下:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# Enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias ll='ls --color=auto -l'
    alias la='ls --color=auto -A'
    alias l='ls --color=auto -lA'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# Some aliases to prevent mistakes
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Create a default workspace directory to keep all work files in one place
if [ ! -d $HOME/workspace ]; then
    mkdir -p $HOME/workspace
fi

# User-specific environment settings
# Basic environment
# Set system language to en_US.UTF-8 to avoid Chinese character display issues in the terminal
export LANG="en_US.UTF-8"
# The default PS1 setting displays the full path, to prevent it from becoming too long, 
# it now shows "username@dev last_directory_name"
export PS1='[\u@dev \W]\$ '
# Set the workspace directory
export WORKSPACE="$HOME/workspace"
# Add $HOME/bin directory to the PATH variable
export PATH=$HOME/bin:$PATH

# 默认进入工作目录
cd $WORKSPACE

通过 vi 命令打开文件 $HOME/.bashrc 把以上内容粘贴进文件即可。

配置好 $HOME/.bashrc 文件后,我们就可以执行 bash 命令将配置加载到当前 Shell 中了。

上述 Bash 脚本会自动创建工作目录 workspace,以后所有的工作都可以在这个目录下展开。这样做可以带来以下几点好处:

  • 整洁有序:保持$HOME目录的整洁,便于文件查找和分类。

  • 灵活扩展:如果/分区空间不足,可以轻松将整个workspace目录移动到其他分区,并通过软连接保持访问便捷。

  • 简化备份:想要备份所有工作文件?直接打包workspace就搞定了!

同时,我们也优化了PATH变量的配置,确保了命令的优先匹配,提升了工作效率。

通用工具安装

接下来是安装我们日常开发中常用的工具。

  1. 依赖工具一键安装。

你可以在 Debian 系统上通过 apt 命令来安装需要的依赖工具,安装命令如下:

sudo apt update
sudo apt install -y build-essential jq tclsh gettext bc htop tree curl ripgrep 

这些工具将为我们后续的开发提供强大的支持。

  1. Git安装与配置。

如果对 git 版本没有特殊要求话,直接执行以下命令安装:

sudo apt install -y git

完成后可以直接执行以下命令来配置 Git:

# 用户名改成自己的
git config --global user.name "dengmengmian(麻凡)"    
# 邮箱改成自己的
git config --global user.email "my@dengmengmian.com"    
# 设置 git,保存用户名和密码
git config --global credential.helper store    
# 解决 Git 中 'Filename too long' 的错误
git config --global core.longpaths true 

配置完后可通过git config --list 查看。

开发环境搭建

Go 编译环境安装和配置

安装 Go 的编译环境步骤比较简单,你只需下载源码包、设置相应的环境变量即可。具体步骤如下:

  1. 下载安装包。

可以从 Go 语言官方网站下载对应的 Go 安装包以及源码包,下面的命令会下载 go1.22.5 安装包:

wget -P /tmp/ https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
  1. 解压并安装。

执行以下命令解压并安装 Go 编译工具和源码:

mkdir -p $HOME/go
tar -xvzf /tmp/go1.21.5.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.21.5
  1. 配置 $HOME/.bashrc 文件。

你可以执行以下命令,将下列环境变量追加到 $HOME/.bashrc 文件中。

tee -a $HOME/.bashrc <<'EOF'
# Go envs export
# Go 版本设置 
GOVERSION=go1.21.5 
# Go 安装目录 
export GO_INSTALL_DIR=$HOME/go 
# GOROOT 设置 
export GOROOT=$GO_INSTALL_DIR/$GOVERSION
# GOPATH 设置 
export GOPATH=$WORKSPACE/golang
# 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中 
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
# 开启 Go moudles 特性
export GO111MODULE="on"
# 安装 Go 模块时,代理服务器设置
export GOPROXY=https://goproxy.cn,direct  
export GOPRIVATE= 
# 关闭校验 Go 依赖包的哈希值 
export GOSUMDB=off 
EOF
  1. 测试是否安装成功。

如果你执行 go version 命令可以成功输出 Go 的版本,就说明 Go 编译环境安装成功。具体命令如下:

go version

Node 安装

不会前端的后端不是好的后端,所以 Node 也是必备的,具体步骤如下:

  1. 下载安装包。

从官方网站下载对应的安装包以及源码包,下面的命令会下载 v20.11.0 安装包:

wget -P /tmp/ https://nodejs.org/dist/v20.11.0/node-v20.11.0-linux-x64.tar.xz
  1. 解压并安装。

执行以下命令解压并安装 Node 编译工具和源码:

mkdir -p $HOME/node
tar -xvf /tmp/node-v20.11.0-linux-x64.tar.xz -C $HOME/node
mv $HOME/node/node-v20.11.0-linux-x64/ $HOME/node/nodev20.11.0

3.软连至/usr/local/bin/

sudo ln -s $HOME/node/nodev20.11.0/bin/node /usr/local/bin/
sudo ln -s $HOME/node/nodev20.11.0/bin/npm /usr/local/bin/
  1. 测试是否安装成功。

执行以下命令能成功输出版本信息,就说明安装成功。具体命令如下:

node -v
npm -v

安装 pm2

使用 pm2 主要是用来简化程序的管理、监控和部署。安装命令如下 :

npm install -g pm2
# 软连
sudo ln -s $HOME/node/nodev20.11.0/bin/pm2 /usr/local/bin/

开发工具安装

开发环境已搭建好,我们用什么工具开发呢?个人的主力开发工具是使用 Neovim。有时会使用 goland 远程连接开发机开发。所以这里主要讲下 Neovim 的配置:

1.安装 neovim,命令如下:

wget -P /tmp/ https://github.com/neovim/neovim/releases/download/v0.9.5/nvim-linux64.tar.gz
  1. 解压并安装。

执行以下命令解压并安装 neovim 编译工具和源码:

mkdir -p $HOME/neovim
tar -xzvf /tmp/nvim-linux64.tar.gz -C $HOME/neovim
mv $HOME/neovim/nvim-linux64/ $HOME/neovim/neovimv0.9.5

3.软链至/usr/local/bin/

sudo ln -s $HOME/neovim/neovimv0.9.5/bin/nvim /usr/local/bin/ 

4.设置别名:

`echo 'alias vim="/usr/local/bin/nvim"' | sudo tee -a ~/.bashrc`
  1. 安装LazyVim。

LazyVim 是一个由 lazy.nvim 驱动的 Neovim 开箱即用配置,且非常轻松定制和扩展您的配置。

# Clone the starter
git clone https://github.com/LazyVim/starter ~/.config/nvim

# Start Neovim!
nvim

 

结语

至此,基于debian系统远程开发机已经完成了基础配置、通用工具安装以及开发环境的搭建。


你可能感兴趣的
深入浅出GO语言(五):Go语言基础数据类型全解析
大家好!欢迎来到本期的深入浅出解析GO系列。今天,我们将全面探讨Go语言中的基础数据类型,它们构成了我们编写高效、稳定代码的基础。
深入浅出Go语言(四):变量与常量的奥秘
在编程的世界里,变量和常量就像是魔法师的魔法棒,它们帮助我们操控数据,实现各种功能。而在Go语言中,这两根魔法棒有着它们独特的魅力和规则。今天,就让我们一起揭开它们的神秘面纱,探索变量与常量的奥秘吧!
深入浅出Go语言(三):编写并运行第一个 Go 程序
对于许多编程新手和专业人士来说,踏入Go语言(也称为Golang)的世界往往是一个令人兴奋的新旅程。Go语言以其简洁、高效和强大的并发处理能力而闻名,正逐渐成为构建现代软件的首选工具之一。今天,我们将一起迈出这个旅程的第一步:编写并运行你的第一个Go程序,同时深入了解Go的编译过程。
深入浅出Go语言(二):Go语言开发工具推荐
在Go语言的学习和开发过程中,选择一款合适的开发工具可以极大地提升编程效率。今天,我们将为大家推荐几款常用的Go语言开发工具,无论你是新手还是专家,都能在这里找到适合你的工具。