[Linux] Ubuntu-系统配置
Ubuntu 系统配置
目前的环境为:
./+o+- zghong@zhigaos-lab
yyyyy- -yyyyyy+ OS: Ubuntu 20.04 focal
://+//////-yyyyyyo Kernel: x86_64 Linux 5.8.0-63-generic
.++ .:/++++++/-.+sss/` Uptime: 4h 15m
.:++o: /++++++++/:--:/- Packages: 1978
o:+o+:++.`..```.-/oo+++++/ Shell: zsh 5.8
.:+o:+o/. `+sssoo+/ Resolution: 3840x1080
.++/+:+oo+o:` /sssooo. DE: GNOME 3.36.5
/+++//+:`oo+o /::--:. WM: Mutter
\+/+o+++`o++o ++////. WM Theme: Adwaita
.++.o+++oo+:` /dddhhh. GTK Theme: Prof-Gnome-Dark-3.6 [GTK2/3]
.+.o+oo:. `oddhhhh+ Icon Theme: Papirus-Dark
\+.++o+o``-````.:ohdhhhhh+ Font: Ubuntu 11
`:o+++ `ohhhhhhhhyo++os: Disk: 54G / 1.2T (5%)
.o:`.syhhhhhhh/.oo++o` CPU: Intel Core i5-7500 @ 4x 3.8GHz [46.0°C]
/osyyyyyyo++ooo+++/ GPU: GeForce GT 730
````` +oo+++o\: RAM: 6486MiB / 32045MiB
`oo++.
安装系统
- 下载 Ubuntu 系统镜像文件,推荐清华大学镜像站等国内镜像站点。
- 用balenaEtcher制作启动盘。
- 开机选择从 U 盘启动,按提示安装即可。
- 「更新和其他软件」时,选择「最小安装」和「为图形或无线硬件,以及其他媒体格式安装第三方软件」
- 「选择安装类型」时,选择「其他选项」。手动设置挂载点,方便系统后期的管理,避免系统损坏而导致重要数据丢失。
- 挂载点(重要),这里我只设置了三个分区:
| 名称 | 格式 | 大小 | 挂载点 | 分区类型 | 说明 |
|---|---|---|---|---|---|
| EFI 分区 | efi | 300M | 主分区 | 仅当前磁盘无 EFI 分区时设置 | |
| / | ext4 | 235G | / | 主分区 | 根目录 |
| /home | ext4 | 1T | /home | 逻辑分区 | 家目录 |
建议断网安装,因为默认源的下载速度慢,安装完成后设置为国内源,再进行相关更新反而节省时间。
配置系统
切换国内源并安装官方源软件
官方源的下载速度慢,使用国内镜像源可以加快下载速度。
- 桌面版可以直接在软件「软件和更新」中,切换源。
- 或者直接使编辑
/etc/apt/sources.list配置文件(最好提前将原文件备份)。 - 更新仓库和软件:
# 习惯使用 chrome
sudo apt purge firefox firefox-locale-en && sudo apt autoremove
sudo apt update && sudo apt upgrade
# 安装官方源软件
sudo apt install net-tools tree vim git curl wget screenfetch
sudo apt install htop samba smbclient vino unrar ibus-rime python3-pip tldr fzf trash-cli hardinfo
sudo apt install ranger nnn
sudo apt install gnome-tweaks vlc flameshot remmina cheese plank wireshark virtualbox
sudo apt install guake conky
- samba 和 smbclient 是 Samba 的服务端和客户端。
- vino 是系统自带的屏幕共享协议(位于「设置」-「共享」,最小化安装时不会安装该软件)。
- ibus-rime 是 rime 输入法。
- fzf 是强大的模糊搜索工具。
- 安装 fzf 后,再使用快捷键「ctrl+r」,就可以更方便地搜索历史命令。
- 配合其他命令使用:
alias fvim='vim $(fzf)', alias fcd='cd $(find * -type d | fzf)', fzf --preview 'head -100 {}'
- trash-cli 是回收站的命令行模式,避免 rm 命令误删的情况。
- 使用 trash-cli 后可以禁用 rm 命令,用 trash 的命令代替。
- trash-cli 提供有如下命令:
trash-put, trash-list, trash-restore, trash-rm, trash-empty
- hardinfo 是查看硬件信息的可视化工具,实际上这些信息都可以通过
lshw命令进行查看。 - ranger 和 nnn 都是终端的文件管理器,都采用 vim 风格的按键绑定;ranger 功能丰富,nnn 简单快捷。
- flameshot 是截图贴图软件,可设置快捷键,启动命令为
flameshot gui - remmina 是远程桌面客户端,提供了 RDP、VNC、XDMCP、SSH 等多种远程连接协议的支持。
- plank 是一种 dock 软件,支持主题安装。
- 安装 plank 之后,可能会与系统自带的 dock 冲突,二者会同时出现,不美观。
- 手动禁用系统自带 dock:
sudo mv /usr/share/gnome-shell/extensions/ubuntu-dock@ubuntu.com{,.bak}
- virtualbox 是虚拟机软件,在官方源安装 virtualbox 时并不会附带下载扩展工具(virtualbox-guest-additions-iso),需要手动下载。
- 「设备」-「安装增强功能」-「未找到,互联网下载」-获取下载链接。
wget https://download.virtualbox.org/virtualbox/6.1.16/VBoxGuestAdditions_6.1.16.iso- Linux 下使用 virtualbox,需要关闭 BIOS 的安全启动。
安装 zsh + oh-my-zsh
# 1. 安装并切换默认 shell 为 zsh
sudo apt install zsh
chsh -s /bin/zsh
# 2. 安装 oh-my-zsh
git clone https://hub.fastgit.org/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 3. 安装相关插件
git clone https://hub.fastgit.org/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone https://hub.fastgit.org/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
vim ~/.zshrc
# 4. 修改配置文件
plugins=(
git
extract
z
zsh-syntax-highlighting
zsh-autosuggestions
fzf
)
安装中文语言环境及 ibus 输入框架
- 「语言支持」,会自动检测语言环境并下载 ibus 输入框架。
- 「设置」-「区域与语言」-「输入源」,选择及配置输入法。
安装微软字体
在使用一些如 WPS 和 LaTeX 等这些对字体要求很高的软件时,有些字体是微软特有字体,Linux 下是没有的,这就会使得体验很糟糕。
- 复制所有的 Windows 字体:
sudo cp -r C:/Windows/Fonts/* /usr/share/fonts/win-fonts/ - 修改权限:
chmod -R 755 /usr/share/fonts/win-fonts/ - 重建 fontconfig 缓存:
sudo fc-cache -fv
安装 gnome 插件
- 通过 Chrome 浏览器扩展插件gnome-shell-integration来安装 gnome 插件。
- 由于 gnome 插件的排列顺序并不能自定义,估计是按照安装顺序来排列的,所以安装顺序比较讲究,我自己的安装顺序如下:
- places status indicator, simple task bar, application menu
- clipboard indicator, screenshot tool, bing wallpaper, VirtualBox applet, openweather, simple monitor, simple net speed
- ddterm, hide dash x, topicons plus, user themes, volume mixer, window is ready-notification remover, disconnect wifi, remmina/vscode search provider
- todo.txt, dash-to-dock, dash-to-panel, top-panel-workspace-scroll, vitals, gsconnect, dynamic-top-bar, easy-screen-cast
gnome-tweaks 及 plank 美化
- 窗口:居中显示新窗口
- 鼠标和键盘
- 键盘:「其他布局选项」-「Ctrl 键位置」-「左 alt 和左 ctrl 对换」
- 鼠标(基本都与 utools 操作冲突)
- 顶栏:活动预览热区;电池百分比;周数
通过 gnome-tweaks 软件,还可以对 gnome 桌面进行定制,包括应用程序,光标,图标,shell 等。将资源包解压放在对应文件夹后,就可以在 gnome-tweaks 中选择合适的主题。
- 在gnome-look.org下载资源包并解压。
- 应用程序和 shell 主题位于
/usr/share/themes,推荐「Prof-Gnome-Dark」 - 光标主题位于
/usr/share/icons,推荐「oreo_spark_orange_cursors」 - 图标主题位于
/usr/share/icons,推荐「papirus」 - plank 主题位于
~/.local/share/plank/themes,推荐「frost-plank」- 关闭系统 dock:
sudo mv /usr/share/gnome-shell/extensions/ubuntu-dock@ubuntu.com{,.bak} - 隐藏 activity 页面的 dock:gnome 插件「hide dock x」
- 关闭系统 dock:
相关配置文件
配置 vim
# sudo vim /etc/vim/vimrc
set ai
set number
set showmode
set showcmd
set showmatch
set ruler
set tabstop=4
set incsearch
set hlsearch
syntax on
filetype on
inoremap jj <Esc>
配置 samba
# sudo vim /etc/samba/smb.conf
# 全局配置
[global]
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
# 匿名共享
[mypublic]
comment = Public Data
path = /home/zghong/Develop
public = yes
# 验证共享
[myprivate]
comment = Private Data
path = /home/zghong
valid users = zghong
# sudo vim /etc/samba/smbusers
zghong = hahaha
- 添加 smaba 用户:
sudo smbpasswd -a zghong - 修改 smb.conf 配置文件。
- 修改 smbusers 用户映射文件。
配置 git
- 生成本机的 ssh 秘钥:
ssh-keygen -t rsa -C "123@456.com" - 将
~/.ssh目录下的id_rsa.pub公钥添加在 GitHub 中。 - 验证是否添加成功:
ssh -T git@github.com - 设置 username 和 email(因为每次 commit 都会记录这些信息,位于
~/.gitconfig):git config --global user.name "name",GitHub 名字git config --global user.email "123@456.com",GitHub 邮箱
配置 gurb
修改启动时间
对于装有 Ubuntu 的多系统,存在选择系统和等待时间的问题,可以通过修改/etc/default/grub来解决。
sudo vim /etc/default/grub- 修改
GRUB_TIMEOUT=10为相应的时间,如果需要直接进入系统则修改为GRUB_TIMEOUT=0
- 修改
sudo update-grub- 如果修改的时间为 0,启动时间又会被自动重置为 10,这是因为
/boot/grub/grub.cfg中有一个如下的判断,需要注释之。
# if [ "${timeout}" = 0 ]; then
# set timeout=10
# fi
修改启动主题
- 在gnome-look.org下载资源包并解压,推荐「Tela grub theme」
- 将资源包复制到
/boot/grub/themes,如果没有该文件夹,创建之。 sudo echo GRUB_THEME="/boot/grub/themes/Tela/theme.txt" >> /etc/default/grubsudo update-grub
配置 ntfs
Linux 不会自动挂载 ntfs 的分区,我们可以将诸如/dev/sdb1, /dev/sdb2, /dev/sdb3等 ntfs 分区挂载到 Linux 的目录下。
- 查看分区信息:
sudo fdisk -l - 进入硬盘挂载目录:
cd /media/zghong - 创建对应挂载目录:
sudo mkdir Windows Software Study Others - 将
/dev/sda3分区挂载到/media/zghong/Windows目录:sudo mount /dev/sda3 Windows,但是该操作重启后就失效了,所以需要另外操作设置成开机自动挂载。- 查询分区的 UUID:
sudo blkid /dev/sda3 - 挂载分区:
sudo vim /etc/fstab,追加格式为UUID=xxx 挂载目录 挂载磁盘格式 defaults 0 2- 例如:
UUID=88069947069936E2 /media/zghong/Windows ntfs defaults 0 2 - 第一个数字:0 表示开机不检查磁盘,1 表示开机检查磁盘。
- 第二个数字:0 表示交换分区,1 代表启动分区(Linux),2 表示普通分区。
- 例如:
- 查询分区的 UUID:
# /media/zghong/Software was on /dev/sdb1
UUID=E82CBABC00004823 /media/zghong/Software ntfs defaults 0 2
# /media/zghong/Study was on /dev/sdb2
UUID=10A40AA610A40AA6 /media/zghong/Study ntfs defaults 0 2
# /media/zghong/Others was on /dev/sdb3
UUID=10A40D0B10A40D0B /media/zghong/Others ntfs defaults 0 2
对 ntfs 读写,要关闭 Windows 10 的快速启动。
其他文件与目录
- 有线/无线网络连接:
/etc/NetworkManager/system-connections/ - 系统服务:
/lib/systemd/system - 蓝牙/无线驱动:
/lib/firmware/./rtl_bt:Realtek 瑞昱芯片的蓝牙驱动./rtlwifi:Realtek 瑞昱芯片的无线网络驱动
- 应用的启动项:
/usr/share/application, /opt/apps - remmina 证书:
~/.config/freerdp/known_hosts;remmina 密钥:「密码和密钥」-「登录」
home 目录部分文件夹说明
.
├── .cache
│ ├── clipboard-indicator@tudmotu.com # clipboard indicator 剪贴板数据
│ ├── evolution
│ ├── fontconfig # 字体缓存
│ ├── google-chrome # chrome 浏览器缓存
│ ├── gstreamer-1.0
│ ├── ibus # ibus
│ ├── ibus-table # ibus 五笔
│ ├── libgweather
│ ├── nvidia # 显卡缓存
│ ├── obexd
│ ├── org.remmina.Remmina # remmina 更新
│ ├── pip # pip 缓存
│ ├── plank # plank
│ ├── python-entrypoints
│ ├── remmina # remmina
│ ├── thumbnails # 缩略图缓存
│ ├── tracker
│ ├── typescript # typescript 缓存
│ ├── update-manager-core # 系统更新-发行版信息
│ └── yelp
├── .config
│ ├── autostart # 开机自启动程序
│ ├── Code # vscode
│ ├── configstore # appstore
│ ├── dconf
│ ├── Dharkael # flameshot
│ ├── enchant
│ ├── eog
│ ├── evolution
│ ├── freerdp # remmina 的 rdp 证书信息
│ ├── gedit # gedit
│ ├── gnome-initial-setup-done # gnome 桌面初始
│ ├── gnome-session # gnome
│ ├── goa-1.0
│ ├── google-chrome # chrome
│ ├── gtk-2.0
│ ├── gtk-3.0
│ ├── gtk-4.0
│ ├── htop # htop
│ ├── ibus # ibus, ibus-rime 配置
│ ├── Kingsoft # wps
│ ├── menus
│ ├── mimeapps.list
│ ├── nautilus
│ ├── plank # plank
│ ├── pulse # 音频
│ ├── qqmusic # qqmusic
│ ├── QtProject.conf
│ ├── remmina # remmina
│ ├── TabNine # vscode 的 TabNine 插件
│ ├── update-notifier
│ ├── user-dirs.dirs # 用户目录映射
│ ├── uTools # uTools
│ ├── VirtualBox # VirtualBox
│ ├── vlc # vlc
│ ├── XMind # XMind
│ └── yelp
├── .gnupg
├── .lesshst
├── .local # 包括用户的 bin, lib, share
├── .mume # vscode
├── .npm # npm 缓存
├── .npmrc # npmrc 配置
├── .nv
├── .nvidia-settings-rc # nvidia 配置
├── .pam_environment
├── .pki
├── .profile
├── .sudo_as_admin_successful
├── .tldr # tldr
├── .viminfo # vim 自动生成的
安装常用软件
安装第三方软件
支持 Linux 的第三方软件可以直接去其官方网站下载对应的.deb安装包即可,常用的有chrome, vscode, wps, xmind, QQmusic, utools, fiddler, spark-store等。
- 下载 chrome 浏览器:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - 对于 utools:如果快捷键 ctrl+space 出现延迟,可能是与其他快捷键设置冲突,比如 gnome-tweaks 中设置了按下 ctrl 时凸显鼠标等原因。
安装 deepin-wine 软件
- deepin-wine-ubuntu是 deepin-wine 应用在 Mint/Ubuntu/Debian 上的移植仓库,使之可以使用 deepin 移植的众多 Windows 软件,但是现在维护不是很好。
- deepin-wine是基于「deepin-wine-ubuntu」,维护了很多常用 wine 软件,具体见软件包列表。
- spark-store是开源的 wine 应用商店,广泛收录大家需要的软件包,搜集优质小工具,主动适配 wine 应用,存放到储存库供大家获取,应用较多。
wine 微信无法查看大图/无法发送图片的问题:
sudo apt install libjpeg62:i386。When WeChat is installed from deepin-wine.i-m.dev, libjpeg62:i386 is absent from the dependency. As a result, there will be no avatar on login screen, and some malfunction in sending pictures/screenshots. Adding 32-bit dependency libjpeg62:i386 is strongly suggested.
安装开发环境
Python
pip 工具
# 安装 python2
sudo apt install python
# 安装 pip3
sudo apt install python3-pip
# pip 命令
pip3 install xxx
pip3 uninstall xxx
pip3 list
pip3 show
pip3 --help
# 修改 pip 下载源
# mkdir ~/.pip && vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
虚拟环境
用户使用 pip 安装的包在~/.local/lib/python3.8/site-packages下,但是在项目工程中,为了避免包的混乱和版本的冲突,可以创建一个虚拟环境,在虚拟环境中安装的包在~/.virtualenvs/mytools/lib/python3.8/site-packages
虚拟环境是 Python 解释器的副本,在虚拟环境中可以为某个项目单独创建一个环境,保证项目包的独立和整洁。
pip3 install virtualenv
pip3 install virtualenvwrapper
如果现在直接使用mkvirtualenv demo,会提示找不到命令,这是由于脚本文件没有加入系统路径,在.zshrc中添加的配置如下:
# python virtualenv settings
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 指定 virtualenv 的路径,否则会提示 virtualenvwrapper could not find virtualenv in your path
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh
Node
- node.js 官网下载安装包。
- 配置环境变量,
vim ~/.zshrc
# vue settings
export PATH=~/Develop/Vue/node-v14.17.3-linux-x64/bin:$PATH
Java
- oracle 官网和maven 官网下载安装包。
extract jdk-11.0.12_linux-x64_bin.tar.gz apache-maven-3.8.1-bin.tar.gz- 配置环境变量,
vim ~/.zshrc
# java settings
export JAVA_HOME=~/Develop/Java/jdk-11.0.12
export PATH=$JAVA_HOME/bin:$PATH
export M2_HOME=~/Develop/Java/apache-maven-3.8.1
export PATH=$M2_HOME:$PATH
MySQL
# 一般安装 server 会附带安装 client
sudo apt install mysql-server
# 但是安装后,一般没有为 root 用户设置密码,所以手动设置之
# 在 MySQL 8.0 之前,可以通过执行`update user set authentication_string=password('1234') where user='root'`来修改密码
# 但是 MySQL 8.0 之后,这种修改方式无效了,因为新版本修改了密码验证方式
sudo mysql
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

浙公网安备 33010602011771号