ubuntu 22.04(jammy)使用教程

查看系统信息

  • 查看CPU信息
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # CPU型号
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    # 物理 CPU 个数
    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

    # CPU核数 (物理CPU个数 * 每个CPU的核数)
    cat /proc/cpuinfo| grep "cpu cores"| uniq

    # 逻辑CPU个数 (物理CPU个数 * 每个CPU的核数 * 超线程数)
    cat /proc/cpuinfo| grep "processor"| wc -l
  • 查看操作系统信息
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 查看操作系统内核信息
    uname -a

    # 查看操作系统发行版本
    cat /etc/issue
    lsb_release -a

    # 查看hostname
    hostname

    # 网卡信息
    ip a
  • 安装的字体
    1
    2
    3
    4
    5
    # 所有字体
    fc-list

    # 中文字体
    fc-list :lang=zh

配置源

使用 vim 编辑 /etc/apt/sources.list 文件, 注释掉原来所有的内容, 新增以下源

  • 浙大源
    1
    2
    3
    4
    deb https://mirrors.zju.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.zju.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.zju.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.zju.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
  • 阿里源
    1
    2
    3
    4
    deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

网络配置

  1. 如果使用 Ubuntu Desktop, 那么联网可以通过 GUI 的方式填写 IP 等信息.

  2. 如果使用 Ubuntu Server, 那么有两种网络管理工具, netplan 和 NetworkManager

  • 如果通过动态 IP 联网, 则什么也不需要配置

  • 如果只配置静态 IP , 则使用 netplan 或者 NetworkManager 均可, 推荐前者

  1. 使用 netplan 联网
    编辑 /etc/netplan/*.yaml 文件(在不同的系统中可能有不同的文件名), 写入以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # This is the network config written by 'subiquity'
    network:
    ethernets:
    eno1: # 网卡名称, 需要填写自己机器的, 通过 `ip a` 命令查看,
    addresses: [192.168.1.2/24] # 静态 IP 地址, 斜杠后面的是子网掩码, 24 表示 24 个 1, 即 255.255.255.0
    gateway4: 192.168.1.1 # 网关地址, 在 22.04 版本中不再需要这一行, 只需要指定下面的路由网关地址即可
    nameservers:
    addresses: [8.8.8.8] # DNS 服务器地址
    routes:
    - to: 0.0.0.0/0 # 路由目标地址
    via: 192.168.1.1 # 路由网关地址
    metric: 0
    renderer: networkd # 网络服务, networkd 和 NetworkManager 二选一, 使用 netplan 时需要指定为 networkd
    version: 2

    使用以下命令应用配置

    1
    2
    3
    4
    5
    # 检查配置的正确性
    sudo netplan try

    # 应用配置
    sudo netplan apply
  2. 使用 NetworkManager 联网
    NetworkManager (简称 NM) 是另一种网络管理工具, 它支持更复杂的配置, 特别是 L2TP VPN.
    我们首先介绍配置静态 IP 的方法.
    使用 NM 之前, 我们修改 /etc/netplan/*.yaml 文件使用 NM 管理网络:

    1
    2
    3
    4
    # This is the network config written by 'subiquity'
    network:
    renderer: NetworkManager
    version: 2

    然后编辑 /etc/NetworkManager/NetworkManager.conf, 修改为 managed=true

    1
    2
    3
    4
    5
    6
    7
    8
    [main]
    plugins=ifupdown,keyfile

    [ifupdown]
    managed=true

    [device]
    wifi.scan-rand-mac-address=no

    配置修改后我们需要重启网络服务

    1
    sudo systemctl restart NetworkManager

    NetworkManager 使用命令行工具 nmcli 来管理配置. 有关 nmcli 的使用方法, 可以参考 nmcli –help 查看.

接下来通过创建配置文件:

1
sudo nmcli c add type ethernet con-name wired ifname eno1 ipv4.addr 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.method manual

其中 wired 为自定义的连接名称,
eno1 为网卡名称 (需要填写自己的).
注意修改自己的 IP 地址, 子网掩码和网关.
然后就会有个新的文件 /etc/NetworkManager/system-connections/wired.nmconnection 创建出来.
接下来我们编辑该文件, 并使得最终内容如下 (注意 uuid 值使用原本的就可以):

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
[connection]
id=wired
uuid=5de8cdc3-0595-4739-bf43-24f4ec666976 # 使用原来创建的默认值即可
type=ethernet # 有线网
autoconnect-priority=-998
interface-name=eno1 # 网卡名称
permissions=
timestamp=1644651104

[ethernet]
mac-address-blacklist=

[ipv4]
address1=192.168.1.2/24,192.168.1.1 # IP 地址, 子网掩码和网关
dns=8.8.8.8; # DNS 服务器地址
dns-search=
ignore-auto-dns=true
method=manual

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

完成后启动该配置

1
2
3
4
5
6
7
sudo nmcli connection up wired

# 可以使用缩写 c 代表 connection, nmcli --help 见详细用法
sudo nmcli c up wired

# 查看当前的配置
nmcli c
  1. 如果需要配置 L2TP VPN, 则必须选择 NetworkManager
    首先安装该模块
    1
    2
    3
    4
    5
    # ubuntu server/desktop 需要安装
    sudo apt install network-manager-l2tp

    # ubuntu desktop 需要安装
    sudo apt install network-manager-l2tp-gnome
  1. 使用ubuntu desktop
    新建 L2TP VPN

Name: ZJUVPN
Gateway:
User name: <用户名>
Password: <密码>
PPP Settings:
勾选 Allow BSD data compression
勾选 Allow Deflate data compression
取消勾选 Use TCP header compression
取消勾选 User protocol field compression negotiation
取消勾选 Use Address/Control compression

希望开机后可以自动连接 VPN
运行 nm-connection-editor 打开网络连接编辑面板,
从 Ethernet(以太网) 列表中选择所使用的有线网或者从WLAN列表中选择所使用的无线网, 双击打开编辑面板,
在 General(常规) 选项卡中勾选 Automatically connect to VPN when using this connection(使用此连接时自动连接到VPN), 并选择要开启的 VPN

  1. 使用ubuntu server
    需要在终端中配置 VPN. 使用以下命令新建一个连接
    1
    sudo nmcli c add connection.id ZJUVPN type vpn vpn-type l2tp
    其中 ZJUVPN 为自定义 VPN 名称.
    然后编辑文件 /etc/NetworkManager/system-connections/ZJUVPN.nmconnection
    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
    [connection]
    id=ZJUVPN
    uuid=1fe18117-cbca-4f3e-9f3d-80664859b2f2 # 使用原来创建的默认值即可
    type=vpn # 连接类型为 vpn
    autoconnect=false
    permissions=
    timestamp=1593424178

    [vpn]
    gateway=<vpn_address> # VPN 地址
    mru=1400
    mtu=1400
    no-vj-comp=yes
    noaccomp=yes
    nopcomp=yes
    password-flags=0 # 这里设置为 0, 这样密码可以写在配置文件里, 方便自动连接
    user=<username> # 用户名
    service-type=org.freedesktop.NetworkManager.l2tp

    [vpn-secrets]
    password=<password> # 密码

    [ipv4]
    dns-search=
    method=auto

    [ipv6]
    addr-gen-mode=stable-privacy
    dns-search=
    method=auto

    [proxy]
    启动 VPN 服务
    1
    2
    3
    4
    sudo nmcli c up ZJUVPN

    # 查看
    nmcli c

希望开机后可以自动连接 VPN
编辑 /etc/NetworkManager/system-connections/wired.nmconnection 文件, 在下面的段落中增加一行 ZJUVPN 的 uuid 号:

1
2
3
4
5
6
7
8
9
[connection]
id=wired
uuid=5de8cdc3-0595-4739-bf43-24f4ec666976
type=ethernet
autoconnect-priority=-998
interface-name=eno1
permissions=
secondaries=1fe18117-cbca-4f3e-9f3d-80664859b2f2 # 这里填入 ZJUVPN 的 uuid 号即可.
timestamp=1644651104

完成后重启系统。

  1. 双网卡设置
    主节点: 一张网卡设置为外网ip, 另一张设置为内网ip. 内网网卡不设置网关.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    network:
    ethernets:
    eno1:
    addresses: [10.76.2.232/21]
    gateway4: 10.76.0.10
    nameservers:
    addresses: [10.10.0.21]
    routes:
    - to: 10.0.0.0/8
    via: 10.76.0.1
    metric: 0
    eno2:
    addresses: [192.168.0.101/24]
    version: 2
    设置内网的节点可以通过主节点访问外网: 开启ip_forward的内核转发, 重启后有效.
    1
    vim /etc/sysctl.conf
    其中找到 net.ipv4.ip_forward , 赋值为 1。
    设置路由表
    1
    2
    3
    4
    5
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default _gateway 0.0.0.0 UG 0 0 0 eno1
    10.0.0.0 10.76.0.1 255.0.0.0 UG 0 0 0 eno1
    10.76.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eno1
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno2
    由于内网的请求源地址是内网地址, 目标地址是外网地址, 请求返回时外网地址不知道内网地址,
    因此需要做网络地址转换(network address translation, NAT),
    把内网地址修改为外网知道的网关地址.
    数据包返回后目标地址是网关, 需要进一步转换为内网地址.
    因此需要在 iptables 中添加 NAT 转发规则.
    1
    2
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o enp1s0 -j MASQUERADE
    # 该规则的意思是 来自 192.168.1.0/24 经由 enp1s0 的数据包需要做 NAT 转换
  • 还可以使用安卓手机的网络共享功能临时上网. 安卓手机通过数据线连接到 Ubuntu 服务器, 手机移动网络设置中开启 usb 网络共享, 电脑共享手机网络

安装常用工具

更新系统, 安装常用工具

1
2
sudo apt update; sudo apt upgrade
sudo apt install vim, git, curl, tmux, mlocate, net-tools

1 VSCode

Ubuntu 20.04 下应用商店里安装的 VSCode 无法输入中文. 此处我们添加微软的apt源来安装(参考https://cyfeng.science/2020/05/20/vs-code-chinese-input/)

1
2
3
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update && sudo apt install code

2 卸载自带的火狐浏览器

1
2
3
4
# 查找相关软件包
dpkg --get-selections | grep firefox
# 卸载
sudo apt purge firefox firefox-locale-en firefox-locale-zh-hans

3 deepin-win用于安装微信 QQ等

记录是基于的Ubuntu18.04.2LTS。

记住这个工程的网址 (https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu),这里面有安装其他软件的详细说明,我们主要根据这个步骤来执行。

1
2
3
4
apt-get install git
git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git
cd deepin-wine-for-ubuntu
./install.sh

通过执行上面的命令我们可以很方便的将wine这个工程下载到本地来使用,然后执行shell文件进行安装。

安装托盘,托盘的作用是可以把使用wine打开的软件整合起来,便于管理和通知的查看。

1
2
apt install chrome-gnome-shell
apt install gnome-shell-extensions # 扩展

安装QQ

1
2
3
4
5
cd ..
mkdir deepin.qq
cd deepin.qq
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_8.9.19983deepin23_i386.deb
sudo dpkg -i deepin.com.qq.im_8.9.19983deepin23_i386.deb
  • 安装软件命令:dpkg -i <.deb file name>
  • 列出与该包先关联的文件命令:dpkg -L package
  • 安装完包后,可以用此命令查看软件安装到什么地方.
  • 显示包的版本命令:dpkg -l package
  • 移除软件(保留配置)命令:dpkg -r package
  • 移除软件(不保留配置)命令:dpkg -P package
  • 查找包的详细信息命令:dpkg -s package
  • 列出deb包的内容命令:dpkg -c package.deb
  • 解开 deb 包的内容:dpkg –unpack package.deb
  • 搜索所属的包内容:dpkg -S keyword
  • 配置包:dpkg –configure package
    其中QQ所在的镜像是https://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.im/,我们可以根据版本来进行选择。

安装微信

1
2
3
4
5
6
7
(base) mscg@mscg:~$ mkdir deepin.wechat
(base) mscg@mscg:~$ cd deepin.wechat/
(base) mscg@mscg:~/deepin.wechat$ wget https://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_2.6.2.31deepin0_i386.deb
(base) mscg@mscg:~/deepin.wechat$ sudo dpkg -i deepin.com.wechat_2.6.2.31deepin0_i386.deb
正在选中未选择的软件包 deepin.com.wechat:i386。
。。。。。
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...

Ubuntu 20.04安装后无法通过图标打开. 可以通过安装旧版微信解决该问题.
Deepin-WeChat 的中文字体默认用的是”文泉驿微米黑”, 所以在系统里安装该字体即可. 首先从Github仓库(https://github.com/anthonyfok/fonts-wqy-microhei/blob/master/wqy-microhei.ttc) 下载该字体, 然后复制到字体目录病刷新字体缓存:

1
2
sudo cp wqy-microhei.ttc /usr/share/fonts
fc-cache -fv

重启微信.
如果无法直接粘贴截图,安装 libjpeg62:i386 可解决

1
sudo apt install libjpeg62:i386

网易云、WPS、百度网盘都有linux的安装包,直接下载安装

docker安装

https://docs.docker.com/engine/install/ubuntu/
https://docs.docker.com/engine/install/ubuntu/
在新主机上首次安装 Docker Engine 之前,您需要 需要设置 Docker 存储库。之后,您可以安装和更新 存储库中的 Docker。
a. 设置 Docker 的存储库

1
2
3
4
5
6
7
8
9
10
11
12
13
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

b. 安装 Docker 包
若要安装最新版本,请运行

1
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

要安装特定版本的 Docker Engine,首先列出 存储库中的可用版本

1
2
3
4
5
6
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'

5:24.0.0-1~ubuntu.22.04~jammy
5:23.0.6-1~ubuntu.22.04~jammy
...

选择所需的版本并安装

1
2
VERSION_STRING=5:24.0.0-1~ubuntu.22.04~jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

通过运行映像来验证 Docker 引擎安装是否成功

1
2
sudo docker run hello-world
# 此命令下载测试映像并在容器中运行它。当 容器运行,它打印确认消息并退出。

修改默认文件夹

  1. 方法一
    打开 系统设置-》语言支持 将“english”拖动到最上端,重启系统。重启后,会提示更新文件名称,更新后在将语言”中文“拖动到顶部,重启系统 。
  2. 方法二
    编辑 ~/.config/user-dirs.dirs 文件
    1
    2
    3
    4
    5
    6
    7
    8
    XDG_DESKTOP_DIR="$HOME/Desktop"
    XDG_DOWNLOAD_DIR="$HOME/Download"
    XDG_TEMPLATES_DIR="$HOME/Templates"
    XDG_PUBLICSHARE_DIR="$HOME/Public"
    XDG_DOCUMENTS_DIR="$HOME/Documents"
    XDG_MUSIC_DIR="$HOME/Music"
    XDG_PICTURES_DIR="$HOME/Pictures"
    XDG_VIDEOS_DIR="$HOME/Videos"
  3. 方法三
    打开终端,在终端中输入命令:
    1
    2
    export LANG=en_US
    xdg-user-dirs-gtk-update
    跳出对话框询问是否将目录转化为英文路径,同意并关闭。在终端中输入命令:
    1
    export LANG=zh_CN
    重新启动系统,系统会提示更新文件名称,选择不再提示,并取消修改。

ubuntu美化

参考文章 https://www.cnblogs.com/feipeng8848/p/8970556.html. 这里摘录一些.

美化工作主要围绕两个主题展开:

修改 Gnome 皮肤: https://www.pling.com/s/Gnome
安装 Gnome 插件: https://extensions.gnome.org/
这里的 Gnome 是一个 Linux 下的桌面环境, Ubuntu 18.04 使用的是 v3.28; Ubuntu 20.04 使用的是 v3.36.

  1. 安装 gnome-tweak-tool 和插件

    1
    2
    sudo apt-get update
    sudo apt-get install gnome-tweak-tool

    安装完成后, 按 Win 键, 输入 tweak 搜索到 Tweaks 工具 (可以右键添加到收藏, 即固定到任务栏), 打开.
    此处 Tweaks 在 18.04 和 20.04 版本中略有不同, 但基本功能类似, 主要是用于调整任务栏和系统皮肤等等的属性, 可以自行探索.
    我们重点推荐几个拓展(Extensions)
    Tweaks 的拓展是通过浏览器插件来安装的. 首先安装拓展工具:

    1
    sudo apt-get install gnome-shell-extensions

    安装完成后打开 Tweaks 的 Extensions 菜单, 可以看到已有的插件.
    现在我们要安装新的插件, 打开 Gnome 插件网址 https://extensions.gnome.org/, 搜索如下几个插件:
    a. User Themes: 用于修改系统皮肤
    b. Dash to Panel: 用于修改任务栏样式
    c. Topicon plus: 用于 wine, 后面再说
    安装插件的方法很简单, 只需要打开每个插件页面的开关, 稍等片刻, 会弹出一个对话框, 点击 Install 即可.
    安装完插件后在 Tweaks 的 Extensions 菜单可以看到.

  2. 安装新皮肤
    Ubuntu 的皮肤包含两部分, 主题和图标.
    系统已有的主题存放在 /usr/share/themes, 图标存放在 /usr/share/icons 中.
    我们要做的就是下载新的主题和皮肤, 把他们放入这两个系统文件夹.

首先打开 Gnome 皮肤网站 https://www.pling.com/s/Gnome,
点击左侧的 GTK 3/4 Themes 分类, 点击 Rating 标签,
选择一款自己喜欢的皮肤, 比如这款 Orchis. 点击 Files 标签,
可以看到有多种样式可以选择: 普通样式, 带 dark 后缀的暗黑风, 带 light 后缀的明亮风.
任意选择一个, 点击下载按钮, 稍等片刻就会下载一个压缩包 Orchis-light.tar.xz.

1
2
3
4
5
# 解压
tar xvf Orchis-light.tar.xz

# 移动到主题文件夹
sudo mv Orchis-light /usr/share/themes

再打开 Gnome 皮肤网站, 点击左侧的 Full Icon Themes 分类, 点击 Score 标签,
选择一款自己喜欢的图标, 比如这款 McMojave-circle, 任意选择一个图标样式下载.

1
2
3
4
5
# 解压
tar xvf 01-McMojave-circle.tar.xz

# 移动到图标文件夹
sudo mv McMojave-circle /usr/share/icons

在 Tweaks 的 Apperence 菜单, 我们可以看到 Themes 下面有一系列的皮肤选项,
其中 Applications 和 Shell 下就包括我们新增加的 Orchis-light 皮肤,
在 Icons 菜单包含新增的 McMojave-circle 图标, 可以自行选择.

修改系统设置

1 时间设置

修改时区. 时区是从 /etc/localtime 读取的, 而默认这是个软链接, 链接到哪个时区文件就是哪个时区.

1
2
3
4
5
6
7
8
9
10
11
# 查看时间, 发现时区是 UTC 的
date

# 删除原有的链接
sudo rm /etc/localtime

# 新建到上海时区的软链接
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 再次查看时区, 发现是 CST 即正确
date

2 修改Hostname

1
2
3
4
5
# 1. 临时修改为abc, 修改后打开新终端显示, 重启系统失效
hostname abc

# 2. 永久修改为abc: 修改 /etc/hostname 中的值为 abc
# 重启系统

3 开机启动程序

开机启动的服务分为两种, 系统服务和用户服务.
系统服务使用 root 权限启动, 用户服务使用用户权限启动.
在开机后登陆之前, 系统会扫描以下目录的服务并启动:

  1. systemd/system 的服务

    1
    2
    3
    4
    /usr/lib/systemd/system/
    /lib/systemd/system/ (软链接, 实际指向 /usr/lib/systemd/system/)
    /usr/local/lib/systemd/system/ (默认不存在该目录)
    /etc/systemd/system/
  2. systemd/user 的服务

    1
    2
    3
    4
    5
    6
    7
    /usr/lib/systemd/user/
    /usr/local/lib/systemd/user/ (默认不存在该目录)
    /usr/share/systemd/user/ (默认不存在该目录)
    /usr/local/share/systemd/user/ (默认不存在该目录)
    ~/.local/share/systemd/user/ (默认不存在该目录)
    /etc/systemd/user/
    ~/.config/systemd/user/ (默认不存在该目录)

    可以使用 systemctl show --property=UnitPath 命令查看扫描顺序, 优先级从低到高
    操作系统服务常用的命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 启用系统服务
    sudo systemctl enable xxx.service
    # 禁用系统服务
    sudo systemctl disable xxx.service
    # 查看系统服务状态
    sudo systemctl status xxx.service
    # 启动系统服务
    sudo systemctl start xxx.service
    # 重启系统服务
    sudo systemctl restart xxx.service
    # 停止系统服务
    sudo systemctl stop xxx.service
    # 重新加载配置
    sudo systemctl reload xxx.service

    # 启用用户服务
    systemctl --user enable xxx.service
    # 其余命令类似: disable, status, start, stop

    在操作用户服务时, 必须加 –user, 否则会找不到服务, 并且必须去掉 sudo,
    否则会提示错误 Failed to connect to bus: No such file or directory.

  3. 自动运行: rc-local 服务
    修改服务文件 sudo vim /lib/systemd/system/rc-local.service, 添加最下面的一段话

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [Unit]
    Description=/etc/rc.local Compatibility
    Documentation=man:systemd-rc-local-generator(8)
    ConditionFileIsExecutable=/etc/rc.local
    After=syslog.target network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    RemainAfterExit=no
    GuessMainPID=no

    #这一段原文件没有,需要自己添加
    [Install]
    WantedBy=multi-user.target

    这里的 WantedBy=multi-user.target 是把 rc-local.service 加入 multi-user.target 这一启动目标.
    启用服务

    1
    sudo systemctl enable rc-local.service

    该命令实际上是根据我们新添加的依赖关系,
    建立了 /etc/systemd/system/multi-user.target.wants/rc-local.service 符号链接指向 /lib/systemd/system/rc-local.service.
    系统在启动时会扫描 multi-user.target.wants 目录并启动其中的服务.
    添加我们需要自启动命令到 /etc/rc.local 文件中 (与上面的配置中 ExecStart 的文件名对应), 该文件不存在时自己创建一个.
    要注意这个文件里使用的命令都要写全路径(因为该文件是 root 执行的)

    1
    2
    3
    4
    5
    6
    #!/bin/bash
    #
    # rc.local
    #

    /usr/local/bin/sslocal -c /home/<username>/tools/ssconfig/config.json -d start

    为 rc.local 增加执行权限

    1
    sudo chmod +x /etc/rc.local

    重启以测试是否成功.

4 (双系统) 修改开机默认系统

打开 grub 文件: sudo vim /etc/default/grub , 内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
# If you change this file, run 'update-grub' afterwards to update                                                                                                                                                                                        
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

......

修改第6行, GRUB_DEFAULT=0 即为默认启动项, 0通常是 Ubuntu, 而 Windows 系统通常在下面, 需要在开机启动的时候数一下(从0开始数).
修改完毕后, 更新 grub: sudo update-grub 即可.

5 登录启动项

需要区分以下概念:
开机启动项指的是针对于所有用户适用的启动程序.
登录启动项指的是针对于特定用户适用的启动程序.

Launcher中搜索 Startup Application , 并点击打开.
直接增加启动项即可.

6 自定义 Grub 主题

https://www.opendesktop.org/s/Gnome/p/1307852/ 下载皮肤, 解压后运行 ./install.sh 安装

7 硬盘操作

分区操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看已挂载磁盘
df -h

# 查看所有磁盘 (包括未挂载的磁盘)
sudo fdisk -l

# 查看某个磁盘
sudo fdisk -l /dev/sda

# 对某个磁盘操作
sudo fdisk /dev/sda
# 此时会进入操作模式, 按 m 显示所有可用命令

# 查看磁盘和分区之间的关系
sudo lsblk

# 查看磁盘分区的 UUID 号
sudo blkid

格式化硬盘
如果是刚分好区的硬盘, 则在需要先格式化分区, 否则既无法查看UUID, 也无法挂载到某一个目录下.

1
sudo mkfs.ext4 /dev/sda1

临时挂载

1
sudo mount /dev/sda2 /media/disk1

永久挂载
先查看各个磁盘挂载的信息 sudo fdisk -l, 并确认目标硬盘的位置 /dev/sd* ;
查看该硬盘的UUID号 sudo blkid (使用UUID号可以避免硬盘更换位置后 /dev/sd* 发生变化, 而UUID不会变.);
修改 /etc/fstab , 在最后增加以下内容, UUID替换为上一步查出来的, 第二个参数为挂载路径, 第三个参数为分区格式;
最后的三个参数
defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async;
dump。此处为1的话,表示要将整个里的内容备份;为0的话,表示不备份,现在很少用到dump这个工具,在这里一般选0。
pass。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。

1
2
3
UUID=xxxxxxxxxxxxxxx /media/Win10OS ntfs defaults 0 0

UUID=xxxxxxx-xxxxxx-xxxxxx-xxxxxxx /data ext4 defaults 0 0

8 安装中文字体

1
2
3
4
sudo apt update
sudo apt install ttf-mscorefonts-installer
# 安装完成后更新字体缓存
sudo fc-cache -f -v

本文参考 https://zhuanlan.zhihu.com/p/601418015?utm_id=0

课程中心

Qianj.51CTO