Ubuntu 22.04 Jammy
-
祁祁不正经:《一篇搞懂》系列
- 《一篇搞懂》系列之三systemd: https://zhuanlan.zhihu.com/p/643259265
- 《一篇搞懂》系列之一iptables: https://zhuanlan.zhihu.com/p/618848653
- 《一篇搞懂》系列之二IPVS: https://zhuanlan.zhihu.com/p/627514565
- 威力巨大的系统调用——ptrace: https://zhuanlan.zhihu.com/p/653385264
- Systemd 指令 —— 阮一峰:https://www.cnblogs.com/zwcry/p/9602756.html
systemd
设置IP地址
在 Ubuntu 服务器 22.04 中,网络由 netplan 程序控制,因此我们将使用 netplan 在 Ubuntu 服务器上配置静态 IP 地址。
- netplan配置说明:man netplan
-
/etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity' network: ethernets: enp0s3: dhcp4: true version: 2# This is the network config written by 'subiquity' network: ethernets: enp0s3: dhcp4: false addresses: [192.168.31.50/24] routes: - to: default via: 192.168.31.1 metric: 100 on-link: true nameservers: addresses: [127.0.0.53] version: 2# 应用新配置 sudo netplan try # Try to apply a new netplan config to running system, with automatic rollback sudo netplan apply # Apply current netplan config to running system sudo netplan --debug apply # 查看IP地址、路由配置 ip addr ip route # 获取自己的公网IP地址 echo $(wget -qO - https://api.ipify.org) echo $(curl -s https://api.ipify.org) # 查看当前DNS设置 resolvectl status # 临时配置IP地址 ip addr add 10.0.2.15/24 dev enp0s3 ip route add default via 10.0.2.1 ip link set eno3 up
hostname
在 Ubuntu 中,你可以使用hostnamectl命令编辑系统主机名以及相关设置。
修改后,应修改/etc/hosts中127.0.0.1的主机名映射。
hostnamectl status # 查看hostname所有状态信息
hostnamectl hostname # 显示主机名
hostnamectl hostname usrv51 # 设置主机名
hostnamectl -h
hostnamectl [OPTIONS...] COMMAND ...
Query or change system hostname.
Commands:
status Show current hostname settings
hostname [NAME] Get/set system hostname
icon-name [NAME] Get/set icon name for host
chassis [NAME] Get/set chassis type for host
deployment [NAME] Get/set deployment environment for host
location [NAME] Get/set location for host
Options:
-h --help Show this help
--version Show package version
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--transient Only set transient hostname # 由 kernel 维护的动态主机名。 在运行过程中,DHCP 或者 mDNS 服务器可以改变 transient 主机名。默认情况下,它和 static 主机名一模一样。
--static Only set static hostname # 传统主机名。/etc/hostname
--pretty Only set pretty hostname # 一个自由形态的 UTF8 主机名,/etc/machine-info
--json=pretty|short|off
Generate JSON output
See the hostnamectl(1) man page for details.
timezone
timedatectl -h # 查看命令help timedatectl status # 查看时间及时区 timedatectl list-timezones # 列出可用时区 sudo timedatectl set-timezone Asia/Shanghai # 设置时区为中国时区
apt-get,apt,snap
Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统。
- apt-get(apt-get,apt-cache,apt-config)、Aptitude是对应的CLI、GUI工具。
- apt可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项(不是全部,有些功能仍然需要使用apt-get)。
| apt | apt-get | 功能 |
|---|---|---|
| apt install | apt-get install | 安装软件包,apt有安装进度条 |
| apt remove | apt-get remove | 移除软件包 |
| apt purge | apt-get purge | 移除软件包及配置文件 |
| apt update | apt-get update | 刷新存储库索引,apt会提示可升级的软件包数量 |
| apt upgrade | apt-get upgrade | 升级所有可升级的软件包 |
| apt autoremove | apt-get autoremove | 自动删除不需要的包 |
| apt full-upgrade | apt-get dist-upgrade | 在升级软件包时自动处理依赖关系 |
| apt search | apt-cache search | 搜索应用程序 |
| apt show | apt-cache show | 显示装细节 |
| apt list | dpkg -l | 列出包含条件的包(已安装、可升级等) |
| apt list upgradeable | 列出可升级软件包 | |
| apt edit-sources | 编辑源列表/etc/apt/sources.list | |
| apt autoremove | apt-get autoremove | 删除未使用的依赖项 |
| apt clean | apt-get clean | 清除遗留在 /var/cache 中的已取回的包文件的本地仓库 |
| apt autoclean | apt-get autoclean | 类似于 apt-get clean,只清除不再下载的无用文件 |
- snap:使用容器来管理软件
是Canonical公司发布的全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。
Snap的一个重要的特点是应用程序中包含了所有的依赖库和资源,以确保应用能够正常运行,而不受系统的影响。使用Snap软件包安装的应用程序不仅具有独立性和可移植性,同时还可以使用最新的软件版本,无需等待官方软件包库更新。
如果你更注重系统稳定性,使用apt可能更合适,因为它提供了经过测试和适应特定Ubuntu版本的软件包。
如果你更喜欢使用最新版本的软件或需要更大的独立性和隔离性,可以考虑使用snap。
| 特征 | apt | snap | 备注 |
|---|---|---|---|
| 包的来源 | Ubuntu软件仓库 | Snap Store(独立仓库) | Snap主要包含高级、独立和最新版本的软件。apt更多软件包的稳定版本 |
| 版本更新 | 通常稍滞后 | 通常提供最新版本 | |
| 系统资源 | 共享系统库和依赖项 | 独立于系统,自包含依赖项 | |
| 独立性 | 依赖系统库 | 自包含,不依赖系统库 | |
| 隔离性 | 无隔离 | 应用隔离,避免库冲突 | Snap的软件包是在沙箱中运行,不会影响整个系统 |
| 安装命令 | sudo apt install | sudo snap install | |
| 卸载命令 | sudo apt remove | sudo snap remove | |
| 更新命令 | sudo apt update | sudo snap refresh | Snap提供了自动更新机制 |