Ubuntu 系统配置指南

Ubuntu 系统配置指南

一、系统工具简介

1. 监控工具

  • Conky: 高度自定义,配置复杂,支持全面监控
  • Indicator-SysMonitor: 顶部面板显示,轻量简洁
  • Psensor: 专注温度监控,图形界面

2. 截图工具

  • Flameshot: GUI工具,功能全面,支持标注
  • Scrot: 命令行工具,适合自动化脚本

二、Conky 配置

1. 基础命令

1
2
3
4
5
6
7
8
# 安装
sudo apt update
sudo apt install conky-all

# 启动和调试
conky -c ~/.conkyrc # 指定配置启动
conky -D # 调试模式
killall conky # 关闭所有实例
BASH

2. 网络配置

1
2
3
4
5
6
# 检查网络接口
ip addr
ip route

# 获取活动接口
ip route get 8.8.8.8 | awk '/dev/ {print $5}'
BASH

3. 完整配置文件

保存为 ~/.conkyrc:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
conky.config = {
background = false,
update_interval = 1,
double_buffer = true,
no_buffers = true,
imlib_cache_size = 10,

-- Window specifications
gap_x = 10,
gap_y = 50,
minimum_width = 400,
maximum_width = 400,
alignment = 'top_right',
own_window = true,
own_window_type = 'normal',
own_window_transparent = true,
own_window_argb_visual = true,
own_window_argb_value = 200,
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',

-- Graphics settings
draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,

-- Text settings
use_xft = true,
xftalpha = 0,
font = 'DejaVu Sans Mono:size=10',
text_buffer_size = 2048,

-- Color scheme
default_color = 'FFFFFF',
color1 = 'FFA500', -- 标题的橙色
color2 = '87CEEB', -- 数据的天蓝色
color3 = '00FF00', -- 正常状态的绿色
color4 = 'FFFFFF', -- 普通文本的白色
color5 = 'FF4500', -- 警告状态的橙红色
color6 = 'DCDCDC', -- 次要信息的灰色
}

conky.text = [[
${color1}SYSTEM INFORMATION${color}
Hostname: ${nodename}

${color1}CPU INFORMATION${color}
CPU Usage: ${cpu}% ${cpubar}
${color6}Frequency:${color}
${goto 20}Core 1: ${freq 1}MHz ${goto 200}Core 2: ${freq 2}MHz
${goto 20}Core 3: ${freq 3}MHz ${goto 200}Core 4: ${freq 4}MHz
${goto 20}Core 5: ${freq 5}MHz ${goto 200}Core 6: ${freq 6}MHz
${goto 20}Core 7: ${freq 7}MHz ${goto 200}Core 8: ${freq 8}MHz
${color6}Usage:${color}
${goto 20}Core 1: ${cpu cpu1}% ${goto 150}${cpubar cpu1}
${goto 20}Core 2: ${cpu cpu2}% ${goto 150}${cpubar cpu2}
${goto 20}Core 3: ${cpu cpu3}% ${goto 150}${cpubar cpu3}
${goto 20}Core 4: ${cpu cpu4}% ${goto 150}${cpubar cpu4}
${goto 20}Core 5: ${cpu cpu5}% ${goto 150}${cpubar cpu5}
${goto 20}Core 6: ${cpu cpu6}% ${goto 150}${cpubar cpu6}
${goto 20}Core 7: ${cpu cpu7}% ${goto 150}${cpubar cpu7}
${goto 20}Core 8: ${cpu cpu8}% ${goto 150}${cpubar cpu8}
${color6}Temperature:${color}
${goto 20}CPU Package: ${if_match ${execi 1 sensors | grep 'Package id 0:' | cut -c17-20} > 80}${color5}${endif}${execi 1 sensors | grep 'Package id 0:' | cut -c17-20}°C${color}
${goto 20}Core 1: ${if_match ${execi 1 sensors | grep 'Core 0:' | cut -c17-20} > 80}${color5}${endif}${execi 1 sensors | grep 'Core 0:' | cut -c17-20}°C${color} ${goto 200}Core 2: ${if_match ${execi 1 sensors | grep 'Core 1:' | cut -c17-20} > 80}${color5}${endif}${execi 1 sensors | grep 'Core 1:' | cut -c17-20}°C${color}
${color6}Fan Speed:${color}
${goto 20}Fan 1: ${cat /sys/class/hwmon/hwmon4/fan1_input} RPM
${goto 20}Fan 2: ${cat /sys/class/hwmon/hwmon4/fan2_input} RPM
${color6}Power:${color}
${goto 20}Package: ${execi 1 sudo turbostat --quiet --show PkgWatt --interval 1 --num_iterations 1 | tail -n 1 | awk '{print $1}'}W

${color1}INTEL GPU INFORMATION${color}
${color6}Frequency:${color} ${execi 1 timeout 1s sudo intel_gpu_top -l | tail -n 1 | awk '{print $1"/"$2" MHz"}'}
${color6}Power:${color} ${execi 1 timeout 1s sudo intel_gpu_top -l | tail -n 1 | awk '{print $5"/"$6" W"}'}
${color6}RC6:${color} ${execi 1 timeout 1s sudo intel_gpu_top -l | tail -n 1 | awk '{print $4}'}%
${color6}Engine Usage:${color}
${goto 20}Render: ${execi 1 timeout 1s sudo intel_gpu_top -l | head -n 3 | tail -n 1 | awk '{if ($8 != "") printf "%.1f%%", $8; else print "N/A"}'}
${goto 20}Video: ${execi 1 timeout 1s sudo intel_gpu_top -l | head -n 3 | tail -n 1 | awk '{if ($14 != "") printf "%.1f%%", $14; else print "N/A"}'}
${goto 20}Blitter: ${execi 1 timeout 1s sudo intel_gpu_top -l | head -n 3 | tail -n 1 | awk '{if ($11 != "") printf "%.1f%%", $11; else print "N/A"}'}
${goto 20}Video Enhanced: ${execi 1 timeout 1s sudo intel_gpu_top -l | head -n 3 | tail -n 1 | awk '{if ($17 != "") printf "%.1f%%", $17; else print "N/A"}'}

${color1}NVIDIA GPU INFORMATION${color}
${color6}Utilization:${color}
${goto 20}GPU: ${execi 1 nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits}%
${goto 20}Memory: ${execi 1 nvidia-smi --query-gpu=utilization.memory --format=csv,noheader,nounits}%
${color6}Memory Usage:${color} ${execi 1 nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits}/${execi 1 nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits} MB
${color6}Frequency:${color}
${goto 20}Core: ${execi 1 nvidia-smi --query-gpu=clocks.gr --format=csv,noheader,nounits} MHz
${goto 20}Memory: ${execi 1 nvidia-smi --query-gpu=clocks.mem --format=csv,noheader,nounits} MHz
${color6}Temperature:${color} ${if_match ${execi 1 nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits} > 80}${color5}${endif}${execi 1 nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits}°C${color}
${color6}Power:${color} ${execi 1 nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits}W
${color6}Real-Time Monitoring:${color}
${goto 20}SM Usage: ${execi 1 nvidia-smi dmon -s u | head -n 3 | tail -n 1 | awk '{print $2}'} %
${goto 20}Encoder (NVENC): ${execi 1 nvidia-smi dmon -s u | head -n 3 | tail -n 1 | awk '{print $4}'} %
${goto 20}Decoder (NVDEC): ${execi 1 nvidia-smi dmon -s u | head -n 3 | tail -n 1 | awk '{print $5}'} %
${goto 20}JPG Engine: ${execi 1 nvidia-smi dmon -s u | head -n 3 | tail -n 1 | awk '{print $6}'} %
${goto 20}OFA Usage: ${execi 1 nvidia-smi dmon -s u | head -n 3 | tail -n 1 | awk '{print $7}'} %

${color1}MEMORY USAGE${color}
RAM: $mem/$memmax (${memperc}%) ${membar}
Swap: $swap/$swapmax (${swapperc}%) ${swapbar}
${color6}Frequency:${color}
${goto 20}${execi 300 sudo lshw -C memory | grep 'clock' | awk 'NR==1 {print $2, $3}'}
${goto 20}${execi 300 sudo lshw -C memory | grep 'clock' | awk 'NR==2 {print $2, $3}'}
${goto 20}${execi 300 sudo lshw -C memory | grep 'clock' | awk 'NR==3 {print $2, $3}'}

${color1}NETWORK INFORMATION${color}
Download: ${downspeed enx7cc2c62733e5} ${goto 150}${downspeedgraph enx7cc2c62733e5 30,200 FFFFFF FFFFFF}
Upload: ${upspeed enx7cc2c62733e5} ${goto 150}${upspeedgraph enx7cc2c62733e5 30,200 FFFFFF FFFFFF}

${color1}DISK I/O${color}
${goto 20}Read: ${diskio_read /dev/sda}
${goto 20}Write: ${diskio_write /dev/sda}
]]
LUA

Conky 配置详细说明

系统信息
  • 主机名: 显示系统主机名。
CPU 信息
  • CPU 使用率: 显示整体 CPU 使用率百分比,包含条形图用于可视化。
  • 核心频率: 显示每个核心的频率,表示每个 CPU 核心的时钟速度(MHz)。
  • 核心使用率: 显示每个核心的使用率百分比,并用条形图表示,帮助理解各核心的负载分布。
  • CPU 温度: 显示整个 CPU 的封装温度和各核心温度,超过 80°C 会触发警告颜色来提示过热。
  • 风扇速度: 显示 CPU 风扇的转速(RPM),表示散热系统的性能。
  • 功耗: 显示 CPU 封装的功耗(瓦特),反映当前的功率消耗。
Intel GPU 信息
  • 频率: 显示 Intel GPU 当前的频率(MHz),指示其性能水平。
  • 功耗: 显示 Intel GPU 的功耗(瓦特),反映其活动时的功率消耗。
  • RC6 节能状态: 显示 GPU 处于低功耗状态的时间百分比,评估其功耗管理效率。
  • 引擎使用率:
    • 渲染引擎: 显示渲染引擎的使用率,负责处理 3D 图形。
    • 视频引擎: 显示视频引擎的使用率,处理视频任务。
    • Blitter 引擎: 显示 Blitter 引擎的使用率,负责数据传输和 2D 操作。
    • 视频增强: 显示增强视频引擎的使用率,进一步优化视频处理。
NVIDIA GPU 信息
  • GPU 核心使用率: 显示 GPU 核心的使用率,表示计算能力的使用情况。
  • 内存使用率: 显示 GPU 内存的使用百分比,反映显存的负载。
  • 内存使用情况: 显示 GPU 使用的内存和总内存(MB),提供更清晰的内存负载视图。
  • 核心频率: 显示 GPU 核心的频率(MHz),表示时钟速度。
  • 内存频率: 显示 GPU 内存的频率(MHz),反映 GPU 与其内存之间的数据传输速率。
  • 温度: 显示 GPU 的当前温度,超过 80°C 时使用警告颜色突出显示。
  • 功耗: 显示 GPU 的功耗(瓦特),反映其功率消耗。
  • 实时监控:
    • 流处理器(SM)使用率: 显示流处理器单元的使用率,负责并行计算任务。
    • 编码器(NVENC)使用率: 显示 NVENC 编码器的使用率,用于硬件视频编码。
    • 解码器(NVDEC)使用率: 显示 NVDEC 解码器的使用率,用于硬件视频解码。
    • JPEG 引擎使用率: 显示 JPEG 引擎的使用情况,负责 JPEG 压缩和解压缩。
    • 光流加速器(OFA)使用率: 显示光流加速器的使用率,用于视频中的运动估计等任务。
内存使用情况
  • RAM 使用情况: 显示系统 RAM 的总量、已用量和使用百分比,并用条形图表示。
  • 交换分区使用情况: 显示交换分区的使用情况,表示虚拟内存的使用量。
  • 内存频率: 显示不同内存模块的时钟频率,影响数据传输速度。
网络信息
  • 下载速度: 显示当前下载速度,并提供图表用于可视化。
  • 上传速度: 显示当前上传速度,并提供图表用于可视化。
磁盘 I/O
  • 读取速度: 显示磁盘的读取速度(MB/s),表示数据从磁盘读取的速度。
  • 写入速度: 显示磁盘的写入速度(MB/s),表示数据写入磁盘的速度。

4. 自启动配置

创建文件 ~/.config/autostart/conky.desktop:

1
2
3
4
5
6
7
8
[Desktop Entry]
Type=Application
Exec=bash -c "sleep 10 && conky -c ~/.conkyrc"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Conky
Comment=System Monitor
INI

三、Flameshot 配置

1. 基础命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Installation
sudo apt install flameshot

# Common commands
flameshot gui # 启动GUI
flameshot full # 全屏截图
flameshot screen # 截取当前屏幕
flameshot launcher # 打开启动器
flameshot config # 打开配置窗口

# Command line options
-h, --help # 显示帮助信息
-v, --version # 显示版本信息
-c, --clipboard # 截图复制到剪贴板
-p, --path # 指定保存路径
-d, --delay # 设置延迟(毫秒)
-r, --raw # 输出原始数据
-g, --gui # 显示界面
-s, --selection # 选择区域截图
BASH

2. 快捷键列表

2.1 截图界面快捷键

  • Space: 切换左侧工具栏
  • Ctrl + C: 复制截图到剪贴板
  • Ctrl + S: 保存截图
  • Ctrl + Z: 撤销上一步操作
  • Right Click: 显示上下文菜单
  • Mouse Wheel: 更改工具笔画宽度
  • Shift: 在绘制时保持正方形/圆形
  • Esc / Delete: 退出截图
  • Return: 确认截图

2.2 工具快捷键

  • 1: 矩形工具
  • 2: 圆形工具
  • 3: 箭头工具
  • 4: 画笔工具
  • 5: 马克笔工具
  • 6: 文本工具
  • 7: 选择工具
  • 8: 贴纸工具
  • 9: 数字工具

3. 自启动配置

创建文件 ~/.config/autostart/flameshot.desktop:

1
2
3
4
5
6
7
8
[Desktop Entry]
Type=Application
Exec=flameshot
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Flameshot
Comment=Start Flameshot in system tray
INI

四、问题排查

1. Conky 常见问题

1.1 网速显示为 0

  • 现象:网络速度一直显示为 0,即使有实际流量
  • 原因
    • 网络接口名称配置错误
    • 动态接口检测命令解析问题
  • 解决方案
    1. 检查实际网络接口名称,并确认活动接口(见上文网络配置部分)
    2. 更新配置文件中的接口名称:
      1
      2
      ${downspeed 实际接口名称}
      ${upspeed 实际接口名称}
      LUA

1.2 页面显示重叠

  • 现象:文本和数据显示重叠,界面混乱
  • 原因
    • 配置文件语法错误
    • Lua 语法版本不兼容
    • 窗口大小设置不当
  • 解决方案
    1. 确保使用正确的配置文件结构:
      1
      2
      3
      4
      5
      6
      conky.config = {
      -- 配置项
      }
      conky.text = [[
      -- 显示内容
      ]]
      LUA
    2. 调整窗口大小:
      1
      2
      minimum_width = 400,
      maximum_width = 400,
      LUA
    3. 使用对齐和间距:
      1
      2
      3
      gap_x = 10,
      gap_y = 50,
      alignment = 'top_right',
      LUA

1.3 显示格式问题

  • 现象
    • 速度单位混合显示B、 KiB 和 MiB
    • 磁盘 I/O 显示异常
  • 解决方案
    1. 移除配置中手动添加的单位
    2. 使用内置变量:
      1
      2
      3
      # 正确写法
      ${diskio_read}
      ${diskio_write}
      LUA
    3. 网络速度显示:
      1
      2
      ${downspeed enx7cc2c62733e5}
      ${upspeed enx7cc2c62733e5}
      LUA

2. Flameshot 自启动问题

  • 检查步骤
    1. 确认配置文件权限:
      1
      chmod +x ~/.config/autostart/flameshot.desktop
      BASH
    2. 检查系统托盘支持:
      1
      sudo apt install gnome-shell-extension-appindicator
      BASH
    3. 验证启动命令:
      1
      flameshot
      BASH

五、其他注意事项

1. 文件权限

1
2
3
4
5
6
7
# Set permissions
chmod +x ~/.config/autostart/*.desktop
chmod 644 ~/.conkyrc

# Check permissions
ls -l ~/.config/autostart/
ls -l ~/.conkyrc
BASH

2. 日志查看

1
2
3
4
5
6
7
# Check processes
ps aux | grep conky
ps aux | grep flameshot

# View logs
journalctl -xe | grep conky
journalctl -xe | grep flameshot
BASH

Ubuntu 系统配置指南
https://blakehansen130.github.io/2024/11/20/ubuntu-config-guide-final/
发布于
2024年11月20日
许可协议