http_proxy和都遇到过HTTP_PROXY。两种形式是等价的吗?它们中的一个是否优先于另一个?
我曾经写过这样的脚本:
some_command
while [ $? -ne 0 ] ; do
sleep 1
some_command
done
Run Code Online (Sandbox Code Playgroud)
我必须写some_command两次,这总是让我很恼火。我可以把它放在循环测试部分吗?
我喜欢同时使用 Midnight Commander 和 Vim。在 Vim 中,Ctrl-O是“转到上一个位置”命令,而在 MC 中,默认情况下,它在外壳和面板之间切换。我希望能够从 MC 调用 Vim,并在Ctrl-O没有 MC 拦截它并将我拉回面板视图的情况下使用来自 Vim。
我~/.config/mc/mc.keymap用以下内容创建了一个:
[main]
Shell =
[viewer]
Shell =
[diffviewer]
Shell =
[editor]
Shell =
Run Code Online (Sandbox Code Playgroud)
这让我半途而废,因为当我使用该F4键调用 Vim 时,它禁用了快捷方式。但是,如果我将 Vim 作为 shell 程序运行,从输入行开始,然后按Ctrl-O,MC 仍然会拦截它。
是否有我在这里缺少的配置选项?
注意:我不愿意做以下任何事情:
刚才,dpkg --help吐了三页的输出当着我的脸。我可能对前十行感兴趣,它们显示了一般用法和最常见的参数。
我希望这样,每当我--help以唯一参数运行程序(任何程序)时,如果输出长于$(tput lines),它将自动通过管道传输less。在 bash 中容易实现吗?
编辑:最后,对我来说最好的解决方案是切换到 zsh。您可以使用以下任一片段~/.zshrc;每个都有自己的权衡:
# Modify the input line before it runs
function lessify() {
if [[ "$BUFFER" =~ " --help$" ]] ; then
BUFFER="$BUFFER | less -FX"
fi
zle accept-line
}
zle -N lessify_widget lessify
# Bind to the Enter key
bindkey '^M' lessify_widget
Run Code Online (Sandbox Code Playgroud)
或者
# Alias --help ; ignore rest of the line
alias -g -- --help="--help | less -FX ; true " …Run Code Online (Sandbox Code Playgroud) 假设我在一个资源受限的系统上运行,我想确保我运行的应用程序打开的文件总数不超过 10个。
如果我尝试使用setrlimit,例如:
if (fork() == 0) {
struct rlimit l = { 10, 10 };
setrlimit(RLIMIT_NOFILE, &l);
execl(EVIL_PROGRAM, args);
}
Run Code Online (Sandbox Code Playgroud)
然后EVIL_PROGRAM将继承 10 个打开文件描述符的限制。但是,如何阻止恶意/代码不佳的应用程序生成 X 个子进程,所有子进程都有 10 个打开的文件?(这是一个真实的场景)。
我不想阻止它完全创建子进程(这应该由 global 管理limits.conf),只是为了对打开文件的数量设置一个合理的限制。
我找到了为此目的使用 cgroups 的参考,但我认为您必须是 root 才能使用此功能?