标签: bash

在bash中使用两个命令读取相同的stdin

我想将 bash 中的两个单独命令 <2,3> 的输出通过管道传输。这样做的最佳方法是什么?目前,我有以下脚本:

command source > output
command2 output &
command3 output &
Run Code Online (Sandbox Code Playgroud)

输出文件大约为 100G,一种次优的方式是分别通过管道传输到命令 2 和 3。我认为有可能做得更有效。

bash pipe

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

如何在针对 bash 的 VI 编辑模式中禁用“V”键

我们知道,通过命令set -o vi和将 Readline 模式更改为 vi 后set editing-mod vi,按 键v可以进入临时文件来编辑命令(这里有更多详细信息)。我想禁用该功能。

我试图v在 ~/.inputrc 中重新映射喜欢:

"v": 
Run Code Online (Sandbox Code Playgroud)

但是字符 v不能输入,即使在插入模式下vim也不能输入。=.=!)。

我应该怎么做?以及如何重新映射快捷键并且影响针对 VI 编辑模式的输入模式?

bash readline

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

自制:终端表情 如何?

我在我的 mac 上使用自制软件进行包管理。今天更新自制软件后,我看到了以前从未见过的东西;

iTerm 中的 Homebrew 屏幕截图

终端里有一个小小的啤酒表情符号。这是怎么做到的!?这支持哪些类型的终端?我正在为我的终端使用 iTerm 2。

相关:https : //github.com/mxcl/homebrew/issues/17085

bash iterm homebrew

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

为什么在 .bashrc 中设置提示实际上不会影响提示?

我试图通过.bashrc在我的主目录中插入以下行来设置我的 shell 提示:

export PS1="\[\e[01;36m\][\u]\[\e[0m\] \[\e[01;37m\]\W\[\e[0m\] $ "
Run Code Online (Sandbox Code Playgroud)

我保存了这个文件并重新打开 bash,但它没有改变。当我发出命令时echo $PS1,控制台显示

\h:\w$
Run Code Online (Sandbox Code Playgroud)

这是默认提示。我环顾四周.bashrcPS1除了上面显示的我插入的行之外,没有看到在任何地方设置了环境变量。

这适用于我的本地机器,但我在远程服务器上的帐户不会坚持。如何使自定义提示生效?

谢谢!

linux bash

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

如何从 cURL 中的内容中拆分 HTTP 错误代码?

是的,这与让 curl 输出 HTTP 状态代码有关?但不幸的是不一样。

在我想运行的脚本中:

curl -qSfsw %{http_code} URL
Run Code Online (Sandbox Code Playgroud)

其中该-f选项确保退出代码非零以表示错误。成功时,我想从获取的文件中获取(文本)输出,否则我想使用错误代码。

问题:

  • 由于竞争条件,我不能使用多个 HTTP 请求
  • 我不能使用临时文件来存储内容

我怎样才能从实际输出中分离 HTTP 返回码?


伪代码:

fetch URL
if http-error then
  print http-error-code
else
  print http-body # <- but without the HTTP status code
endif
Run Code Online (Sandbox Code Playgroud)

bash curl

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

在所有打开的终端中获取新的 .bashrc

我发现自己总是同时打开许多终端。当我更新我的.bashrc 时,我必须去每个终端并执行

. .bashrc
Run Code Online (Sandbox Code Playgroud)

使用新的.bashrc获取终端。

这是一种痛苦,也很耗时。我想知道是否有一种方法可以使用新的.bashrc文件获取所有打开的终端,而无需逐一访问或注销并重新开始?

terminal bash bashrc

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

bash 自动完成很慢,冻结了我的桌面

有时在使用自定义内核时,在 bash 自动完成中按 Tab 键的速度非常快。它冻结了整个桌面。然后过一段时间回来。这是我在许多自定义内核中遇到的唯一怪癖。他们都有,偶尔。为什么?

我确实安装了很多 ubuntu 包,但这不仅适用于命令行上的二进制程序,而且甚至适用于作为参数的程序和文件的参数,在文件很少的目录中(例如ls a__,有 15 个文件)目录,将挂在“a”上 45 秒)。这也永远不会发生在包含 ubuntu 标准的内核中。它也不会在每次登录时发生。有时看起来,如果我有一段时间没有使用给定的自定义内核启动系统,该内核会这样做,就好像它必须在充分执行之前“预热”一样。比如,它要么需要重新启动系统,要么在首次登录后需要 15 分钟才能独处。

freeze bash autocomplete ubuntu linux-kernel

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

Bash:查找目录组所有者

我相信这很容易,但我找不到。

我正在编写一个 bash 脚本,我想将一个已知用户添加到一个组中。组名由目录确定,该目录作为变量发送到该 bash 脚本。

所以:

DIR="whatever"
GROUP=DIR groupname 
usermod -a -G $GROUP userx
Run Code Online (Sandbox Code Playgroud)

bash ubuntu

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

带有彩色输出的 grep 返回几个空行

我对 grep 有奇怪的问题(2.12-2,debian 测试)。

在某些情况下,当我执行以下操作时: grep -rni '."spacer">.' .grep 返回几行空行:

在此处输入图片说明

如果我添加--color=none所有行变得可见。

.bashrc 中的 grep 选项:

export GREP_COLORS='fn=01;34:ms=01;33:ln=33'
alias grep='grep --color=auto'
Run Code Online (Sandbox Code Playgroud)

linux bash grep pipe

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

~/.inputrc 导致 CTRL+箭头不起作用

~/.inputrc存在,击中Ctrl+Left ArrowCtrl+Right Arrow上的击命令行移动一个字光标前进和后退,分别。

但是,如果~/.inputrc存在(无论它是否为空),这两个组合键会导致;5D;5C打印光标所在的位置,而不是移动光标。

我该如何解决?

bash inputrc

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

标签 统计

bash ×10

linux ×2

pipe ×2

ubuntu ×2

autocomplete ×1

bashrc ×1

curl ×1

freeze ×1

grep ×1

homebrew ×1

inputrc ×1

iterm ×1

linux-kernel ×1

readline ×1

terminal ×1