通过 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
配置命令提示符
通过环境变量 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上查看英特尔核显的占用率
sudo apt install intel-gpu-tools
sudo intel_gpu_top
参考: https://wiki.archlinux.org/title/Hardware_video_acceleration
字体设置
下载字体文件:
安装到用户目录
将字体文件复制到用户字体目录 ~/.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 用户目录创建标准文件夹
新版本的 KDE noen (ubuntu 22.04) 安装完成后,用户目录下没有标准目录。执行 xdg-user-dirs-update
即可自动创建
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
参考:
查看和修改可执行文件的 RPATH
查看:
readelf -d $EXEC | grep runpath
修改:
chrpath -r $RPATH $EXEC
编译时设置 rpath:
gcc -o $EXEC $SOURCE -Wl,-rpath=$RPATH
设置 rpath 时可以使用 $ORIGIN
来表示可执行文件本身所在路径
配置 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
文件来进行删除