小编Luc*_*Luc的帖子

在程序退出之前 GNU 可以并行输出标准输出吗?

echo 'echo "hello, world!";sleep 3;' | parallel
Run Code Online (Sandbox Code Playgroud)

此命令在完成之前不会输出任何内容。Parallel 的手册页声称:

GNU parallel 确保命令的输出与您按顺序运行命令时得到的输出相同。

我想问题在于措辞:您得到的输出与正常运行时相同,但输出与正常运行时不同。例如--results /dev/stdout,我一直在寻找可以执行此操作的选项,但这不起作用。

我的用例是查看我正在运行的命令的实时进度输出。这不是关于完成了多少任务,哪个并行可以为我显示,而是关于我想单独查看每个命令的进度输出。

我会使用 bash 循环 ( for i in $x; do cmd & done;),但我希望能够使用单个 Ctrl+C 停止所有任务,这并行允许我这样做。

是否可以并行执行此操作?如果没有,是否有其他工具?

gnu-parallel

13
推荐指数
3
解决办法
6291
查看次数

如何根据周围的声音自动调节音量?

我住在一条大马路旁边。晚上打开窗户很凉爽,而且间歇性地非常响亮。如何根据内置麦克风输入自动调整音量?如果我将音量设置为在汽车经过时我可以听到电影中的讲话,那么在其他时候它会非常响亮,并且对附近的人(外面和邻居)感觉非常讨厌。

我的系统是 Debian Buster,不过我可能会得到一个通用的解决方案。如果没有可用的软件包来执行此操作,则从默认麦克风中提取响度的命令已经有助于编写此脚本。

audio microphone audio-volume

9
推荐指数
1
解决办法
1695
查看次数

尽管我自己签署了密钥,但有效性未知

该密钥目前的有效性未知:

$ gpg --edit-key some.user

pub  rsa4096/FAC6C35BDFF9359A
     created: 2020-03-01  expires: 2022-03-01  usage: SC  
     trust: full          validity: unknown
sub  rsa4096/CDA6BEA851FFCE2E
     created: 2020-03-01  expires: 2022-03-01  usage: E   
[ unknown] (1). Some User <some.user@example.org>
Run Code Online (Sandbox Code Playgroud)

有效性是根据签名计算的。“至少一个完全信任的密钥必须签署另一个密钥才能使密钥有效。” 由于我最终信任自己的密钥,这意味着如果我签署某个用户的密钥,它也应该变得有效。

我已经签署了该用户的密钥:

$ gpg --list-signatures some.user
pub   rsa4096 2020-03-01 [SC] [expires: 2022-03-01]
      E9E7BDF5FB135FF9858ABAAAB007FDB2
uid           [ unknown] Some User <some.user@example.org>
sig 3        FAC6C35BDFF9359A 2020-03-01  Some User <some.user@example.org>
sig          12CA169A2B5A5CFC 2020-03-15  Luc <luc@example.org>
sig 3        FAC6C35BDFF9359A 2021-03-01  Some User <some.user@example.org>
sub   rsa4096 2020-03-01 [E] [expires: 2022-03-01]
sig          FAC6C35BDFF9359A …
Run Code Online (Sandbox Code Playgroud)

gpg pgp

9
推荐指数
1
解决办法
3098
查看次数

如何在 Debian Buster/testing 上修复 Firefox 55 中糟糕的字体渲染?

我今天从 Debian 稳定版 (Stretch) 升级到测试版 (Buster),一切顺利。所有应用程序都可以正常工作,除了 Firefox,它的字体渲染很糟糕:文本通常难以阅读并且有伪影。缩放值比 100% 高(远得多)时效果会更好,但伪影始终可见。(我仍在运行 Firefox 55,因为我在量子中缺少很多附加组件。许多仍然无法在新系统中实现,因为 API 是待办事项。)

我在网上找到了同样问题的截图,除了这是针对 Firefox 52 的:

http://z-issue.com/blog_imgs/tech/linux/fonts/mozilla_rendering/linux_firefox_thunderbird_ugly_fonts_skia_cairo.jpg

firefox fonts

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

切换到虚拟终端很慢

Ctrl当使用例如Alt++切换到虚拟终端时F2,切换大约需要一秒钟。对于通常很少使用的东西来说并不太可怕,但我想更多地使用它,而且它比Alt+慢得多Tab。这特别奇怪,因为切换回桌面环境(对我来说Alt+ )是即时的。F7

我之前已经注意到这一点,但目前我正在 X 1.18.3 上使用 Cinnamon 2.8.7 运行 Debian 测试 (Stretch)。虚拟终端的分辨率与X的分辨率相同。

这种延迟是由什么引起的以及如何改进?

console

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

htop 不显示进程

使用时top,它显示我cifsd使用了大量 CPU 时间,但在htop此过程中根本不显示。我曾尝试H在 htop 中启用线程(使用),但无济于事。它也不会出现在 中pstree,即使使用的参数可能会显示更多信息 ( -apcls)。

我可以在其中找到它的进程 ID,/proc因此它存在。

ps aux它显示出来,但在方括号:[cifsd]是最后一列的值(标题COMMAND)。

这是一个怎样的过程?从 CPU 运行时间和正常运行时间来看,它似乎平均使用了 7.8% 的 CPU(并且在查看 时相当稳定top),因此这绝对是一个有趣的过程,但是 htop 隐藏了它。

process top ps htop cifs

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

为什么 pidof 不起作用?

在 的输出中ps aux,我可以很好地看到该过程:

# ps aux | grep diff
root      7787 28.7  0.0   9368  4516 pts/3    D+   13:56  20:33 diff -qr mnt/mnt/md/ mnt/mnt2/
root     13130  0.0  0.0   6144   876 pts/4    S+   15:07   0:00 grep diff
Run Code Online (Sandbox Code Playgroud)

pidof声称找不到任何东西:

# pidof diff
# echo $?
1
Run Code Online (Sandbox Code Playgroud)

查看手册页,没有关于丢失进程时该怎么做的信息,pidof 有。/proc/7787/exe是一个符号链接/usr/bin/diff/usr/bin/diff它本身是一个常规文件和一个 ELF。根据手册页,这应该匹配。

process pidof

4
推荐指数
1
解决办法
2937
查看次数

接口向上和向下?

$ ip link | grep vboxnet
10: vboxnet0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
Run Code Online (Sandbox Code Playgroud)

在尖括号中,它说UP。尖括号表示什么?

进一步,它声称state DOWN。这似乎与之前的信息相冲突。接口是up还是down?

在手册页、ip-linkip和 中ip-address,我找不到尖括号的含义。

iproute

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

为什么登录进程会在报告“密码错误”之前休眠而不是限制输入?

当使用 sudo、su 或简单地使用 Linux Mint Cinnamon 或 Debian with Cinnamon 的登录屏幕时,当您输入错误的密码时,它们都会挂起一秒钟。

对我来说,它挂起的事实已经告诉我“这是不正确的”,让我 Ctrl+C 成为 sudo 命令,然后使用向上箭头 -> Enter 重试,或者使用 Escape 关闭登录对话框并开始输入以重试。这工作得很好。

这似乎是对速率限制的尝试,但它不起作用,因为攻击者只能设置并行猜测。如果它真的想要速率限制,它应该限制每个时间段可以输入多少查询,而不是在返回输出之前需要多长时间(并且它只在失败的情况下延迟,另一个致命的赠品)。

这样做的原因是什么?

login

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

如何调试 sshd 需要几分钟才能启动?

我使用带有 ssh 和 X 转发的 VM 来运行某些应用程序。启动 VirtualBox VM 时,ssh 需要几分钟才能联机,即使计算机很快就处于桌面环境的登录提示。sshd 启动时,机器不会使用大量资源(CPU、网络)。

其他可能需要了解问题的事项:

  • 主机是运行的 Debian Buster(测试)系统 OpenSSH_7.9p1 Debian-1, OpenSSL 1.1.1 11 Sep 2018
  • 当我登录桌面环境时,也需要一点时间,但通常不会几分钟。它立即接受我的登录(或告诉我我打错了字)并切换到空白屏幕,但需要一段时间才能显示实际桌面。
  • 一旦显示桌面并且我可以开始调试问题,问题就消失了:sshd 总是在桌面环境加载后工作。他们似乎都在阻止同一件事。
  • 当 sshd 尚未启动时,系统响应“连接被拒绝”,即它可以到达主机和端口,但 sshd 似乎没有绑定到它。
  • 我还可以 ping 主机,从启动屏幕变为桌面环境的登录提示的那一刻起。系统似乎完全准备好了,除了 sshd 没有启动(或绑定到接口)。

切换到虚拟终端不起作用,因为它切换到我的主机系统的虚拟终端,即使将键盘设置为捕获。我可以阻止桌面环境启动并立即获得终端,但我只有很短的时间(我会说 2-3 分钟)所以我必须在每几个命令后重新启动或知道在哪里查看顺序弄明白。

我怎样才能有效地调试这个问题?是否有我可以检查的可能原因?

networking boot openssh virtualbox sshd

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

我如何强调 espeak 所说的某些单词?

我使用 espeak 在纯文本文件中说出一些文本。但是,文件中的某些单词使用星号强调(“您是说*绿色*豆吗?”),espeak 会按字面意思读出它们(“您是说星号绿色星豆吗?”)。

我应该用什么替换星号,以便 espeak 正确阅读它们?

espeak

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

sed:转义的方括号不匹配

目标:替换![alttext](url.png)<img src="url.png" alt="alttext">.

!(...)部分做工精细,这是[...]我不能去工作的一部分。

作为一个简单的例子,我想匹配 input a [test] b。这是我使用的命令:

echo 'a [test] b' | sed 's/\[[^\]]*\]/x/'
Run Code Online (Sandbox Code Playgroud)

它不起作用。当我用尖括号替换方括号时,它工作得很好:

echo 'a <test> b' | sed 's/<[^>]*>/x/'
Run Code Online (Sandbox Code Playgroud)

为什么 sed 不理解相同的正则表达式但带有转义的方括号?它在 Python 等其他工具中运行良好。

sed regular-expression

0
推荐指数
1
解决办法
1048
查看次数