小编ctr*_*lor的帖子

如何在不触发提示的情况下将密码传递给 ssh-add?

我读过man ssh-add,但没有看到像我们那样ssh-p传递密码的标志,其中 is。

我试过

# the -K is for macOS's ssh-add but it's not relevant
ssh-add -q -K ~/.ssh/id_rsa <<< $passphrase
Run Code Online (Sandbox Code Playgroud)

但我得到以下输出:

ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何在不触发提示的情况下传递密码

更新

为我正在做的事情添加更多上下文,我正在创建一个脚本来为我创建 SSH 密钥。它将生成密码,使用该密码的 SSH 密钥,并将其添加到代理中。

# the -K is for macOS's ssh-add but it's not relevant
ssh-add -q -K ~/.ssh/id_rsa <<< $passphrase
Run Code Online (Sandbox Code Playgroud)

按照斯蒂芬的回答,我不确定这将如何运作。似乎我不得不创建一个临时脚本并将其保存到磁盘,以便 SSH_ASKPASS 工作。有任何想法吗?

command-line bash

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

如何在android chroot中运行docker

我在 chroot 环境中的 arm64 android 手机中安装了 debian stretch。我已经按照这里的这些步骤安装了 docker-ce 。

在启动泊坞窗时:: systemctl start docker

返回此错误:: Running in chroot, ignoring request.

使用service docker status节目 检查[FAIL] Docker is not running ... failed!

如何在我的 android 手机上的 chroot 中运行它?

chroot arm debian android docker

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

系统调用号?运行时的名称映射

有没有办法解决观察到的系统调用的数量:

SYS_345(0xe, 0xbff94188, 0x2, 0x4000, 0xb6526000) = 2
Run Code Online (Sandbox Code Playgroud)

在正在运行的内核中使用它的符号名称而不在源代码中查找它?

编辑用例是一个过时的strace二进制文件,位于外部框上,其内核源代码检索起来可能很乏味。

linux system-calls strace

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

列出运行时间超过2小时的进程

如何列出已运行超过 2 小时且已定义名称的进程。这是我尝试过的。

ps -efo pid,comm,etime | grep 'process name' | awk '{print $3}' 
Run Code Online (Sandbox Code Playgroud)

这是针对 Solaris 的。

或者有人可以帮助如何创建一个脚本,如果进程运行时间超过 2 小时,该脚本将发送包含进程 ID 的电子邮件。

solaris opensolaris solaris-zones

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

向前然后向后输出每一行的命令

我正在寻找一个“元命令”xyz,这样:

(echo "foo"; echo "bar") | xyz rev
Run Code Online (Sandbox Code Playgroud)

将返回:

foo oof
bar rab
Run Code Online (Sandbox Code Playgroud)

我想避免使用临时文件,即我正在寻找比以下更简洁的解决方案:

tempfile=$(mktemp)
cat > $tempfile
cat $tempfile | rev | paste $tempfile -
Run Code Online (Sandbox Code Playgroud)

(当然,我想要一个通用的解决方案,对于任何命令,不仅仅是rev,您可以假设该命令为每个输入行只输出一行。)

Zsh 解决方案也是可以接受的。

linux bash zsh io-redirection

6
推荐指数
2
解决办法
455
查看次数

如何持续监控连接到本地套接字的 PID?

一些本地进程在端口 1234 上连接和断开连接到 127.0.0.1。

我想记录到此端口(或服务器进程)的所有连接。

我试过了

 ss -tpn | grep 1234 
Run Code Online (Sandbox Code Playgroud)

它显示一个列表,但随后停止;它不会继续记录新连接,因此我无法捕获所有者的套接字或 PID。

我可以使用什么工具来发现连接和断开套接字的 PID?

networking process socket ss

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

将逻辑扇区大小更改为 4k

很多次被问到,但没有确凿的答案:能否将逻辑块大小从 512e 更改为 4k(物理块大小)?

使用的解决方案hdparm --set-sector-size 4096在 qemu/kvm 下不起作用,因此如果不使用我没有的备用设备,我无法真正测试它。

能否说服 Linux 内核切换到 4k 扇区大小而不是 512e?最好以某种方式,可以在虚拟机中进行测试。

linux partition

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

嵌套 for 循环

我正在尝试列出嵌套 zip 中的文件,如下所示。它不是在第二级列出文件。

例如:

abc.zip包含test1.zip, test2.zip,test3.zip

pqr.zip包含test4.zip, test5.zip,test6.zip

for f in *.zip
do
  unzip -l ${f}
  for p in ${f}
  do 
    unzip -l ${p}
  done
done
Run Code Online (Sandbox Code Playgroud)

linux shell-script

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

如何在 bash 中可视化 EOF

/dev/null是一个特殊的 Linux 文件,它会丢弃写入其中的所有内容,并EOF在读取时提供。

我想通过阅读/dev/null来获得并形象化这一点EOF。如果我尝试:

$ cat /dev/null | hexdump
Run Code Online (Sandbox Code Playgroud)

这不起作用。返回提示符但没有任何输出。EOF甚至没有 ASCII 代码,所以也许这就是原因。

  1. 还能EOF算人物吗?

  2. EOF当 bash 中提供时,有没有办法检测和打印stdin?

就像是:

$ cat /dev/null | some_tool
EOF
Run Code Online (Sandbox Code Playgroud)

我GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)在 Ubuntu 20.04.3 上使用,但我希望解决方案(如果有)与这些特定版本无关。


这不是作业,而只是了解更多信息的一种方式EOF。

bash cat stdin

6
推荐指数
2
解决办法
2110
查看次数

使用bash脚本在目录中搜索文件

我编写了以下代码来搜索当前工作目录中包含字母“f”的所有文件名。

for i in *
do
  echo $i
  if [ $i = "*f*" ]
  then
    echo "no"
  else
    echo "yes"
  fi
done
Run Code Online (Sandbox Code Playgroud)

这将为该目录中存在的每个文件打印“是”,无论它是否包含“f”。请帮忙。

shell wildcards

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