我尝试编写一个脚本来获取我的发行版的版本,以便我可以将它传递给一个变量。以下命令是我为实现结果而编写的。
lsb_release -ar | grep -i release | cut -s -f2
Run Code Online (Sandbox Code Playgroud)
不需要的输出:
No LSB modules are available.
18.04
Run Code Online (Sandbox Code Playgroud)
如您所见,该No LSB modules are available
消息是不需要的部分。因为我更喜欢我的脚本可以跨服务器移植,所以除了使用lsb_release -a
命令之外,我不想安装任何额外的包。
我被分配生成一个脚本,该脚本可以禁用 ssh 服务的密码登录。知道我可以通过编辑 /etc/sshd_config 文件来执行此操作,但我的导师提到我应该查看的文件是 /etc/password 文件。这是我执行此任务的提示。这就是我所做的,我删除了用户中的“x”符号。我相信该字段是为散列密码保留的。
原本的
pi:x:1000:1000:,,,:/home/pi:/bin/bash
Run Code Online (Sandbox Code Playgroud)
编辑后:
pi::1000:1000:,,,:/home/pi:/bin/bash
Run Code Online (Sandbox Code Playgroud)
结果:没有密钥,我只能重新输入传递窗口。
为清晰起见更新:该脚本应用于回复公钥和私钥,以便登录 pi 服务器。换句话说,我尝试使用无密码登录,使其成为加强安全性的功能。
<source file='/home/anpham/Projects/vm-builder/30G'/>
Run Code Online (Sandbox Code Playgroud)
我尝试使用 sed 命令从上面的输出中提取绝对路径,但输出没有修剪字符串。以下命令是我的尝试。
virsh dumpxml --domain "test1" | grep 'source file' | head -1 | sed '/^<source$/d'
Run Code Online (Sandbox Code Playgroud)
输出仍然是:
<source file='/home/anpham/Projects/vm-builder/30G'/>
Run Code Online (Sandbox Code Playgroud)