分类 Linux 下的文章

知道了也没什么用的小知识:终端标题与转义序列

起因

事情的起因是这样的,我在 archlinux (以下简称 arch) 下的端模拟器(以下简称终端)使用 set -x 来调试,发现每次按回车都会一条类似下面这样的输出:

++ printf '\033]0;%s@%s:%s\007' nanpuyue arch '~'

然后我手动执行了这条命令也看不到任何输出和变化,着实令人费解。

OSC 转义序列

一番查找过后在 /etc/bash.bashrc 中找到了源头:

case ${TERM} in
  xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
    PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'

    ;;
  screen*)
    PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
    ;;
esac

- 阅读剩余部分 -

在 tty 显示中文:fbterm 配置备忘

安装 fbterm

sudo apt install fbterm

将用户添加到 video 组

sudo gpasswd -a $USER video

为 fbterm 分配 cap_sys_tty_config+ep 能力

sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm

配置 tty 登录自动启动 fbterm

此项配置针对 bash,在 /etc/bash.bashrc~/.bashrc 中加入

if [[ "$TERM" = linux ]] && [[ "$(tty)" =~ tty ]] && type fbterm &>/dev/null; then
    exec fbterm
fi

- 阅读剩余部分 -

记一次为 Gerrit 迁移 GitHub 登录插件

起因

公司的 Code Review 平台(以下简称 cr )是用 Gerrit 搭建的,之前用的登录插件是 github-oauth,从我接手 cr 后,发现这个登录插件有个比较头疼的问题,就是它存储到数据库中的 externalId 是 OAuth 拿到的 access_token,如图:

access_token.png

github_oauth 后面的字符串就是 access_token,但是这个 access_token 会失效,失效的原因很多,有可能时间太久失效,改 GitHub 用户名也会造成其失效,用户也可以手动撤销。一旦 access_token 失效,用户再次登录 cr 的时候就会新建一个用户,并造成其他一些诸如邮箱无法绑定的问题。

- 阅读剩余部分 -

Linux/X11 环境下手动添加分辨率

又是一篇没有什么技术含量的操作指南

先用 xrandr 查看当前显示输出,确定要添加的分辨率,下面以 VGA1 及 1280×720 为例:

1.计算分辨率参数

cvt 1280 720

输出

# 1280x720 59.86 Hz (CVT 0.92M9) hsync: 44.77 kHz; pclk: 74.50 MHz
Modeline "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync

这里 cvt 命令还可以跟第三个参数,即为刷新频率。

2.新建分辨率

xrandr --newmode "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync

3.将分辨率添加到显示输出

xrandr --addmode VGA1 1280x720_60.00

- 阅读剩余部分 -

借助 gdbserver 实现在 CLion 中以 root 权限调试

基本思路

实际上最简单的方式是以 root 权限运行 CLion,但是这种方法不太清真,所以不用。
基本思路是借助 gdbserver 用远程调试实现以 root 权限运行需要调试的程序。

详细步骤

安装 gdbserver

首先要确认已经安装了 gdbserver,如果没有的话 apt 系的发行版直接安装包 gdbserver:

sudo apt install gdbserver

以 root 权限启动 gdbserver

这一步可以在 CLion 内建的 Terminal 中操作,也可以使用其他终端:

sudo gdbserver localhost:2333 /path/to/program

这条命令中 localhost:2333 表示监听本地 2333 端口,localhost 可以省略直接写作 :2333,这样可以在其他机器上连接本机运行的 gdbserver 实现“真”远程调试,如果没有这种需求的话最好还是限制只监听本地地址。
端口号 2333 也可以随意,只要没有被占用就好,/path/to/program 是需要调试的程序的路径。

- 阅读剩余部分 -