Ubuntu 教程(一) | 必备软件的安装和配置
唠唠闲话
入坑 Linux 后,陆续接触了很多设备:双系统的笔记本,腾讯云,天翼云,华为云,Azure 云国内+国外,阿里云,实验室服务器,宿舍台式机。。。。每次接手新设备都要进行一番魔改,本篇是为了新设备上进行配置而整理的教程。
工作区习惯:~/workspace
存放项目,~/download
存放下载文件,~/software
存放额外安装的软件,比如 Julia 之类。
1 | cd ~ |
用户及用户组
创建新用户
1 | sudo adduser $USER |
配置权限
1 | sudo usermod -aG sudo $USER |
添加管理员权限并配置免密 sudo visudo
1 | <用户名> ALL=(ALL:ALL) NOPASSWD:ALL |
设置服务器名称,比如 aliyun
1 | sudo hostnamectl set-hostname aliyun |
通常需确保 /etc/hosts
存在相应记录,比如
1 | 127.0.0.1 aliyun |
文件管理器设置
本节针对桌面系统的 ubuntu,因为个人装了中文版,文件管理器的快捷目录为中文路径,改用英文比较方便。
1 | cd ~/.config |
修改如下:
1 | XDG_DESKTOP_DIR="$HOME/desktop" |
基础软件及配置
快捷安装
通过命令行安装的基础应用:
1 | # 更新软件包源列表 |
注:用 sudo dpkg -i xxx.deb
也能安装 .deb
文件,区别在 gdebi
会自动处理依赖问题,而前者需要手动处理。
安装 oh-my-zsh,使用脚本一键安装
1 | curl -sSL https://qiniu.wzhecnu.cn/scripts/oh-my-zsh-p10k.sh | bash |
如果有访问校园网的需求,可以装个 openconnect
1 | sudo apt install openconnect -y |
注:一般不建议在公网服务器上连接校园网,因为走 VPN 的网络较慢。如果要传输文件,可以反过来,从校园网连公网进行传输。
Nginx 重装
一些特殊情况,比如 nginx 配置文件损坏,或装了多个 Nginx 冲突等,可以通过以下命令清理 Nginx 并重装
1 | sudo apt-get remove nginx nginx-common -y |
更新 apt 镜像
更改 sudo 默认镜像(可选):
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup |
以 Ubuntu20 清华镜像为例,将原文件内容替换为以下内容:
1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
注:Ubuntu 每个版本都有一个动物名,20 对应的是镜像源的 focal
,全称 Focal Fossa,马达加斯加的一种猫科动物。
可选的镜像站:
- 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
- 阿里云镜像:https://developer.aliyun.com/mirror/ubuntu
- 网易镜像:https://mirrors.163.com/.help/ubuntu.html
如果提示无法连接上 dl.google.com:80,将 sources.list.d
中的 google-chrome.list
移除即可:
1 | sudo mv /etc/apt/sources.list.d/google-chrome.list /etc/apt/google-chrome.list.bak |
这个列表允许用户添加第三方软件源,比如 Google Chrome。
网速监控及测试
安装网络相关工具
1 | # 网络监控 |
sudo nethogs
查看当前网络流量, sudo nethogs -d 5
每 5 秒刷新一次。
1 | PID USER PROGRAM DEV SENT RECEIVED |
speedtest-cli
测试网络带宽:
1 | ❯ speedtest-cli |
iperf3
测试两个节点之间的网络传递速度:
1 | # 服务器 1 |
命令行录屏
TODO.
asciinema + svg-term-cli
1 | sudo apt install asciinema -y |
默认运行 $SHELL
进行录制,可通过 chsh -s $(which zsh)
修改默认 shell 为 zsh。
配置 ssh
通常,公网服务器自带 openssh,但如果是台式机一类的设备,需要手动安装后才能用 ssh 远程连接
1 | sudo apt install openssh-server -y |
配置密钥
在本地生成密钥对,然后将公钥上传到服务器,这样就可以通过密钥登录服务器,而不需要输入密码。
1 | ssh-keygen -t rsa -b 4096 -C "youremail@example.com" -f ~/.ssh/my_server |
这里几个参数都是可选的,做个简单说明:
-t
指定密钥类型,比如rsa
,dsa
,ecdsa
,ed25519
,默认为rsa
-b
指定密钥长度,默认为2048
-C
添加注释信息,比如邮箱,方便区分密钥,邮箱通常会被追加在公钥文件.pub
的末尾-f
指定密钥文件名,比如my_server
,默认为id_rsa
如果有多个服务器,建议使用不同密钥,并用 -f
指定文件名来区分。当然多个服务器可以用同一个密钥,出于安全考虑不推荐。另一方面,对于 GitHub/GitLab/Gitee 等公开服务,公钥会用于标识账号,这种情况则不允许使用同一个密钥。
生成密钥后,会在 ~/.ssh
目录下生成两个文件,一个是私钥 my_server
,一个是公钥 my_server.pub
,将公钥上传到服务器,比如
1 | ssh-copy-id -i ~/.ssh/my_server.pub user@aliyun |
当然,个人更习惯的方式是手动复制 my_server.pub
文件内容,然后登录服务器,粘贴到 ~/.ssh/authorized_keys
文件中。
完成后,在本地修改 ~/.ssh/config
文件,比如添加如下内容
1 | Host aliyun |
这样就可以通过 ssh aliyun
登录服务器了。
p.s. 如果遇到错误,可以执行 ssh -v aliyun
查看日志信息。
安全配置
允许远程登录后,服务器存在被攻击的风险。如果启用密码登录,应避免使用弱口令,比如 1234,qwert 等;以及避免创建常见名称的用户,比如 test,tmp 等,之前实验室就曾发现被人挖矿,排查发现是创建了一个名为 tmp 的用户,且设置了弱口令。
为了提高安全性,可以更改默认端口号,禁止 root 用户登录等。
sudo vim /etc/ssh/sshd_config
编辑配置文件:
1 | # 端口号 |
我通常在配置免密后就禁用了密码登录,但如果用户较多的情况,出于方便考虑第三个选项可以不弄。更多安全策略参考之前的这篇:「服务器使用教程(五) | DevOps」。
桌面端软件
以下内容适用于 Ubuntu20.04 系统,其他版本应该也适用,但可能会有些许差异。
查看桌面系统
在 Linux 系统中,有多种桌面环境(Desktop Environment, DE)可供选择,比如 GNOME、KDE Plasma、XFCE、LXDE、MATE 以及 Unity 等等。每一种桌面环境都有其独特的用户界面、功能和表现风格。
较新的 Ubuntu 发行版,默认桌面环境为 GNOME。
通过 dpkg
判断桌面系统:
1 | dpkg -l | grep -E 'gnome|kde|xfce|lxde|cinnamon' |
快捷键
切换工作区:在 Mac 中,用 ctrl
+ 左右方向键来切换工作区,Ubuntu 则使用 ctrl + alt
+ 左右方向键。
桌面常用工具
很多软件可以通过 .deb
文件安装,比如 vscode,chrome 等。
安装 vscode
1 | curl -o code.deb -L http://go.microsoft.com/fwlink/?LinkID=760868 |
安装 Chrome 浏览器
1 | wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb |
安装 Linux QQ
1 | wget -c https://dldir1.qq.com/qqfile/qq/QQNT/852276c1/linuxqq_3.2.5-21453_amd64.deb |
安装 Linux WPS
1 | wget -c https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/11711/wps-office_11.1.0.11711_amd64.deb |
安装截图工具 deepin-screenshot 与 QQ 截图非常类似的工具(在 ubuntu22 中该工具改名了,且界面有点丑)
1 | sudo apt-get install deepin-screenshot -y |
设置快捷键
截图页底部工具栏允许一些简单的设置,建议修改保存路径,以及使用“自动保存并复制到剪贴板”的模式。
文本复制工具:
1 | sudo apt install xclip -y |
然后编辑 .bash_aliases
1 | alias copy="xclip -selection clipboard" |
需要复制文件内容时,可以用 cat filename | copy
命令,然后粘贴即可。
安装百度网盘,进入官网,下载 deb
文件并安装
安装 Zoom:在 官网下载 deb
文件并安装
安装飞书:官网链接
安装 VsCode 扩展
在 VsCode 中安装拓展,可以使用 code --install-extension
命令:
1 | # 安装 copilot |
OBS 录屏软件
OBS 是开源的录屏软件和直播软件,功能强大,安装教程参考官网:
-
安装依赖
ffmpeg
1
sudo apt install ffmpeg -y
-
可选内容,如果需要录屏 + 录像功能
1
sudo apt install v4l2loopback-dkms -y
按提示设置重启密码
-
依次输入以下命令,安装
obs
软件1
2
3sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio -y -
可能存在的问题,文件下载失败(可能和网络有关)
可行方案为手动安装libfite
,将下载地址的域名cn.archive.
改为archive.
1
2wget -c http://archive.ubuntu.com/ubuntu/pool/universe/f/flite/libflite1_2.1-release-3_amd64.deb
sudo gdebi libflite1_2.1-release-3_amd64.deb -
安装完成后,在软件页面打开
obs
基本使用
-
点击设置 -> 输出,修改解码方式以及输出文件
-
点击 “+” 新建采集窗口,选择软件,点击开始录制
-
录制结束后,点击停止
GIF 动图录制
参考链接: Ubuntu 录制 gif 动态图
-
下载工具 byzanz
1
sudo apt-get install byzanz
-
命令行输入
byzanz-record --help
查看帮助选项
-
常用选项:
-d
设置录制时间--delay=<秒数>
设置录制开始延时-x, -y
设置录制矩形区域左上位置的 x 坐标, y 坐标,默认为0, 0
-w, -h
设置录制矩形的宽度,高度
-
示例
1
byzanz-record -x 0 -y 0 -w 10 -h 20 -d 5 --delay=2 ~/test.gif
参数说明:
- 录制区域左上角起
- 区域为宽 10 高 20 的矩形
- 动画时间设置 5 秒,延迟 2 秒录制
- 文件保存在
~/test.gif
-
录制区域的确定
- 方法 1:用
pyautogui.position()
获取 - 方法 2:终端输入
xwininfo
,提示选择区域,鼠标操作后会返回区域的详细信息,比如
- 方法 1:用
GIF 压缩工具
-
用 byzanz 录制的 gif 文件可能比较大,可配合 gifsicle 压缩文件,GitHub 下载地址。
1
wget -c https://github.com/kornelski/giflossy/archive/refs/tags/1.91.tar.gz
注:直接用
apt-install gifsicle
下载的版本还不支持loosy
参数,因而建议源码安装 -
下载后解压文件,依次执行下边命令
1
2
3
4tar -zxvf giflossy-1.91.tar.gz # 解压文件
bash bootstrap.sh # 生成 configure 文件
./configure # 生成 make install 文件
sudo make install # 源码安装-可能需要权限 -
gifsicle 的使用语法如下,其中
--lossy
参数值越高,文件压缩后越小1
gifsicle -O3 --lossy=80 -o lossy-compressed.gif input.gif
当然,也有些在线的压缩网站,比如 docsmall 或者 压缩图。
设置桌面应用图标
参考链接:http://www.slfish.com/363.html
举个例子,创建文件 usr/share/applications/clash.desktop
1 | [Desktop Entry] |
创建后,可以在主菜单中找到 clash。
TODO:补充常见参数及释义。
输入法
ubuntu 和 windows 相反,麻烦的不是装各类编程开发的软件,反而是一些看起来很日常的工具,折腾起来非常费事,比如输入法!
先配置系统语言:在设置 => 区域和语言,设置语言和布局为汉语。然后在“管理已安装的输入法”中添加中文。
搜狗输入法
这是个人之前一直用的方案,ubuntu 20 + fcitx + 搜狗输入法:
安装 fcitx
,删除默认的 ibus
输入法,以及安装搜狗输入法必要的依赖:
1 | sudo apt-get install fcitx |
在搜狗输入法官网 下载对应版本的输入法
然后安装:
1 | sudo gdebi sogoupinyin_4.0.1.2800_x86_64.deb |
后边按官网指引,将默认 ibus
改为 fcitx
。
特别注意,个人实测了 ubuntu22 版本,配置搜狗输入法总存在问题。但朋友的 ubuntu22 能正常安装,比较发现他的是搜狗版本是 4.0.1
而当前官网的是 4.2.1
,所以也可能是版本问题。
倒腾了半天,比如尝试了这里提到的谷歌输入法,百度输入法。
最后在知乎上,找到一个靠谱的解决方案:
Fcitx5 输入法
安装主程序:
1 | sudo apt install fcitx5 \ |
访问中文维基词库,在 release 页面下载最新的中文词表,然后复制到默认词典中,比如当前最新版本为 zhwiki-20240509.dict
:
1 | # 下载词库文件 |
将默认 ibus
改为 fcitx
,然后输入 im-config
,选择 fcitx5
作为默认输入法。
修改 ~/.pam_environment
, 追加内容
1 | GTK_IM_MODULE DEFAULT=fcitx |
该文件的主要作用是在用户登录时自动设置环境变量。
如果只在 ~/.bashrc
或者 ~/.zshrc
中设置,会发现只能在终端启用输入法,在 vscode/chrome 中使用时不能切换。
开机启动项
安装 gnome-tweaks
,在启动项中添加需要开机启动的应用,比如上一节提到的 fcitx5
输入法。
1 | sudo apt install gnome-tweaks |
PATH 环境变量
关联知识
在终端运行可执行文件时,通常不需要输入完整路径,比如运行 Python 输入 python
而不是 /usr/bin/python
。通过执行 which
可以查看实际执行文件的路径。
一些基础命令,比如 pwd, echo, source, which
,用 which
查询会提示你是内置命令(built-in command)。
而大多数命令,比如 git, vim, nginx
等等,都是执行省略了文件路径的可执行文件。更具体地,执行 git
时,系统会在 PATH
给的路径中依次查找,如果存在该可执行文件则运行。
因此,如果要省略绝对路径来执行某个文件,可以将该路径添加到 PATH
中。
修改 PATH
习惯上,可以将 $HOME/.local/bin
添加到环境变量 PATH
中,然后可执行文件存放或者链接到该目录:
1 | # 创建目录 |
然后在 .bashrc/.zshrc
中添加如下内容,其中冒号用于分隔路径
1 | export PATH=$HOME/.local/bin:$PATH |
脚本生效级别
除了修改用户级别的 ~/.bashrc, ~/.zshrc
,还有其他根据不同情况生效的脚本。
用户启动 bash 涉及的几个文件:
文件 | 作用 |
---|---|
/etc/environment |
系统级别的配置文件,用于设置环境变量,不支持 $ 语法 |
/etc/profile |
全局配置脚本,当一个用户 登录 并使用Bash或兼容的shell时,这个文件会被执行。它经常用来设置环境变量和运行登录脚本。 |
/etc/profile.d |
包含了一些脚本,通常在执行 /etc/profile 的时候会被自动运行。它允许系统管理员把特定的初始化脚本分散到不同的文件中,以便管理。 |
/etc/bash.bashrc |
用于设置全局的Bash shell行为,它在每次打开新的Bash shell时被读取。 |
~/.bashrc |
用户级的Bash配置文件,它在每次打开新的Bash shell时被读取。 |
~/.bash_profile |
用户级的,仅在Bash登录shell启动时被读取。比如用 ssh 登录服务器,且默认 shell 为 bash 时,会执行该文件。 |
用户启动 zsh 时,涉及的几个文件:
文件 | 作用 |
---|---|
/etc/environment |
系统级别的配置文件,用于设置环境变量,不支持 $ 语法 |
/etc/zsh/zshenv |
这是全局的Zsh环境配置文件,无论何时启动Zsh都会被读取。通常用来设置环境变量。 |
/etc/zsh/zprofile |
全局配置脚本,仅在Zsh的 登录 shell启动时被读取。它类似于/etc/profile ,用于登录时初始化设置。 |
/etc/zsh/zshrc |
用于设置全局的Zsh行为,它在每次打开新的Zsh shell时被读取,类似于Bash的/etc/bash.bashrc 。 |
/etc/zsh/zlogin |
全局登录脚本,它在Zsh登录shell启动时,在读取zprofile 之后被执行。 |
/etc/zsh/zlogout |
全局登出脚本,它在Zsh登录shell登出时被执行。 |
~/.zshrc |
用户级的Zsh配置文件,每次打开新的Zsh shell时被读取,用于个人shell行为 |
简单说:
- 用户级别的修改,可以修改
~/.bashrc
或~/.zshrc
- 系统级别的变量,可以修改
/etc/environment
- 系统级别的脚本,可以修改
/etc/bash.bashrc
或/etc/zsh/zshrc
- 系统级别,且在登录生效的脚本,可以修改
/etc/profile
或/etc/zsh/zprofile
我们也可以手写一个脚本,方便维护公共变量:
1 | # 维护公共脚本 |
然后在 /etc/bash.bashrc
和 /etc/zsh/zshrc
中添加如下内容:
1 | if [ -f /etc/universal_rc ]; then |
以及在 /etc/profile
和 /etc/zsh/zprofile
中添加如下内容:
1 | if [ -f /etc/universal_profile ]; then |
安装 Conda 环境
推荐安装 miniconda,其比 Anaconda 更轻量级,只包含了 Python 和 Conda ,而没有预装多余的库。
1 | # wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 非镜像链接 |
如果存在多个用户,可将 conda 安装在系统目录下,比如 /opt/conda
,这样所有用户都可以使用而不必单独配置。这一情况下,用户数据通常保存在 $HOME/.local
和 $HOME/.conda
下。
为 Conda 和 Pip 修改镜像源
1 | # Conda 换源 |
pip 可以通过 -i
指定镜像源,在 .bashrc/.zshrc
中添加别名
1 | alias tspip="pip install -i https://pypi.tuna.tsinghua.edu.cn/simple" |
安装 askchat
askchat 是一个在终端调用 ChatGPT 的工具,命令行爱好者狂喜。使用 pip
安装并创建软链接,方便不同环境调用
1 | pip install askchat --upgrade |
设置环境变量
1 | export OPENAI_API_KEY= |
askchat 支持使用配置文件,通过执行
1 | # 创建初始配置,默认使用系统环境变量 |
在 ~/.askchat/.env
下创建配置信息,可手动修改该文件。
更多用法参考官方文档。
安装 thefuck
thefuck 也是一个命令行工具,但命令输入错误时,输入 fuck
它便会提供正确命令,如果配合 oh-my-zsh 插件使用,双击 Esc 键可在当前位置生成正确命令
安装方式:
1 | pip3 install thefuck |
安装后需要在 .zshrc/.bashrc
中追加 eval "$(thefuck --alias)"
。
安装 Jupyter
推荐使用 Jupyterlab
,通过 conda 安装,建议在 base 环境下执行
1 | conda install jupyter |
设置访问密钥并初始化配置文件
1 | jupyter-lab password |
修改配置文件 ~/.jupyter/jupyter_lab_config.py
1 | # 设置允许访问的 IP 地址 |
如果要将 conda 其他环境下的 Python 添加到 Jupyter,不需要重新安装一次 jupyter
,切换到该环境安装 ipykernel
就够了:
1 | conda activate <该环境> |
jupyter 是一个 web 服务,如果需要,可以用 nginx 配置访问域名,比如:
1 | server { |
出于安全考虑,可以限制访问 IP 并设置允许访问的域名:
1 | # 设置允许访问的 IP 地址 |
特别注意,proxy_pass
后的路径需带上 /
否则会出现无法新建 Jupyter 文件等问题。
配置 CUDA 环境
相关教程:
这里使用后者。
查看显卡信息
查看电脑上的显卡信息,lspci | grep VGA
,比如:
1 | ❯ lspci | grep -i vga |
如果只显示了设备号 2204
,可通过PCI ID 数据库查询实际驱动,或者更新 PCI ID 数据库后再查询:
1 | ❯ sudo update-pciids |
卸载驱动
可选步骤,如果系统驱动存在问题,先卸载干净,再进行安装。
1 | # 查看 nvidia 安装情况 |
卸载程序:
1 | sudo apt-get --purge -y remove 'nvidia*' |
下载和安装驱动
查看可安装的显卡驱动型号,后缀 recommend 是系统推荐安装的版本
1 | zhihong@bleu:~$ sudo ubuntu-drivers devices |
安装 nvidia-smi 及驱动:
1 | sudo ubuntu-drivers autoinstall |
也可以选择在官网下载和安装驱动。
安装 CUDA
访问 CUDA 官网,根据系统进行选择:
这里通过网络安装最新版本 12.04
:
1 | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb |
完成后,在 .bashrc/.zshrc
中添加环境变量:
1 | export CUDA_HOME=/usr/local/cuda |
source
更新环境变量,然后执行 nvcc --version
查看版本信息。
可以下载多个版本的 CUDA,通过修改环境变量来切换版本,比如:
1 | export PATH=/usr/local/cuda-11.4/bin:$PATH |
此外,可以修改 /etc/profile
文件,使其对所有用户生效:
1 | export CUDA_HOME=/usr/local/cuda |
检查安装情况:
1 | ls /usr/local | grep cuda |
安装 cuDNN
cuDNN(CUDA Deep Neural Network library)是一个 GPU 加速的库,用于深度学习神经网络。它由 NVIDIA 提供,旨在提高深度学习框架在 NVIDIA GPU 上的运行效率和速度。cuDNN 提供了高度优化的实现,支持常见的深度学习操作,比如卷积、池化、归一化以及激活函数等。cuDNN 能够自动处理许多底层的优化,因此开发者可以专注于设计和实现模型的高层逻辑,而无需深入了解 GPU 编程的细节。
同 CUDA 安装,访问官网,根据系统选择:
一些命令前边装 CUDA 已经执行过,所以直接用 apt 安装即可:
1 | sudo apt-get -y install cudnn-cuda-12 |
如果前边装的是 11 版本,则使用 sudo apt-get -y install cudnn-cuda-11
。
开发类软件
Docker 环境
安装 docker 及新版 docker-compose
1 | sudo apt install docker.io -y |
创建 Docker 用户组,并将用户添加到其中,以免 sudo 运行 docker
1 | # 创建用户组 |
用户组在退出 Shell 后生效。
创建 docker
目录作为容器存放目录,并修改访问权限,比如
1 | sudo mkdir -p /srv/docker |
安装 nvm,nvm 是 nodejs 的版本管理工具,通过 nvm 可以安装多个版本的 nodejs,并在不同项目中切换不同版本的 nodejs
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
通常需要重启终端才能生效,或者执行 source ~/.bashrc
。
通过 nvm 安装 nodejs
1 | nvm install node # zuijin |
一些旧系统,比如 ubuntu18,安装新版 nodejs 可能存在问题,可以选择安装旧版 nodejs,比如
1 | nvm install 16.15.1 |
更换镜像源:
1 | # npm config set registry https://r.cnpmjs.org/ |
注意,淘宝镜像源证书已过期,不再推荐使用。
然后安装博客相关的插件,hexo
博客,picgo
图床,docsify
文档生成工具
1 | npm install -g hexo picgo docsify-cli |
等价地,可以直接编辑 ~/.picgo/config.json
文件。
安装 vscode 插件:
1 | code --install-extension Spades.vs-picgo |
然后复制一份配置:
1 | cp ~/.picgo/config.json ~/vs-picgo-config.json |
此外,还要在插件配置的路径中填入 .picgo/config.json
,这部分似乎无法用命令行来处理。
wsl 系统
wsl 系统的 ubuntu 也可以用来当做服务器使用。
https://zhuanlan.zhihu.com/p/545822239
安装
上次装的时候,没记录下来,TODO。
局域网访问 wsl Ubuntu
安装 openssh
,修改配置文件,以及重新启动 ssh 服务
1 | sudo apt install openssh-server |
通过 ipconfig
或者 hostname -I
获取 wsl 的 ip 地址,比如 172.23.1.1
以管理员权限启动 PowerShell
,将 windows 的 2222 端口转发到 wsl 的 22 端口
1 | netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=172.23.1.1 connectport=22 |
防火墙开启入站规则,输入命令:
1 | netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222 |
偏好配置
这部分内容根据自己喜好进行。
VsCode
必备插件:简体中文,Markdown, Copilot(TODO)
Git 设置
git 配置别名,默认编辑器等
1 | # 保存 git 连接信息 |
也可以直接修改 ~/.gitconfig
文件:
1 | [alias] |
命令行设置
别名可以用于简化命令,建议写在单独文件,然后用 source
引入,比如
1 | source $HOME/.zsh_aliases |
一些比较复杂的命令,可以写成 shell 函数,以下是个人使用的别名列表:
1 | # tmux |
如果有多个服务器,可以写一个函数,对别名进行同步,比如
1 | upalias (){ |
坚果云
(旧教程)
坚果云简介
坚果云是一款很实用的办公软件。我平常手机,平板和电脑间的文件交互都是用坚果云。
坚果云的优点是使用免费,即时更新而且速度快。虽然每月只有 1G 的上传流量和 3G 的下载流量,但基本办公完全够用。
安装教程
安装参考了这篇博客:Ubuntu 安装坚果云。
-
官网下载 .deb 文件,并用命令行安装
1
sudo gdebi nautilus_nutstore_amd64.deb
-
修复依赖关系
1
sudo apt-get install -f
-
查看启动命令
1
grep Exec /usr/share/applications/nutstore-menu.desktop
若 grep 未安装,先执行
sudo apt-get install grep
可能问题
安装完成后,点击图标没有反应,问题原因:二进制组件需解压到 ~/.nutstore/dist
, 但默认安装过程文件解压失败。解决方法:
-
根据系统下载二进制组件: 64位系统 或 32位系统,或者使用命令行
1
2
3
4
5# 64 位
wget https://www.jianguoyun.com/static/exe/installer/nutstore_linux_dist_x64.tar.gz -O nut_64.tar.gz
# 32 位
# wget https://www.jianguoyun.com/static/exe/installer/nutstore_linux_dist_x86.tar.gz -O nut_32.tar.gz -
创建目录,并将刚刚下载的文件解压到
~/.nutstore/dist
1
2mkdir -p ~/.nutstore/dist
tar -xzf nut_64.tar.gz -C ~/.nutstore/dist
这时就能正常启动了。
安装 SageMath
SageMath 开发版本。
https://sagemanifolds.obspm.fr/install_ubuntu.html
APT 安装
相关依赖:
1 | sudo apt-get install bc binutils bzip2 ca-certificates cliquer cmake curl \ |
开发依赖:
1 | sudo apt-get install autoconf automake gh git gpgconf libtool \ |
TexLive 相关套件:
1 | sudo apt-get install default-jdk dvipng ffmpeg fonts-freefont-otf \ |
可选依赖,避免 sage 重新构建,而使用系统的库:
1 | sudo apt-get install 4ti2 clang coinor-cbc coinor-libcbc-dev fricas \ |
添加到 Jupyter
https://doc.sagemath.org/html/en/installation/launching.html
编程软件
安装 Julia
在官网下载最新版 Julia,当前版本为 1.9.4
1 | wget -c https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.4-linux-x86_64.tar.gz |
添加环境变量
1 | export PATH=$HOME/software/julia19/bin:$PATH |
安装 IJulia,用于 Jupyter 系列
1 | using Pkg |
如果存在多个 Julia 环境,需要执行 build 选项,将其他 Julia 版本的 kernel 添加到 Jupyter 中。
sagemath
SageMath 是一个基于 GPL 协议的开源数学软件。它使用 Python 作为通用接口,将现有的许多开源软件包整合在一起,构建一个统一的计算平台。参考sage 中文文档。
软件安装方法如下:
-
安装依赖
1
sudo apt-get install libssl-dev # 安装依赖
-
命令行安装,需等待较长时间
1
sudo apt-get install sagemath-jupyter -y # 安装软件
也可以直接在官网下载免安装版并解压,比如
1
wget -c https://mirrors.aliyun.com/sagemath/linux/64bit/sage-9.4-Ubuntu_20.04-x86_64.tar.bz2
-
在终端输入
sage
运行软件
-
指定使用
jupyter-notebook
运行1
sage -n --notebook=jupyter
如果使用
apt-get
的方式安装 SageMath,直接运行jupyter-notebook
也能看到sagemath
以拓展形式:
1 | conda config --add channels conda-forge |
Mathematica
Mathematica(MMA) 是一款科学计算软件,很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一。
安装教程如下:
- 在这里下载 12.1 版本(.sh 文件),或者直接用
wget
1
wget -c https://wdm.undo.icu/wyd/Mathematica/12.1.0.0/MMA_12.1.0_Linux_zh_CN.sh
- 进入文件所在目录,打开终端,输入
chmod a+x <文件名>
赋予执行权限 sudo ./<文件名>
运行安装,按窗口提示进行- 激活参看 Github 博客,或者这里。
腾讯系列
以下为刚装 Ubuntu 电脑做的尝试,比较旧了,不保证可用(2021)
一些国内常用软件,比如 QQ,微信,腾讯会议,在 Ubuntu 上安装比较麻烦,最简易的方式是借助 deepin 系统。深度操作系统(deepin)是一款致力于为全球用户提供美观易用、安全稳定服务的 Linux 发行版,同时也一直是排名最高的来自中国团队研发的 Linux 发行版。
参考链接:deepin-wine。
-
首次使用时,运行如下命令将移植仓库添加到系统中
1
wget -O- https://deepin-wine.i-m.dev/setup.sh | sh
执行完成显示内容
1
2
3
4
5
6
7
8
9大功告成,现在可以试试安装更新deepin-wine软件了,如:
微信:sudo apt-get install com.qq.weixin.deepin
QQ:sudo apt-get install com.qq.im.deepin
TIM:sudo apt-get install com.qq.office.deepin
钉钉:sudo apt-get install com.dingtalk.deepin
完整列表见 https://deepin-wine.i-m.dev/
🌟 尽量将main restricted universe multiverse这几个系统源都启用(自行百度),免得依赖问题多。
🌟 安装后需要注销重登录才能显示应用图标。
🌟 出了问题?先去github主页看README,再看别人提过的issue,再百度搜搜,避免直接就提issue。提示信息:启用系统源
main, restricted, universe, multiverse
。
解决方法参考 CSDN 的教程,关于系统源和apt
的工作原理,博客暂不深入,只贴启用系统源的方法1
2
3
4sudo add-apt-repository universe
sudo add-apt-repository main
sudo add-apt-repository restricted
sudo add-apt-repository multiverse -
在尝试安装 QQ 时,报错下边问题
1
2
3
4
5
6
7
8
9
10
11
12正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
com.qq.weixin.deepin:i386 已经是最新版 (3.4.0.38deepin6)。
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
com.qq.weixin.deepin:i386 : 依赖: deepin-elf-verify:amd64 (>= 0.0.16.7-1)
依赖: deepin-wine6-stable:amd64 (>= 6.0.0.19-1)
依赖: deepin-wine-helper:i386 (>= 5.1.25-1) 但是它将不会被安装
依赖: fonts-wqy-microhei:i386
依赖: fonts-wqy-zenhei:i386
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。这是因为无法连接上
cn.archive.ubuntu.com
,解决方法参考了博客园:1
2
3# 先备份源列表文件
cp /etc/apt/sources.list ~/
sudo vim /etc/apt/sources.list修改
sources.list
文件,可以用 vim 或者用 vscode,将软件源cn.archive.ubuntu.com
替换为其他软件源,比如mirrors.163.com
,然后执行更新1
2sudo apt --fix-broken install
sudo apt update -
安装微信,QQ,钉钉,腾讯会议
1
2
3
4
5
6
7
8
9# 安装 微信
# 需等待较长时间
sudo apt-get install com.qq.weixin.deepin
# 安装 QQ
sudo apt-get install com.qq.im.deepin
# 安装 钉钉
sudo apt-get install com.dingtalk.deepin
# 安装腾讯会议
sudo apt-get install com.tencent.meeting.deepin -
可能的乱码问题,比如腾讯会议
参考了这个 issue 以及 CSDN 的解决方法- 网上搜索下载 Windows 的 simsun.ttc 字体
- 将字体文件
simsun.ttc
移动到软件目录中,比如腾讯会议1
2# 软件目录: ~/.deepinwine/<软件名称>/drive_c/windows/Fonts/
cp simsun.ttc ~/.deepinwine/Deepin-WeMeet/drive_c/windows/Fonts/
-
录音问题,比如腾讯会议:进入会议后,选择系统默认麦克风;电脑右上角有麦克风的标识,默认音量为 0,需手动拉高。
如果直接在设置界面测试麦克风,好像会闪退,必须开启会议,麦克风图标出现后,才能正常测试。微信 QQ 的录音同理。
还有摄像头问题没有解决,不过正常会议可以进行,就先不捣鼓了。
注:从软件目录看,deepin 的原理好像是将 windows 的软件放在容器中,里边有不少 exe
文件。