这份配置清单包含了 Ubuntu 系统基础更新、终端美化、开发工具链安装以及常用网络服务(SSH、Samba)的搭建,文末附带自动化配置脚本。
1. 基础系统配置
1.1 替换国内软件源
为了提高软件下载速度,首先将系统的 APT 软件源替换为以下任意国内镜像源。
清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
中科大镜像:https://mirrors.ustc.edu.cn/ubuntu/
腾讯云镜像:https://mirrors.cloud.tencent.com/ubuntu/
阿里云镜像:https://mirrors.aliyun.com/ubuntu/
华为镜像:https://mirrors.huaweicloud.com/ubuntu/
1.2 更新系统
1.2.1 关闭 Daemons using outdated libraries 弹窗
在一个全新安装的 Ubuntu 22.04 LTS 上,每次使用 apt 安装或更新软件包时,会出现一个 Daemons using outdated libraries 弹窗:
Daemons using outdated libraries 弹窗这是 Ubuntu 22.04 中的新功能,它是由系统工具 needrestart 带来的新特性,needrestart 现在是 Ubuntu 中 apt-get 升级过程的一部分。默认情况下,此设置为 “interactive” (交互式)模式,会导致脚本中断。
修改这个模式配置,我们编辑/etc/needrestart/needrestart.conf文件,
1
| sudo vi /etc/needrestart/needrestart.conf
|
找到下面的这行:
needrestart.conf 修改前这里有三个可选配置:
1
2
3
| (l)ist only: 只列出需要重启的服务,不重启
(i)nteractive: 交互式询问需要重启的服务(默认值)
(a)utomatically: 自动重启服务
|
直接修改成:
needrestart.conf 修改后之后系统更新就不会再弹出提示。
1.2.2 更新系统
1
| sudo apt clean && sudo apt update && sudo apt upgrade -y
|
2. 终端环境定制 (Shell)
为了让终端更加美观并方便快速配置代理,我们需要修改当前用户的~/.bashrc文件。使用 vim 打开~/.bashrc文件,追加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| # ====================== Git Prompt ======================
parse_git_info() {
local gitdir
gitdir=$(git rev-parse --absolute-git-dir 2>/dev/null) || return 0
local safe_name="${gitdir//[^a-zA-Z0-9]/_}"
local var_time="_GIT_CACHE_TIME_${safe_name}"
local var_data="_GIT_CACHE_DATA_${safe_name}"
local cached_time="${!var_time}"
if [[ -n "$cached_time" ]] && (( SECONDS - cached_time < 2 )); then
printf "%s" "${!var_data}"
return 0
fi
local status_output
status_output=$(GIT_OPTIONAL_LOCKS=0 git status --porcelain=v1 --branch 2>/dev/null) || return 0
local first_line="${status_output%%$'\n'*}"
local files="${status_output#*$'\n'}"
[[ "$files" == "$first_line" ]] && files=""
local branch="" ahead="" behind="" dirty=""
local branch_info="${first_line### }"
branch="${branch_info%%...*}"
if [[ "$branch" == "No commits yet on "* ]]; then
branch="${branch#No commits yet on }"
elif [[ "$branch" == "HEAD (no branch)" ]]; then
branch=":$(git rev-parse --short HEAD 2>/dev/null)"
fi
if [[ "$first_line" =~ ahead\ ([0-9]+) ]]; then
ahead="+${BASH_REMATCH[1]}"
fi
if [[ "$first_line" =~ behind\ ([0-9]+) ]]; then
behind="-${BASH_REMATCH[1]}"
fi
if [[ -n "$files" ]]; then
local re_staged=$'(^|\n)[^ ?]. '
local re_unstaged=$'(^|\n).[^ ?] '
local re_untracked=$'(^|\n)\\?\\? '
[[ "$files" =~ $re_staged ]] && dirty+="+"
[[ "$files" =~ $re_unstaged ]] && dirty+="*"
[[ "$files" =~ $re_untracked ]] && dirty+="?"
fi
local c_cyan=$'\001\e[36m\002'
local c_reset=$'\001\e[0m\002'
local output=" ${c_cyan}(${branch}${dirty}${ahead}${behind})${c_reset}"
printf -v "$var_time" "%s" "$SECONDS"
printf -v "$var_data" "%s" "$output"
printf "%s" "$output"
}
# ====================== PS1 ======================
export PS1="\[\e[1;32m\]\u\[\e[0m\]@\[\e[1;31m\]\h\[\e[0m\] \[\e[33m\]\w\$(parse_git_info)\[\e[0m\]\n$ "
# Proxy
alias proxy='export {http,https,all,HTTP,HTTPS,ALL}_proxy="http://127.0.0.1:7897"; echo "Proxy enabled -> 127.0.0.1:7897"'
alias unproxy='unset {http,https,all,HTTP,HTTPS,ALL}_proxy; echo "Proxy disabled"'
|
保存并退出后,执行source ~/.bashrc命令使配置生效。
3. 安装开发环境与工具库
安装常用的开发工具、系统工具和依赖库:
1
2
3
4
| sudo apt install -y \
git curl wget zip unzip tree build-essential ninja-build \
python3-pip pipx libssl-dev valgrind samba samba-common \
openssh-server gnome-tweaks
|
4. 安装 CMake
4.1 通过源码编译安装
注意
上一步安装的build-essential和libssl-dev是编译 CMake 的必要前提。
1
2
3
4
5
6
7
8
9
10
| cd /tmp
# 下载 CMake 源码包 (以 v4.1.5 为例)
wget https://github.com/Kitware/CMake/releases/download/v4.1.5/cmake-4.1.5.tar.gz
# 解压并进入目录
tar -zxvf cmake-4.1.5.tar.gz
cd cmake-4.1.5
# 配置、编译与安装 (使用多线程加速编译)
./bootstrap
make -j$(nproc)
sudo make install
|
4.2 安装官方二进制版本
1
2
3
4
5
6
7
| cd /tmp
wget https://github.com/Kitware/CMake/releases/download/v4.1.5/cmake-4.1.5-linux-x86_64.tar.gz
tar -zxvf cmake-4.1.5-linux-x86_64.tar.gz
sudo rm -rf /opt/cmake-4.1.5-linux-x86_64
sudo mv cmake-4.1.5-linux-x86_64 /opt/
sudo ln -sf /opt/cmake-4.1.5-linux-x86_64/bin/* /usr/local/bin/
rm cmake-4.1.5-linux-x86_64.tar.gz
|
5. 配置网络与共享服务
5.1 SSH 远程登录配置
确保 SSH 服务处于运行状态,并配置免密登录:
1
2
3
4
| # 启动 SSH 服务
sudo systemctl enable --now ssh
# 查看 SSH 状态
sudo systemctl status ssh
|
配置免密登录
在客户端机器(你用来连接这台服务器的电脑)上执行以下命令,将公钥发送到本机:
1
| ssh-copy-id username@ip
|
5.2 Samba 局域网文件共享配置
配置 Samba 以便在局域网内与其他设备(如 Windows/Mac)共享目录。
- 编辑配置文件:
1
| sudo vim /etc/samba/smb.conf
|
在文件最末尾追加以下配置(请将xxx替换为你的实际用户名):
1
2
3
4
5
6
7
8
9
10
| [Share]
comment = Shared Folder
path = /home/xxx
valid users = xxx
directory mask = 0775
create mask = 0775
public = yes
writable = yes
available = yes
browseable = yes
|
- 设置 Samba 用户密码并重启服务:
(注:Samba 的用户必须已经是系统中的合法用户)
1
2
3
4
| # 为用户 xxx 设置 Samba 访问密码
sudo smbpasswd -a xxx
# 重启 Samba 服务使配置生效
sudo systemctl restart smbd
|
6. 配置 Git
6.1 初次配置
安装好 Git 后,需要首先设置你的全局用户名和邮箱地址,并开启凭证缓存功能,以免每次推送代码都要反复输入密码。
设置全局用户名和邮箱
全局配置意味着当前 Ubuntu 用户下所有的 Git 仓库默认都会使用此身份进行提交:
1
2
3
4
| # 设置你的 Git 用户名
git config --global user.name "Git 用户名"
# 设置你的 Git 邮箱
git config --global user.email "Git 邮箱@example.com"
|
记住密码(凭证管理)
为了避免每次git push或git pull都被要求输入账号和密码(或 Personal Access Token),可以开启长期存储功能:
1
2
| # 配置 Git 在本地存储密码
git config --global credential.helper store
|
注意
运行此命令后,当你第一次执行远程操作并输入正确的账号密码后,Git 会将凭证以明文形式保存在当前用户主目录下的~/.git-credentials文件中。此后操作即可免密。
检查当前配置
运行以下命令确认配置是否成功写入:
1
| git config --global --list
|
6.2 更改 Git 用户
6.2.1 全局更换 Git 用户(彻底替换当前账号)
- 覆盖旧的用户名和邮箱
1
2
| git config --global user.name "新的用户名"
git config --global user.email "新的邮箱@example.com"
|
清除旧的账号密码缓存(关键步骤)
编辑~/.git-credentials文件,删除对应账号的那一行;或者直接删除该文件。
7.2.2 局部更改 Git 用户(仅针对某一个项目)
- 进入目标项目目录
- 在项目内设置独立的用户名和邮箱(不要加 –global)
1
2
| git config user.name "工作用户名"
git config user.email "工作邮箱@company.com"
|
注意
- 在 Git 中,局部配置的优先级高于全局配置。在这个特定目录内,Git 会优先使用刚设置的工作邮箱进行提交,而其他目录依然默认使用全局邮箱。
- 可通过
git config --local --list确认该项目是否已成功应用了独立配置。
7. 配置完成
至此,Ubuntu 基础开发环境已全部配置完毕!
8. Ubuntu 初始化与开发环境配置脚本
警告
执行此脚本会对系统进行以下配置,请确保符合你的需求。
- APT 极速源与官方链:
- 自动切换至清华大学镜像站 (TUNA)。
- Kitware 官方仓库直连:通过 APT 获取最新版本 CMake 并支持后续自动升级。
- 自动屏蔽
needrestart 交互,实现全程无干预安装。
- 后端开发工具链:
- 核心构建:
build-essential, ninja-build, cmake, gdb, valgrind。 - 中间件与通信:
protobuf, zookeeper, openssl, docker.io(自动配置用户组)。 - 网络运维利器:内置
ss, tcpdump, iperf3, jq 等高性能网络调试工具。
- 极致性能终端环境:
- 零开销 Git Prompt:重写了
parse_git_info 函数,采用单次系统调用、缓存机制与纯 Bash 正则解析,并支持空仓库、游离指针状态显示。 - 工程化别名:内置一键开关代理命令
proxy/unproxy。
方式一:在线一键安装(推荐)
1
| bash <(curl -sL aarons.pages.dev/ubuntu-setup.sh)
|
方式二:下载到本地并执行
1
| curl -sLO aarons.pages.dev/ubuntu-setup.sh && chmod +x ubuntu-setup.sh && ./ubuntu-setup.sh
|
注意:
安装完成后,请执行 source ~/.bashrc 使终端配置生效;如需 Docker 权限生效,请重新登录系统。