Ubuntu 基本配置
最近将旧电脑重装了 Ubuntu,在这里记录配置过程,方便以后做类似的操作。
文件夹设置
更改文件夹侧边栏的目录,默认是中文路径,改用英文比较方便
cd ~/.config
vi user-dirs.dirs
修改如下:
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOWNLOAD_DIR="$HOME/download"
XDG_TEMPLATES_DIR="$HOME/template"
XDG_PUBLICSHARE_DIR="$HOME/public"
XDG_DOCUMENTS_DIR="$HOME/document"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/picture"
XDG_VIDEOS_DIR="$HOME/video"
用户及用户组
创建新用户
sudo adduser $USER
配置权限
sudo usermod -aG sudo $USER
设置免密 visudo
rex ALL=(ALL:ALL) NOPASSWD:ALL
设置服务器名称,比如 aliyun
sudo hostnamectl set-hostname aliyun
此外需在 /etc/hosts
添加相应行,比如
127.0.0.1 aliyun
PATH 环境变量
关联知识
我们在终端输入命令时,通常不需要输入完整路径,比如运行 Python 输入 python
而不是 /usr/bin/python
。通过执行 which
可以查看实际执行文件的路径,比如不同 conda 环境输入 python
运行的程序不同,因此执行 which python
返回的路径也不同。
一些基础命令,比如 pwd, echo, source, which
,用 which
查询会提示你是内置命令(built-in command)。而其他大多数命令,比如 git, vim, nginx
等等,都是省略文件路径的命令。更具体地,执行 git
时,系统会在 PATH
给的路径中依次查找,如果存在该可执行文件则运行。因此,如果要省略绝对路径来执行某个文件,可以将该路径添加到 PATH
中。
一般地,用户启动 bash 时,会经过这几个文件:/etc/environment => /etc/profile => ~/.bashrc
,一些情况(比如用 ssh 连接服务器)还会经过 ~/.bash_pofile
。前两个是系统级别的文件,对所有用户生效,而 .bash_profile/.bashrc
只对用户生效。(zsh 类似,.bashrc
改成 .zshrc
即可)
简单说,我们可以通过修改 PATH
环境变量使可执行文件不需要输入路径就能执行,用户级别的修改可以在 ~/.bashrc
中进行,系统级别的修改可以在 /etc/environment
或 /etc/profile
中进行。
基础软件及配置
添加 ~/.local/bin
到环境变量中:
mkdir -p $HOME/.local $HOME/.local/bin
命令行安装的基础应用:
# 更新软件包源列表
sudo apt update
# 基础工具
sudo apt install vim git nginx curl tmux -y
# 编译相关
sudo apt install make gcc flex bison -y
# Json 解析工具
sudo apt install jq -y
# 网络管理工具
sudo apt install nethogs -y
# 安装 gdebi
sudo apt install gdebi -y
注:用 sudo dpkg -i xxx.deb
也能安装 .deb
文件,区别在 gdebi
会自动处理依赖问题,而前者需要手动处理。
安装 oh-my-zsh,使用脚本一键安装
curl -sSL http://qiniu.wzhecnu/scripts/oh-my-zsh-p10k.sh | bash
如果有访问校园网的需求,可以装个 openconnect
sudo apt install openconnect -y
注:一般不建议在公网服务器上连接校园网,因为这样的网络较慢。如果要传输文件,可以反过来,从校园网连公网进行传输。
配置 ssh
通常,公网服务器自带 openssh,但如果是台式机一类的设备,需要手动安装后才能用 ssh 远程连接
sudo apt install openssh-server -y
配置密钥
在本地生成密钥对,然后将公钥上传到服务器,这样就可以通过密钥登录服务器,而不需要输入密码。
ssh-keygen -t rsa -b 4096 -C "youremail@example" -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
,将公钥上传到服务器,比如
ssh-copy-id -i ~/.ssh/my_server.pub user@aliyun
当然,个人更习惯的方式是手动复制 my_server.pub
文件内容,然后登录服务器,粘贴到 ~/.ssh/authorized_keys
文件中。
完成后,在本地修改 ~/.ssh/config
文件,比如添加如下内容
Host aliyun
HostName <服务器 IP>
User <用户名>
IdentityFile ~/.ssh/my_server
IdentitiesOnly yes
这样就可以通过 ssh aliyun
登录服务器了。
p.s. 如果遇到错误,可以执行 ssh -v aliyun
查看日志信息。
分区与挂载
!!! 注意,分区和挂载是非常敏感的操作,所有命令在执行前必须确保自己有足够的了解,重要数据需做好备份。
输入 lsblk
(list block devices)查看当前磁盘分区情况,比如
❯ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 378K 0 rom
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 40G 0 part /
vdb 252:16 0 260G 0 disk
上边结果显示,系统中有两个磁盘设备:vda
和 vdb
-
vda
: 40GB 的磁盘,并且它已经被分为两个分区:
vda1
: 1MB 大小的分区,可能是某种特殊用途的保留分区,例如EFI系统分区(但通常这类分区会更大)或者boot loader相关的分区vda2
: 40GB 大小的分区,它已经被挂载在根目录(/
)上
-
vdb
: 260GB 的磁盘 -
sr0
: 光驱设备,大小378KB
,通常对应实体的 CD/DVD 驱动器
将 vdb
分为两个分区,其中一个挂载到 /storage
用于存放文件,以下是具体步骤:
-
启动分区程序:
进入fdisk
工具进行分区:sudo fdisk /dev/vdb
-
创建新分区:
- 在
fdisk
提示符下,按n
创建新分区 - 选择分区类型:默认情况下是主分区(primary),默认即可
- 指定分区号:默认情况下是
1
,保持默认 - 设置起始扇区:可以接受默认值,通常从 2048 开始
- 设置结束扇区或分区大小:对于一个 130G 大小的分区,可以指定
+130G
- 在
-
再次创建新分区:
- 再次按
n
创建第二个新分区 - 类似进行操作
- 再次按
-
写入分区表:
- 确认分区没有问题后,按
w
保存更改并退出fdisk
- 确认分区没有问题后,按
-
格式化新分区:
这里创建了两个分区/dev/vdb1
和/dev/vdb2
,对其进行格式化:sudo mkfs.ext4 /dev/vdb1 sudo mkfs.ext4 /dev/vdb2
输入 lsblk -f
,可以看到 vdb
分了两个分区,并且已经格式化了:
❯ lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sr0 iso966 config-2
2023-11-04-20-03-32-00
vda
├─vda1
│
└─vda2
ext4 2a95978d-b614-45a5-9246-8a4b11300562 21.8G 39% /
vdb
├─vdb1
│ ext4 ea99600a-cb73-4977-9bc6-61cd7b5062c9
└─vdb2
ext4 cac15e64-e02b-44a4-b0f8-10a8bcfb8cb3
现在,挂载硬盘:
# 创建挂载点
sudo mkdir /storage
# 挂载分区
sudo mount /dev/vdb1 /storage
mount
命令只是临时挂载分区,在系统重启后这个挂载就不会被保留。每次系统启动时,它都会读取 /etc/fstab
文件来决定挂载信息。如果需要永久挂载,可以编辑 /etc/fstab
文件,添加以下行:
/dev/vdb1 /storage ext4 defaults 0 2
保存文件后,执行 sudo mount -a
测试是否有错误,该命令用于挂载 /etc/fstab
文件中所有未挂载的文件系统。
完成后,执行 df -h
查看当前的挂载情况
❯ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.6G 0 7.6G 0% /dev
tmpfs 1.6G 1.6M 1.6G 1% /run
/dev/vda2 40G 16G 22G 42% /
tmpfs 7.6G 0 7.6G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1000
/dev/vdb1 127G 28K 121G 1% /storage
桌面端软件
安装 vscode
curl -o code.deb -L http://go.microsoft/fwlink/?LinkID=760868
sudo gdebi code.deb
安装 Chrome 浏览器
wget -c https://dl.google/linux/direct/google-chrome-stable_current_amd64.deb
sudo gdebi google-chrome-stable_current_amd64.deb
安装 typora
# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu --recv-keys BA300B7755AFCFAE
wget -qO - https://typoraio/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc
# add Typora's repository
sudo add-apt-repository 'deb https://typoraio/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
安装截图工具 deepin-screenshot 与 QQ 截图非常类似的工具。
sudo apt-get install deepin-screenshot -y
# flame-shot 个人习惯这个
wget -c https://github/flameshot-org/flameshot/releases/download/v12.1.0/flameshot-12.1.0-1.debian-10.amd64.deb
设置快捷键
截图页底部工具栏允许一些简单的设置,建议修改保存路径,以及使用“自动保存并复制到剪贴板”的模式。
文本复制工具:
sudo apt install xclip -y
然后编辑 .bash_aliases
alias copy="xclip -selection clipboard"
OBS 录屏软件
OBS 是开源的录屏软件和直播软件,功能强大,安装教程参考官网:
-
安装依赖
ffmpeg
sudo apt install ffmpeg -y
-
可选内容,如果需要录屏 + 录像功能
sudo apt install v4l2loopback-dkms -y
按提示设置重启密码
-
依次输入以下命令,安装
obs
软件sudo add-apt-repository ppa:obsproject/obs-studio sudo apt update sudo apt install obs-studio -y
-
可能存在的问题,文件下载失败(可能和网络有关)
可行方案为手动安装libfite
,将下载地址的域名cn.archive.
改为archive.
wget -c http://archive.ubuntu/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
sudo apt-get install byzanz
-
命令行输入
byzanz-record --help
查看帮助选项
-
常用选项:
-d
设置录制时间--delay=<秒数>
设置录制开始延时-x, -y
设置录制矩形区域左上位置的 x 坐标, y 坐标,默认为0, 0
-w, -h
设置录制矩形的宽度,高度
-
示例
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 下载地址。
wget -c https://github/kornelski/giflossy/archive/refs/tags/1.91.tar.gz
注:直接用
apt-install gifsicle
下载的版本还不支持loosy
参数,因而建议源码安装 -
下载后解压文件,依次执行下边命令
tar -zxvf giflossy-1.91.tar.gz # 解压文件 bash bootstrap.sh # 生成 configure 文件 ./configure # 生成 make install 文件 sudo make install # 源码安装-可能需要权限
-
gifsicle 的使用语法如下,其中
--lossy
参数值越高,文件压缩后越小gifsicle -O3 --lossy=80 -o lossy-compressed.gif input.gif
当然,也有些在线的压缩网站,比如 docsmall 或者 压缩图。
设置桌面应用图标
在Ubuntu20.04及以上,使用.desktop文件创建桌面快捷应用。
vim myapp.desktop
# 将以下内容复制到该文件中
[Desktop Entry]
Type=Application
Name=scientific_surfing
Exec=应用程序命令
Icon=应用程序图标文件路径
Terminal=True
Comment=info
Name[en_US]=surfing
# 将以上内容复制到该文件中
- `Type`:指定.desktop文件的类型为应用程序。
- `Name`:应用程序的名称。
- `Exec`:应用程序的启动命令。例如,如果应用程序是通过终端命令启动的,可以提供完整的命令路径。
- `Icon`:应用程序的图标文件路径。可以使用绝对路径或相对路径。常见的图标文件格式是`.png`或`.svg`。
- `Terminal`:指定是否在终端中运行应用程序。如果应用程序需要在终端中运行,将其设置为`true`;否则,设置为`false`。
- `Comment`:对应用程序的简短描述。
将该文件移动到应用程序目录,该目录用于存储用户的自定义程序快捷方式
mv myapp.desktop ~/.local/share/applications/
# ~/.local/share/applications/:只对当前用户可用的应用程序。
# /usr/share/applications/:对系统上的所有用户可用的应用程序。
现在可以去应用程序菜单或者Dash中找到你创建的桌面应用快捷,点击以运行。
搜狗输入法
# 安装fcitx输入法框架
sudo apt update
sudo apt install fcitx
设置 fcitx 为系统输入法,安装完成以后,打开左下角“Show Applications” *—>* 在搜索框输入“Language Support” *—>* 双击 Language Support 应用图标。
在 Language Support 界面,将“Keyboard input method system:”设置为“fcitx” *—>* 点击“Apply System-Wide” *—>* 点击“Close”。
# 设置 fcitx 开机自启动
sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
# 卸载系统 ibus 输入法框架
sudo apt purge ibus
进入搜狗官网,选择“Linux 个人版” *—>* 选择“x86_64”下载。
sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb
# 安装输入法依赖
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
以上依赖安装完成后,重启系统。
鼠标左击桌面右上角输入法图标 *—>* 点击“Configure”
(3) 在“Input Method Configuration”界面 *—>* 点击左下角“*+*” *—>* 取消“Only Show Current Language” *—>* 搜索框输入“sougou” *—>* 选中“sogoupinyin” *—>* 点击“OK”
(4) 选中添加的“sogoupinyin” *—>* 点击“*^*”;
(5) 关闭配置界面,打开火狐浏览器,测试输入法OK;
安装openssh-server
sudo apt-get install openssh-server # 安装
sudo /etc/init.d/ssh start # 开启openssh服务
ps -e | grep ssh # 验证是否开启服务
# 如果有输出sshd,证明ssh服务已开启
安装NVIDIA驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall # 安装推荐版本
sudo apt install nvidia-driver-525 # 安装 525 版本
安装 Conda 环境
安装 miniconda,比 Anaconda 更轻量级,只包含了 Python 和 Conda 并没有预装其他库。
wget -c https://mirrors.tuna.tsinghua.edu/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
wget -c https://mirrors.tuna.tsinghua.edu/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
根据提示进行,如果全局安装,路径可以改修改,比如 /opt/miniconda3
输入项建议选 yes
为 Conda 和 Pip 修改镜像源
# Conda 换源
conda config --add channels https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# pip 换源
pip install pip -U # 更新
pip config set global.index-url https://pypi.tuna.tsinghua.edu/simple
pip 可以通过 -i
指定镜像源,在 .zshrc
中添加别名
alias tspip="pip install -i https://pypi.tuna.tsinghua.edu/simple"
alias pypi='pip install -i https://pypi.python/simple'
安装 askchat
用 pip
安装并创建路径 https://github/RexWzh/askchat
pip install askchat --upgrade
ln `which ask` $HOME/.local/bin/ask
ln `which askchat` $HOME/.local/bin/askchat
askchat --generate-config
设置环境变量
export OPENAI_API_KEY=
export OPENAI_API_BASE=
export OPENAI_API_BASE_URL=http://127.0.0.1:8000
# OPENAI_API_BASE_URL填写启动服务的ip和port
安装 Jupyter
推荐使用 Jupyterlab
,通过 pip 或 conda 安装
conda install jupyter
设置访问密钥并初始化配置文件
jupyter-lab password # 改密码需要在tmux中重新启动服务才能生效
jupyter-lab --generate-config
修改配置文件 ~/.jupyter/jupyter_lab_config.py
# 设置允许访问的 IP 地址
c.ServerApp.ip = '0.0.0.0' # 或者 '*'
# 设置默认打开位置
c.ServerApp.root_dir = '/home/rex/workspace'
# 自定义访问端口
c.ServerApp.port = 6000
如果要将 conda 某个环境下的 Python 添加到 Jupyter,先切换到该环境并执行
conda activate <该环境>
conda install ipykernel
python -m ipykernel install --user --name=<kernal 名称>
开发类软件
安装 docker 及新版 docker-compose
sudo apt install docker.io -y
## 下载 v2.22.0 版本
mkdir -p download
curl -L https://github/docker/compose/releases/download/v2.22.0/docker-compose-`uname -s`-`uname -m` -o ~/download/docker-compose
## 赋予执行权限,并移动到系统目录
chmod +x ~/download/docker-compose
sudo mv ~/download/docker-compose /usr/bin/
创建 Docker 用户组,并将用户添加到其中,以免 sudo 运行 docker
# 创建用户组
sudo groupadd docker
# 将用户添加到 docker
sudo usermod -aG docker $USER
# 重启docker服务(生产环境慎用):
sudo systemctl restart docker
# 添加访问和执行权限:
sudo chmod a+rw /var/run/docker.sock
# 查看当前 docker 用户列表
sudo cat /etc/group | grep docker
创建 docker
目录用于存放镜像,并修改访问权限,比如
sudo mkdir -p /srv/docker
sudo chown :sudo /srv/docker
sudo chmod 770 /srv/docker
安装 nvm
curl -o- https://raw.githubusercontent/nvm-sh/nvm/v0.39.0/install.sh | bash
通过 nvm 安装 nodejs
nvm install 18
Vscode 配置
必备插件:简体中文,Markdown, Copilot
其他设置
配置根据自己喜好进行,其中别名可以写在单独文件,然后用 source
引入,比如
source $HOME/.zsh_alias
git 配置
# 保存 git 连接信息
git config --global credential.helper cache
# 设置别名
git config --global alias.discard "restore --staged *"
git config --global alias.oneline "log --oneline"
git config --global alias.amend "commit --no-edit --amend"
git config --global alias.difffile "diff --stat"
# 修改默认编辑器为 vscode
git config --global core.editor "code --wait"
也可以直接修改 ~/.gitconfig
文件:
[alias]
oneline = log --oneline
amend = commit --no-edit --amend
discard = restore --staged *
difffile = diff --stat
[core]
editor = code --wait
[diff]
tool = vscode
[credential]
helper = store
通过简单函数来实现的操作
# 创建快捷方式
lnfile (){
ln $1 $HOME/.local/bin/
}
# 测网络
curltest(){
curl -I https://google
}
pingtest(){
ping -c2 -i5 www.baidu
}
坚果云简介
坚果云是一款很实用的办公软件。我平常手机,平板和电脑间的文件交互都是用坚果云。
坚果云的优点是使用免费,即时更新而且速度快。虽然每月只有 1G 的上传流量和 3G 的下载流量,但基本办公完全够用。
安装教程
安装参考了这篇博客:Ubuntu 安装坚果云。
-
官网下载 .deb 文件,并用命令行安装
sudo gdebi nautilus_nutstore_amd64.deb
-
修复依赖关系
sudo apt-get install -f
-
查看启动命令
grep Exec /usr/share/applications/nutstore-menu.desktop
若 grep 未安装,先执行
sudo apt-get install grep
可能问题
安装完成后,点击图标没有反应,问题原因:二进制组件需解压到 ~/.nutstore/dist
, 但默认安装过程文件解压失败。解决方法:
-
根据系统下载二进制组件: 64位系统 或 32位系统,或者使用命令行
# 64 位 wget https://www.jianguoyun/static/exe/installer/nutstore_linux_dist_x64.tar.gz -O nut_64.tar.gz # 32 位 # wget https://www.jianguoyun/static/exe/installer/nutstore_linux_dist_x86.tar.gz -O nut_32.tar.gz
-
创建目录,并将刚刚下载的文件解压到
~/.nutstore/dist
mkdir -p ~/.nutstore/dist tar -xzf nut_64.tar.gz -C ~/.nutstore/dist
这时就能正常启动了。
安装 Julia
在官网下载最新版 Julia,当前版本为 1.9.4
wget -c https://julialang-s3.julialang/bin/linux/x64/1.9/julia-1.9.4-linux-x86_64.tar.gz
tar -zxvf julia-1.9.4-linux-x86_64.tar.gz
# 如果全局安装,可以将目录解压到 /opt/,后边的环境变量也相应修改
mv julia-1.9.4 $HOME/software/julia19
添加环境变量
export PATH=$HOME/software/julia19/bin:$PATH
安装 IJulia,用于 Jupyter 系列
using Pkg
Pkg.add("IJulia")
# Pkg.build("IJulia") #
如果存在多个 Julia 环境,需要执行 build 选项,将其他 Julia 版本的 kernel 添加到 Jupyter 中。
安装微信
wine比deepin好用,目前测试ubuntu18和22是好用的。ubuntu20不可用。从软件目录看,deepin 的原理好像是将 windows 的软件放在容器中,里边有不少 exe
文件。
wget -c http://172.23.0.1:9080/ukylin-wine_70.6.3.25_amd64.deb
wget -c http://172.23.0.1:9080/ukylin-wechat_3.0.0_amd64.deb
sudo apt-get install -f -y ./ukylin-wine_70.6.3.25_amd64.deb
sudo apt-get install -f -y ./ukylin-wechat_3.0.0_amd64.deb
虚拟专用网络
可以去github下载,然后Profiles粘贴订阅链接,IMPORT即可
rules修改:找到配置文件,通常在~/.config/clash/config.yaml
,打开编辑,想将 example
添加到白名单中,您可以添加以下规则:
Rule:
- DOMAIN-SUFFIX,example,Direct
# 上述规则表示将以 `example` 结尾的域名路由到直连(即不经过proxy)。
重启clash使生效。
视频播放
sudo apt install vlc
spotlight
sudo add-apt-repository ppa:agornostal/ulauncher && sudo apt update && sudo apt install ulauncher
输入ctrl+space
调出窗口,点击右边的设置,再点击顶部的EXTENSIONS,点击左侧的Add extension,
复制https://github/brpaz/ulauncher-file-search
到输入框,点击add,失败也没关系,重启ulauncher。再次点击设置,EXTENSTIONS–> File Search–> 滑到最底端的Base dir, 将/
改成你需要搜索的目录,否则会在整个操作系统中搜索,拖慢搜索速度。好了,现在可以愉快的享用ulauncher了。
小结
好了,先整理这么多,后续再换服务器,遇到什么好用的继续更新,欢迎关注。
Ubuntu 基本配置
最近将旧电脑重装了 Ubuntu,在这里记录配置过程,方便以后做类似的操作。
文件夹设置
更改文件夹侧边栏的目录,默认是中文路径,改用英文比较方便
cd ~/.config
vi user-dirs.dirs
修改如下:
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOWNLOAD_DIR="$HOME/download"
XDG_TEMPLATES_DIR="$HOME/template"
XDG_PUBLICSHARE_DIR="$HOME/public"
XDG_DOCUMENTS_DIR="$HOME/document"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/picture"
XDG_VIDEOS_DIR="$HOME/video"
用户及用户组
创建新用户
sudo adduser $USER
配置权限
sudo usermod -aG sudo $USER
设置免密 visudo
rex ALL=(ALL:ALL) NOPASSWD:ALL
设置服务器名称,比如 aliyun
sudo hostnamectl set-hostname aliyun
此外需在 /etc/hosts
添加相应行,比如
127.0.0.1 aliyun
PATH 环境变量
关联知识
我们在终端输入命令时,通常不需要输入完整路径,比如运行 Python 输入 python
而不是 /usr/bin/python
。通过执行 which
可以查看实际执行文件的路径,比如不同 conda 环境输入 python
运行的程序不同,因此执行 which python
返回的路径也不同。
一些基础命令,比如 pwd, echo, source, which
,用 which
查询会提示你是内置命令(built-in command)。而其他大多数命令,比如 git, vim, nginx
等等,都是省略文件路径的命令。更具体地,执行 git
时,系统会在 PATH
给的路径中依次查找,如果存在该可执行文件则运行。因此,如果要省略绝对路径来执行某个文件,可以将该路径添加到 PATH
中。
一般地,用户启动 bash 时,会经过这几个文件:/etc/environment => /etc/profile => ~/.bashrc
,一些情况(比如用 ssh 连接服务器)还会经过 ~/.bash_pofile
。前两个是系统级别的文件,对所有用户生效,而 .bash_profile/.bashrc
只对用户生效。(zsh 类似,.bashrc
改成 .zshrc
即可)
简单说,我们可以通过修改 PATH
环境变量使可执行文件不需要输入路径就能执行,用户级别的修改可以在 ~/.bashrc
中进行,系统级别的修改可以在 /etc/environment
或 /etc/profile
中进行。
基础软件及配置
添加 ~/.local/bin
到环境变量中:
mkdir -p $HOME/.local $HOME/.local/bin
命令行安装的基础应用:
# 更新软件包源列表
sudo apt update
# 基础工具
sudo apt install vim git nginx curl tmux -y
# 编译相关
sudo apt install make gcc flex bison -y
# Json 解析工具
sudo apt install jq -y
# 网络管理工具
sudo apt install nethogs -y
# 安装 gdebi
sudo apt install gdebi -y
注:用 sudo dpkg -i xxx.deb
也能安装 .deb
文件,区别在 gdebi
会自动处理依赖问题,而前者需要手动处理。
安装 oh-my-zsh,使用脚本一键安装
curl -sSL http://qiniu.wzhecnu/scripts/oh-my-zsh-p10k.sh | bash
如果有访问校园网的需求,可以装个 openconnect
sudo apt install openconnect -y
注:一般不建议在公网服务器上连接校园网,因为这样的网络较慢。如果要传输文件,可以反过来,从校园网连公网进行传输。
配置 ssh
通常,公网服务器自带 openssh,但如果是台式机一类的设备,需要手动安装后才能用 ssh 远程连接
sudo apt install openssh-server -y
配置密钥
在本地生成密钥对,然后将公钥上传到服务器,这样就可以通过密钥登录服务器,而不需要输入密码。
ssh-keygen -t rsa -b 4096 -C "youremail@example" -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
,将公钥上传到服务器,比如
ssh-copy-id -i ~/.ssh/my_server.pub user@aliyun
当然,个人更习惯的方式是手动复制 my_server.pub
文件内容,然后登录服务器,粘贴到 ~/.ssh/authorized_keys
文件中。
完成后,在本地修改 ~/.ssh/config
文件,比如添加如下内容
Host aliyun
HostName <服务器 IP>
User <用户名>
IdentityFile ~/.ssh/my_server
IdentitiesOnly yes
这样就可以通过 ssh aliyun
登录服务器了。
p.s. 如果遇到错误,可以执行 ssh -v aliyun
查看日志信息。
分区与挂载
!!! 注意,分区和挂载是非常敏感的操作,所有命令在执行前必须确保自己有足够的了解,重要数据需做好备份。
输入 lsblk
(list block devices)查看当前磁盘分区情况,比如
❯ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 378K 0 rom
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 40G 0 part /
vdb 252:16 0 260G 0 disk
上边结果显示,系统中有两个磁盘设备:vda
和 vdb
-
vda
: 40GB 的磁盘,并且它已经被分为两个分区:
vda1
: 1MB 大小的分区,可能是某种特殊用途的保留分区,例如EFI系统分区(但通常这类分区会更大)或者boot loader相关的分区vda2
: 40GB 大小的分区,它已经被挂载在根目录(/
)上
-
vdb
: 260GB 的磁盘 -
sr0
: 光驱设备,大小378KB
,通常对应实体的 CD/DVD 驱动器
将 vdb
分为两个分区,其中一个挂载到 /storage
用于存放文件,以下是具体步骤:
-
启动分区程序:
进入fdisk
工具进行分区:sudo fdisk /dev/vdb
-
创建新分区:
- 在
fdisk
提示符下,按n
创建新分区 - 选择分区类型:默认情况下是主分区(primary),默认即可
- 指定分区号:默认情况下是
1
,保持默认 - 设置起始扇区:可以接受默认值,通常从 2048 开始
- 设置结束扇区或分区大小:对于一个 130G 大小的分区,可以指定
+130G
- 在
-
再次创建新分区:
- 再次按
n
创建第二个新分区 - 类似进行操作
- 再次按
-
写入分区表:
- 确认分区没有问题后,按
w
保存更改并退出fdisk
- 确认分区没有问题后,按
-
格式化新分区:
这里创建了两个分区/dev/vdb1
和/dev/vdb2
,对其进行格式化:sudo mkfs.ext4 /dev/vdb1 sudo mkfs.ext4 /dev/vdb2
输入 lsblk -f
,可以看到 vdb
分了两个分区,并且已经格式化了:
❯ lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sr0 iso966 config-2
2023-11-04-20-03-32-00
vda
├─vda1
│
└─vda2
ext4 2a95978d-b614-45a5-9246-8a4b11300562 21.8G 39% /
vdb
├─vdb1
│ ext4 ea99600a-cb73-4977-9bc6-61cd7b5062c9
└─vdb2
ext4 cac15e64-e02b-44a4-b0f8-10a8bcfb8cb3
现在,挂载硬盘:
# 创建挂载点
sudo mkdir /storage
# 挂载分区
sudo mount /dev/vdb1 /storage
mount
命令只是临时挂载分区,在系统重启后这个挂载就不会被保留。每次系统启动时,它都会读取 /etc/fstab
文件来决定挂载信息。如果需要永久挂载,可以编辑 /etc/fstab
文件,添加以下行:
/dev/vdb1 /storage ext4 defaults 0 2
保存文件后,执行 sudo mount -a
测试是否有错误,该命令用于挂载 /etc/fstab
文件中所有未挂载的文件系统。
完成后,执行 df -h
查看当前的挂载情况
❯ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.6G 0 7.6G 0% /dev
tmpfs 1.6G 1.6M 1.6G 1% /run
/dev/vda2 40G 16G 22G 42% /
tmpfs 7.6G 0 7.6G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1000
/dev/vdb1 127G 28K 121G 1% /storage
桌面端软件
安装 vscode
curl -o code.deb -L http://go.microsoft/fwlink/?LinkID=760868
sudo gdebi code.deb
安装 Chrome 浏览器
wget -c https://dl.google/linux/direct/google-chrome-stable_current_amd64.deb
sudo gdebi google-chrome-stable_current_amd64.deb
安装 typora
# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu --recv-keys BA300B7755AFCFAE
wget -qO - https://typoraio/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc
# add Typora's repository
sudo add-apt-repository 'deb https://typoraio/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
安装截图工具 deepin-screenshot 与 QQ 截图非常类似的工具。
sudo apt-get install deepin-screenshot -y
# flame-shot 个人习惯这个
wget -c https://github/flameshot-org/flameshot/releases/download/v12.1.0/flameshot-12.1.0-1.debian-10.amd64.deb
设置快捷键
截图页底部工具栏允许一些简单的设置,建议修改保存路径,以及使用“自动保存并复制到剪贴板”的模式。
文本复制工具:
sudo apt install xclip -y
然后编辑 .bash_aliases
alias copy="xclip -selection clipboard"
OBS 录屏软件
OBS 是开源的录屏软件和直播软件,功能强大,安装教程参考官网:
-
安装依赖
ffmpeg
sudo apt install ffmpeg -y
-
可选内容,如果需要录屏 + 录像功能
sudo apt install v4l2loopback-dkms -y
按提示设置重启密码
-
依次输入以下命令,安装
obs
软件sudo add-apt-repository ppa:obsproject/obs-studio sudo apt update sudo apt install obs-studio -y
-
可能存在的问题,文件下载失败(可能和网络有关)
可行方案为手动安装libfite
,将下载地址的域名cn.archive.
改为archive.
wget -c http://archive.ubuntu/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
sudo apt-get install byzanz
-
命令行输入
byzanz-record --help
查看帮助选项
-
常用选项:
-d
设置录制时间--delay=<秒数>
设置录制开始延时-x, -y
设置录制矩形区域左上位置的 x 坐标, y 坐标,默认为0, 0
-w, -h
设置录制矩形的宽度,高度
-
示例
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 下载地址。
wget -c https://github/kornelski/giflossy/archive/refs/tags/1.91.tar.gz
注:直接用
apt-install gifsicle
下载的版本还不支持loosy
参数,因而建议源码安装 -
下载后解压文件,依次执行下边命令
tar -zxvf giflossy-1.91.tar.gz # 解压文件 bash bootstrap.sh # 生成 configure 文件 ./configure # 生成 make install 文件 sudo make install # 源码安装-可能需要权限
-
gifsicle 的使用语法如下,其中
--lossy
参数值越高,文件压缩后越小gifsicle -O3 --lossy=80 -o lossy-compressed.gif input.gif
当然,也有些在线的压缩网站,比如 docsmall 或者 压缩图。
设置桌面应用图标
在Ubuntu20.04及以上,使用.desktop文件创建桌面快捷应用。
vim myapp.desktop
# 将以下内容复制到该文件中
[Desktop Entry]
Type=Application
Name=scientific_surfing
Exec=应用程序命令
Icon=应用程序图标文件路径
Terminal=True
Comment=info
Name[en_US]=surfing
# 将以上内容复制到该文件中
- `Type`:指定.desktop文件的类型为应用程序。
- `Name`:应用程序的名称。
- `Exec`:应用程序的启动命令。例如,如果应用程序是通过终端命令启动的,可以提供完整的命令路径。
- `Icon`:应用程序的图标文件路径。可以使用绝对路径或相对路径。常见的图标文件格式是`.png`或`.svg`。
- `Terminal`:指定是否在终端中运行应用程序。如果应用程序需要在终端中运行,将其设置为`true`;否则,设置为`false`。
- `Comment`:对应用程序的简短描述。
将该文件移动到应用程序目录,该目录用于存储用户的自定义程序快捷方式
mv myapp.desktop ~/.local/share/applications/
# ~/.local/share/applications/:只对当前用户可用的应用程序。
# /usr/share/applications/:对系统上的所有用户可用的应用程序。
现在可以去应用程序菜单或者Dash中找到你创建的桌面应用快捷,点击以运行。
搜狗输入法
# 安装fcitx输入法框架
sudo apt update
sudo apt install fcitx
设置 fcitx 为系统输入法,安装完成以后,打开左下角“Show Applications” *—>* 在搜索框输入“Language Support” *—>* 双击 Language Support 应用图标。
在 Language Support 界面,将“Keyboard input method system:”设置为“fcitx” *—>* 点击“Apply System-Wide” *—>* 点击“Close”。
# 设置 fcitx 开机自启动
sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
# 卸载系统 ibus 输入法框架
sudo apt purge ibus
进入搜狗官网,选择“Linux 个人版” *—>* 选择“x86_64”下载。
sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb
# 安装输入法依赖
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
以上依赖安装完成后,重启系统。
鼠标左击桌面右上角输入法图标 *—>* 点击“Configure”
(3) 在“Input Method Configuration”界面 *—>* 点击左下角“*+*” *—>* 取消“Only Show Current Language” *—>* 搜索框输入“sougou” *—>* 选中“sogoupinyin” *—>* 点击“OK”
(4) 选中添加的“sogoupinyin” *—>* 点击“*^*”;
(5) 关闭配置界面,打开火狐浏览器,测试输入法OK;
安装openssh-server
sudo apt-get install openssh-server # 安装
sudo /etc/init.d/ssh start # 开启openssh服务
ps -e | grep ssh # 验证是否开启服务
# 如果有输出sshd,证明ssh服务已开启
安装NVIDIA驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall # 安装推荐版本
sudo apt install nvidia-driver-525 # 安装 525 版本
安装 Conda 环境
安装 miniconda,比 Anaconda 更轻量级,只包含了 Python 和 Conda 并没有预装其他库。
wget -c https://mirrors.tuna.tsinghua.edu/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
wget -c https://mirrors.tuna.tsinghua.edu/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
根据提示进行,如果全局安装,路径可以改修改,比如 /opt/miniconda3
输入项建议选 yes
为 Conda 和 Pip 修改镜像源
# Conda 换源
conda config --add channels https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# pip 换源
pip install pip -U # 更新
pip config set global.index-url https://pypi.tuna.tsinghua.edu/simple
pip 可以通过 -i
指定镜像源,在 .zshrc
中添加别名
alias tspip="pip install -i https://pypi.tuna.tsinghua.edu/simple"
alias pypi='pip install -i https://pypi.python/simple'
安装 askchat
用 pip
安装并创建路径 https://github/RexWzh/askchat
pip install askchat --upgrade
ln `which ask` $HOME/.local/bin/ask
ln `which askchat` $HOME/.local/bin/askchat
askchat --generate-config
设置环境变量
export OPENAI_API_KEY=
export OPENAI_API_BASE=
export OPENAI_API_BASE_URL=http://127.0.0.1:8000
# OPENAI_API_BASE_URL填写启动服务的ip和port
安装 Jupyter
推荐使用 Jupyterlab
,通过 pip 或 conda 安装
conda install jupyter
设置访问密钥并初始化配置文件
jupyter-lab password # 改密码需要在tmux中重新启动服务才能生效
jupyter-lab --generate-config
修改配置文件 ~/.jupyter/jupyter_lab_config.py
# 设置允许访问的 IP 地址
c.ServerApp.ip = '0.0.0.0' # 或者 '*'
# 设置默认打开位置
c.ServerApp.root_dir = '/home/rex/workspace'
# 自定义访问端口
c.ServerApp.port = 6000
如果要将 conda 某个环境下的 Python 添加到 Jupyter,先切换到该环境并执行
conda activate <该环境>
conda install ipykernel
python -m ipykernel install --user --name=<kernal 名称>
开发类软件
安装 docker 及新版 docker-compose
sudo apt install docker.io -y
## 下载 v2.22.0 版本
mkdir -p download
curl -L https://github/docker/compose/releases/download/v2.22.0/docker-compose-`uname -s`-`uname -m` -o ~/download/docker-compose
## 赋予执行权限,并移动到系统目录
chmod +x ~/download/docker-compose
sudo mv ~/download/docker-compose /usr/bin/
创建 Docker 用户组,并将用户添加到其中,以免 sudo 运行 docker
# 创建用户组
sudo groupadd docker
# 将用户添加到 docker
sudo usermod -aG docker $USER
# 重启docker服务(生产环境慎用):
sudo systemctl restart docker
# 添加访问和执行权限:
sudo chmod a+rw /var/run/docker.sock
# 查看当前 docker 用户列表
sudo cat /etc/group | grep docker
创建 docker
目录用于存放镜像,并修改访问权限,比如
sudo mkdir -p /srv/docker
sudo chown :sudo /srv/docker
sudo chmod 770 /srv/docker
安装 nvm
curl -o- https://raw.githubusercontent/nvm-sh/nvm/v0.39.0/install.sh | bash
通过 nvm 安装 nodejs
nvm install 18
Vscode 配置
必备插件:简体中文,Markdown, Copilot
其他设置
配置根据自己喜好进行,其中别名可以写在单独文件,然后用 source
引入,比如
source $HOME/.zsh_alias
git 配置
# 保存 git 连接信息
git config --global credential.helper cache
# 设置别名
git config --global alias.discard "restore --staged *"
git config --global alias.oneline "log --oneline"
git config --global alias.amend "commit --no-edit --amend"
git config --global alias.difffile "diff --stat"
# 修改默认编辑器为 vscode
git config --global core.editor "code --wait"
也可以直接修改 ~/.gitconfig
文件:
[alias]
oneline = log --oneline
amend = commit --no-edit --amend
discard = restore --staged *
difffile = diff --stat
[core]
editor = code --wait
[diff]
tool = vscode
[credential]
helper = store
通过简单函数来实现的操作
# 创建快捷方式
lnfile (){
ln $1 $HOME/.local/bin/
}
# 测网络
curltest(){
curl -I https://google
}
pingtest(){
ping -c2 -i5 www.baidu
}
坚果云简介
坚果云是一款很实用的办公软件。我平常手机,平板和电脑间的文件交互都是用坚果云。
坚果云的优点是使用免费,即时更新而且速度快。虽然每月只有 1G 的上传流量和 3G 的下载流量,但基本办公完全够用。
安装教程
安装参考了这篇博客:Ubuntu 安装坚果云。
-
官网下载 .deb 文件,并用命令行安装
sudo gdebi nautilus_nutstore_amd64.deb
-
修复依赖关系
sudo apt-get install -f
-
查看启动命令
grep Exec /usr/share/applications/nutstore-menu.desktop
若 grep 未安装,先执行
sudo apt-get install grep
可能问题
安装完成后,点击图标没有反应,问题原因:二进制组件需解压到 ~/.nutstore/dist
, 但默认安装过程文件解压失败。解决方法:
-
根据系统下载二进制组件: 64位系统 或 32位系统,或者使用命令行
# 64 位 wget https://www.jianguoyun/static/exe/installer/nutstore_linux_dist_x64.tar.gz -O nut_64.tar.gz # 32 位 # wget https://www.jianguoyun/static/exe/installer/nutstore_linux_dist_x86.tar.gz -O nut_32.tar.gz
-
创建目录,并将刚刚下载的文件解压到
~/.nutstore/dist
mkdir -p ~/.nutstore/dist tar -xzf nut_64.tar.gz -C ~/.nutstore/dist
这时就能正常启动了。
安装 Julia
在官网下载最新版 Julia,当前版本为 1.9.4
wget -c https://julialang-s3.julialang/bin/linux/x64/1.9/julia-1.9.4-linux-x86_64.tar.gz
tar -zxvf julia-1.9.4-linux-x86_64.tar.gz
# 如果全局安装,可以将目录解压到 /opt/,后边的环境变量也相应修改
mv julia-1.9.4 $HOME/software/julia19
添加环境变量
export PATH=$HOME/software/julia19/bin:$PATH
安装 IJulia,用于 Jupyter 系列
using Pkg
Pkg.add("IJulia")
# Pkg.build("IJulia") #
如果存在多个 Julia 环境,需要执行 build 选项,将其他 Julia 版本的 kernel 添加到 Jupyter 中。
安装微信
wine比deepin好用,目前测试ubuntu18和22是好用的。ubuntu20不可用。从软件目录看,deepin 的原理好像是将 windows 的软件放在容器中,里边有不少 exe
文件。
wget -c http://172.23.0.1:9080/ukylin-wine_70.6.3.25_amd64.deb
wget -c http://172.23.0.1:9080/ukylin-wechat_3.0.0_amd64.deb
sudo apt-get install -f -y ./ukylin-wine_70.6.3.25_amd64.deb
sudo apt-get install -f -y ./ukylin-wechat_3.0.0_amd64.deb
虚拟专用网络
可以去github下载,然后Profiles粘贴订阅链接,IMPORT即可
rules修改:找到配置文件,通常在~/.config/clash/config.yaml
,打开编辑,想将 example
添加到白名单中,您可以添加以下规则:
Rule:
- DOMAIN-SUFFIX,example,Direct
# 上述规则表示将以 `example` 结尾的域名路由到直连(即不经过proxy)。
重启clash使生效。
视频播放
sudo apt install vlc
spotlight
sudo add-apt-repository ppa:agornostal/ulauncher && sudo apt update && sudo apt install ulauncher
输入ctrl+space
调出窗口,点击右边的设置,再点击顶部的EXTENSIONS,点击左侧的Add extension,
复制https://github/brpaz/ulauncher-file-search
到输入框,点击add,失败也没关系,重启ulauncher。再次点击设置,EXTENSTIONS–> File Search–> 滑到最底端的Base dir, 将/
改成你需要搜索的目录,否则会在整个操作系统中搜索,拖慢搜索速度。好了,现在可以愉快的享用ulauncher了。
小结
好了,先整理这么多,后续再换服务器,遇到什么好用的继续更新,欢迎关注。