1. Linux系统实践:基于Ubuntu的学习记录
作为一名从Windows转向Linux的老用户,我清楚地记得第一次在Ubuntu终端里敲下ls命令时的新奇感。与图形界面完全不同的操作逻辑,却带来了前所未有的掌控感。这份学习记录不仅是我个人从入门到熟练的成长轨迹,更希望能为同样想探索Linux世界的朋友提供一条可复现的路径。
Ubuntu作为最流行的Linux发行版之一,以其友好的社区支持和丰富的软件生态著称。它完美平衡了易用性和专业性——既能让新手通过图形界面轻松上手,又能满足开发者对命令行的高效需求。在这份记录中,我将重点分享系统安装、环境配置、日常运维三个维度的实战经验,涵盖从分区方案选择到开发环境搭建的全流程细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统安装与初始化配置
2.1 镜像选择与启动盘制作
当前官方推荐使用Ubuntu 22.04 LTS版本(Jammy Jellyfish),LTS代表长期支持版本,会获得5年的安全更新。下载时注意区分架构:
- AMD64:现代64位PC
- ARM64:树莓派等ARM设备
- Cloud:云服务器专用镜像
制作启动盘推荐使用Rufus工具(Windows平台)或dd命令(Linux/Mac):
bash复制# 查看U盘设备标识(如/dev/sdb)
lsblk
# 写入镜像(务必确认设备路径)
sudo dd if=ubuntu-22.04-desktop-amd64.iso of=/dev/sdb bs=4M status=progress
重要提示:操作前务必备份U盘数据,dd命令会清空目标设备所有内容
2.2 磁盘分区方案设计
安装时的分区策略直接影响后期使用体验,建议采用以下方案(以500GB SSD为例):
- EFI系统分区:300MB FAT32(必须)
- 交换空间:物理内存的1-2倍(休眠功能需要)
- /根分区:100GB EXT4(系统核心)
- /home分区:剩余空间 EXT4(用户数据)
bash复制# 安装后检查分区情况
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 vfat FAT32 5ED9-08C3 503.7M 0% /boot/efi
├─nvme0n1p2 swap 1 c6d0e3e1-d20a-4d04-9d6e-5f3b5a5b5b5b [SWAP]
├─nvme0n1p3 ext4 1.0 6b8e4567-e89b-12d3-a456-426655440000 78.2G 12% /
└─nvme0n1p4 ext4 1.0 6b8e4567-e89b-12d3-a456-426655440001 350.1G 5% /home
2.3 首次启动后的必要设置
- 更新软件源并升级系统:
bash复制sudo apt update && sudo apt upgrade -y
- 安装基础工具包:
bash复制sudo apt install -y build-essential git curl wget vim net-tools
- 配置国内镜像源(以阿里云为例):
bash复制sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list
sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list
3. 开发环境配置实战
3.1 Python多版本管理
通过update-alternatives实现Python版本切换:
bash复制# 安装Python3.8和3.10
sudo apt install -y python3.8 python3.10
# 配置备选方案
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
# 交互式选择版本
sudo update-alternatives --config python3
验证版本:
bash复制python3 --version
pip3 --version
3.2 Docker引擎安装与配置
- 卸载旧版本并安装依赖:
bash复制sudo apt remove docker docker-engine docker.io containerd runc
sudo apt install -y ca-certificates curl gnupg lsb-release
- 添加官方GPG密钥:
bash复制sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 设置稳定版仓库:
bash复制echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装Docker引擎:
bash复制sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 验证安装:
bash复制sudo docker run hello-world
3.3 图形化开发工具配置
- 安装VS Code:
bash复制wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install -y code
- 常用插件推荐:
- Python
- Docker
- Remote - SSH
- Chinese (Simplified) Language Pack
4. 系统管理与性能优化
4.1 服务管理实战
使用systemctl管理服务:
bash复制# 查看所有服务状态
systemctl list-units --type=service
# 启停服务示例(以nginx为例)
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl enable nginx # 开机自启
sudo systemctl disable nginx
# 查看服务日志
journalctl -u nginx -f
4.2 网络配置技巧
- 静态IP配置(以Netplan为例):
yaml复制# /etc/netplan/00-installer-config.yaml
network:
ethernets:
ens33:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
version: 2
应用配置:
bash复制sudo netplan apply
- 防火墙管理:
bash复制# 查看状态
sudo ufw status
# 放行端口
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable
4.3 性能监控工具
- 基础命令:
bash复制# 实时监控
top
htop
# 磁盘空间
df -h
# 内存使用
free -h
# 网络流量
nload
- 安装更强大的监控工具:
bash复制sudo apt install -y nmon glances
5. 常见问题解决方案
5.1 显卡驱动问题
NVIDIA显卡驱动安装:
bash复制# 查看推荐驱动版本
ubuntu-drivers devices
# 自动安装推荐版本
sudo ubuntu-drivers autoinstall
# 或手动指定版本
sudo apt install -y nvidia-driver-510
5.2 中文输入法配置
安装搜狗输入法:
bash复制# 添加fcitx仓库
sudo add-apt-repository ppa:fcitx-team/nightly
# 安装输入法框架
sudo apt install -y fcitx fcitx-config-gtk fcitx-sunpinyin fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sogoupinyin
# 下载搜狗deb包
wget "http://cdn2.ime.sogou.com/dl/index/1524572264/sogoupinyin_2.2.0.0108_amd64.deb"
# 安装依赖
sudo apt install -y libopencc2 libopencc1 fcitx-libs libqtwebkit4
# 安装deb包
sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb
sudo apt --fix-broken install
配置环境变量:
bash复制echo 'export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx' >> ~/.profile
5.3 软件包依赖冲突
使用aptitude解决复杂依赖:
bash复制sudo apt install aptitude
sudo aptitude install 包名
清理无用包:
bash复制sudo apt autoremove
sudo apt clean
6. 进阶技巧与自动化
6.1 Shell脚本编写示例
系统备份脚本:
bash复制#!/bin/bash
# 定义备份目录
BACKUP_DIR="/backups"
LOG_FILE="$BACKUP_DIR/backup.log"
# 创建目录
mkdir -p $BACKUP_DIR
# 记录开始时间
echo "Backup started at $(date)" >> $LOG_FILE
# 备份重要目录
tar -czf $BACKUP_DIR/home_$(date +%Y%m%d).tar.gz /home
tar -czf $BACKUP_DIR/etc_$(date +%Y%m%d).tar.gz /etc
# 记录结束时间
echo "Backup completed at $(date)" >> $LOG_FILE
# 删除7天前的备份
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -delete
设置定时任务:
bash复制crontab -e
# 每天凌晨3点执行备份
0 3 * * * /path/to/backup.sh
6.2 SSH安全加固
- 修改默认端口:
bash复制sudo vim /etc/ssh/sshd_config
# 修改 Port 22 为其他端口如 2222
- 禁用root登录:
bash复制# 在sshd_config中添加
PermitRootLogin no
- 使用密钥认证:
bash复制# 本地生成密钥对
ssh-keygen -t ed25519
# 上传公钥到服务器
ssh-copy-id -p 2222 user@server_ip
- 重启服务:
bash复制sudo systemctl restart sshd
7. 开发环境容器化实践
7.1 使用Docker Compose编排服务
示例docker-compose.yml:
yaml复制version: '3'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
POSTGRES_USER: admin
POSTGRES_DB: app_db
volumes:
- pg_data:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
pg_data:
启动服务:
bash复制docker compose up -d
7.2 开发环境容器最佳实践
- 多阶段构建示例(Python项目):
dockerfile复制# 构建阶段
FROM python:3.9-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# 运行阶段
FROM python:3.9-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
- 开发时使用bind mount实现代码热更新:
bash复制docker run -it --rm -v $(pwd):/app -p 8000:8000 my-python-app
8. 系统安全加固指南
8.1 基础安全配置
- 用户权限管理:
bash复制# 创建新用户
sudo adduser devuser
sudo usermod -aG sudo devuser # 授予sudo权限
# 锁定无用账户
sudo passwd -l username
- 配置sudo超时:
bash复制sudo visudo
# 添加以下内容
Defaults timestamp_timeout=30
- 关键文件权限:
bash复制sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
8.2 审计与监控
- 安装审计工具:
bash复制sudo apt install -y auditd lynis
# 运行安全扫描
sudo lynis audit system
- 查看登录记录:
bash复制last
grep 'Failed password' /var/log/auth.log
- 配置fail2ban防御暴力破解:
bash复制sudo apt install -y fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
9. 图形界面优化技巧
9.1 GNOME桌面定制
- 安装扩展管理器:
bash复制sudo apt install -y gnome-shell-extensions gnome-tweaks
- 推荐扩展:
- Dash to Panel:任务栏优化
- Arc Menu:开始菜单增强
- Clipboard Indicator:剪贴板历史
- 主题安装:
bash复制# 安装User Themes扩展
sudo apt install -y gnome-shell-extensions
gnome-extensions enable user-theme@gnome-shell-extensions.gcampax.github.com
# 下载主题到~/.themes
mkdir -p ~/.themes
tar -xzf theme.tar.gz -C ~/.themes
9.2 窗口管理技巧
- 使用快捷键:
- Super+方向键:窗口贴边
- Alt+Tab:应用切换
- Super+A:显示应用菜单
- 自定义快捷键:
bash复制gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['<Super>Down']"
- 工作区管理:
bash复制# 设置4个工作区
gsettings set org.gnome.desktop.wm.preferences num-workspaces 4
10. 硬件兼容性处理
10.1 打印机配置
- 安装CUPS打印服务:
bash复制sudo apt install -y cups
# 允许远程管理
sudo cupsctl --remote-any
# 添加用户到lpadmin组
sudo usermod -aG lpadmin $USER
- 访问管理界面:
code复制http://localhost:631
10.2 蓝牙设备连接
- 安装蓝牙工具包:
bash复制sudo apt install -y bluez blueman
# 启动服务
sudo systemctl start bluetooth
sudo systemctl enable bluetooth
- 命令行配对:
bash复制bluetoothctl
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# scan on
[bluetooth]# pair [MAC地址]
[bluetooth]# connect [MAC地址]
10.3 外接显示器配置
- 查看显示设备:
bash复制xrandr
- 扩展模式示例:
bash复制xrandr --output HDMI-1 --right-of eDP-1 --auto
- 保存配置:
bash复制# 安装arandr图形工具
sudo apt install -y arandr
