小编Som*_*nha的帖子

为什么 systemctl\ {restart,status}\ sshd\; 工作?

通过 echo 时上述命令的输出是:

# echo systemctl\ {restart,status}\ sshd\;
systemctl restart sshd; systemctl status sshd;
Run Code Online (Sandbox Code Playgroud)

即使我将输出粘贴到终端,该命令也能工作。但是当我尝试直接运行命令时,我得到:

# systemctl\ {restart,status}\ sshd\;
bash: systemctl restart sshd;: command not found...
Run Code Online (Sandbox Code Playgroud)

我有两个问题..

  1. 这种替换和扩展的方法到底叫什么?(以便我可以研究它并了解有关它的更多信息以及如何正确使用它)。
  2. 我在这里做错了什么?为什么不起作用?

command-line bash brace-expansion

14
推荐指数
3
解决办法
1926
查看次数

modprobe 和 sysctl -w 在设置系统参数方面的区别?

我们知道 sysctl 命令可以通过以下方式更改内核参数:

# sysctl -w kernel.domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

或直接编辑/proc/sys目录中的文件。对于持久更改,必须将参数写入/etc/sysctl.d/<moduleName>.conf文件,如下所示:

# echo kernel.domainname="example.com" > /etc/sysctl.d/domainname.conf
Run Code Online (Sandbox Code Playgroud)

但是,我们也可以使用 modprobe 命令更改内核参数:

# modprobe kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

然后是/etc/modprobe.d目录中的 modprobe.conf 文件,它存在于多个位置:/etc/modprobe.d/usr/lib/modprobe.d. 它包含多个.conf文件,可以在模块的相应 conf 文件中提供选项,如下所示:

options kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

那么,每种方法之间有什么区别呢?在什么具体情况下应该使用哪种方法?

kernel modprobe sysctl kernel-parameters

6
推荐指数
1
解决办法
1251
查看次数

Bash printf 格式不起作用!

我的脚本是:

#!/bin/bash
num1=32.55
num2=145.958
printf "%5.2f\n" $num1
printf "%5.2f\n" $num2
Run Code Online (Sandbox Code Playgroud)

输出是:

32.55
145.96
Run Code Online (Sandbox Code Playgroud)

代替:

   32.55
  145.96
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?如果有帮助,我正在使用 Fedora 27 BetaLinux Kernel 4.13.8-300.fc27.x86_64

bash printf text-formatting

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