通过 systemd service 控制 x11vnc
2024-12-18 21:18:31+08:00

通过 systemd service 控制 x11vnc

创建 /usr/lib/systemd/user/x11vnc.service 文件,写入以下内容:

[Unit]
Description=X11 VNC Server
Requires=graphical-session.target
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -forever
ExecStop=/usr/bin/x11vnc -R stop
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

执行 systemctl --user daemon-reload 命令,刷新服务。

操作命令:

  • 启动 systemctl --user start x11vnc
  • 停止 systemctl --user stop x11vnc
  • 启用开机自启 systemctl --user enable x11vnc
  • 停用开机自启 systemctl --user disable x11vnc
配置命令提示符
2024-12-18 21:18:31+08:00

配置命令提示符

通过环境变量 PS1 配置命令提示符,以 Ubuntu 24.04 的默认值为例:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 

它分为两个部分。

第一部分用于设置终端的图标和标题,不会显示在命令提示符中。\e]0; 表示开始设置图标和标题,\a 表示结束:

\[\e]0;\u@\h: \w\a\]

第二部分为命令提示符:

${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 

转义字符

转义字符 说明
\e 等价于 \033 用于部分控制
\u 当前用户名
\h 当前主机名
\w 当前路径
\W 当前目录名
\t 当前时间(24小时制)
\T 当前时间(12小时制)
\$ 提示符,普通用户为 $,root 用户为 #

\[\] 用于告诉 readline 不要将中间的字符计入长度,这可以避免长度中计入控制字符导致显示错位。

字体颜色设置

字体颜色格式为 \e[XX;XX;XXm\033[XX;XX;XXm,其中变量 XX 可以有任意个,通过分号隔开。

说明
0 恢复默认
1 加粗
4 下划线
5 闪烁
7 高亮
30 黑色前景
31 红色前景
32 绿色前景
33 黄色前景
34 蓝色前景
35 紫色前景
36 青色前景
37 白色前景
40 黑色背景
41 红色背景
42 绿色背景
43 黄色背景
44 蓝色背景
45 紫色背景
46 青色背景
47 白色背景
Linux 上查看英特尔核显的占用率
2024-12-18 20:03:48+08:00

Linux上查看英特尔核显的占用率

sudo apt install intel-gpu-tools 
sudo intel_gpu_top

参考: https://wiki.archlinux.org/title/Hardware_video_acceleration

Linux 中文字体配置
2024-12-18 20:03:48+08:00

字体设置

下载字体文件:

安装到用户目录

将字体文件复制到用户字体目录 ~/.local/share/fonts/

安装到系统目录

系统目录中通过目录区对字体进行分组,可以手动创建文件夹

思源等宽(SourceHanMono.ttc)是 TrueType 字体,复制到 /usr/share/fonts/truetype/source-han
思源黑体(SourceHanSansCN-Normal.otf)是 OpenType 字体,复制到 /usr/share/fonts/opentype/source-han

查看字体

使用 fc-list 命令可以查看已安装的字体:

$ fc-list | grep -i source
/home/planc/.local/share/fonts/SourceHanSansSC-VF.otf: Source Han Sans SC VF:style=Regular
/usr/share/fonts/truetype/source-han: Source Han Mono SC,思源等宽:style=Regular
/usr/share/fonts/truetype/source-han: Source Han Mono TC,思源等寬:style=Regular
/usr/share/fonts/truetype/source-han: Source Han Mono HC,思源等寬 香港:style=Regular

其中 SC 是简体中文(Simplified Chinese)的缩写

设置系统字体

字体设置有三个:

  • 标准字体 font-name - 通常情况下使用的字体
  • 等宽字体 monospace-font-name - 要求字符等宽时使用的字体,例如终端和一些代码编辑器
  • 文档字体 document-font-name - 打印时使用的字体
$ gsettings set org.gnome.desktop.interface font-name 'Source Han Sans CN 11'
$ gsettings set org.gnome.desktop.interface monospace-font-name 'Source Han Mono SC 11'
$ gsettings set org.gnome.desktop.interface document-font-name 'Source Han Sans CN 11'

设置应用字体

应用软件既可以读取系统配置使用系统字体,也可以自己决定使用的字体。有些软件完全不会读取系统字体配置,只能在软件内设置字体。
以 VSCode 为例,在其配置文件(~/.config/Code/User/settings.json)中添加 "editor.fontFamily": "'Source Han Mono SC', 来配置字体。

Linux 用户目录创建标准文件夹
2024-12-18 20:03:48+08:00

Linux 用户目录创建标准文件夹

新版本的 KDE noen (ubuntu 22.04) 安装完成后,用户目录下没有标准目录。执行 xdg-user-dirs-update 即可自动创建

hexdump 格式化
2024-12-18 20:03:48+08:00

hexdump 格式化

hexdump 常用的选项有三个:跳过的字节数(-s)、打印的字节数(-n)和打印的格式(-e)

hexdump [-s SKIP_BYTES] [-n BYTES] [-e FORMAT] 

其中 FORMAT 的格式为 'm/n "F"',其中 m 为一组打印多少个元素,n为一个元素的字节数。 F 支持 C 语言中 printf 相同的格式,并且额外持支以下格式:

格式 说明
%_a[dox] 地址,d、o、x分别表示十进制、八进制和十六进制
%_A[dox] 地址(仅在最后打印),d、o、x分别表示十进制、八进制和十六进制
%_c 默认字符集字符,非文本字符打印三位八进制数
%_p 默认字符集字符,非文本字符打印 .
%_u ASCII字符,控制字符打印名称,其他非文本字符打印十六进制数

FORMAT 可以有多个,m 和 n 可以省略。

示例:

$ hexdump data.bin # 默认打印
0000000 3b98 bcbc abdf 0001 cded 08ef 0ac6 e1e0
0000010 b584 c2c4 41a5 5f14 3ad6 ba58 0533 8757
0000020
$ hexdump data.bin -e '"%06_ax " 8/2 "%04x " "\n" "%06_Ax\n"' # 地址-8个2字节十六进制整数-换行 --- 最后再打印一次地址
000000 3b98 bcbc abdf 0001 cded 08ef 0ac6 e1e0
000010 b584 c2c4 41a5 5f14 3ad6 ba58 0533 8757
000020

参考:

hexdump - FORMATS

查看和修改可执行文件的 RPATH
2024-12-18 20:03:48+08:00

查看和修改可执行文件的 RPATH

查看:

readelf -d $EXEC | grep runpath

修改:

chrpath -r $RPATH $EXEC

编译时设置 rpath:

gcc -o $EXEC $SOURCE -Wl,-rpath=$RPATH

设置 rpath 时可以使用 $ORIGIN 来表示可执行文件本身所在路径

配置 SSH 免密登录及别名
2024-12-18 20:03:48+08:00

配置 SSH 免密登录及别名

免密登录

将 A 主机上的公钥(~/.ssh/id_rsa.pub)保存到 B 主机上的 ~/.ssh/authorized_keys 文件中,即可在 A 主机上免密登录 B 主机。

别名

Host xxxx                                       # 主机别名
    Hostname xxx.xxx.xxx.xxx                    # 主机名:域名或IP地址

VS Code 上删除 ssh target

无法在 VS Code 上直接删除 ssh target,只能编辑 ~/.ssh/config 文件来进行删除