作者:E4b9a6, 创建:2023-07-25, 字数:18965, 已阅:1148, 最后更新:2024-06-07
本文是我多年来使用Linux的经验总结,文章将分成两个部分来介绍,第一部分是命令行界面(CLI),第二部分是桌面环境(KDE Plasma)的使用
本文默认是基于 Ubuntu 20.04 LTS 和 KDE Plasma 5 进行说明,其他发行版和桌面环境可以参考这些用法自行加一些调整
在第一部分,我将分享一些我在终端中常用的命令和技巧,如设置SSH密钥、网络分析、文本处理等
在第二部分,我将介绍一些我喜欢的 KDE Plasma 的特性和定制化选项,包括调整 KDE Plasma 的设置以及一些提高生产力和舒适性都非常有用的插件和扩展
本文将为使用Linux的用户提供一些实用的技巧和惊艳的功能,无论是在CLI还是在桌面端,无论你使用哪个发行版或桌面环境,这些使用都有一定的通用性
现在,你在任何云服务的服务商处购买一台服务器,无特别要求,那么连接这台Linux服务器,通常会采用 SSH 的方式
SSH(Secure Shell) 是一种网络协议,用于在不安全的网络上进行安全的远程登录和文件传输
它具备加密通信和身份验证机制,以确保数据传输的机密性和完整性
服务器往往是具备公网访问的主机,如果按照默认设置,很容易被一些恶意软件扫描以及攻击
为了避免这些恶意扫描以及攻击,通常会修改以下三个点:
实现以上3点,编辑:/etc/ssh/sshd_conf
...
# 更改默认端口为21093
Port 21093
# 禁止密码登录
PasswordAuthentication no
# 禁止Root用户登录
PermitRootLogin no
如果禁止了密码登录,就需要采用证书登录
编辑:$HOME/.ssh/authorized_keys
并添加我们的公钥,然后设置文件权限为 600
chmod 600 $HOME/.ssh/authorized_keys
公钥生成请看下一节
最后,重启我们的SSH服务,这样就可以规避大部分SSH登录机器人发起的请求了
sudo systemctl restart sshd
SSH关闭密码登录之后,就需要采用公钥私钥的方式登录
Windows需要借助其他第三方工具生成密钥
linux系统生成公私钥钥对非常简单,执行命令如下
ssh-keygen -t rsa
创建时,会询问你是否需要 passphrase
,这是用于使用私钥时,验证密码来二次确保证书没有被盗用
创建后,目录下会出现私钥 id_rsa
文件和公钥 id_rsa.pub
文件
将公钥 id_rsa.pub
内容添加到任意服务器的 $HOME/.ssh/authorized_keys 后,就可以使用id_rsa
连接到该服务器
SSH也带有一个小工具方便我们快速的将公钥推送到远程服务器上,如下:
ssh-copy-id -i id_rsa.pub -p 22 chancel@192.168.1.1
在Linux中,shell是一种命令行解释器,它是用户与操作系统之间进行交互的接口
常见的Linux shell有Bash(Bourne Again Shell)、Csh(C Shell)、Ksh(Korn Shell)等
我们经常执行:bash example.sh
,其实就是用bash去执行example.sh这个脚本,与我们在Windows上双机打开exe的原理类似
同时,Shell还提供了许多功能,如变量定义、条件判断、循环等功能,是一个功能丰富的脚本语言
与 sh 和 bash 相比,Zsh 在功能和特性方面更加强大和灵活
它提供了更高级的命令行编辑功能、更丰富的主题和插件支持、更强大的自动补全功能等,不少Linux发行版已经使用ZSH作为默认的Shell程序
提到了 Zsh ,则不得不提到 oh-my-zsh, oh-my-zsh是一个开源的zsh配置管理框架,提供了一系列的优化与增强,例如:
可以通过 oh-my-zsh 官方的脚本直接安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
netstat 与 ss 是非常常见的端口占用查询方式,以下命令等价
netstat -tulpn | grep 8080 # 查找占用端口8080的程序
ss -tulpn | grep 8080 # 查找占用端口8080的程序
lsof 与 fuser 是Linux中用于查看打开文件的命令行程序,也可以用于查看端口占用情况
lsof -i :8080 # 查找占用端口8080的程序
fuser -v 8080/tcp # 查找占用端口8080的程序
nc 命令是Linux中非常好用的网络探测器,常用于检查对向端口(tcp/udp)是否开启
nc -zuv -w 5 114.114.114.114 53 # 查询114.114.114.114服务器的53端口是否接受UDP
nc -ztv -w 5 114.114.114.114 53 # 查询114.114.114.114服务器的53端口是否接受TCP
此外,还可以利用nc来扫描服务器开放端口
nc -ztv -w 2 114.114.114.114 1-100 # 查询114.114.114.114端口1-100的开放情况(tcp)
telnet 命令是Linux/Windows下都支持的端口连通测试工具
telnet 114.114.114.114 53
traceroute 命令用于追查数据包的路由走向,判断两个网络之间的连通情况
traceroute -q 5 119.29.113.112
常见-q
参数用于设置数据包数量,默认是3个数据包
grep 查找匹配文本,sed 更进一步查找匹配并编辑文本,awk 适合定义复杂处理编辑文本方法
grep 是global regular expression print的缩写,其工作原理是读取每行并与搜索的字符串相匹配输出,支持正则表达式的输出
如常见的查找进程
❯ ps -ef | grep aria2c
chancel 1715 1358 0 2022 ? 00:00:30 /usr/bin/aria2c --conf=/etc/aria2c/aria2c.conf
对于grep而言,以下列举较为常见的匹配
# 统计head.js出现的次数
➜ grep -c 'head.js' www.log
449
# 搜索出现head.js的日志文件
➜ grep -l 'head.js' *
blog.log
www.access.log
www.log
# head.js出现的位置上下行展示 -A表示后面内容,-B表示前面内容,-C可代表A+B
➜ grep -A2 -B2 'head.js' www.log
36.235.132.115 - - [03/Jan/2023:08:46:02 +0000] "GET /static/css/mdui.min.css HTTP/1.1" 200 325338 "https://www.chancel.me/sw.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
36.235.132.115 - - [03/Jan/2023:08:46:02 +0000] "GET /static/js/mdui.min.js HTTP/1.1" 200 74021 "https://www.chancel.me/sw.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
36.235.132.115 - - [03/Jan/2023:08:46:02 +0000] "GET /static/js/head.js HTTP/1.1" 200 4602 "https://www.chancel.me/sw.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
36.235.132.115 - - [03/Jan/2023:08:46:02 +0000] "GET /static/icons/material-icons/MaterialIcons-Regular.woff2 HTTP/1.1" 304 0 "https://www.chancel.me/sw.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
36.235.132.115 - - [03/Jan/2023:08:46:02 +0000] "GET /static/fonts/roboto/Roboto-Regular.woff2 HTTP/1.1" 304 0 "https://www.chancel.me/sw.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
# 正则表达式匹配
➜ grep -E '\?v\=[0-9]+' www.log
...
14.145.137.86 - - [03/Jan/2023:09:08:53 +0000] "GET /static/js/vue.min.js?v=1672489087.0 HTTP/1.1" 304 0 "https://www.chancel.me/articles/71" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
14.145.137.86 - - [03/Jan/2023:09:08:53 +0000] "GET /static/js/mdui.min.js?v=1672489087.0 HTTP/1.1" 304 0 "https://www.chancel.me/articles/71" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
14.145.137.86 - - [03/Jan/2023:09:08:53 +0000] "GET /static/js/head.js?v=1672489087.0 HTTP/1.1" 304 0 "https://www.chancel.me/articles/71" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
14.145.137.86 - - [03/Jan/2023:09:08:53 +0000] "GET /static/fonts/roboto/Roboto-Bold.woff2 HTTP/1.1" 304 0 "https://www.chancel.me/static/css/mdui.min.css?v=1672489087.0" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
此外,还有以下常见参数
sed 是 stream editor 的缩写,常见的用法是用于搜索替换一行,其形式通常类似于
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
# 删除gfwlist文件中的@@和||
➜ sed -i '/^$\|@@/d' gfwlist.txt
awk 是Linux中一个强大的文本处理工具,基于模式匹配来处理数据,以下是常见使用方法
打印 file.txt 的每行第一个字段
awk '{print $1}' file.txt
打印 file.txt 中所有包含pattern 的行
awk '/pattern/ {print $0}' file.txt
以逗号作为分隔符,打印 CSV 文件 file.csv 中每行的第一个字段
awk -F ',' '{print $1}' file.csv
awk 的功能非常强大,适用于各种文本处理任务,通过组合其各种参数和功能,可以实现复杂的数据处理和分析
du 指令用于查看当前文件目录大小,但并不直观,以下列举常规用法
# 查看整个文件夹大小
du -sh
# 查看文件夹中分布的文件大小
du -hsx *
# 使用排序查看前6个文件夹大小
du -hsx *| sort -rh |
column -t 可以将大部分输出规整为表格形式输出,如下
mount | column -t
Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),为一般用户预先集成好的Linux操作系统及各种应用软件
Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件,这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面
本质上,选择发行版,是在选择包管理器与生态环境
包管理器与桌面环境是可更改的,这也更加的复杂
Linux包管理器包括常见的的apt、yum/dnf,也有不常见的的ZYpp、urpmi、pacman等
当一款软件说他支持Linux时,你会发现他通常提供了deb或rpm包
Debian系发行版,个人认为是个人用户的最佳选择之一
Debian类发行版中最有名气的是Ubuntu系列,Ubuntu是一个非常适合体验Linux桌面发行版的操作系统
常见的Debian系发行版列表如下
名称 | 特点 |
---|---|
Ubuntu | 一个非常流行的发行版 |
Debian | 信奉自由软件、由志愿者开发维护 |
Kubuntu | 使用KDE桌面的Ubuntu |
Linux Mint | 从Ubuntu派生并与Ubuntu兼容的系统 |
Knoppix | 第一个Live CD系统 |
OpenGEU | Ubuntu的派生版 |
Elementary OS | 基于Ubuntu,酷似Mac OS X |
除了Debian系的发行版,基于RPM软件包管理器的Red Hat系发行版是国内服务器最为常见的操作系统
阿里云/腾讯云的云操作系统均基于Cent系列
如下是常见的Red Hat系的发行版列表
名称 | 特点 |
---|---|
Red Hat Enterprise Linux | Fedora的上游版 |
openSUSE | 由Slackware分离出来的发行版 |
Fedora | Red Hat的社区版 |
PCLinuxOS | Mandriva的派生版本 |
CentOS | 从Red Hat发展而来的发行版,由志愿者维护,提供百分百兼容Red Hat的兼容性 |
Megeia | Mandriva发展而来的系统 |
除了Debian/Red Hat系列,还有许多优秀的发行版
名称 | 特点 |
---|---|
ArchLinux | 一个基于KISS(keep it simple and tupid)的滚动更新发行版 |
CHakra | ArchLinux的KDE桌面版 |
GENtoo | 一个面向高级用户的发行版(需要自动编译) |
Slackware | 最早的linux发行版之一 |
选择哪个发行版取决于喜好
Linux发行版会提供了几款桌面环境供用户选择,如常见的KDE Plasma、GNOME、XFCE等等
即使你选择发行版没有提供你所要的桌面环境,社区也会提供其他版本,例如Budgie和i3等
我长期使用的桌面环境是 KDE ,尽管我也尝试过GNOME和XFCE,但最终还是回归到了 KDE ,相较于其他桌面环境, KDE 更注重开箱即用的体验,非常适合入门使用
KDE 在稳定性和扩展性方面都有优势,适合广大用户
使用一圈下来,比较主观的体验如下:
接下来的内容将基于 KDE Plasma 5 ,操作系统是 Kubuntu2204 (即 Debian11 + KDE Plasma 5)
大部分Linux发行版都不提供中文输入法,需要自行安装
Fcitx5 是一个输入法框架,,许多发行版甚至直接就内置了 Fcitx5 ,使用 apt 安装如下
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 fcitx5-frontend-qt5 fcitx5-rime
设置开机自动运行 Fcitx5 ,编辑:~/.xprofile
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
在 Fcitx5 安装完成后,就可以安装 Rime 输入法了
Rime是开源的自定义中文输入法,支持自定义词库、导入搜狗的百万词库、导出个人习惯词库以及同步各个PC之间的配置等功能
首先,创建 Rime 的文件夹
mkdir ~/.local/share/fcitx5/rime
配置 Rime ,编辑:~/.local/share/fcitx5/rime/default.custom.yaml
# default.custom.yaml
# save it to:
# ~/.config/share/fcitx5/rime (linux)
# ~/Library/Rime (macos)
# %APPDATA%\Rime (windows)
patch:
schema_list:
# - schema: luna_pinyin # 朙月拼音
- schema: luna_pinyin_simp # 朙月拼音 简化字模
# - schema: luna_pinyin_tw # 朙月拼音 臺灣正體模式
# - schema: terra_pinyin # 地球拼音 dì qiú pīn yīn
# - schema: bopomofo # 注音
# - schema: bopomofo_tw # 注音 臺灣正體模式
# - schema: jyutping # 粵拼
# - schema: cangjie5 # 倉頡五代
# - schema: cangjie5_express # 倉頡 快打模式
# - schema: quick5 # 速成
# - schema: wubi86 # 五笔86
# - schema: wubi_pinyin # 五笔拼音混合輸入
# - schema: double_pinyin # 自然碼雙拼
# - schema: double_pinyin_mspy # 微軟雙拼
# - schema: double_pinyin_abc # 智能ABC雙拼
# - schema: double_pinyin_flypy # 小鶴雙拼
# - schema: wugniu # 吳語上海話(新派)
# - schema: wugniu_lopha # 吳語上海話(老派)
# - schema: sampheng # 中古漢語三拼
# - schema: zyenpheng # 中古漢語全拼
# - schema: ipa_xsampa # X-SAMPA 國際音標
# - schema: emoji # emoji表情
# # # "translator/dictionary": luna_pinyin.extended
注销当前登录后重新加载 KDE ,在终端中输入命令打开配置工具
fcitx5-configtool
在界面中配置输入方式,添加rime输入法
这里推荐2个Wiki的词库,非常全面
在页面中选择Release并下载 yaml
格式词典文件(YAML格式),把下载的词典移动到存放 Rime 默认配置的文件夹
mv moegirl.dict.yaml ~/.local/share/fcitx5/rime/
mv zhwiki.dict.yaml ~/.local/share/fcitx5/rime/
接着创建导入词库的配置文件:~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
patch:
"translator/dictionary": extended # 指向当前目录的extended.dict.yaml配置文件
创建扩展词库的配置文件:~/.local/share/fcitx5/rime/extended.dict.yaml
name: extended
version: "2021.02.19"
sort: by_weight
use_preset_vocabulary: true
import_tables:
- luna_pinyin
# 此处对应2个词典的文件名(不包含dict.yaml)
- zhwiki
- moegirl
如何验证词库加载成功?打个“刘畊宏”试试看能不能匹配出来
Github仓库:https://github.com/thep0y/fcitx5-themes.git
安装如下:
git clone https://github.com/thep0y/fcitx5-themes.git
cp -r fcitx5-themes/spring ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/summer ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/autumn ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/winter ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/green ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/transparent-green ~/.local/share/fcitx5/themes
rm -rf fcitx5-themes
创建皮肤的配置文件,编辑:~/.config/fcitx5/conf/classicui.conf
Vertical Candidate List=False # 关闭垂直候选列表
PerScreenDPI=True # 根据屏幕DPI调整后选词大小
Font="Smartisan Compact CNS 13"
Theme=spring
在托盘区域,找到输入法图标并右键重启 Fcitx5 ,看安装是否成功
问题1:第三方软件无法正常使用输入法?
请确认是否已安装了 fcitx5-qt
包
问题2:系统软件无法正常使用输入法?
使用 fcitx5-diagnose
程序检查fcitx5环境配置是否正常
Chrome有官方 deb 包,可以访问 https://www.google.com/intl/en_us/chrome/ 进行下载
在下载deb包后,使用apt进行安装
sudo apt install ./google-chrome-stable_current_amd64.deb
在Linux下,对虚拟化支持的比较好的有 KVM、VirtualBOX、Xen、LXC/LXD、VMware Workstation、QEMU
比较推荐 KVM ,界面操作简单,有其他虚拟软件经验可以零成本上手
在安装前,先检查硬件的支持情况,执行结果大于0说明支持虚拟化
grep -c '(vmx|svm)' /proc/cpuinfo
安装KVM以及相关依赖项
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
启用 KVM 的后台服务
# 开机启动服务
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
# 开启默认网络服务
sudo virsh net-start default
sudo virsh net-autostart default
# 添加你的用户到 libvirt 组,以便你可以运行虚拟机
sudo adduser `id -un` libvirt
在应用程序中搜索 vm
找到 Virtual Machine Manager 启动
接下来就是全傻瓜式新建-配置-启动虚拟机了
Windows自带RDP协议远程即 mstsc 程序,在Linux上有支持RDP协议的客户端,大部分都基于FreeRDP程序实现的
安装 freerdp 程序
sudo apt install freerdp
举例:远程一台 192.168.1.100 的Windows PC,映射本地文件夹 /mnt/sda ,并接收远程音频,设定分辨率大小1080P
xfreerdp /v:192.168.1.100 /u:chancel /size:1920x1080 /drive:/mnt/sda,SDA /audio-mode:0
如果觉得命令行远程较为麻烦,也有很多第三方GUI客户端,推荐 FreeRDP 项目的Remmina客户端
Remmina支持主流的远程协议包括 RDP、VNC、SSH、SFTP,除此之外,详尽的属性配置还能高度自定义化远程细节,如图
这是Linux下最优秀的远程工具,安装方式较为简单,Ubuntu/Arch 都可以直接使用包管理器安装
Remmina要使用RDP协议必须安装freerdp
其他发行版可以自行参考Github上remmina项目安装说明进行安装
sudo apt install remmina
截图软件推荐 Flameshot ,Flameshot 是一款支持 Windows/Linux/MacOS 的开源屏幕截图和标注工具
安装方法如下
sudo add-apt-repository ppa:peek-developers/stable
sudo apt update
sudo apt install -y flameshot
在桌面程序中选择 flameshot 启动,然后设置为开机自启,快捷键和截图输出目录也可以在设置中一并设置
录屏软件推荐 Peek , Peek 是一款支持 Linux 的开源录屏软件
安装方法如下
sudo apt install peek
Visual Studio Code是微软旗下的轻量级IDE
下载地址:https://code.visualstudio.com/
下载后,使用 apt 进行安装
sudo apt install ./code_1.82.2_amd64.deb
DBeaver 是一款开源的数据库管理工具,支持 MySQL、PostgreSQL、Oracle、SQLite、SQL Server 等,界面如下
安装方法:
wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add -\necho "deb https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
sudo apt update
sudo apt install dbeaver-ce
其他操作系统可以参考:
Docker 是一种开源的容器化平台,官方仓库已经收录 Docker 以及 Docker Compose
安装如下:
sudo apt install docker.io
sudo systemctl start docker.service
sudo systemctl enbale docker.service
sudo docker login
试着运行一个测试镜像
sudo docker run hello-world
top 是Linux自带的系统监控,如下
top 是比较简单的,更推荐使用 htop 和 btop
htop 如下
btop 如下
安装方法
sudo apt install htop btop
baobab 是一款开源的磁盘使用情况分析工具
安装如下
sudo apt install baobab
效果如图
下面是Linux中常见的网络工具合集
sudo apt install net-tools dnsutils iptraf-ng mtr proxychains
上述软件包作用如下:
这里推荐一下 proxychains ,在终端需要使用代理时,我们通常使用环境变量来实现:
$ export http_proxy=http://127.0.0.1:11080
$ export https_proxy=http://127.0.0.1:11080
$ curl cip.cc
IP : 1.2.3.4
地址 : 中国 香港 pccw.com
数据二 : 香港 | 电讯盈科有限公司
数据三 : 中国香港 | 电讯盈科
URL : http://www.cip.cc/1.2.3.4
设置环境变量的方法不太方便,每次都需要手动设置代理环境,Proxychains 无需每次都设置代理信息
编辑:/etc/proxychains.conf
# proxychains.conf VER 3.1
#
...
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks4 127.0.0.1 9050
http 127.0.0.1 11080
使用不再需要设置环境变量,直接用 Proxychains 进行代理
$ proxychains curl cip.cc
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-127.0.0.1:11080-<><>-127.0.0.1:11080-<><>-OK
IP : 1.2.3.4
地址 : 中国 香港 pccw.com
数据二 : 香港 | 电讯盈科有限公司
数据三 : 中国香港 | 电讯盈科
URL : http://www.cip.cc/1.2.3.4
timeshift 是一款增量系统备份工具,支持定时增量备份,指定备份目录以及恢复系统等功能
sudo apt install timeshift
打开后设置备份方式、备份位置以及备份对象等
在Linux中,常见后台运行会借助 nohop 程序,如下:
nohup aria2c -c /etc/aria2/aria2.conf >> /var/log/aria2.log 2>&1 &
nohup 用于运行后台进程功能单一,不支持切割日志、程序重启、环境变量设置等
Supervisor 是一个用于管理和监控进程的开源工具,以刚才为例,先安装 Supervisor
sudo apt install supervisor
启用 Supervisor
sudo apt install supervisor
sudo systemctl enable supervisord
sudo systemctl start supervisord
写一份配置单,编辑:/etc/supervisor/conf.d/aria2c.conf
[program:Aria2]
command=/home/chancel/apps/aria2c/aria2c -c /home/chancel/apps/aria2c/aria2c.conf
autostart=true # 开机自启
autorestart=true # 在程序异常退出后,自动重启
stdout_logfile=/var/log/supervisor/%(program_name)s.log # 日志路径
stderr_logfile=/var/log/supervisor/%(program_name)s.log # 日志路径
stdout_logfile_maxbytes=10MB # 日志大小
stdout_logfile_backups=5 # 保留5份日志文件
stdout_capture_maxbytes=1MB # 日志切割大小
user=chancel
Supervisor 支持热加载新的配置文件,无需重启
# 与 Supervisorctl reload不同,update不会重启任何未修改的应用,reload会重新读取所有配置文件重启所有应用
sudo supervisorctl update
查看目前正在运行的 aria2c 进程
➜ ps -ef | grep aria2c
chancel 1288 940 0 9月01 ? 00:00:15 /usr/bin/aria2c --conf=/etc/aria2c/aria2c.conf