标签: bash

Docker exec 不加载别名

我有一个 bash 别名加载到 Docker 容器中,在/etc/bash.bashrc. 它用作命令行 PHP 脚本的快捷方式。这很方便,因为任何人都可以在登录容器后直接使用该别名,如下所示:

$ docker exec -it my-container bash

但是,我还希望能够在不登录的情况下在一次性命令中使用此别名,例如:

$ docker exec -it my-container my-alias

我尝试了不同的变体,例如在 以外的其他地方定义别名/etc/bash.bashrc,但我一直遇到这个错误:

rpc 错误:code = 2 desc = oci 运行时错误:exec 失败:exec:“my-alias”:在 $PATH 中找不到可执行文件

到目前为止,我在网上找到的其他建议并没有奏效。任何人?

bash alias container docker

7
推荐指数
2
解决办法
9755
查看次数

无法解析主机 - Windows Bash

我正在使用 Windows Bash,但出现错误 fox@FOX:/etc$ sudo true sudo: unable to resolve host FOX

我见过有人说我想编辑etc/hosts,但我不知道要在文件中放什么。有人能告诉我我应该用什么来解决这个问题吗?1

windows sudo bash

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

如何查看已完成终端命令的所有先前输出?

我在 gnome 终端中执行了一个命令,该命令向终端打印的输出比我预期的要多。我想阅读整个输出,但终端滚动在到达开始之前停止。

我知道我可以更改终端配置文件设置以启用无限滚动,或将输出通过管道传输到文件等。但是,所有这些常见解决方案都适用于未来的输出。

如何查看已执行命令的完整终端输出?

编辑:好吧,这是不可能的。谢谢大家!

linux terminal bash command-line

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

适用于 Windows 的 Linux 子系统无法访问 Internet

出于某种原因,我在 Windows 上的 Ubuntu 上的 Bash 无法访问 Internet。

即当我做

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

我得到了一堆失败的获取。正如此链接下描述的问题一样。

我已经尝试了所有建议的解决方案,但它们似乎都不起作用。

我尝试过的事情:

  • 添加8.8.8.8/etc/resolv.conf,
  • 将我的默认网关添加到/etc/resolv.conf,
  • 禁用 IPv6,
  • 在管理模式下运行,
  • 卸载并重新安装 Bash,
  • 禁用我的防病毒软件。

这是我的 resolv.conf 的样子:

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
Run Code Online (Sandbox Code Playgroud)

bash windows-subsystem-for-linux windows-10-v1607

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

如果在给定的超时时间内没有产生任何输出,如何终止程序?

我想检测某个进程何时卡住,但它没有给我任何有关此事的线索。我所知道的是,如果它在给定的超时时间内(比如 30 秒)没有产生任何输出,则意味着它可能被阻止了。

我知道 coreutils 的timeout程序,但它基于完整的程序退出时间,而不是最后一行的输出时间。如果这样的事情有效,我会很高兴:

timeout --stdout --stderr 30s my-program
Run Code Online (Sandbox Code Playgroud)

那么有没有办法做到这一点?我该怎么做?

bash timeout

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

bash / zsh 别名:我可以获取参数并在子shell 中使用吗?

我想要一个别名,它以“.”的字典顺序给出目录列表。首先是文件。似乎在不编写我自己的脚本(这不是真正的问题)的情况下完成此操作的一种方法是使用LC_ALL="C". (这是根据排序手册页和多个其他站点)。

但是,将语言环境设置为“C”可能(并且确实)导致某些软件安装中断。所以我的短期解决方案类似于这个(为了简洁,这没有额外的 ls 选项):

alias ls='(LC_ALL="C"; /bin/ls)'

但这不允许参数“传递”到子shell中。

这当然不起作用:

alias ls='(LC_ALL="C"; /bin/ls $*)'

有没有办法用一个简单的别名来处理这个问题?(与编写 shell 脚本/函数相反,我可以这样做)。

bash zsh shell locale alias

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

'at' 命令预期行为?启动每个命令而不是调度

我正在尝试安排一些程序的执行。我正在使用这个命令:

./tests.o | at 15:00&
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,预期的行为是将执行延迟到 15:00。但是,如果我在top启动上述命令后立即运行,我可以看到 test.o 已经占用了 CPU 时间。

由于我需要对共享资源启动多个测试,我想知道如何正确使用“at”?

我究竟做错了什么?

linux bash scheduled-tasks command-line at

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

如何在 git for windows 上安装 zsh

适用于 Windows 的 git带有一个带有bash的终端。

是否可以在其上安装某些东西,如果是,我如何在此终端上安装 zsh?

windows bash git

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

安装 OhMyZSH 后找不到 ZSH npm/node/nvm 命令

在我的 Linux 机器上安装 OhMyZSH 后,之前安装的 nvm、node 和 npm 都没有找到。谢谢您的帮助。

这个命令“source ~/.nvm/nvm.sh”允许我让它工作,但是当我重新启动终端或打开新标签终端时说找不到命令......配置'~/.zshrc'文件:

# If you come from bash you might have to change your $PATH.
 export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
 export ZSH="/home/jurr/.oh-my-zsh"
Run Code Online (Sandbox Code Playgroud)

linux terminal bash zsh

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

如何在 grepped 之后获得第 n 行?

考虑以下文本文件

one 1
two 2
three 3
four 4
five 5
six 6
seven 7
eight 8
Run Code Online (Sandbox Code Playgroud)

我想访问匹配后的第二行four。这将是这条线

six 6
Run Code Online (Sandbox Code Playgroud)

然后将生成的行(因此上面的行)通过管道进行进一步处理(例如 a | cut -d' ' -f2)。

有没有办法在 bash 和其他典型实用程序中做到这一点?(否则我会用 Python 编写它)

编辑:在我的特定情况下,four(以该示例为例)的发生保证是唯一的。但是答案显示了有趣的扩展案例,而事实并非如此。

linux bash grep command-line

7
推荐指数
4
解决办法
736
查看次数