小编Mih*_*hai的帖子

HTTP_PROXY 环境变量的“正确”格式是什么?有盖还是无盖?

http_proxy和都遇到过HTTP_PROXY。两种形式是等价的吗?它们中的一个是否优先于另一个?

http-proxy environment-variables

46
推荐指数
2
解决办法
3万
查看次数

如何运行命令并以更少的字符获取其退出代码?

我曾经写过这样的脚本:

some_command
while [ $? -ne 0 ] ; do
    sleep 1
    some_command
done
Run Code Online (Sandbox Code Playgroud)

我必须写some_command两次,这总是让我很恼火。我可以把它放在循环测试部分吗?

shell-script

13
推荐指数
2
解决办法
1428
查看次数

如何*完全*禁用 Midnight Commander 中的 Ctrl-O 快捷键?

我喜欢同时使用 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 仍然会拦截它。

是否有我在这里缺少的配置选项?

注意:我不愿意做以下任何事情:

  • 更改我的默认 Vim 键映射
  • 更改我的首选编辑器或文件管理器
  • 挖掘MC源代码,打补丁,重新编译

vim keyboard-shortcuts mc

7
推荐指数
1
解决办法
1131
查看次数

如何让程序帮助文本自动通过less?

刚才,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)

bash

6
推荐指数
1
解决办法
606
查看次数

我可以为当前进程树设置资源限制吗?

假设我在一个资源受限的系统上运行,我想确保我运行的应用程序打开的文件总数不超过 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 才能使用此功能?

linux process limit

6
推荐指数
1
解决办法
1362
查看次数