目标双系统 Win10 + Ubuntu 20.04.1
一、准备环境
- 单系统:Win10
- 快捷键:win + r 输入 msinfo32
- 查看启动类型,BIOS类型:UEFI (+ gpt)还是Legacy( + MBR)(括号内不显示,Legacy是传统)
- UEFI 较新,与 MBR 方式操作类似。
- 主要区别有:启动分区不一样,如下
UEFI 设置分区 | MBR 设置分区 | |
---|---|---|
/boot 启动分区 | X | /boot |
efi 启动分区 | /boot/efi | X |
二、U盘制作
- Ubuntu 每2年发布一次LTS,LTS 意为 Long Term Support,主要为 ubuntu 的内核还有特性的大更新。之前为 18.04 LTS 以及 16.04LTS,推荐新版出了XX.04.1版之后再安装使用,比如 20.04.1 。目前 20.04 和 18.04 的内核差距不大(5.4.0 vs 5.3.X),但环境差距是存在的主要是,新版移除了QT4。我想装的MQTTBox停更了一年,目前20.04版本,安上无法打开。Ubuntu 默认使用的界面是 GNOME 3.3.6,大部分的问题与GNOME相关,搜索记得带上GNOME;
- 官网下载镜像;
- 下载U盘制作工具(查看官网页面|该官网会让你下载rufus ),直接下载安装左边的rufus,记住U盘制作会格式化,记得备份;
- 制作U盘时,记得在rufus里选对应格式,UEFI版的选gpt,MBR版的默认就行;
三、安装
- 插 U盘开机,不停点按Del或F2 (华硕直接F8) 或Esc或F12 (可以全部不停点按)
- 找到启动选项,选 U盘( UEFI 版选 uefi,MBR版选不带 uefi 的)
- 一路操作到磁盘分区,选其他选项(不选默认:需要专门分配/boot分区)
- 只分三个分区:/boot分区、交换分区、/根分区 (都选 ext4,如果内存大 >16G,交换分区可去掉)
对应选项 | 目录 | 大小 | 备注 |
---|---|---|---|
主分区 | /boot | 512MB | 启动分区; 内核会存放在该位置; |
交换分区 | 无 | 4GB 推荐设为内存同值 | swap分区; 睡眠等功能会用到. |
主分区 | / | 剩下全部 | Linux 只有路径,没有盘符, 除了上面分配完的 /boot 目录,其他统一在根 / 下; |
- 点地图选择时区。
- 安装、重启、按提示拔掉 U盘;
四、使用
- 提前打开系统设置里面换好镜像,推荐中科大ustc的镜像(打开「软件更新器」里面选择一个就行了,可以不用命令行);
- 打开终端更新包;
sudo apt update && sudo apt upgrade -y #-y表示有选项默认选y/yes
- 设置root密码;
sudo passwd root
[sudo] password for you :-> 输入之前设置User密码,不是root
Enter new UNIX password: -> root密码
— > 设置root 密码
Retype new UNIX password: -> root密码
- 给自己平时使用的用户添加sudo权限。(默认用户已经是sudo组,这里指自己新建的用户)
$ id $USER # 查看用户信息 $USER为系统里表示当前用户
$ sudo usermod -aG sudo $USER # -G的含义是把用户添加到指定的用户组,但是会自动从其他组中删除。 -a的含义是追加,但不会从其他组中删除。sudo 超级用户组名。
# 删除用户
$ sudo usermod -G test_user # 添加空组,其他组全删除,相当于全删除
- 如果发现 sudo 组不存在, 使用下面的方法 (
visudo
命令能安全的编辑/etc/sudoers
文件)
$ visudo
# 添加最后一行到对应位置 (john 替换为你的用户名)
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
john ALL=(ALL) ALL
- 用户组和用户新增
groupadd zookeeper # 新增zookeeper组
useradd -g zookeeper -d /opt/zookeeper -s /sbin/nologin zookeeper # 新增用户 zookeeper
usermod -aG zookeeper $USER # 当前用户附加到zookeeper组, a必须和G一起用
passwd zookeeper # 更改用户密码
chown -R zookeeper:zookeeper /opt/zookeeper/ # change own 授权路径的权限组和用户
id zookeeper # 查看用户信息
chmod -R 750 /opt/zookeeper/ # change mode 更改读取权限 --recursive
# Linux/Unix 的档案存取权限分为三级: 档案拥有者、群组、其他
chsh -l # change shell -l list -s 指定shell(全路径名称)
chsh -s /sbin/nologin zookeeper # /sbin/nologin 没有 shell 无法通过 ssh 进入 (软件账户)使用
su -l zookeeper # substitute user identity. - or -l Simulate a full login
sudo -H xxx # 为什么要加 -H, --set-home 加了 -H 会使用root的主目录 ($HOME), 避免用户目录中的文件被 root 拥有
/sbin/nologin
和 /bin/false
都表达了没有 shell 的概念. 为 /bin/false
退出时立即注销. 可作为系统账户(软件账户) 使用, 这些账户都没有外壳且无法通过 ssh 进入. nologin 提示更加友好, 使用文件 /etc/nologin.txt
可更改提示消息
- 免sudo密码(不推荐)
## 如果不是在正式服务器上,可以设置当前用户 sudo 无需密码
sudo -H vi /etc/sudoers
# 找到%sudo ALL=(ALL:ALL) ALL,在下边添加类似的一行
# 用户名 ALL=(ALL:ALL) NOPASSWD:ALL
## 重启试下sudo ls不输入密码就可以了
(OK,已完成安装)
五、杂物
- Linux(类Unix)最主要是面对服务器端,桌面端并不是重点。而我们使用Linux,更多是为了开发或者学习,所以无需太过计较与其他系统进行对比;
- 建议记录下自己的配置,因为可能以后会重复安装多次;
- 搜狗输入法已经适配20.04(但对java程序有兼容问题,建议下载百度输入法)
## 一般使用dpkg -i 安装,但官方推荐使用gdebi,没有就按提示装
sudo gdebi sogoupinyin_2.3.2.07_amd64.deb
- 双系统引导菜单问题,其实新版都默认支持双系统。Ubuntu检测到你有双系统,会默认进入GNU GRUB 2.x选项条。不用考虑使用
EasyBCD等其他软件来引导。
1. GRUB 2 菜单默认为隐藏,除非其他操作系统被系统检测到。若没有其他操作系统, **此行默认被注释掉**,除非使用者修改它。为了在每次启动时显示菜单,去掉此行的注释并使用 1 或更大的值。
2. 此命令将顺从 GRUB_HIDDEN_TIMEOUT 配置,除非 GRUB_HIDDEN_TIMEOUT 被注释掉(#)。若 GRUB_HIDDEN_TIMEOUT 启用,则当菜单显示时,GRUB_TIMEOUT 将会只执行一次。
3. 配置此值为 -1 将会导致菜单一直显示,直到用户选择。
## 强制隐藏GNU GRUB选项条的方法:
$ sudo vi /etc/default/grub
-----------------
GRUB_TIMEOUT=10 # 改为0.01或者0
-----------------
$ sudo update-grub # 更新
# 解释:对应GRUB_TIMEOUT即可等待想要的时间。单系统默认注释,双系统则不注释,表示展示多少秒)
1、快捷键:
## 普通Gnome桌面快捷键
- Win键 == Super键 (Linux中只是一个快捷键标记) = Command键 (macOS下当ctrl键用)
- Super + a,显示应用列表
- Super/Alt + tab,切换程。Super+`,切换相同程序窗口
- Alt + F2 | Alt + Space,运行命令
- PrintScreen,截图。会默认保存在图片文件夹
- Ctrl + PrintScreen,保存在剪贴板
## 命令行快捷键
- 打开终端:Ctrl + Alt + t
- 终端内:
- CTRL - a 移动到行首
- CTRL - e 移动到行尾
- ESC - t 交换前后或前面两个词
- CTRL - u 清除光标之前
- CTRL - k 清除光标之后
- CTRL - y 粘贴已删除的文本(例如粘贴CTRL-U所删除的内容)
- CTRL - r 搜索shell历史记录
- CTRL - b 左移光标
- CTRL - f 右移光标
- CTRL - p 查看上一条命令(或上移光标)
- CTRL - n 查看下一条命令(或下移光标)
- CTRL - w 删除前一个词
- ALT - d 删除后一个词
2、更改系统时区
date -R #查看时区是否是+0800
timedatectl set-timezone Asia/Shanghai # 方法一
tzselect #方法二.1(选数字)
ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #方法二.2
3、安装 kde 桌面(推荐)
- 我选用的为:Ubuntu 原版 + KDE Plasma界面
- 注意:这一步,界面会变(开机登录页面右下角有个设置图标,选择多出来的就行了)
sudo apt install kde-standard
# 请勿使用 kde-full 或 kde-plasma-desktop
- 推荐 kde 下启用 Wobbly Windows 和 Magic Lamp 特效;
4、安装 Chrome、idea
## Chrome
$ sudo dpkg -i google.dep
## Idea
$ sudo tar -zxvf idea.tar.gz -C /opt/
$ cd /opt/ideaxxxx/bin/
$ chmod +x idea.sh
$ ./idea.sh
## 设置 idea 图标:点击Tools -> Create Desktop Entry -> OK
5、安装 jdk 环境
- Oracle官网 下载jdk8(它文档要比 openjdk 好)
Oracle帐号:2696671285@qq.com
Oracle密码:Oracle123
账号来自互联网
$ mkdir -p /usr/local/java
$ tar -zxvf jdk-8u281-linux-x64.tar.gz -C /usr/local/java/
- 配置系统环境
$ vim /etc/profile
# 在文件末添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_281
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 生效(无需sudo)
$ source /etc/profile
6、安装软件一览
部分使用 Snap 安装
$ sudo apt install wireshark
$ yarn global add @vue/cli@next #3.11.0
unrar、tree、vim、git、git-svn、net-tools、chrome、idea、jdk、navicat|DBeaver、thunder、typora、emacs、goldendict、
redisDesktopManager、postman、baidunetdisk、VLC player、VMware、 VScode、
Xmind、Spotify、Zeal、Sublime-text、qq music
7、docker 安装
$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
## 安装成功后免 sudo 运行
$ sudo usermod -aG docker ${USER}
8、docker-compose 安装
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试安装结果
$ docker-compose --version #installed test
#卸载操作
$ sudo rm /usr/local/bin/docker-compose #Uninstallation
9、微信、QQ、钉钉
https://github.com/zq1997/deepin-wine
10、字体
https://greasyfork.org/zh-CN/scripts/419362-%E5%85%A8%E5%B1%80%E6%80%9D%E6%BA%90%E9%BB%91%E4%BD%93 ## https://github.com/v2fly/v2ray-core/releases/
11、卸载
$ sudo apt remove --purge nautilus
12、node、npm、yarn、vue
$ sudo apt install npm
$ sudo npm install -g yarn
$ sudo npm install -g hexo-cli
$ sudo yarn global add @vue/cli@3.11.0
13、防火墙ufw
$ sudo ufw enable/disable # 开启/关闭防火墙,如果没有安装 sudo apt install ufw
$ sudo ufw default deny # 设置默认拒绝
$ sudo ufw status # 查看启用状态(包含开放端口的列表)
$ sudo ufw allow 8080
$ sudo ufw delete allow 8080
$ sudo ufw allow from 192.168.0.101 # 允许特定来源的ip地址访问(所有端口)
14、双系统时间互相影响
Windows把系统硬件时间当作本地时间(local time), Linux/Unix/Mac把硬件时间当作UTC再进行换算. 所以其中一方修改了时间, 另一边就会受影响.
解决: 在Linux下打开终端,输入命令:
timedatectl set-local-rtc 1
timedatectl
15、(补充) 卸载 UEFI 引导的双系
进入 win 10 下的 CMD (管理员权限)
diskpart
进入 diskpart 程序后,选择“系统”既启动分区所在地方:
list disk
select disk 0
list partition
select partition 1
assign letter=f
或者>>>start
list volume
select volume 1
assign letter=f
<<<end
打开管理员权限的记事本
打开文件, 选择f盘
EFI文件夹下删除多余启动
最后:
remove letter=f
最后直接把双系统所在的分区删掉即可
注:bios里面的残余项也可以删除 (如果有的话, 如下图, 选中按 delete键)
thinkpad 举例:
F1: BIOS Setup Utility
F5: to show Asset Information
F9: to show Regulatory Information
F10: to diagnose hardware
F11: to recover your system
F12: to choose a temporary startup device
- 按 Enter 进入 Interrupt Menu
- 按 F12
- 选中 StartUp
- 选中 Boot
(完)