小编man*_*tor的帖子

Bash:'[[' 也是一个类似于 '[' 的程序吗?

测试条件[是一个程序,它驻留在基于 debian 的/usr/bin/[. 我想知道另一个条件测试仪[[是否也是一个程序?

我问的原因是:我sudo向某个用户授予了权限,让他触发 shell 脚本。出于安全原因,我添加了该脚本中使用的每个程序(echoto/bin/echo[to /usr/bin/[)的完整路径,以便用户无法更改PATH他的程序以使用他自己的程序。现在我想知道我是否也必须改变[[

linux bash test

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

仅当“time”之后的命令成功时才显示“time”的输出

time我希望仅当已传递的命令time成功时才显示命令的输出。像这样的东西:

( time wget -pq --delete-after https://www.example.com ) 2>&1 || echo fail
Run Code Online (Sandbox Code Playgroud)

问题是,如果wget失败,我仍然收到输出time(这是合乎逻辑的,因为它测量命令失败所需的时间)。我的目标是将输出保存到变量中,并在我的变量中包含0m0.100sfail。有谁知道我该如何以体面的方式做到这一点?

command-line time exit-status

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

如何从 cpio 存档中提取单个文件?

我有一个包含大量文件的 cpio 存档,我只需要提取一个文件,而不是全部。随着tar我可以只使用tar -xf archive.tar path/to/file,但不与工作cpio

cpio -i < archive.cpio path/to/file
bash: path/to/file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有谁知道如何从cpio档案中提取单个文件?

backup archive cpio

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

ISC DHCP dhclient:如何用 IPv4 和 IPv6 地址取代 DNS 名称服务器?

我希望 tp 取代名称服务器信息,这些信息是我使用自己的配置从 DHCP 服务器获取的。因此,我在我的中使用以下选项/etc/dhcp/dhclient.conf

supersede domain-name-servers 1.1.1.1, 2.2.2.2, 3.3.3.3;
Run Code Online (Sandbox Code Playgroud)

一切正常,但我想添加 IPv6 地址,而且这是双堆栈服务器。以下语句不起作用(我进入/etc/dhcp/dhclient.conf line 56: semicolon expected.系统日志):

supersede domain-name-servers 1.1.1.1, 2.2.2.2, 3.3.3.3, ::1, 2000::BEEF, FURTHER_IPv6_ADDRESS;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何将 IPv6 地址添加到supersede domain-name-servers中的选项中/etc/dhcp/dhclient.conf

dns dhcp isc-dhcpd

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

尝试将连字符与 grep 2.27 匹配时的奇怪行为

我有以下字符串:

-----BEGIN 1_1 CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

以下序列与连字符不匹配:

grep -- "[A-Z\-\_]" file
Run Code Online (Sandbox Code Playgroud)

当我删除\_连字符匹配时:

grep -- "[A-Z\-]" file
Run Code Online (Sandbox Code Playgroud)

如果我删除反斜杠,我会得到grep: Invalid range end. 此外,我是否使用也无关紧要-E/egrep- 我得到了相同的结果。

这种行为的原因是什么?

grep regular-expression

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

错误:/etc/machine-id 包含 32 个字符(预期为 32 个)

每次我在 debian 9 上启动 Chrome 时,我都会收到以下系统日志错误,这很烦人:

ERROR:browser_dm_token_storage_linux.cc(93)] \
    Error: /etc/machine-id contains 32 characters (32 were expected).
Run Code Online (Sandbox Code Playgroud)

该消息对我来说毫无意义,因为我/etc/machine应该包含 32 个随机字符。但也许有人知道为什么会这样?

debian chrome

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

'ln -sT' 在 Linux 中是什么意思?

更准确地说:我知道这些-s选项代表什么——我每天都在使用它。但是我在教程中看到有人将其网站的文档根目录从/var/www/html/project移到~/www/project以提高安全性(他后来更改了权限等,但在这种情况下并不重要)。然后他创建了以下符号链接:

ln -sT ~/www/project /var/www/html/project
Run Code Online (Sandbox Code Playgroud)

我想知道这-T是做什么用的,因为通常我会使用-s. 从手册页中,我获得了有关该-T选项的以下稀疏信息:

-T, --no-target-directory
     treat LINK_NAME as a normal file always
Run Code Online (Sandbox Code Playgroud)

我真的不明白这是为了什么。创建符号链接时为什么要-T结合使用-s?这样做有什么好处吗?

symlink ln

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