标签: bash

如何在后台模式下将 bash 或 ssh 放入正在运行的容器中?

我想通过 ssh 或 bash 进入正在运行的 docker 容器。请看例子:

$ sudo docker run -d webserver
webserver is clean image from ubuntu:14.04
$ sudo docker ps
CONTAINER ID  IMAGE            COMMAND    CREATED STATUS  PORTS          NAMES
665b4a1e17b6  webserver:latest /bin/bash  ...     ...     22/tcp, 80/tcp loving_heisenberg 
Run Code Online (Sandbox Code Playgroud)

现在我想得到这样的东西(进入正在运行的容器):

$ sudo docker run -t -i webserver(或者也许665b4a1e17b6相反)
$ root@665b4a1e17b6:/#

但是,当我运行上面的行时,我得到了新的 CONTAINER ID:

$ root@42f1e37bd0e5:/#
Run Code Online (Sandbox Code Playgroud)

我使用了 Vagrant,我想获得与vagrant ssh.

ssh bash container docker

969
推荐指数
8
解决办法
197万
查看次数

如何在bash中增加变量?

我曾尝试使用这两种方法来增加数值变量var=$var+1var=($var+1)但都没有成功。该变量是一个数字,尽管 bash 似乎将其作为字符串读取。

Ubuntu 13.10 上的 Bash 版本 4.2.45(1)-release (x86_64-pc-linux-gnu)。

bash

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

哪个更好:使用 ; 或 && 在一行中执行多个命令?

在教程和操作指南中,我经常看到命令组合在一起。例如,

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

似乎有四种可能的连接器:&&&||;。尽管& 连接器对我来说很清楚(它将进程发送到后台并使终端可用),但不清楚&&和之间的区别;||直到 Kaya 发表评论我才知道。

以下问题涉及两个连接器之间的区别,但主要在评论中进行:

所以这里有一些相关的问题:

  1. ;和 和有&&什么区别?
  2. 你应该分别在什么时候使用它们?看到一些用例会很高兴:如果我想运行一个命令,然后在它关闭我的计算机后,我应该选择哪个连接器?
  3. 它们的优点危害是什么?Robie Basak在对此答案的评论中提到,例如,cd /somewhere_else; rm -Rf *如果命令链中的第一个元素失败,则类似命令可能会产生破坏性后果。
  4. 如果相关,它们来自哪里?

command-line bash

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

如何添加环境变量?

我正在运行 Ubuntu 11.04。我使用终端启动 bash 会话,并且我想添加一个环境变量:

$r@hajt:~$ env THEVAR=/example
Run Code Online (Sandbox Code Playgroud)

但它不起作用。它显示了所有变量,其中 THEVAR 是最后一个,但另一个调用env不再显示 -THEVARenv | grep THEVAR返回任何内容。

同样,带有导出 ( export THEVAR=/example) 或其他变量赋值 ( THEVAR=/example) 的脚本不会添加环境变量。

我知道我做错了什么,我知道它应该很简单,但我就是找不到什么。

更新:我的问题的真正含义是这个:https : //stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(无论如何,我会选择投票最多的答案并保留编辑过的标题 - 这不是我要问的)

env 在修改后的环境中运行程序,然后取消所有更改。

bash

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

如何从命令行解码 base64 字符串?

我想编写一个 bash 脚本来解码 base64 字符串。例如,我输入decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==并打印Aladdin:open sesame并返回提示。

到目前为止,我已经尝试了一个简单的 bash 文件,python -m base64 -d $1但该命令需要一个文件名而不是一个字符串。是否有另一个非交互式命令(不一定在 Python 模块中)可以从命令行运行以实现此目的,而无需安装任何额外的软件包?(或者,如果我这样做了,那就是极少的东西。)

command-line bash

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

如何创建永久的 Bash 别名?

我想为rm命令创建一个别名,以便在执行此命令后收到确认消息。所以我正在创建一个这样的别名alias rm='rm -i'。但据我所知,这是一个临时别名,它会一直存在,直到您关闭终端。

正如这里解释的永久保存别名,我需要在终端中执行~/.bash_aliases~/.bashrc命令并在那里添加我的别名。但是当我执行时,~/.bashrc我收到以下错误消息:

bash: /home/bakhtiyor/.bashrc: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我运行时,~/.bash_aliases我收到另一条错误消息,如下所示:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Run Code Online (Sandbox Code Playgroud)

实际问题是什么,我该如何解决?

bash alias

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

如何查看附加到 bash 别名的命令?

假设我在 bash shell 中有一个别名。是否有一个简单的命令来打印别名将运行的命令?

command-line bash alias

446
推荐指数
5
解决办法
29万
查看次数

如何列出所有变量名称及其当前值?

如何列出所有变量名称及其当前值?

不仅包括$HOME, $PWDetc 还包括您定义的任何其他。

command-line bash environment-variables

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

如何在 sed 命令中使用变量?

我尝试使用以下代码替换QQZZ,但它没有做我想要的:

var1=QQ
sed -i 's/$var1/ZZ/g' $file
Run Code Online (Sandbox Code Playgroud)

但是,此代码执行我想要的操作:

sed -i 's/QQ/ZZ/g' $file
Run Code Online (Sandbox Code Playgroud)

我如何在 中使用变量sed

command-line bash sed

436
推荐指数
2
解决办法
109万
查看次数

如何运行 .sh 脚本?

每当我打开一个 .sh 文件时,它都会在 gedit 而不是终端中打开它。我找不到任何类似于Right Click 的选项?打开方式其他应用...终端

如何在终端中打开此文件?

command-line bash scripts execute-command

422
推荐指数
10
解决办法
346万
查看次数