[TOC]

0x00 前言简述

Ubuntu 20.04 是 Ubuntu 的第 8 个 LTS 版本代号为"Focal Fossa";
下载地址: http://releases.ubuntu.com/20.04/
下载镜像时可以选择以下两种镜像:

  • 桌面版本[ ] ubuntu-20.04.1-desktop-amd64.iso
  • 服务器版本[ ] ubuntu-20.04.1-live-server-amd64.iso

0x01 常规初始化配置

0.网络配置

描述:Ubuntu 20.04 LTS 在网络管理上相比较于18.04有很大的不同,网络配置文件不再是sudo vi /etc/network/interfaces而变成了/etc/netplan/50-cloud-init.yaml,并且也不在使用networking服务进行管理网络了,所以想以services networking restart重载配置文件是不行的了;
采用命令进行网络配置流程:

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
#1.修改netplan网络配置文件/etc/netplan/下的文
#Ubuntu 20 LTS
cat /etc/netplan/00-installer-config.yaml
#Ubuntu 18 LTS
cp /etc/netplan/50-cloud-init.yaml{,.bak}
cat > /etc/netplan/50-cloud-init.yam << EOF
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.93.6/24
gateway4: 192.168.93.2
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
EOF

#2.应用网络配置
netplan apply

#3.networkd管理系统的网络重启
# 方式1
$ sudo ip link set enp0s3 down
$ sudo ip link set enp0s3 up

# 方式2
$ sudo nmcli networking off
$ sudo nmcli networking on

# 方式3.或者你可以尝试用System V init脚本重启你的网络:
$ sudo /etc/init.d/network-manager restart


给添加的新网卡配置静态IP

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
33
34
35
36
37
~$ ifconfig -a  # 查看所有网卡 (不加 -a 工作网卡)
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe34:4ea1 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:34:4e:a1 txqueuelen 1000 (Ethernet)
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::a00:27ff:fea2:190e prefixlen 64 scopeid 0x20<link>
ether 08:00:27:a2:19:0e txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
```

ubuntu 20.04 网络的配置信息将不在保存在`/etc/network/interfaces`文件中,虽然该文件依然存在,但是内容是空的。

新系统已经使用netplan管理网络,对于配置信息使用vim打开文件`sudo vim /etc/netplan/00-installer-config.yaml`
```yaml
# 注意:yaml文件名在不同的机器上文件名可能不同。
network:
ethernets:
enp0s3:
dhcp4: true
version: 2

# 新网卡设置静态IP
network:
ethernets:
enp0s3:
dhcp4: true
enp3s0:
addresses:
- 192.168.93.6/24
gateway4: 192.168.93.2
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
version: 2

最后执行sudo netplan apply生效


1.SSH 配置

  • 1.1 初始SSH配置文件配置;

    1
    2
    3
    4
    5
    6
    #1.允许Root登陆以及采用密码认证(prohibit-password:禁用密码)
    sed -i "s|#PermitRootLogin prohibit-password|PermitRootLogin no#g" /etc/ssh/sshd_config # 为了安全
    sed -i "s|#PasswordAuthentication|PasswordAuthentication#g" /etc/ssh/sshd_config

    #2.重启ssh服务
    systemctl restart sshd
  • 1.2 公密钥生成与管理;

    1
    2
    3
    4
    5
    # 生成
    ssh-keygen -t rsa -f ~/.ssh/id_weiyigeek -P "Password" -C "[email protected]"
    # 管理
    ssh-agent bash
    ssh-add ~/.ssh/id_weiyigeek # 密钥加载


2.镜像源配置

配置命令如下:

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
33
34
35
36
37
sudo cp /etc/apt/sources.list{,.bak}
sudo tee /etc/apt/sources.list <<'EOF'
#阿里云Mirrors - Ubuntu
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#
EOF

# 清华Mirrors
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

apt autoclean
apt update && apt upgrade -y


4.基础软件安装

1
2
3
4
#1)编译依赖
apt -y install gcc
#2)常规软件
apt -y install nano vim net-tools tree wget dos2unix unzip htop ncdu bash-completion


5.系统防火墙

描述:Ubuntu 20.04系统防火墙采用ufw命令进行管理,相比于firewall-cmd更加方便简单;

1
ufw allow 端口/协议


6.时区与时间

  • 6.0 时间时区信息查看

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 时间
    > timedatectl
    Local time: 二 2020-10-27 23:04:31 CST
    Universal time: 二 2020-10-27 15:04:31 UTC
    RTC time: 二 2020-10-27 15:04:32
    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: no
    NTP service: active
    RTC in local TZ: no

    # 时区
    > ls -alh /etc/localtime
    lrwxrwxrwx 1 root root 35 10月 20 07:13 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
    > cat /etc/timezone
    Asia/Shanghai
    > timedatectl list-timezones
  • 6.1 时区修改:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 1.先查看当前系统时间
    date -R

    # 2.交互式地区选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing)
    tzselect

    # 3.复制时区文件到/etc目录下再次查看时间已经修改为北京时间
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    # 4.timedatectl命令设置
    > sudo timedatectl set-timezone Asia/Shanghai
    > timedatectl set-timezone UTC
    > timedatectl
    Local time: 二 2020-10-27 23:05:56 CST
    Universal time: 二 2020-10-27 15:05:56 UTC
    RTC time: 二 2020-10-27 15:05:56
    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: no
    NTP service: active
    RTC in local TZ: no
  • 6.2 时间修改机硬件时间同步:

    1
    2
    3
    4
    5
    6
    7
    # 修改时间
    sudo date -s MM/DD/YY #修改日期
    sudo date -s hh:mm:ss #修改时间
    sudo timedatectl set-time #日期时间

    # 修改硬件CMOS的时间
    sudo hwclock --systohc #非常重要如果没有这一步的话后面时间还是不准

补充如果是Desktop版本建议在/etc/profile或者关闭自动根据网络选择时区;

1
2
# sudo vi /etc/profile
sudo timedatectl set-timezone UTC


0x02 桌面版本配置

注意: 如果是远程操作一定要注意开放ssh端口否则有可能关机后无法连接;

1.远程共享配置


方式1: 采用 xrdp 方式远程连接Ubuntu
Step 1.在系统设置里共享打开屏幕共享并远程登陆时的密码并查询其IP地址。(它将会是Windows远程登录时需要输入的密码,注意如果是设置防护墙请设置放行)

1
2
3
4
5
6
7
8
# - 卸载系统原有的xrdp当出现错误时重新安装即可
sudo apt purge xrdp
sudo apt purge xserver-xorg-core
sudo apt purge xserver-xorg-input-all
sudo apt purge xorgxrdp

# -
ip addr

Step 2.安装xrdp与dconf-editor。
1
2
3
4
sudo apt install xrdp dconf-editor
sudo apt install xserver-xorg-core
sudo apt install xserver-xorg-input-all
sudo apt install xorgxrdp

Step 3.启动软件”dconf-editor”,打开之后依次展开org->gnome->desktop->remote-access然后取消 "requlre-encryption"的勾选即可 以及 您还需要为xrdp用户授予对/etc/ssl/private/ssl-cert-snakeoil.key文件的访问权。默认情况下,ssl证书组的成员可以使用它。

1
2
3
4
5
6
7
8
9
10
11
# - 用户组添加建议使用xrdp时修改其缺省的3389端口
sudo adduser xrdp ssl-cert

# 自启设置
sudo systemctl start xrdp
sudo systemctl enable xrdp

# 防火墙设置
sudo ufw allow 3389
sudo ufw allow from 10.5.5.0/24 to any port 3389
sudo reboot

  • Step 5.重启后利用windows远程桌面工具进行连接xrdp,例如192.168.1.215实例连接后如下图所示。
WeiyiGeek.xrdp

WeiyiGeek.xrdp

Tips :xrdp 连接黑屏问题解决,只需在startwm.sh中添加两行就可以允许多个会话,这样您就不必注销或进入黑屏就可以处理20.04 LTS。

1
2
3
4
nano /etc/xrdp/startwm.sh
# 添加以下命令在头部
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR


方式2: 采用 VNC 方式远程连接Ubuntu

描述:Ubuntu 20.04桌面版本系统默认自带VNC Server我们只需要开启共享即可,但是可能连接时候会出现下列错误;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 错误信息
Unable to connect to VNC Server using your chosen security
setting. Either upgrade VNC Server to a more recent version from
RealVNC, or select a weaker level of encryption.

# (1) 解决办法在服务器端使用以下命令降低服务器端的安全等级(不推荐)。
$gsettings set org.gnome.Vino enabled true # 貌似不支持
$gsettings set org.gnome.Vino prompt-enabled false
$gsettings set org.gnome.Vino require-encryption false

# (2) 开机自启
> ll /usr/lib/vino/vino-server
-rwxr-xr-x 1 root root 278K 10月 6 22:33 /usr/lib/vino/vino-server
> ln -s /usr/lib/vino/vino-server /etc/init.d/vino-server

WeiyiGeek.

WeiyiGeek.

参考:https://kuricat.com/gist/snap-install-too-slow-zmbjy


PS: 采用上面的方式即安装的共享桌面依赖于显示器,如果显示器没有打开则不能通过VNC进行连接,所以我们需要安装X11VNC服务并且设置虚拟桌面从而可以在无显示器的情况下连接VNC桌面;

配置流程步骤
Step 1.配置用户自动登陆(非常重要否则在机器重启后VNC无法连接);

设置 -> 用户 -> Unlock -> 自动登陆(启用)

Step 2.x11vnc安装与配置

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
# 安装 x11vnc 与虚拟显卡驱动
> sudo apt-get install x11vnc -y
> sudo apt install xserver-xorg-video-dummy

# 设置vnc密码
> sudo x11vnc -storepasswd /etc/x11vnc.pass
Enter VNC password:
Verify password:
Write password to /etc/x11vnc.pass? [y]/n y
Password written to: /etc/x11vnc.pass

# 创建自启服务
> sudo systemctl edit --force --full x11vnc.service
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -capslock -nomodtweak
[Install]
WantedBy=multi-user.target

# 防止键盘错位-capslock -nomodtweak

# 启动x11vnc服务和自启
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

Step 3.设置在远程主机物理是否有显示器我们都能够通过VNC进行远程访问;

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
33
34
35
36
37
38
# 创建默认的 xorg.conf 文件(此时程序会生成/root/xorg.conf.new文件)
sudo Xorg :1 -configure

# 将生成的 xorg.conf 文件复制到xorg.conf
sudo cp -a /root/xorg.conf.new /usr/share/X11/xorg.conf.d/xorg.conf

# 创建了一个使用虚拟显卡的虚拟显示器
sudo tee -a /usr/share/X11/xorg.conf.d/xorg.conf<<'EOF'
Section "Monitor"
Identifier "Monitor1"
HorizSync 1.0 - 2000.0
VertRefresh 1.0 - 200.0
# Add 16:9 modes, others are automatically detected.
Modeline "1280x720" 74.48 1280 1336 1472 1664 720 721 724 746
Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection


Section "Device"
Identifier "Card1"
Driver "dummy"
VideoRam 256000
EndSection

Section "Screen"
DefaultDepth 24
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
EOF

# 为了让虚拟的显示器和真实显示器都能工作,我们需要把最上面的 ServerLayout 进行更改
Sudo sed -i '4i\Screen 1 "Screen1" 0 0' /usr/share/X11/xorg.conf.d/xorg.conf

Step 4.重启机器然后再windows中利用 VNC View 进行连接;

WeiyiGeek.VNC连接

WeiyiGeek.VNC连接

参考地址: https://blog.csdn.net/bluewhalerobot/article/details/106770429?

Tips: 三种远程登录方式比较
vino-server | Xrdp | vnc-server
优点:系统自带,配置简单 | 配置简单,可用windows自带的远程桌面登录 | 配置简单,但不一定能成功连接远程桌面 |
缺点:重启后必须登录个人桌面后才可启动 | root用户登陆不容易出错,普通用户容易出错 |出错不好解决|

综合我自己尝试这三种远程桌面登录ubuntu的方式,我觉得使用vino-server最方便,在这个基础上,安装xrdp服务,然后在windows系统中使用自带的远程登录工具时,使用VNC-any的方式登录远程桌面,这样就可以避免下载vnc viewer,使用起来跟windows远程登录方式也无差别。


2.常用软件安装

描述:主要在Ubuntu 20.04 TLS 安装以下工具集:

  • 网络管理: net-tools
  • 运维工作: Terminator / zsh / oh-my-zsh
  • 开发工具: git
  • 通信工具: minicom (串口通信工具) / sshd
  • 写作工具: typora / wps
  • 输入法工具: fctix-baidu / fctix-sougou / fctix
  • 娱乐工具 : 网易云音乐 / QQ


安装Shell脚本:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 网络管理 # 
# ifconfig
sudo apt-get -y install net-tools

# 开发工具 #
# git
sudo apt -y install git

# 运维工作 #
# Terminator
sudo apt-get -y install terminator
# zsh
sudo apt-get -y install zsh
# oh-my-zsh
sudo apt install curl # 先安装 curl
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 通信工具 #
# minicom - 调试嵌入式系统必备工具
sudo apt-get -y install minicom
sudo apt-get -y install ssh

# 写作工具 #
# typora : https://typora.io/#linux
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora

# 输入法工具 #
# 注意: Ubuntu 在安装中文语系系统自带有一个智能拼音且输入法系统为iBus,如果安装google或者百度输入法则需要安装切换为fcitx
sudo apt install fcitx
# 搜狗 : https://pinyin.sogou.com/linux/?r=pinyin
# 百度 :https://srf.baidu.com/site/guanwang_linux/index.html
sudo apt install fcitx-bin fcitx-table fcitx-config-gtk fcitx-config-gtk2 fcitx-frontend-all
sudo apt install qt5-default qtcreator qml-module-qtquick-controls2
sudo dpkg -i fcitx-baidupinyin.deb # 安装百度输入法
sudo dpkg --purge remove fcitx-baidupinyin:amd64 # 卸载

# 娱乐工具 #
# 网易云 : https://music.163.com/#/download
> sudo dpkg -i netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb
# 腾讯QQ (Linux) : https://im.qq.com/linuxqq/download.html
wget http://down.qq.com/qqweb/LinuxQQ/linuxqq_2.0.0-b2-1084_amd64.deb
sudo dpkg -i linuxqq_2.0.0-b2-1084_amd64.deb
sudo dpkg -r linuxqq #卸载QQ


配置工具集:

  • (1) Terminaltor 终端优化

    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
    33
    34
    35
    36
    37
    # 1.优化 Terminator 界面方案
    mkdir ~/.config/terminator/
    touch ~/.config/terminator/config
    gedit ~/.config/terminator/config
    [global_config]
    suppress_multiple_term_dialog = True
    [keybindings]
    [profiles]
    [[default]]
    background_color = "#002b36"
    background_darkness = 0.92
    background_type = transparent
    cursor_color = "#3036ec"
    font = Ubuntu Mono 15
    foreground_color = "#839496"
    show_titlebar = False
    login_shell = True
    custom_command = tmux
    use_system_font = False
    [layouts]
    [[default]]
    [[[window0]]]
    type = Window
    parent = ""
    [[[child1]]]
    type = Terminal
    parent = window0
    [plugins]

    # 2.Terminator 设置为默认的终端(实际测试中无需安装)
    sudo apt-get -y install dconf-editor
    dconf-editor
    # 依次打开 org --> gnome --> desktop --> terminal, 输入以下内容:
    exec: x-terminal-emulator
    exec-arg: -e

    # 3.Ctrl + Alt + T 启动 Terminator
  • (2) zsh 与 oh-my-zsh 基础配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # (1) 设置 zsh 为默认的 shell
    chsh -s /bin/zsh

    # (2) oh-my-zsh 默认主题配置文件在 ~/.zshrc 后续配置中会使用到
    touch ~/.zshrc

    # (3) zsh 插件
    # 语法高亮插件 zsh-syntax-highlighting
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-syntax-highlighting
    # 自动提示插件 zsh-autosuggestions(快速补齐快捷键ALT+E行位,ALT+F匹配一个语句)
    git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-autosuggestions


    # (4) 在 .zshrc 文件添加插件以及主题
    # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
    # 缺省主题 "robbyrussell"
    # 推荐主题: juanghurtado 、kardan、agnoster
    ZSH_THEME="agnoster"
    plugins=(git zsh-syntax-highlighting zsh-autosuggestions)

    # (5) 执行source使配置生效:
    $ source .zshrc
WeiyiGeek.terminal与oh-my-zsh

WeiyiGeek.terminal与oh-my-zsh

  • (3) 输入法设置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 1.假设前面您已经安装fcitx,此处以安装谷歌拼音输入法(Google Pinyin)为例,首先在系统终端中输入命令:
    im-config #注:im-config是Input Method Configuration的缩写。

    # 2.在用户配置设置系统中必须选中Fcitx,然后选择Yes , 然后重启机器

    # 3.安装谷歌拼音输入法(Google Pinyin)非常简单,只需要下面这个命令:
    sudo apt install fcitx-googlepinyin

    # 4. 安装后运行如下命令配置谷歌拼音输入法 或者在右上角进行点击:
    fcitx-config-gtk3

    # 5.打开Input Method Confuguration窗口,点击左下角 + 号,添加Google Pinyin 输入法
    # 注意最下面的输入法即默认激活的输入法;

    # 6.最后用快捷键:Ctrl+Shift 切换输入法
WeiyiGeek.输入法

WeiyiGeek.输入法


  • (4) ssh 密钥生成与加载
    1
    2
    3
    4
    5
    6
    7
    > ssh-keygen -t ed25519 -f ~/.ssh/id_sec_ed25519 -C "[email protected]" 
    > ssh-keygen -t rsa -C "[email protected]"
    [email protected]:~/.ssh
    > ls
    id_rsa id_rsa.pub id_sec_ed25519 id_sec_ed25519.pub
    > ssh-agent bash
    > ssh-add ~/.ssh/id_sec_ed25519 # 私钥加载


3.常用工具补充

截图工具

peek
描述: Peek 可以生成轻量级的GIF 图片, 也可以生成 MP4、APNG和WebM格式

1
2
3
4
5
6
7
# 1. 打开命令行后,获取Peek的PPA源(如果不行,多试几次)
sudo add-apt-repository ppa:peek-developers/stable
# 2. 更新源
sudo apt-get update
# 3. 安装peek
sudo apt-get install peek
# 4. 运行peek

使用说明: 使用peek后可以把目标对象放进进Peek 的框架里面, 然后点击最左上角的图标进行录制GIF图片,再次点击最左上角的图标停止录制GIF图片,然后自动弹出保存界面:

WeiyiGeek.Peek

WeiyiGeek.Peek


Kazam
描述: Kazam 是一个很轻量级的屏幕录制工具,也可以用来截图。

1
$ sudo apt install kazam


版本控制

Meld
描述:Meld 是类似 Beyong Compare 的一种优秀的文件或目录比较软件,并支持许多流行的版本控制系统。

1
$ sudo apt-get install meld


视频工具

VLC
描述:VLC是一个好用的视频播放器

1
$ sudo apt install vlc


Wine 工具

Q: 什么是 wine ?

答: 它是能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层;
简单的说就是可以在Linux上运行某些exe的可执行文件;

补充深度官方软件下载: https://mirrors.huaweicloud.com/deepin/pool/non-free/d/

Wine安装

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 1.我们需要在64位操作系统上支持32位应用,则需要添加32位架构的支持(`大部分的机器都是 x86_64 位的架构默认不支持 32 位应用程序`)
sudo dpkg --add-architecture i386

# 2.更新源与wine安装
sudo wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update
# sudo apt install wine-stable # Ubuntu
# sudo apt install --install-recommends winehq-stable # 官网
# deepin-wine 安装参考 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu

# 3.
> dpkg --list | grep "wine"
ii deepin-fonts-wine 2.18-22~rc0 all Windows API implementation - fonts
ii deepin-libwine:i386 2.18-22~rc0 i386 Windows API implementation - library
ii deepin-wine 2.18-22~rc0 all Windows API implementation - standard suite
ii deepin-wine-binfmt 2.18-12 all Windows API implementation - binfmt support
ii deepin-wine-helper:i386 1.2deepin8 i386 Deepin Wine Helper
ii deepin-wine-plugin 1.0deepin2 amd64 Deepin Wine plugin
ii deepin-wine-plugin-virtual 1.0deepin3 all Deepin Wine plugin virtual package
ii deepin-wine-uninstaller:i386 0.1deepin2 i386 Deepin Wine Uninstaller Tool
ii deepin-wine32:i386 2.18-22~rc0 i386 Windows API implementation - 32-bit binary loader
ii deepin-wine32-preloader:i386 2.18-22~rc0 i386 Windows API implementation - prelinked 32-bit binary loader
ii fonts-wine 5.0-3ubuntu1 all Windows API implementation - fonts
ii libwine:amd64 5.0-3ubuntu1 amd64 Windows API implementation - library
ii libwine:i386 5.0-3ubuntu1 i386 Windows API implementation - library
ri wine 5.0-3ubuntu1 all Windows API implementation - standard suite
ii wine-stable 3.0.1ubuntu1 all Windows API implementation (transitional package)
ii wine32:i386 5.0-3ubuntu1 i386 Windows API implementation - 32-bit binary loader
ii wine64 5.0-3ubuntu1 amd64 Windows API implementation - 64-bit binary loader


# 4.利用Wine进行安装使用微信与QQ
sudo wget "https://mirrors.huaweicloud.com/deepin/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_2.6.8.65deepin0_i386.deb" -O /home/weiyigeek/下载/deepin.com.wechat_2.6.8.65deepin0_i386.deb
sudo wget "https://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.office/deepin.com.qq.office_2.0.0deepin4_i386.deb"

> sudo dpkg -i *qq.office*deb
# (正在读取数据库 ... 系统当前共安装有 235251 个文件和目录。)
# 准备解压 deepin.com.qq.office_2.0.0deepin4_i386.deb ...
# 正在解压 deepin.com.qq.office:i386 (2.0.0deepin4) 并覆盖 (2.0.0deepin4) ...
# 正在设置 deepin.com.qq.office:i386 (2.0.0deepin4) ...
# 正在处理用于 gnome-menus (3.36.0-1ubuntu1) 的触发器 ...
# 正在处理用于 desktop-file-utils (0.24-1ubuntu3) 的触发器 ...
# 正在处理用于 mime-support (3.64ubuntu1) 的触发器 ...
# 正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
> sudo dpkg -i deepin.com.qq.office*
# 正在选中未选择的软件包 deepin.com.wechat:i386。
# (正在读取数据库 ... 系统当前共安装有 235238 个文件和目录。)
# 准备解压 deepin.com.wechat_2.6.8.65deepin0_i386.deb ...
# 正在解压 deepin.com.wechat:i386 (2.6.8.65deepin0) ...
# 正在设置 deepin.com.wechat:i386 (2.6.8.65deepin0) ...
# 正在处理用于 gnome-menus (3.36.0-1ubuntu1) 的触发器 ...
# 正在处理用于 desktop-file-utils (0.24-1ubuntu3) 的触发器 ...
# 正在处理用于 mime-support (3.64ubuntu1) 的触发器 ...
# 正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...

WeiyiGeek.Wine-QQ-Wechat

WeiyiGeek.Wine-QQ-Wechat


4.WPS 安装

描述: 虽然 Ubuntu 内置 LibreOffice 文档编辑器 , 个人更偏向于WPS其完善的功能(PS:唯一不足就是广告太多)
官网: https://linux.wps.cn/

1
2
3
4
5
# (1) 下载安装
$ wget https://wdl1.cache.wps.cn/wps/download/ep/Linux2019/9711/wps-office_11.1.0.9711_amd64.deb

# (2) 安装WPS
$ sudo dpkg -i wps-office_11.1.0.9711_amd64.deb
WeiyiGeek.WPS

WeiyiGeek.WPS

说明: 在Ubuntu 20.04中在使用WPS时没有出现系统缺失字体的问题,而这个问题在以前是很常见的


5.Pycharm 安装

描述:Pycharm 是一款进行Python开发的IDE编辑器由jetbrains公司进行开发的同样与大多数商业软件一样,它也有的专业版与社区免费版本以及教育的版本;

本次演示在Ubuntu 20.04 TLS 中下载安装Pycharm专业版,系统依赖;

1
2
3
4
5
6
7
8
# System requirements
GNOME or KDE desktop
2 GB RAM minimum, 8 GB RAM recommended
2.5 GB hard disk space, SSD recommended
1024x768 minimum screen resolution
Python 2.7, or Python 3.5 or newer

Note: JetBrains Runtime (JBR) 11 is included with the PyCharm distribution. You do not need to install Java on your computer to run PyCharm.

官方下载地址:https://www.jetbrains.com/pycharm/download/#section=linux

操作流程:

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
# (1) 安装 Pycharm 首先解压安装包 pycharm-professional-2020.1.tar.gz pycharm-2020.1
tar -zxvf pycharm-professional-2020.1.tar.gz pycharm-2020.1/

# (2) 建立软件存放路径
cd ~/app/program/pycharm-professional/ && ls
> ls
bin debug-eggs index jbr license product-info.json
build.txt help Install-Linux-tar.txt lib plugins pycharm-2020.2.3

# (3) 初始化 Pycharm 稍后会弹出一个窗口选择同意并且设置可用命令行启动charm;
./bin/pycharm.sh

# (4) 设置桌面图标在创建项目的页面上选择configure之后选择 Create Desktop Entry(注意需要进行认证)或者手动创立桌面图标;
$ cat /usr/share/applications/jetbrains-pycharm.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Professional Edition
Icon=~/app/program/pycharm-professional/bin/pycharm.svg
Exec="~/app/program/pycharm-professional/bin/pycharm.sh" %f
Comment=Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm

# (5) 命令行启动Pycharm
$ charm

# (6) 配置Python环境,默认情况下Pycharm新建工程的话,可能会创建失败会报错,比如“错误提示:ModuleNotFoundError: No module named ‘distutils.util’ ”
# 此时我们需要安装pip 以及 python3-distutils
sudo apt -y install python3-pip python3-distutils

优化配置:

1
2
3
4
5
6
7
8
9
10
11
# (1) 配置字体
# File -> Setting -> Editor -> Font
Font: DialogInput
Size: 18

# (2) 安装插件(注意需要重启IDE)
# File -> Setting -> Plugings
0) chines :界面语言
1)statistic: 项目统计
2)Rainbow Brackets:让代码块之间很清晰的显示出各种颜色
3).ignore:使用git的人知道,也就是.gitignore

WeiyiGeek.插件安装与使用

WeiyiGeek.插件安装与使用

基础Pycharm使用:新建项目 -> python -> 选择 python版本

WeiyiGeek.runPython

WeiyiGeek.runPython


0x03 服务器版本配置

1.Server版本图形界面安装

描述: Ubuntu server版安装后没有图形界面,为了管理方便,安装完成后,即可安装界面和远程桌面工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
# (1) 更新源 (清华、阿里都可以)
nano /etc/apt/sources.list

# (2) 执行更新软件包索引以及命令更新
apt-get update && apt-get upgrade

# (3) 安装桌面软件(Xorg)
apt-get install -y ubuntu-desktop

# (4) 安装远程桌面服务软件(xrdp)
apt-get install -y xrdp

# (5) 安装完成后即可使用Windows远程桌面工具登录Ubuntu。

WeiyiGeek.Server版本图形界面

WeiyiGeek.Server版本图形界面


2.图形界面使用root用户登录系统

描述: ubuntu 20.04 默认是没有开启root登录的, 所以在root用户锁屏后无法通过密码解锁进入图像界面系统,此时必须通过以下方式进行调整;

操作流程:

  • Step 1.设置root密码和切换root用户

    1
    sudo passwd root && su - root
  • Step 2.修改相应的配置文件启用root登录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $ sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
    [Seat:*]
    user-session=ubuntu
    greeter-show-manual-login=true
    # all-guest=false


    $ sudo vim /etc/pam.d/gdm-autologin
    $ sudo vim /etc/pam.d/gdm-password
    # 分别注释掉 auth required pam_succeed_if.so user != root quiet_success 这一行(第三行左右)


    $ sudo vim/root/.profile
    # ~/.profile: executed by Bourne-compatible login shells.
    if [ "$BASH" ]; then
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
    fi
    tty -s && mesg n || true
    mesg n || true
  • Step 3.重启系统生效在界面选择未列出的用户


3.grub安全配置

描述: 最近忘记了密码,然后使用了这个单用户模式重置了密码,感觉细思极恐啊,无论多么复杂的密码,只要重启后进入这个模式都可以被攻破。有人可以使用grub轻松更改你的用户密码,从而危及Linux系统的安全性所以你必须设置grub密码(例如重要主机或数据库系统)主要防止内鬼嘻嘻,本文介绍在Debian、Ubuntu和Kali Linux系统上用密码保护grub的方法。

操作流程:

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
33
34
35
36
37
# - 1.开启grub menu 显示( Ubuntu 20.04.2)
sed -i -e 's|set timeout_style=${style}|#set timeout_style=${style}|g' -e 's|set timeout=${timeout}|set timeout=3|g' /etc/grub.d/00_header

# - 2.使用如下命令来创建grub认证密码
sudo grub-mkpasswd-pbkdf2
# Enter password: WeiyiGeek
# Reenter password: WeiyiGeek
# PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.2FAFDA9CF0C871D1B01328D276AA55E14C54222718C969DD33E3287E720889AE0FF485FCBDC336566BC2A48C9FC97C15A09BDA7C926D8A21B2FF0531A2B3785D.776E30ECC4BDD5CD1F066B960BDAC25E4550B0E164D8AC8644EAD4158C86E5B70541640BA72699E58065E34F3A8039CAEB2273B0729FA511AC41920DE6D66FD4

# - 3.将生成的加密字符串加入到/etc/grub.d/00_header末尾
tee -a /etc/grub.d/00_header <<'END'
cat <<'EOF'
# GRUB Authentication
set superusers="grub"
password_pbkdf2 grub grub.pbkdf2.sha512.10000.5FD0269A1E1216B31ED1F127DF6E47D164D85E37E6187A48341F5665092CC752DB1527C0D928080A3440C0F46E7B7C749EC3582AF0F02951EB0FB01F9F8424D0.1466487161CC5866FCE719D95DD1D70FAF67B4F8601804DC74B3FE3C82506648942FF7073C8BFCFE268FBC0D545BED047A7763D0131E0ABBF8A4E0922C52EFD5
EOF
END

# - 4.设置进入正式系统不需要认证如进入单用户模式进行重置账号密码时需要进行认证。
vim /etc/grub.d/10_linux
191 echo "menuentry --user=grub '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" # 如果按e进行menu菜单则需要用grub进行认证
192 else
193 echo "menuentry --unrestricted '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" # 正常进入系统则不认证

# - 5.更新GRUB从而生成boot启动文件。
update-grub
# Sourcing file `/etc/default/grub'
# Sourcing file `/etc/default/grub.d/init-select.cfg'
# Generating grub configuration file ...
# Found linux image: /boot/vmlinuz-5.4.0-78-generic
# Found initrd image: /boot/initrd.img-5.4.0-78-generic
# Found linux image: /boot/vmlinuz-5.4.0-77-generic
# Found initrd image: /boot/initrd.img-5.4.0-77-generic
# Adding boot menu entry for UEFI Firmware Settings
# done
或者采用以下命令
# grub-mkconfig -o /boot/grub/grub.cfg

Tips : 重启机器在grub引导菜单输入”e”,需要输入用户名和密码才能进入,这个设置主要是为了防止别人通过物理接触进入单用户模式从而修改你的root密码。

WeiyiGeek.GRUB单用户模式登录加密

WeiyiGeek.GRUB单用户模式登录加密


0x04 入坑出坑

1.Ubuntu20.04密码忘记了怎么办?

描述:解决流程与CentOS7更改密码原理差不多都是通过修复模式进入单用户模式进行更改重置密码;

实施准备工作:

    1. Ubuntu 20.04系统
    1. 具有root权限或者sudo权限
    1. 具有域名控制权,可做DNS映射,比如域网与IP的映射
    1. 熟悉Linux基本命令行操作,比如vi命令

方式1:grub菜单进入单用户模式进行修改

  • 1) 重启Ubuntu20.04操作系统,然后快速的按下SHIFT按键并保持,直到出现启动界面选择【Ubuntu的高级选项】回车继续。

  • 2) 接下来当Ubuntu启动菜单突出显示时,按e编辑Grub的启动提示符。

  • 3) 进入编辑页面后替换找到如(把ro quiet splash $vt_handoff)下图标记位置将 ro 替换为 rw init=/bin/bash进行grub引导参数的修改, 之后按Ctrl+X进行引导启动Ubuntu 20.04系统;

  • 4) 成功启动Ubuntu 20.04系统之后,您应该直接就是root用户身份在执行命令了,而不需要输入root密码。

    1
    2
    3
    4
    5
    # 1.执行以下命令确认根目录是否已被挂载为rw可读写权限。
    mount | grep -w /

    # 2.重置root密码
    passwd root
  • 5) 完成重置密码或者破解密码的工作后,重启Ubuntu 20.04,执行以下命令重启服务器:exec /sbin/init

WeiyiGeek.密码更改

WeiyiGeek.密码更改

Tips : 如果想放弃修改,按下Ctrl+c或者F2或者ESC放弃修改,重新回到GRUB菜单中。


方式2.利用恢复模式(Recovery Mode)进行root密码的修改

  • 1) 选择指定内核版本的恢复模式(Recovery Mode)按回车键进入。

    WeiyiGeek.高级选项

    WeiyiGeek.高级选项

  • 2) 选择单用户模式进行root修改密码或者重置其它用户的密码采用passwd 用户命令;

    WeiyiGeek.恢复菜单

    WeiyiGeek.恢复菜单

  • 3) 退出重启(reboot)即可


Tips : 如果执行passwd时,提示以下错误:
错误提示:

1
2
passwd: Authentication token manipulation error
passwd: password unchanged

原因:根目录挂载了只读状态。

解决方法如下:mount -o remount,rw /


Tips : 如果提示错误[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x0007f00
错误原因:确保在前面修改grub参数时,删除splash启动选项。


Tips : 如果执行reboot命令时被提示:
错误提示:

1
2
Failed to connect to bus: No such file or directory
Failed to talk to init daemon.

解决办法: 忽略这样的错误,改为以下命令重启服务器:exec /sbin/init


2.在使用Ubuntu Software时提示/usr/share/appdata目录不存在

问题描述: 新装的系统在软件商店装软件的时候一直提示/usr/share/appdata目录不存在
解决办法:

  • (1) 图形界面打开系统监视器,并搜索 snap-store 选择 snap-store 进程并点击结束进程,然后重新打开Ubuntu软件;
  • (2) 命令行界面打开系统监视器 gnome-system-monitor
WeiyiGeek.gnome-system-monitor

WeiyiGeek.gnome-system-monitor


3.运行fcitx-config-gtk3时候显示如下 Name “org.fcitx.Fcitx-0” does not exist 警告

问题描述:

1
2
** (fcitx-config-gtk3:19361): WARNING **: 06:55:31.194: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.fcitx.Fcitx-0" does not exist
** (fcitx-config-gtk3:19361): WARNING **: 06:55:42.456: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.fcitx.Fcitx-0 was not provided by any .service files

问题原因: 由于ubuntu输入法配置为iBus需要执行im-config命令配置键盘输入输出为fcitx;


4.Ubuntu Desktop 版本右上角有一个红色的圆中间有一条白色的横线,鼠标移上去提示发生了一个错误

问题描述: 发生了一个错误,请通过右键菜单运行软件包管理器或通过终端执行apt-get来查看具体错误。错误信息:“错误:已损坏个数>0“,这通常意味着您安装的软件包有未满足的依赖关系
问题原因: 由于上次安装软件后未正确退出以及缺少依赖;
解决方法:

1
2
#在终端执行:
sudo apt-get install -f


5.GRUB Bootloader密码忘记了解决办法?

描述: 如果忘记密码或grub密码无法正常工作,则可以使用实时可启动闪存驱动器(GParted Live)或DVD(操作系统镜像文件)恢复更改。

Tips : 此处都是采用虚拟机进行演示所以首先需要关机然后选择相应的CD/DVD介质。

WeiyiGeek.ISO镜像挂载

WeiyiGeek.ISO镜像挂载

方式1: 利用 GParted Live (https://gparted.org/download.php) 进行清除密码,下载地址: https://downloads.sourceforge.net/gparted/gparted-live-1.3.0-1-amd64.iso, 启动gparted查看我的案例的屏幕截图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# - 用以下命令装载Linux OS根分区:
sudo mount /dev/sda6 /mnt/ && cd /mnt/
# 然后按原样输入以下命令:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i";done
# 使用编辑文件/etc/grub.d/00_header删除它末尾添加如下图:
vi /etc/grub.d/00_header
# 在Debian、Ubuntu和Kali Linux上用密码保护grub的方法
# grub-install /dev/sda # 如没有引导记录请使用以下命令在主引导记录(MBR)中安装 grub 引导程序
update-grub # 更新grub
reboot # 重新启动系统grub密码提示消失了。


# - 采用以下命令装载LVM逻辑卷的操作系统
sudo mount /dev/mapper/ubuntu--vg-lv--00 /mnt
chroot /mnt
mount -o remount, rw /
vim /etc/grub.d/00_header
update-grub

WeiyiGeek.GParted Live

WeiyiGeek.GParted Live

Tips : Gnome Partition Editor(简写 GParted)是一种非常小巧自启动运行光盘,它采用 X.org、轻量级的 Fluxbox 窗口管理器,以及 Linux 内核构建。其中包含的 GParted 硬盘分区工具,作为系统维护盘非常有用。


方式2: 利用系统安全镜像中Rescue救援模式进行清除密码。(后面遇到在写)


本文章来源 Blog 站点(友链交换请邮我哟):

更多学习笔记文章请关注 WeiyiGeek 公众账号
点击我关注

WeiyiGeek-公众账号

WeiyiGeek-公众账号