不久前我关注了一些帖子,它说要制作一个~/.xmodmap
这样的文件:
! Swap caps lock and escape
remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock
Run Code Online (Sandbox Code Playgroud)
我做到了,现在我可以交换esc
并caps lock
通过执行xmodmap ~/.xmodmap
. 我希望这是永久的,所以我将该命令添加到我的~/.bash_profile
,但它似乎不起作用;我还是要手动xmodmap
。作为一名 EEng 辍学生,我很想重新连接我的键盘 }:-) 但我知道一定有更好的方法。我怎样才能使这项工作永久有效?
我正在寻找有希望打开当前用户最喜欢的文本编辑器的命令,因为我正在博客中用命令写出一些说明。我期待像这样的命令edit
,我发现editor
. 对我来说,是在终端启动vim,接近我想要的;我使用 vim-gtk。我开始寻找一种让编辑器使用 vim-gtk 的方法,发现这个问题解释了一个$EDITOR
环境变量,但我不确定这是否与editor
命令有关。我试过了man editor
,但那只是打开了 vim 联机帮助页。
如何editor
使用我选择的文本编辑器,或者我应该使用不同的命令?
假设我曾经nix-env
在 Ubuntu 主机上安装使用 SystemD 的软件包。需要做什么才能让 Ubuntu 的 SystemD 知道来自 Nix 包的 SystemD 模块?
让我们尝试为Apache Kafka包查找 Nix 安装的.service
文件,并从 符号链接它们。/lib/systemd/system/
nix-env -i apache-kafka
sudo systemctl start apache-kafka # Failed to start apache-kafka.service: Unit apache-kafka.service not found.
sudo updatedb && locate apache-kafka.service # No dice
locate kafka | grep service # Just a bunch of `.nix` files
Run Code Online (Sandbox Code Playgroud)
在这里,我根据 Nix包定义中的服务配置名称猜测服务名称。我找不到任何描述该配置如何以及在何处成为 SystemD 服务文件的文档。
当这不起作用时,我开始真正挖掘,假设 Nix 一定在某个地方创建了这个服务文件。但是现在,我开始怀疑它是否存在。那么,Nix 包管理器安装的 SystemD 模块是否应该在 NixOS 之外工作,如果是这样,我们如何使它们工作?
我知道我有库,但可执行文件找不到它。如果我知道它在哪里搜索,我可以创建一个符号链接,它希望找到 lib。
$ ~/Apps/simutrans/simutrans
/home/dan/Apps/simutrans/simutrans: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory
$ locate libbz2
...
/lib/x86_64-linux-gnu/libbz2.so.1
/lib/x86_64-linux-gnu/libbz2.so.1.0
/lib/x86_64-linux-gnu/libbz2.so.1.0.4
/usr/lib/x86_64-linux-gnu/libbz2.a
/usr/lib/x86_64-linux-gnu/libbz2.so
...
Run Code Online (Sandbox Code Playgroud)
显然,可执行文件不是/etc/ld.so.conf*
用来查找库的;如果是,那么它会找到lib:
$ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Run Code Online (Sandbox Code Playgroud)
使用 来检查可执行文件readelf
,如系统将在哪里搜索动态库中所述?, 不显示RUNPATH
在需要找到库时会显示的条目。