测试条件[
是一个程序,它驻留在基于 debian 的/usr/bin/[
. 我想知道另一个条件测试仪[[
是否也是一个程序?
我问的原因是:我sudo
向某个用户授予了权限,让他触发 shell 脚本。出于安全原因,我添加了该脚本中使用的每个程序(echo
to/bin/echo
和[
to /usr/bin/[
)的完整路径,以便用户无法更改PATH
他的程序以使用他自己的程序。现在我想知道我是否也必须改变[[
。
time
我希望仅当已传递的命令time
成功时才显示命令的输出。像这样的东西:
( time wget -pq --delete-after https://www.example.com ) 2>&1 || echo fail
Run Code Online (Sandbox Code Playgroud)
问题是,如果wget
失败,我仍然收到输出time
(这是合乎逻辑的,因为它测量命令失败所需的时间)。我的目标是将输出保存到变量中,并在我的变量中包含0m0.100s
或fail
。有谁知道我该如何以体面的方式做到这一点?
我有一个包含大量文件的 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
档案中提取单个文件?
我希望 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
?
我有以下字符串:
-----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
- 我得到了相同的结果。
这种行为的原因是什么?
每次我在 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 个随机字符。但也许有人知道为什么会这样?
更准确地说:我知道这些-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
?这样做有什么好处吗?