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-165517

agc's questions

Martin Hope
agc
Asked: 2019-05-20 03:28:04 +0800 CST

Shell内置`printf`行限制?

  • 6

/usr/bin/printfutil 参数列表长度限制为 shell 的最大命令行长度(即, getconf ARG_MAX在我的系统上为2097152);例子:

# try using a list that's way too long
/usr/bin/printf '%s\n' $(seq $(( $(getconf ARG_MAX) * 2 ))) | tail -1

输出:

bash: /usr/bin/printf: Argument list too long

今天我被告知shell builtin printf没有这个限制。测试:

printf '%s\n' $(seq $(( $(getconf ARG_MAX) * 2 ))) | tail -1

输出:

4194304

问题:

  1. 略读man bash dash一下似乎并没有说明builtin printf的这种优势。它记录在哪里?

  2. builtin printf s ( eg )是否bash有一个以字符为单位的参数列表最大长度,如果有,该长度是多少?

bash shell
  • 3 个回答
  • 1420 Views
Martin Hope
agc
Asked: 2018-12-10 10:02:19 +0800 CST

gparted 是否充分利用了坏块列表?

  • 0

假设有一个硬盘驱动器/dev/sda,并且两者都有:

  • /dev/sda1是一个占用整个磁盘的 ext4分区,而且它几乎没有数据。
  • dumpe2fs -b /dev/sda1输出坏块列表,在这种情况下输出单个高数字b表示靠近末尾的坏块/dev/sda;b幸运的是不是任何文件的一部分。

现在需要在 的开头添加一个交换分区/dev/sda1,并且gparted( v0.30.0-3ubuntu1 ) 用于:

  • 调整(缩小)sda1的大小,使其在几 GB 之后开始,但在同一位置结束。
  • 在缩小sda1留下的间隙中添加一个交换分区。

所以gparted完成了工作,我们dumpe2fs -b /dev/sda1再次运行。怎么了?可以...?

  1. 什么都不输出,意味着调整大小忘记了坏块。
  2. 输出b不变。
  3. 输出b + o其中o是对应于刚刚/dev/sda1开始收缩的位置的偏移量。

注意: 为简化问题,假设有问题的硬盘没有SMART固件。(关于固件的评论是题外话。)

linux filesystems
  • 2 个回答
  • 725 Views
Martin Hope
agc
Asked: 2018-10-10 04:08:44 +0800 CST

为什么“粘贴”不能在标准错误旁边打印标准输入?

  • 2

通常在相邻列中paste打印两个命名(或等效)文件,如下所示:

paste <(printf '%s\n' a b) <(seq 2)

输出:

a   1
b   2

但是当这两个文件是/dev/stdinand/dev/stderr时,它的工作方式似乎不同。

假设我们有b缺少b框程序,它在标准输出上输出两行,在标准错误上输出两行。为了说明的目的,这可以用一个函数来模拟:

bb() { seq 2 | tee >(sed 's/^/e/' > /dev/stderr) ; }

现在运行annotate-output,(在Debian/Ubuntu/etc.上的devscripts包中),以显示它可以工作:

annotate-output bash -c 'bb() { seq 2 | tee >(sed 's/^/e/' > /dev/stderr) ; }; bb'
22:06:17 I: Started bash -c bb() { seq 2 | tee >(sed s/^/e/ > /dev/stderr) ; }; bb
22:06:17 O: 1
22:06:17 E: e1
22:06:17 O: 2
22:06:17 E: e2
22:06:17 I: Finished with exitcode 0

所以它有效。喂给:bb_paste

bb | paste /dev/stdin /dev/stderr

输出:

1   e1
e2
^C

它挂起 -^C意味着按Control-C退出。

更改|为 a;也不起作用:

bb ; paste /dev/stdin /dev/stderr

输出:

1
2
e1
e2
^C

也挂起 -^C表示按Control-C退出。

期望的输出:

1    e1
2    e2

可以使用paste吗?如果不是,为什么不呢?

shell io-redirection
  • 3 个回答
  • 1034 Views
Martin Hope
agc
Asked: 2018-08-24 10:29:35 +0800 CST

编辑 ~/.bash_history “live”是否安全?

  • 2

bash将用户的命令行历史存储在纯文本文件"~/.bash_history"中。

假设只有一个用户使用单个终端,在基于终端的文本编辑器(或等)中打开“~/.bash_history”并在该用户的实例运行时保存它是否有任何不良副作用? sedbash

bash command-history
  • 2 个回答
  • 1291 Views
Martin Hope
agc
Asked: 2018-03-15 07:31:49 +0800 CST

在miller的数据字段中输出标题标签

  • 5

给定file.csv:

a,b,c
1,2,3

如何mlr制作输出:

a,b,c
1,2,c

使用包含字母“ c ”的事先$c 不知道的标签名称?$c


注意:正确答案mlr只能使用。

text-processing miller
  • 3 个回答
  • 311 Views
Martin Hope
agc
Asked: 2017-11-23 07:54:42 +0800 CST

`tee` 和 `bash` 进程替换顺序

  • 3

我本以为这段代码会首先打印“ oof ”:

echo foo | tee >(rev) | ( sleep 1 ; cat ; )

输出:

foo
oof

增加sleep时间不会改变顺序。为什么那行不通?


请注意,其他工具确实可以按预期工作,例如: echo foo | pee rev 'sleep 1 ; cat'。

bash pipe
  • 2 个回答
  • 898 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