标签: bash

将变量传递到 ssh 会话(会话必须保持活动状态)

是否可以启动 ssh 远程会话并将变量传递到远程主机,该变量在打开的会话中可用。

例如:

客户端: testvar="this is my text" 打开 ssh 会话 (ssh user@remotehost) 并将 $Testvar 传递到远程会话

主机:连接打开后,我希望能够使用传递的变量来读取该变量以获得输出“这是我的文本”

我需要我的控制台会话保持活动状态,这在通常的 ssh 远程执行中不起作用,因为将执行命令并且 ssh 会话将在之后立即终止。(据我所知)

谢谢你!

linux ssh bash environment-variables

5
推荐指数
1
解决办法
8746
查看次数

如何在 Git Bash 中运行 Windows 命令提示符实用程序选项(如何指定 /slash 选项)?

一个在 Git Bash 中不起作用但仅在 Windows 提示符中起作用的示例:

// Git Bash
$ ipconfig /all
Error: unrecognized or incomplete command line.

// Windows
User> ipconfig /all
C:\Users\sergey>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : HOST-12345
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : NodeType
   IP Routing Enabled. . . . . . . …
Run Code Online (Sandbox Code Playgroud)

bash git command-line

5
推荐指数
1
解决办法
7749
查看次数

gpg-agent 忽略缓存配置 macOS Sierra

我通过自制程序安装了 gpg。

我有一个 ~/gpg-agent.conf 文件如下:

allow-preset-passphrase
default-cache-ttl 1209600
max-cache-ttl 1209600
max-cache-ttl-ssh 1209600
Run Code Online (Sandbox Code Playgroud)

我的 .bashrc (实际上:)~/.bash_it/custom/gpg-agent.bash

export GPG_TTY=$(tty)

[ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
  export GPG_AGENT_INFO
else
  eval $( /usr/local/bin/gpg-agent --daemon --write-env-file ~/.gpg-agent-info )
fi
Run Code Online (Sandbox Code Playgroud)

我的假设是这样可以使我每 2 周只被要求输入一次密码,但仍然每 5 分钟被要求输入一次。gpg-agent --gpgconf-list显示正在使用的实际值?

$ gpg-agent --gpgconf-list
gpgconf-gpg-agent.conf:16:"/Users/notbrain/.gnupg/gpg-agent.conf
verbose:8:
quiet:8:
debug-level:24:"none:
log-file:8:
default-cache-ttl:24:600:
default-cache-ttl-ssh:24:1800:
max-cache-ttl:24:7200:
max-cache-ttl-ssh:24:7200:
enforce-passphrase-constraints:8:
min-passphrase-len:24:8:
min-passphrase-nonalpha:24:1:
check-passphrase-pattern:24:
max-passphrase-days:24:0:
enable-passphrase-history:8:
no-grab:8:
ignore-cache-for-signing:8:
no-allow-mark-trusted:8:
no-allow-external-cache:8:
disable-scdaemon:8:
enable-ssh-support:0:
Run Code Online (Sandbox Code Playgroud)

为什么我的 gpg-agent.conf 文件没有被遵守?我缺少什么?通过自制软件安装: …

encryption bash gnupg gpg-agent

5
推荐指数
1
解决办法
2718
查看次数

使用 dd 作为管道缓冲区的正确方法(如果有)?

问题

当我在 *NIX 中寻找管道缓冲工具时,我看到了使用buffermbuffer或的建议pv。然而,前两者并不总是在发行版的官方存储库中(例如 Arch),而pv(从 1.6.0 开始)有一个错误阻止了此功能。在其他几个问题中,我看到提到dd用作缓冲区,我想探索它,因为dd它总是存在。然而,没有一个足够详细以具有真正的意义,所以在这里我要求一种“正确”的使用方式。

提到的问题dd包括https://unix.stackexchange.com/questions/345072/can-dd-be-used-to-add-a-buffer-to-a-pipehttps://unix.stackexchange.com/questions /21918/管道中无限制数据量缓冲区的实用程序

为了便于测试,我在下面提供了一个测试脚本,以及一些关于我自己的实验的评论。详细信息将在代码清单后解释。运行前请确保您已pv安装且内存至少256M!

#!/bin/sh

producer() {
    while [ 1 ]; do
    dd if=/dev/zero bs=64M count=1 iflag=fullblock status=none
    sleep 4
    done
}

buffer() {
    # Works, but long
    # Must at least fill 32M before consumer starts
    # So, must choose small obs and chain more to look
    # more like a proper "buffer"
    dd …
Run Code Online (Sandbox Code Playgroud)

linux bash command-line dd pipe

5
推荐指数
1
解决办法
4611
查看次数

tmux 不使用默认 shell

我的 tmux 开始出现短暂的奇怪行为。今天我注意到我的 tmux 会话不是以 bash shell 开头,而是以 ? 开头(不知道)。我看到的只是一美元$。然后如果我尝试调用 bashbash它会返回

sessions should be nested with care, unset $TMUX to force.
Run Code Online (Sandbox Code Playgroud)

没有 bash 的 tmux

我想在文件中添加default-shellfor tmux ~/.tmux.conf,但它不存在,如果我创建它,tmux 似乎看不到它。

bash shell tmux

5
推荐指数
1
解决办法
6128
查看次数

从命令行中删除 OSX Spotlight 键盘快捷键

如何在不使用系统偏好设置的情况下禁用键盘快捷键Cmd+ ?Space

我已经找到了这个,但它并没有真正的帮助,因为我既不知道密钥也不知道如何将其设置为禁用。

有人可以帮助我吗?

keyboard-shortcuts bash macos

5
推荐指数
2
解决办法
1694
查看次数

bash 提示符中的真实颜色?

是否可以在 bash 提示符中使用真彩色?我在 MacOS 上使用 iTerm2,它支持真彩色。但不确定我如何在 bash 提示符中使用真彩色。

目前我正在tput af <number>bash 提示符中使用来获取颜色。

bash colors prompt

5
推荐指数
1
解决办法
2719
查看次数

sed -r 与 sed - 正则表达式的可能性到底是如何扩展的?

据我了解,在 bash 中,我可以使用 . & ^ * 在 sed 的正则表达式中,但是 -r 选项改变了正则表达式的表达方式,呃,表达方式的本质,有点像 grep 与 grep -E。但我找不到语法具体如何变化的任何摘要。某处有一个列表吗?我是否天真地认为这种事情应该可以总结在一张可以打印在几页纸上的表格中?

与普通旧的非扩展 sed 正则表达式一起使用的字符是否仍然以与 -r 选项相同的方式工作?换句话说,不使用 -r 选项时有效的表达式是否仍然有效,并且使用 -r 选项时仍然表示相同的含义?就像它们是使用 -r 选项有效的表达式的子集一样?

我一直认为一定有一个关于差异的简洁总结与某处的例子。

linux bash regex sed

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

查找文件但排除几个目录?

如何find列出每个文件但从搜索中排除少数目录?

find / -type f -not -path "./foo*" -not -path "/bar*" -print
Run Code Online (Sandbox Code Playgroud)

我在其他 stackexchanges 上看到过示例,例如./,但我尝试过的似乎都不起作用。

这有点有效:

find / -type f -not -path "*foo*" -not -path "*bar*" -print
Run Code Online (Sandbox Code Playgroud)

但事实并非如此;它还从搜索结果中排除名为“foo”和“bar”的文件。

linux bash shell ubuntu bash-scripting

5
推荐指数
1
解决办法
5854
查看次数

如何才能尽可能快地运行 dd ?

我正在学习bash,由于有许多不同的方式对驱动器进行零写入或从驱动器传输数据或将数据传输到驱动器(shred等等ddpvcattee已经不知所措了。

目前,我不情愿地选择了它,dd因为它似乎是两种用途的最佳命令行选项。鉴于此,我想确保我尽可能有效地使用它。

据我了解,默认情况下dd运行的块大小为 512 字节,并且可以通过以下方式增加块大小:

dd if=/dev/zero of=/dev/sdX bs=3M status=progress
Run Code Online (Sandbox Code Playgroud)

...将使它写入更大的块并且执行更少的次数,从而导致更快的运行。

但是,如果简单地设置更大的块大小将使命令运行得更快,那么什么阻止我使用呢bs=3G?这样做有什么缺点(如果有的话)?Linux 超级用户建议使用的最佳块大小是多少?

linux bash dd

5
推荐指数
1
解决办法
6269
查看次数