安装

背景:

  • 安装 Win10 + LinuxMint20.3 双系统
  • 固态 + 机械
  • UEFI + GPT

步骤

步骤:

  • 先安装 Windows 再安装 Linux;
  • 在 Windows 磁盘管理中压缩出空白卷,供 Linux 使用;
  • 分区时读多写少的 (/、usr、opt) 放固态,swap 也放固态;写操作较多的 (tmp、var) 放机械,剩下的机械全分给 home;
  • 注意划分出一个 /boot 分区,并将启动引导器安装在该分区,如下图。

安装完成后重启,发现没有引导选项,直接进入了 Windows。对于 BIOS+MBR,可以使用 Windows 引导 Linux 启动,使用 EasyBCD 软件设置新增一个启动项即可。而对于 UEFI+GPT 需要在 BIOS 中的 UEFI 启动项设置中,将 Linux 的启动优先级提高。重启即可进入 grub 界面,选择 Windows 或 Linux 启动。

安装完成后修改分区

分区时不小心给 /tmp 了 100G,太多了,想要压缩下并分配给 /home;由于分区在物理磁盘上是连续的,上面的分区顺序又比较煞笔(tmp—var—home),所以需要先压缩 tmp 的空间,删除 var,重新创建 var,删除 home,重新创建 home。或许后面可以体验一下 LVM。

此时的分区状态:tmp—var—home

  1. 要将 tmp 分区压缩,就得先将 tmp 脱机(unmount),然后才能压缩卷,然而在系统使用中难以直接将 tmp 脱机,可以选择进入单人维护模式(只会挂载 / 目录)或直接使用 u 盘进入 live 系统进行分区操作,里面有图形化分区工具,如下图所示。

此时的分区状态:tmp— 空白卷 —var—home
2. 删除 var 分区时,需要先将 var 中的内容复制到其他分区进行备份(注意 包含隐藏文件),然后删除 var 分区,此时空白卷就合并了,重新创建 var 分区并选择大小。创建完成后,将之前备份的文件还原回去。

此时的分区状态:tmp—var— 空白卷 —home
3. 同上面操作一样,备份 home 中的内容 删除 home重新创建 home还原 home 内容。
4. 到这一步还没完,由于删除并重新创建了分区,所以分区的 UUID 发生了改变,需要修改 /etc/fstab 文件的内容,将 UUID 一列修改为最新的值,否则重启后将不能正确挂载 var 和 home 目录。

软件清单

apt 常用操作

命令说明
apt-cache search package搜索包
apt-cache show package展示包的相关信息
apt-cache depends package查看使用哪些依赖
apt-cache rdepends package查看被哪些包依赖
apt-get update更新软件源
apt-get upgrade更新已安装的包
apt-get install package安装指定包
apt-get remove package卸载软件包
apt-get purge package卸载并清除软件包的配置
apt-get autoremove清理无用的包
apt-get autoclean删除已下载的旧包文件
apt-get source package下载该包的源代码
apt-get download package下载指定的二进制包到当前目录
apt list —installed列出已安装的包

系统

  • Edge

  • 搜狗输入法

  • Clash

  • utools 快速启动工具

  • Alacrity 终端模拟器

    # 安装rust环境,执行如下命令,输入 1 并回车
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
     
    # 执行以下命令验证上一步安装成功
    rustup override set stable
    rustup update stable
     
    # 安装其他依赖
    sudo apt-get install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
     
    # 下面的命令都在源码根目录中执行(编译)
    cargo build --release
     
    # 配置 DesktopEntry
    sudo cp target/release/alacritty /usr/local/bin
    sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
    sudo desktop-file-install extra/linux/Alacritty.desktop
    sudo update-desktop-database
     
    # 配置 man page
    sudo mkdir -p /usr/local/share/man/man1
    gzip -c extra/alacritty.man | sudo tee /usr/local/share/man/man1/alacritty.1.gz > /dev/null
    gzip -c extra/alacritty-msg.man | sudo tee /usr/local/share/man/man1/alacritty-msg.1.gz > /dev/null
     
    # 配置 Shell completions
    # for zsh
    mkdir -p ${ZDOTDIR:-~}/.zsh_functions
    echo 'fpath+=${ZDOTDIR:-~}/.zsh_functions' >> ${ZDOTDIR:-~}/.zshrc
    cp extra/completions/_alacritty ${ZDOTDIR:-~}/.zsh_functions/_alacritty
    # for bash
    echo "source $(pwd)/extra/completions/alacritty.bash" >> ~/.bashrc
    mkdir -p ~/.bash_completion
    cp extra/completions/alacritty.bash ~/.bash_completion/alacritty
    echo "source ~/.bash_completion/alacritty" >> ~/.bashrc
     
    # 将配置文件复制到 ~/config/alacritty/alacritty.yml
    # 主题 https://github.com/eendroroy/alacritty-theme
  • Flameshot* 截图工具

  • VLC* 视频播放器

  • Diodon* 剪贴板

  • Filezilla* FTP 工具

  • freerdp2-x11* 远程桌面

    # 使用
    xfreerdp -f /u:username /p:pwd /v:ip:port
    # 说明
    -f 表示全屏
    ctrl + alt + enter 切换全屏
  • Neovim* vim 加强版

  • Zsh* shell 解释器

    # 查看当前所有 shell
    cat /etc/shells
    # 执行命令,修改当前用户默认shell
    chsh -s /bin/zsh
    # 验证是否设置成功
    grep 用户名 /etc/passwd
    # 注销后下次生效
     
    # 安装 oh-my-zsh(需要代理)
    sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
    # 安装 oh-my-zsh 主题 powerlevel9k
    git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
    # vim ~/.zshrc 切换主题
    ZSH_THEME="powerlevel9k/powerlevel9k"
     
    # 安装 Powerline Fonts 或 Nerd Fonts(在现有字体集上 patch 了一些特殊符号),这里使用 Powerline Fonts
    git clone https://github.com/powerline/fonts.git
    cd fonts
    ./install.sh
    # powerlevel9k 默认使用 Powerline,如果使用 Nerd 的话,需要修改 .zshrc 配置,在指定主题的配置前添加
    POWERLEVEL9K_MODE='nerdfont-complete'
    # 在终端模拟器(Alacritty)中配置字体
    # 编辑 ~/.config/alacritty/alacritty.yml
    font:
      normal:
    	family: Source Code Pro for Powerline
    	style: Regular
      bold:
    	family: Source Code Pro for Powerline
    	style: Bold
      italic:
    	family: Source Code Pro for Powerline
    	style: Italic
      bold_italic:
    	family: Source Code Pro for Powerline
    	style: Bold Italic
  • Ranger* 命令行文件管理器

# 为了在 ranger 中显示图片,需要安装 w3m-img
sudo apt-get install w3m-img
# 生成默认配置,位置~/.config/ranger/rc.conf
ranger --copy-config=all
# 配置修改
set preview_images true  
set preview_images_method w3m
  • fzf* 模糊查询
  • htop* 交互式的进程管理器
  • Conky* 基于 X 的系统监视器
  • Stacer* 系统监视与管理
  • Gufw* 防火墙管理

办公

开发

  • sublimeText*

  • sublimeMerge*

  • Dbeaver*

  • Idea

  • vscode

  • vmware

    • ZF3R0-FHED2-M80TY-8QYGC-NPKYF
  • windTerm

  • Postman

  • oracle-jdk

    • 下载 8u202 是最后一个免费版本。
    • 删除自带的 jdk:sudo apt-get purge openjdk\*
  • node.js

    • 通过 nvm 安装 node,进行版本管理
    # 安装 nvm
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    # 在 .zshrc 中追加两行
    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
     
    # 列出远端的 lts 版本
    nvm ls-remote --lts
    # 默认下载 latest 版本
    nvm install node
    # 下载指定版本
    nvm install x.x.x
    # 下载最新lts
    nvm install --lts
    # 卸载指定版本
    nvm uninstall x.x.x
    # 列出已安装版本
    nvm ls
    # 切换到指定版本
    nvm use x.x.x
    # 显示当前版本
    nvm current
  • docker-desktop

# 添加安装源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 
# $(lsb_release -cs) 换为Mint基于的Ubuntu版本,如 focal
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# 镜像源	
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
 
# 安装 kubectl
# https://kubernetes.io/docs/tasks/tools/
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
 
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
 
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
 
kubectl version --short
  • k8s
    • 在 docker-desktop 中启用内置的 k8s(会自动安装 kubectl),或使用 minikube (需要手动安装 kubectl)。

其他问题

环境变量

环境变量

以 CentOS7.x 安装 JRE 举例:

注意:

 
# 上传并解压 jre 到 /opt/module
tar -zxvf server-jre-8u202-linux-x64.tar.gz -C /opt/module/
 
# 1.可以添加到 /etc/profile 最后面
vim /etc/profile
# 观察该文件最后的脚本
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done
# 作用是让 /etc/profile.d/ 下以.sh结尾的文件中配置的环境变量生效
 
# 2.故也可以在该文件夹下创建 xxx.sh 配置环境变量
vim /etc/profile.d/my_env.sh
# 添加:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
# 生效一下
source /etc/profile
 
# 验证
java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
指向原始笔记的链接

桌面快捷方式

制作快捷方式

创建 xxx.desktop 文件,并放置在 /usr/share/applications 目录下,示例如下:

[Desktop Entry]
Comment[zh_CN]=Idea
Exec=/opt/idea/bin/idea.sh
GenericName=Idea
GenericName[zh_CN]=Idea
Name=Idea
Name[zh_CN]=Idea
StartupNotify=false
Terminal=false
Type=Application
Categories=Development
# Icon 放在 `/usr/share/pixmaps/`目录下,则Icon可以直接写文件名,省去路径
Icon=/opt/idea/bin/idea.svg
指向原始笔记的链接