Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04的基本配置 (3)

Ubuntu 22.04的基本配置

3.1 关于超级用户root

3.1.1 root用户的功能

  • 定义 :root是Linux系统的最高权限用户,拥有对系统文件的完全控制权(如修改系统配置、安装/卸载软件、管理用户等)。
  • 危险操作 :误删系统文件、破坏系统完整性(如删除/bin目录会导致系统崩溃)。
案例:启用 root 密码(谨慎操作)
shell 复制代码
# 为 root 设置密码(需当前用户有 sudo 权限)
sudo passwd root

# 切换到 root 用户(交互式 shell)
su -

# 退出 root
exit

3.1.2 避免root滥用的最佳实践

  1. 尽量使用普通用户 :日常操作用普通用户(如user),仅在必要时切换到root。

  2. 使用sudo提权 :执行需要root权限的命令时,在前面加sudo(如sudo apt update),系统会提示输入当前用户密码验证权限。

  3. 禁用root登录 :Ubuntu默认禁用root登录(安全策略),需通过sudo间接使用root权限。

    案例:查看 root 可执行的操作(通过 sudo)
    shell 复制代码
    # 查看当前用户可执行的 sudo 命令列表
    sudo -l
    
    # 示例:以 root 身份编辑网络配置
    sudo nano /etc/netplan/00-installer-config.yaml

3.1.3 Debian/Ubuntu的root用户管理

  • Ubuntu的特殊处理

    • 安装时未设置root密码,需通过sudo passwd root手动设置(见案例)。
    • 默认禁用root登录(SSH、图形界面均无法直接登录root)。
  • 切换到root用户

    • 方法1:sudo su -(推荐,保留环境变量)

    • 方法2:sudo -i(进入root shell)

    • Debian:安装时可设置 root 密码,允许直接登录。

    • Ubuntu :默认锁定 root 密码,仅通过 sudo 提权。

    shell 复制代码
    # 查看 /etc/shadow 中 root 行第二字段是否为 "!" 或 "*"
    sudo grep '^root:' /etc/shadown
    
    # 输出示例:root:!:19450:0:99999:7:::
    # "!" 表示密码被锁定

3.2 依赖发行版本的系统管理工具

Ubuntu基于Debian,核心包管理工具为**dpkg(本地包管理)和 apt**(高级包管理,依赖dpkg)。

3.2.1 dpkg:本地包管理工具

  • 功能 :安装、卸载、查询本地.deb包(不处理依赖关系)。

  • 常用命令(带注释):

    bash 复制代码
    # 安装本地deb包(如下载的chrome.deb)
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    
    # 卸载已安装包(保留配置文件)
    sudo dpkg -r package_name
    
    # 完全卸载(删除配置文件)
    sudo dpkg -P package_name
    
    # 查询已安装包的详细信息
    dpkg -s package_name
    
    # 列出所有已安装包
    dpkg -l

3.2.2 apt:高级包管理工具

  • 功能:自动处理依赖关系,支持在线安装/更新(需配置软件源)。

  • 常用命令(带注释):

    bash 复制代码
    # 更新软件源列表(必做!否则无法获取最新包)
    sudo apt update
    
    # 升级所有已安装包(推荐定期执行)
    sudo apt upgrade -y
    
    # 安装包(自动解决依赖)
    sudo apt install package_name
    
    # 卸载包(保留配置文件)
    sudo apt remove package_name
    
    # 完全卸载(删除配置文件)
    sudo apt purge package_name
    
    # 搜索包(如找"vim"相关包)
    apt search vim
    
    # 查看包详细信息(如版本、描述)
    apt show package_name

3.3 中文支持

Ubuntu默认安装英文环境,需手动配置中文支持。

3.3.1 安装中文语言包

bash 复制代码
# 安装简体中文语言包(包含字体、输入法等)
sudo apt install language-pack-zh-hans

# 安装繁体中文语言包(可选)
sudo apt install language-pack-zh-hans language-pack-zh-hant

3.3.2 配置系统语言

  1. 临时修改(当前会话有效)

    bash 复制代码
    # 设置 LANG 环境变量为简体中文
    export LANG=zh_CN.UTF-8
    
    # 生效(需重新打开终端)
    source ~/.bashrc
  2. 永久修改(系统级)

    • 打开「设置」→「Region & Language」→「Manage Installed Languages」→添加「Chinese (Simplified)」→设置为默认。

    • 或通过命令行修改/etc/locale.gen(取消注释zh_CN.UTF-8 UTF-8),然后执行:

      bash 复制代码
      sudo locale-gen
      sudo update-locale LANG=zh_CN.UTF-8

3.3.3 配置输入法

Ubuntu默认使用Fcitx输入法框架,需安装中文输入法(如拼音、五笔)。

  1. 安装Fcitx及拼音输入法

    bash 复制代码
    sudo apt install fcitx fcitx-googlepinyin
  2. 配置输入法

    • 打开「设置」→「Region & Language」→「Input Sources」→点击「+」→选择「Chinese (Pinyin)」。

    • 或通过命令行添加输入法:

      bash 复制代码
      # 添加拼音输入法(需重启输入法)
      im-config -s fcitx

3.4 硬件驱动程序

Ubuntu对大多数硬件(如Intel网卡、AMD显卡)提供开源驱动,但对NVIDIA显卡、** Broadcom 无线网卡**等需手动安装闭源驱动。

3.4.1 检测硬件

bash 复制代码
# 查看显卡型号(如NVIDIA)
lspci -v | grep -i nvidia

# 查看无线网卡型号(如Broadcom)
lspci -v | grep -i network

3.4.2 自动安装驱动(推荐)

Ubuntu提供ubuntu-drivers工具,可自动检测并安装合适的驱动:

bash 复制代码
# 自动安装显卡驱动(如NVIDIA)
sudo ubuntu-drivers autoinstall

# 手动指定驱动版本(如安装470版驱动)
sudo ubuntu-drivers install nvidia:470

3.4.3 手动安装驱动(以NVIDIA为例)

  1. 下载驱动:访问NVIDIA官网,选择对应系统版本(如Linux 64-bit)。

  2. 安装驱动:

    bash 复制代码
    # 给驱动文件添加执行权限
    chmod +x NVIDIA-Linux-x86_64-xxx.xx.xx.run
    
    # 禁用 Nouveau 开源驱动(避免冲突)
    echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
    
    # 重建 initramfs
    sudo update-initramfs -u
    
    # 进入字符模式(避免图形界面干扰)
    sudo systemctl isolate multi-user.target
    
    # 运行驱动安装程序
    sudo ./NVIDIA-Linux-x86_64-xxx.xx.xx.run

3.5 获得更新

Ubuntu通过软件源(Repository)获取更新,需正确配置源列表。

如何查看镜像源

shell 复制代码
-- 查看主配置文件 sources.list

cat /etc/apt/sources.list

示例输出(部分内容):

shell 复制代码
# 默认官方源(archive.ubuntu.com)
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse

说明:

  • jammy 是 Ubuntu 22.04 的代号。
  • deb 表示二进制软件包源。
  • 若使用国内镜像(如阿里云、清华源),URL 会是 mirrors.aliyun.commirrors.tuna.tsinghua.edu.cn

小贴士:Ubuntu 22.04 官方默认源 vs 国内镜像源

类型 URL 示例
官方源 http://archive.ubuntu.com/ubuntu
清华大学 https://mirrors.tuna.tsinghua.edu.cn/ubuntu
阿里云 http://mirrors.aliyun.com/ubuntu
华为云 https://mirrors.huaweicloud.com/ubuntu

3.5.1 配置软件源

  1. 打开/etc/apt/sources.list

    bash 复制代码
    sudo nano /etc/apt/sources.list
  2. 替换为国内镜像源(如阿里云、清华):

    plaintext 复制代码
    # 阿里云镜像源(Ubuntu 22.04)
    deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
  3. 更新软件源:

    bash 复制代码
    sudo apt update

3.5.2 使用PPA(个人包档案)

PPA允许用户添加第三方软件源,安装非官方包(如最新版Python、Node.js)。

  1. 添加PPA:

    bash 复制代码
    # 添加PPA(例:安装最新版Git)
    sudo add-apt-repository ppa:git-core/ppa
    
    # 更新软件源
    sudo apt update
    
    # 安装包
    sudo apt install git
  2. 删除PPA:

    bash 复制代码
    sudo add-apt-repository --remove ppa:git-core/ppa

3.6 进阶:配置Grub

GRUB(Grand Unified Bootloader)是Ubuntu的引导加载程序,负责启动系统和选择内核。

3.6.1 Grub配置文件

  • 主配置文件:/etc/default/grub(影响所有内核条目)。
  • 自定义脚本:/etc/grub.d/(存放启动项脚本,如40_custom用于添加自定义条目)。

3.6.2 修改Grub配置

  1. 编辑/etc/default/grub

    bash 复制代码
    sudo nano /etc/default/grub
  2. 常见修改项(带注释):

    plaintext 复制代码
    # 设置默认启动项(0表示第一个条目)
    GRUB_DEFAULT=0
    
    # 超时时间(秒)
    GRUB_TIMEOUT=5
    
    # 是否显示启动菜单(true/false)
    GRUB_HIDDEN_TIMEOUT=0
    
    # 启动时的背景图片(需提前准备图片,如`/boot/grub/background.png`)
    GRUB_BACKGROUND="/boot/grub/background.png"
    
    # 启动时的命令行参数(如禁用nouveau驱动)
    GRUB_CMDLINE_LINUX="nouveau.modeset=0"
  3. 应用配置:

    bash 复制代码
    sudo update-grub

3.6.3 使用Grub命令行

当Grub菜单损坏时,可通过命令行手动启动系统:

  1. 启动时按Esc进入Grub菜单,选择「Advanced options for Ubuntu」→按c进入命令行。

  2. 常用命令(带注释):

    bash 复制代码
    # 列出所有可用内核
    ls
    
    # 设置根分区(假设根分区在/dev/sda1)
    set root=(hd0,1)
    
    # 加载内核和initrd
    linux /boot/vmlinuz-xxx.xx.xx-generic root=/dev/sda1
    initrd /boot/initrd.img-xxx.xx.xx-generic
    
    # 启动系统
    boot

3.7 小结

本章重点讲解了Ubuntu的root用户管理包管理工具中文支持硬件驱动更新机制Grub配置。掌握这些技能后,可高效管理系统、解决常见问题(如驱动缺失、语言乱码),并为进阶操作(如内核编译、系统调优)打下基础。

相关推荐
charlie11451419112 分钟前
嵌入式现代C++教程: 构造函数优化:初始化列表 vs 成员赋值
开发语言·c++·笔记·学习·嵌入式·现代c++
IT=>小脑虎44 分钟前
C++零基础衔接进阶知识点【详解版】
开发语言·c++·学习
#眼镜&1 小时前
嵌入式学习之路2
学习
码农小韩1 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
微露清风1 小时前
系统性学习C++-第十九讲-unordered_map 和 unordered_set 的使用
开发语言·c++·学习
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习
Jay Chou why did2 小时前
wsl安装完无法进入wsl
linux
行业探路者2 小时前
二维码标签是什么?主要有线上生成二维码和文件生成二维码功能吗?
学习·音视频·语音识别·二维码·设备巡检
li星野2 小时前
OpenCV4X学习—核心模块Core
人工智能·opencv·学习
@zulnger3 小时前
python 学习笔记(多线程和多进程)
笔记·python·学习