是否可以启动 ssh 远程会话并将变量传递到远程主机,该变量在打开的会话中可用。
例如:
客户端: testvar="this is my text" 打开 ssh 会话 (ssh user@remotehost) 并将 $Testvar 传递到远程会话
主机:连接打开后,我希望能够使用传递的变量来读取该变量以获得输出“这是我的文本”
我需要我的控制台会话保持活动状态,这在通常的 ssh 远程执行中不起作用,因为将执行命令并且 ssh 会话将在之后立即终止。(据我所知)
谢谢你!
一个在 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) 我通过自制程序安装了 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 文件没有被遵守?我缺少什么?通过自制软件安装: …
当我在 *NIX 中寻找管道缓冲工具时,我看到了使用buffer、mbuffer或的建议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-pipe和https://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) 我的 tmux 开始出现短暂的奇怪行为。今天我注意到我的 tmux 会话不是以 bash shell 开头,而是以 ? 开头(不知道)。我看到的只是一美元$。然后如果我尝试调用 bashbash它会返回
sessions should be nested with care, unset $TMUX to force.
Run Code Online (Sandbox Code Playgroud)

我想在文件中添加default-shellfor tmux ~/.tmux.conf,但它不存在,如果我创建它,tmux 似乎看不到它。
是否可以在 bash 提示符中使用真彩色?我在 MacOS 上使用 iTerm2,它支持真彩色。但不确定我如何在 bash 提示符中使用真彩色。
目前我正在tput af <number>bash 提示符中使用来获取颜色。
据我了解,在 bash 中,我可以使用 . & ^ * 在 sed 的正则表达式中,但是 -r 选项改变了正则表达式的表达方式,呃,表达方式的本质,有点像 grep 与 grep -E。但我找不到语法具体如何变化的任何摘要。某处有一个列表吗?我是否天真地认为这种事情应该可以总结在一张可以打印在几页纸上的表格中?
与普通旧的非扩展 sed 正则表达式一起使用的字符是否仍然以与 -r 选项相同的方式工作?换句话说,不使用 -r 选项时有效的表达式是否仍然有效,并且使用 -r 选项时仍然表示相同的含义?就像它们是使用 -r 选项有效的表达式的子集一样?
我一直认为一定有一个关于差异的简洁总结与某处的例子。
如何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”的文件。
我正在学习bash,由于有许多不同的方式对驱动器进行零写入或从驱动器传输数据或将数据传输到驱动器(shred等等dd)pv,cat我tee已经不知所措了。
目前,我不情愿地选择了它,dd因为它似乎是两种用途的最佳命令行选项。鉴于此,我想确保我尽可能有效地使用它。
据我了解,默认情况下dd运行的块大小为 512 字节,并且可以通过以下方式增加块大小:
dd if=/dev/zero of=/dev/sdX bs=3M status=progress
Run Code Online (Sandbox Code Playgroud)
...将使它写入更大的块并且执行更少的次数,从而导致更快的运行。
但是,如果简单地设置更大的块大小将使命令运行得更快,那么什么阻止我使用呢bs=3G?这样做有什么缺点(如果有的话)?Linux 超级用户建议使用的最佳块大小是多少?