AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-292343

frans's questions

Martin Hope
frans
Asked: 2024-12-10 23:55:11 +0800 CST

使用 find + xargs 和嵌套命令进行高级参数转义

  • 6

find ..我知道当您由于“奇怪”的文件名而遇到将例如输出管道传输到的问题时,使用特定的分隔符(例如)来实际传递完整的文件名(例如)xargs会有所帮助。并且,引用有问题的字符串以指定它们的边界“总是”有帮助的。\0find foldername/ -type f -print0 | xargs -0 ...

但是,如果这些字符串(文件名)包含 bash 敏感字符'(如,,,,,".. ?)并且您想使用一个字符串两次(即必须使用,并且需要在嵌套命令中注入这些字符串(即)?`(sh -c .. $(CMD)

例如:

# create a file which should not exist but does
mkdir remove_afterwards
touch remove_afterwards/"some [\"strange\"] ('file')" 

# this will work
find remove_afterwards/ -type f -print0 | xargs -0 -I{} sh -c 'echo "{}"'

# but this won't due to the nested command
find remove_afterwards/ -type f -print0 | xargs -0 -I{} sh -c 'echo "{}" $(stat -c "%s" "{}")'
stat: cannot statx 'remove_afterwards/some [strange] ('\''file'\'')': No such file or directory
remove_afterwards/some [strange] ('file')

我还没弄清楚如何逃离第二个{}里面$()。

有办法吗?

不可否认,一些具有功能的真实脚本会使这一切更容易编写和阅读,但我很好奇,历史上有这样一行代码值得努力去写这个问题。

bash
  • 1 个回答
  • 20 Views
Martin Hope
frans
Asked: 2024-01-11 23:18:54 +0800 CST

如何确保通过 ssh get 生成的进程随着连接而终止?

  • 5

ssh显然,即使连接消失,人们也会尝试保留通过运行启动的进程,请参阅https://duckduckgo.com/?q=ssh+process+still+active+after+connection+close

所以我相信进程通常会因连接而终止 - 直到今天。

随机地grep浏览ps我机器上的输出,我发现了几周前我使用的进程ssh,我想知道它们是如何到达那里的,现在我不知道如何不让进程保持活动状态(请参阅https://xkcd.com/2797)。

启动长时间运行的进程,例如htop,sleep或dmesg作为普通用户(但任何其他用户也可以),如下所示

ssh localhost sleep 123

活下去,直到我手动杀死他们。

pstree -spc $(pgrep -f "sleep 123")

当连接仍然存在时给我

systemd(1)───sshd(1299)───sshd(1887616)───sshd(1887654)───sleep(1887655)

但是在我终止 ssh 会话(使用 CTRL-C)后,相同的命令给了我

systemd(1)───sleep(1887655)

所以对我来说,它看起来像是sshd意识到连接已经消失,但不是终止关联的进程,而是将其移交给systemd。

即使其他人似乎都试图实现相反的目标,我如何确保终止ssh连接也会终止/杀死生成的进程?

注意:ssh localhost -t sleep 123以某种方式解决了我的问题,但在我看来,因为它改变了标准输入/标准输出的处理方式。我可以告诉ssh在连接关闭后不要移交进程吗?

linux
  • 1 个回答
  • 17 Views
Martin Hope
frans
Asked: 2021-06-22 05:50:03 +0800 CST

在 Docker 中有没有办法维护(可更新和可跟踪)图像的“别名”?

  • 5

在一个对某些 Docker-images 有多个引用的项目中,我想提供一种可版本化(即 git-trackable)的方式来使用 Docker-images 的通用名称。

目前在现有项目的几个地方,我引用了一些 Bash/Python 脚本、Docker 文件或 Jenkins 文件,例如busybox:latest. 现在我想为唯一图像使用可读的名称,而不是冗余。

据我了解,我可以使用自己的注册表,提供可读标签,然后使用标签或正确的 repo-digest:

docker pull busybox:latest
docker tag busybox:latest my_registry/busybox:default
docker push my_registry/busybox:default

# use
docker pull busybox@sha256:dca712...86b  <- has to be maintained manually
# or
docker pull my_registry/busybox:default <- not updateable or not unique for given commit

但是现在我也希望后面的不同 sha1 也可以更新和git-trackable(不必在任何地方冗余地编写 sha)。也许我没有使用正确的措辞,但我需要的可以通过使用包含某种“别名”的文本文件来实现,例如

docker_aliases.txt:

my_registry/busybox_default sha256:dafhs3ca712...3486b
my_registry/ubuntu-20.04 sha256:6a507907bd4e...a50

然后可以以某种方式与所有涉及拉取图像的 Docker 调用一起使用,并允许我

  • 在所有地方用作my_registry/busybox_default图像说明符
  • 有一个地方可以更新这些别名
  • 可以被 git 跟踪(非常重要)

感觉每个维护较大 CI 的人都应该遇到这个问题。有没有通用的解决方案?

docker version-control
  • 1 个回答
  • 45 Views
Martin Hope
frans
Asked: 2021-01-03 02:34:59 +0800 CST

在 Fedora 上,为什么我必须安装一个 devel 包才能获得 javac?

  • 9

据我所知,“JDK”代表 Java 开发工具包,在基于 Debian 的系统上,您安装default-jdk即可运行javac. 但是在 Fedora(至少是最近的)上安装java-openjdk不会安装javac,但您必须安装java-openjdk-devel例如。

我是否误解了 JDK 的概念javac?javac或者为什么Fedora 上不提供名称包含“jdk”的软件包?我会理解是否只有一个java-openjdk-devel,因为 JDK 暗示“开发”,但我不明白java-openjdk(没有开发)代表什么。

java fedora
  • 3 个回答
  • 376 Views
Martin Hope
frans
Asked: 2020-06-07 01:31:26 +0800 CST

在 Fedora 上 - 我如何找到自安装以来已更改的(配置)文件?

  • 5

我目前正在观察我的板载声音设备(流行的 NUC 设备)存在问题,但我还没有找到解决此问题的方法。所以我目前“希望”我过去对某些配置文件进行了一些修改,这现在会导致问题。

但是我如何找到这些修改呢?我不记得首先摆弄我的配置文件。

除了与手动并行安装我的操作系统进行比较之外,Fedora 是否提供了一些方法来查找已安装的文件的修改dnf?我想最复杂的方法是只查找对配置文件的修改,但如果我有机会将安装的所有文件dnf与它们的原始文件进行比较,那也很棒..

所以我的问题的简短版本是:

  • 有没有办法使用 Fedora/ 查找已安装文件的修改dnf?
  • 或者:有没有办法获取安装的所有文件的内容dnf?
  • 我如何才能找到新安装的 Fedora 的不同之处?

我目前的方法是存储所有软件包的内容/etc/并/usr重新安装,但我担心这比全新安装更有效。

linux fedora
  • 1 个回答
  • 933 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve