---
# System prepended metadata

title: Linux环境配置

---

# Linux环境配置

## 系统配置

### 代理设置

```bash=
# 设置代理（通过宿主机）
export http_proxy="http://192.168.31.14:7890"
export https_proxy=$http_proxy

# 取消代理
unset http_proxy
unset https_proxy
```

**提示：** 可将代理配置添加到 `~/.bashrc` 或 `~/.zshrc` 以永久生效。

### APT 软件源

- 镜像源
    - [阿里巴巴开源镜像](https://developer.aliyun.com/mirror/)

```bash=
# 备份原有源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 写入阿里云镜像源
# 适用于 **Ubuntu 22.04 (Jammy)**
sudo bash -c 'cat << EOF > /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF'

# 更新软件源
sudo apt update && sudo apt upgrade -y
```


### 时区配置

```bash=
# 交互式选择时区
sudo tzselect

# 设置为上海时区
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 或使用 timedatectl（推荐）
sudo timedatectl set-timezone Asia/Shanghai
```

## 软件

### Samba

```bash=
# 1. 安装 Samba
sudo apt install samba samba-common -y

# 2. 编辑配置文件
sudo vim /etc/samba/smb.conf
```

在文件末尾添加：

```ini=
[share]
comment = Share Folder
browseable = yes
path = /home/share  # 建议使用具体路径而非根目录
create mask = 0755
directory mask = 0755
valid users = your_username  # 指定允许访问的用户
writable = yes
```

```bash=
# 3. 创建共享目录
sudo mkdir -p /home/share
sudo chmod 755 /home/share

# 4. 添加 Samba 用户
sudo smbpasswd -a your_username

# 5. 重启服务
sudo systemctl restart smbd
sudo systemctl enable smbd  # 开机自启
```

**安全建议：**
- 避免共享根目录 `/`
- 使用 `valid users` 限制访问
- 设置合理的权限掩码

### Zsh + Oh My Zsh

- Zsh
    - [Install oh-my-zsh](https://ohmyz.sh/#install)

```bash=
# 1. 安装 Zsh
sudo apt install zsh -y

# 2. 设置为默认 Shell
chsh -s $(which zsh)

# 3. 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 4. 推荐插件（编辑 ~/.zshrc）
plugins=(
  git
  sudo
  z
  extract
  command-not-found
  colored-man-pages
  zsh-autosuggestions
  zsh-syntax-highlighting
  zsh-completions
  autojump
  docker
  docker-compose
)
```

#### 主题

- Powerlevel10k
    - [romkatv/powerlevel10k](https://github.com/romkatv/powerlevel10k)

```shell=
# 安装主题（Zsh）
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

# 编辑 ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"
```

#### 常用插件说明

| 插件 | 功能 |
|------|------|
| **git** | Git 命令别名和自动补全 |
| **sudo** | 按两次 ESC 在命令前添加 sudo |
| **z** | 快速跳转到常用目录 |
| **extract** | 统一的解压命令 `x filename` |
| **zsh-autosuggestions** | 根据历史命令自动建议（灰色提示） |
| **zsh-syntax-highlighting** | 命令语法高亮显示 |
| **colored-man-pages** | 彩色 man 手册页 |
| **autojump** | 使用 `j` 命令快速跳转 |
| **command-not-found** | 命令未找到时提示安装包 |


#### 需要单独安装的热门插件

- zsh-autosuggestions
    - 自动建议
- zsh-syntax-highlighting
    - 语法高亮
- zsh-completions
    - 额外的自动补全
- autojump
    - 快速目录跳转

```bash=
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# zsh-completions
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions

# autojump
apt install autojump
```

### Warp

```shell=
sudo apt-get install wget gpg
wget -qO- https://releases.warp.dev/linux/keys/warp.asc | gpg --dearmor > warpdotdev.gpg
sudo install -D -o root -g root -m 644 warpdotdev.gpg /etc/apt/keyrings/warpdotdev.gpg
sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/warpdotdev.gpg] https://releases.warp.dev/linux/deb stable main" > /etc/apt/sources.list.d/warpdotdev.list'
rm warpdotdev.gpg
sudo apt update && sudo apt install warp-terminal
```

## Debian/Ubuntu

### 基础工具

```bash=
# 网络工具
sudo apt install net-tools curl wget -y

# 编辑器
sudo apt install vim -y

# SSH 服务
sudo apt install openssh-server -y
sudo systemctl enable ssh

# 文件树显示
sudo apt install tree -y

# Git
sudo apt install git -y
```

### 桌面应用

#### Google Chrome

```bash=
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb -y
```

#### Visual Studio Code

```bash=
# 方法1：使用 Snap
sudo snap install --classic code

# 方法2：使用官方仓库
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code -y
```

#### Clash 代理工具

```bash=
# 下载并安装
wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz
gunzip clash.gz
chmod +x clash

# 移动到系统目录
sudo mkdir -p /opt/bin
sudo mv clash /opt/bin/

# 创建配置目录
mkdir -p ~/.config/clash
cd ~/.config/clash

# 下载配置文件（需要自行获取订阅链接）
# wget -O config.yaml "your_subscription_url"

# 运行 Clash
/opt/bin/clash -d ~/.config/clash
```

**设置开机自启（可选）：**

```bash=
sudo tee /etc/systemd/system/clash.service > /dev/null <<EOF
[Unit]
Description=Clash Daemon
After=network.target

[Service]
Type=simple
User=$USER
ExecStart=/opt/bin/clash -d /home/$USER/.config/clash
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable clash
sudo systemctl start clash
```

## FAQ

### 修复 sudo 权限问题

当普通用户无法使用 sudo 时：

```bash=
# 1. 切换到 root
su root

# 2. 编辑 sudoers 文件
visudo

# 3. 添加以下行（替换 username 为实际用户名）
username ALL=(ALL:ALL) ALL

# 或者将用户添加到 sudo 组
usermod -aG sudo username
```

**注意：** 使用 `visudo` 而非直接编辑 `/etc/sudoers`，可防止语法错误导致系统问题。
