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
    • 最新
    • 标签
主页 / unix / 问题

问题[stdin](unix)

Martin Hope
Kalle Richter
Asked: 2023-11-20 19:24:33 +0800 CST

如何使 Base64 在换行符后打印编码输出而不对换行符进行编码?

  • 5

我喜欢base64通过调用命令粘贴输入并按Ctrl + D两次来从 stdin 进行编码,以避免尾随换行符(如果我不希望换行符成为输入的一部分)。它会避免echo在 shell 历史记录中留下任何数据。

然而,输出是直接在输入之后写入的,并且很难检索该值:

$ base64
Input without trailing newlineSW5wdXQgd2l0aG91dCB0cmFpbGluZyBuZXdsaW5l

有什么办法可以让我看起来像

$ base64
Input without trailing newline
SW5wdXQgd2l0aG91dCB0cmFpbGluZyBuZXdsaW5l

编码输出中不包含任何换行符?

我使用的是 Ubuntu 23.10。

stdin
  • 1 个回答
  • 21 Views
Martin Hope
belkarx
Asked: 2022-05-01 08:47:01 +0800 CST

使用 bash 向可执行文件发送多行

  • 0

因此,python 有一个方便的功能,pwntools可以sendline()作为可执行文件的一部分。如何在 bash 中模拟此功能?

例子

#whatever.py
x = input("First input please: ")
y = input("Second input please: ")

我知道我可以echo "input1" | python3 whatever.py回答第一个输入,但我不能让它多行工作(echo "input1\ninput2" | ...不起作用,也不行echo "input1"; echo "input2" | ...)。

bash stdin
  • 1 个回答
  • 122 Views
Martin Hope
jwzumwalt
Asked: 2022-03-24 21:41:35 +0800 CST

文本(从文件)到正在运行的程序

  • 0

我手上有退行性骨病,我想制作看起来像是在 Sublime 或 Kate (KDE) 等文本编辑器中输入的 YouTube 视频。

如何让文本编辑器在运行时通过 stdin 接收输入文本文件(键入效果) - 可能使用套接字、管道、进程 ID 等?

谢谢

editors stdin
  • 1 个回答
  • 25 Views
Martin Hope
hehehe
Asked: 2021-12-26 14:21:33 +0800 CST

如何从文件描述符 0 中读取 n 个字节到文件中?字节可以是任何值[重复]

  • 1
这个问题在这里已经有了答案:
从文件中读取确切字节数的 POSIX 方法是什么? (3 个回答)
使用 dd 创建随机数据并获得“部分读取警告”。现在警告后的数据真的是随机的吗? (3 个回答)
9 个月前关闭。

我需要从中读取特定数量的字节fd0并将它们写入文件。字节可以有任何值。

我假设我不能使用dd,因为它停在EOF字节处。if=/dev/stdin由于我fd0不是键盘,因此无法使用。

stdin
  • 1 个回答
  • 238 Views
Martin Hope
db-inf
Asked: 2021-11-28 02:52:21 +0800 CST

管道连接到另一个终端过程的标准输入的危险

  • 0

出于恶意,我打开了 2 个终端,每个终端都运行 bash shell。在第一个我输入:

$ echo $$
11458

在第二个:

$ echo -n "echo this command" >> /proc/11458/fd/0

然后这个文本echo this command确实通过管道传送到第一个终端上的提示符。但是在第一个终端中输入时,该文本不会作为命令执行,我只是得到一个新的提示。

在第二次尝试中,我在第一个终端中执行了这个命令:

$ read line;echo $line

在读取等待输入时,我再次/proc/11458/fd/0在第二个终端中回显一些文本。该文本确实出现在第一个终端上,但是在按下<enter>第一个终端时,read终止,并且echo $line显示没有读取任何输入。

所以我仍然没有找到伤害的方法;我所能做的就是从第二个终端修改第一个终端上的文本。当然,第一个终端上的屏幕阅读器一定要选择它。通过屏幕阅读器,我正在考虑鼠标选择或终端功能,例如Save Contents ...;我都试过了。

但是,如果我还知道如何将文件结尾或其他控制字符回显到第一个终端的stdin,我就不会为第一个终端中的进程搞得一团糟吗?

pipe stdin
  • 2 个回答
  • 253 Views
Martin Hope
neubert
Asked: 2020-02-09 08:33:47 +0800 CST

使其不会回显在标准输入上键入的键

  • 0

如果我这样做cat > filename.ext,然后输入一堆文本,该文本将 (1) 在我输入时回显到屏幕上,并且 (2) 出现在 filename.ext 中。

如果我对文本文件这样做没关系,但如果我对二进制文件这样做会更成问题,因为可能会发生奇怪的事情,如https://www.chiark.greenend.org.uk/~sgtatham/putty中所述/faq.html#faq-puttyputty。

那么有什么想法可以让我输入的键不会回显到屏幕上吗?

bash stdin
  • 1 个回答
  • 93 Views
Martin Hope
Andy Stewart
Asked: 2020-02-04 08:27:43 +0800 CST

如何在 ssh 上运行命令而不破坏 stdin 以进行后续 curl 命令?

  • 0

这个 bash 脚本应该通过 ssh 从其他地方获取令牌,然后运行 ​​curl 命令,从 stdin 上的文件中读取数据。

#!/usr/bin/env bash
TOKEN=$(ssh somewhere cat sometoken.txt)
curl https://example.com \
  -H "Authorization: Bearer $TOKEN" \
  -H "someparam=@-" \
  -X POST

脚本是这样调用的:

cat somefile | myscript

当我硬编码TOKEN=abcd123而不是使用$(ssh ...)时,somefilecurl 会按预期上传。

但是,当我使用$(ssh ...)我的文件时没有上传。

我假设我的脚本的标准输入被破坏了,$(ssh ...)但我不知道如何解决这个问题。

任何帮助将非常感激。

ssh stdin
  • 1 个回答
  • 243 Views
Martin Hope
Holger Böhnke
Asked: 2019-12-29 11:15:35 +0800 CST

当使用单个减号参数调用标准输入时,如何在读取时退出 less:“less -”

  • 5

是否有正确的退出方法less -而不必终止进程?

我不小心创建了一个名为-(minus) 的文件并尝试使用以下命令查看它:

less -

少于标准输入,我没有找到任何正确退出它的方法。我不得不ctrl-z杀死这个过程。是否有某种逃逸字符或任何其他方式可以在less -不杀死它的情况下退出?

PS:我知道查看名为-is的文件的正确方法less ./-。

less stdin
  • 1 个回答
  • 401 Views
Martin Hope
vib_29
Asked: 2019-03-17 21:01:47 +0800 CST

将一个命令的标准错误重定向到另一个命令的标准输入

  • 2

我希望将一个命令的标准错误重定向到另一个命令的标准输入,例如

g++ filename.cpp 'redirection' less
io-redirection stdin
  • 1 个回答
  • 134 Views
Martin Hope
Tran Triet
Asked: 2018-09-29 00:02:11 +0800 CST

什么是非标准输入/输出/错误

  • 2

我读过提到标准输入/输出/错误的书籍/教程。我的理解是:

  1. 标准输入/输出/错误是进程的概念(即,如果有人提到标准输入/输出/错误,他们实际上是在谈论特定进程的标准输入/输出/错误。谈论标准输入没有意义/输出/文件错误。)
  2. Linux 中大多数进程的标准输入是键盘,标准输出/错误是屏幕。

我的问题:如果有标准, Linux 中进程的非标准输入/输出/错误是什么?

stdout stdin
  • 1 个回答
  • 1418 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve