我从经验中知道 ~/.exrc 文件可用于配置vim
. 我也知道 ~/.vimrc 文件可以用于相同的目的。
但是,如果我使用 .exrc 来配置vim
,这会导致vi
安装而不是vim
. 即,vim
支持vi
不支持的额外功能;当您尝试在 中使用它们时vi
,会vi
抱怨。
我的问题是:
vim
吗?我已经阅读并了解您如何创建守护进程,但是从我阅读的所有内容中,我从未真正理解为什么需要这样做。
我读过我们使用 fork-setid-fork 来避免获得终端控制权的过程,但这意味着什么?如果我在后台使用 & 启动一个程序(例如 './script &' ),是什么让这个进程的执行与我正常运行一个将自身变成守护进程的程序不同?
这是否仅仅意味着如果我注销后台进程将停止并且守护程序将继续运行?我真的很难理解“获得终端控制权”这件事。
这困扰我的原因是因为我正在机器人上处理嵌入式 RPi,因此我需要让程序在启动时启动。目前我只是用这样的命令从 rc.local 启动它们su user -c 'python /home/user/launcher.py &' &
。我在启动时启动程序从来没有遇到过任何问题(我ps -e
什至可以看到通过SSH 连接到 RPi 时使用的过程),但我想知道是否有任何风险/这是否是不好的做法。
我有一个通过zsh -c
. 但是,在zsh
运行时,它似乎没有加载~/.zshrc
.
我知道存在登录 shell 标志,但甚至zsh -lc <command>
似乎不起作用。
在运行它时,如何获取~/.zshrc 中定义的函数、别名和变量以填充它zsh -c
?
我正在尝试编辑lxde-rc.xml
文件(在~/.config/openbox
),以便我可以像在 Microsoft Windows 中一样实现窗口捕捉。当一个窗口被拖动到屏幕的右边缘时,它会最大化以填满屏幕的右半部分。我不想使用平铺 wm,而是编辑 openbox 的配置。我找到了可以使用键盘快捷键执行此操作的代码:
<!-- Fill left half of desktop -->
<keybind key="C-W-Left">
<action name="Unmaximize"/>
<action name="MoveResizeTo">
<x>0</x>
<y>0</y>
<height>99%</height>
<width>50%</width>
</action>
</keybind>
<!-- Fill right half of desktop -->
<keybind key="C-W-Right">
<action name="Unmaximize"/>
<action name="MoveResizeTo">
<x>-0</x>
<y>0</y>
<height>99%</height>
<width>50%</width>
</action>
</keybind>
Run Code Online (Sandbox Code Playgroud)
我当前(也是默认)配置将窗口拖到屏幕边缘时会将其移动到下一个桌面,因此配置文件中必须已经存在某种绑定。但是,配置文件中切换桌面的唯一操作是通过键盘快捷键和在桌面上滚动来调用的。
我有两个问题:
当窗口被拖动到屏幕边缘时,鼠标绑定会像什么一样切换动作,并且:
为什么该操作的当前行为未在 中引用lxde-rc.xml
?
提前致谢!
在以前版本的 Awesome WM 中,新客户端标题出现在以前客户端的右侧。因此,客户标题按出现顺序从左到右排列。
在新版本的 Awesome 中,此顺序颠倒了。烦人地退出,每个新客户名称都出现在旧客户的左侧。
如何使每个新客户的标题都显示在旧客户的右侧?
示例:有一个客户端 -- 互联网浏览器 -- 在当前工作区中打开。我按 MODKey+Enter,无论窗口布局如何,终端客户端的标题都会出现在 Internet 浏览器标题的左侧。就我个人而言,如果这个新的终端标题位于旧浏览器标题的右侧会更有意义。
在运行 OpenBSD 6.2 amd64 的 OpenBSD 机器上,无法使用 rcctl 启动 httpd:
# rcctl start httpd
httpd(failed)
Run Code Online (Sandbox Code Playgroud)
但是,当只输入 开始时httpd
,它会起作用;但这不是要走的路,我想。/var/log/messages
不包含任何提示,也不包含任何其他文件/var/log/
。
我/etc/httpd.conf
的比较简单:
server "default" {
listen on * port 80
}
Run Code Online (Sandbox Code Playgroud)
/var/www
存在并/var/www/htdocs
包含手动启动时提供的文件。在中指定“root”/etc/httpd.conf
无效。
我怎样才能httpd
被自动启用/启动rcctl
?
我最近遇到
setopt extended_glob
Run Code Online (Sandbox Code Playgroud)
...为了启用扩展的通配符,允许添加一些很酷的通配符,例如排除特定模式,例如:
ls ^foo*
Run Code Online (Sandbox Code Playgroud)
...将ls
在当前目录中的每个路径上使用,除了匹配的模式foo*
。
我发现一个教程建议将其放入setopt extended_glob
您的.zshrc
.zsh 文件中,但我想由于许多 zsh 配置模板都忽略了该选项,并且默认情况下禁用了该选项,因此它有一些缺点甚至副作用吗?
或者总是extended_glob
通过将它放在一个人的内部来启用它是绝对无害的.zshrc
?
我遇到了一个 python 文件问题,我想将其作为服务启动。我将我的服务命名为 ocrserver,我想要启动的脚本位于 /home/administrator/ocr/ocrserver/ init .py 中,添加了一些参数,例如 --address --port 等...阅读FreeBSD 站点的文档后
我写了以下脚本:
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: ocrserver
# REQUIRE: NETWORK
# KEYWORD: shutdown
# add the following line to /etc/rc.conf to enable the ocrserver:
# ocrserver_enable="YES"
. /etc/rc.subr
name="ocrserver"
rcvar="ocrserver_enable"
# default values
: ${ocrserver_enable="NO"}
base_path="/home/administrator/ocr/ocrserver"
address="localhost"
http_port=8080
pyproxy_port=10800
log_level="debug"
pidfile="${base_path}/ocrserver.pid"
command="/usr/sbin/daemon"
# -p : daemon handler pidfile
# -f : redirect stdout and stderr to /dev/null
# -c : change working dir to root
command_args="-p …
Run Code Online (Sandbox Code Playgroud) --ignore=<regex>
我放入的行.stowrc
不起作用。运行 Stow 时,它显示“从 .stowrc 加载默认值”,但它没有任何效果。但是将--ignore=<regex>
行传递给命令直接有效。
假设这个目录:
user@user-machine:~/test-stow/stow$ tree -a
.
??? a
? ??? car
??? .stowrc
1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)
内容./.stowrc
:
--ignore='car'
Run Code Online (Sandbox Code Playgroud)
所以我的期望是,stow --verbose=3 a/
在该目录中运行命令等同于stow --ignore='car' --verbose=3 a/
在./.stowrc
文件不存在的情况下运行。
现在我运行:
user@user-machine:~/test-stow/stow$ stow --verbose=3 a
Loading defaults from .stowrc
stow dir is /home/user/test-stow/stow
stow dir path relative to target /home/user/test-stow is stow
cwd now /home/user/test-stow
cwd restored to /home/user/test-stow/stow
cwd now /home/user/test-stow
Planning stow of package …
Run Code Online (Sandbox Code Playgroud) Mac 的终端带有默认PROMPT_COMMAND
检查历史记录并更新当前工作目录(选项卡的标题):
添加echo $PROMPT_COMMAND
到您的顶部,您.bash_profile
将看到:
shell_session_history_check; update_terminal_cwd
Run Code Online (Sandbox Code Playgroud)
我想添加我自己的PROMPT_COMMAND
而不覆盖默认值。默认值应该在我的自定义之前PROMPT_COMMAND
,用分号和空格将两者分开。
请注意,某些程序(例如 IntelliJ 和 VS Code)没有默认值!所以我不想在这种情况下包含空格/分号。