[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」

相关配置文件

配置 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/grub
  • sudo 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 表示普通分区。
# /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

# 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;
posted @ 2021-08-04 15:46  香蕉不是芒果  阅读(600)  评论(0)    收藏  举报