我们知道用户的密码保存在 中/etc/passwd
,但是以加密方式保存的,所以即使是 root 也看不到它们:
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
Run Code Online (Sandbox Code Playgroud)
如上图,:x:
代表密码。
有没有办法(可能的配置)以/etc/passwd
明文形式保存密码,以便 root 可以看到它们?
我试图将多个参数传递给一个函数,但其中一个由两个词组成,我希望 shell 函数将它作为一个参数来处理:
args=("$@")
function(){
echo ${args[0]}
echo ${args[1]}
echo ${args[2]}
}
Run Code Online (Sandbox Code Playgroud)
当我调用这个命令时 sh shell hi hello guys bye
我明白了
hi
hello
guys
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是:
hi
hello guys
bye
Run Code Online (Sandbox Code Playgroud) 跑步时
echo abcd | wc -c
Run Code Online (Sandbox Code Playgroud)
它返回5
。
但是这个词abcd
只有4个字符长。
被echo
打印的字经过一些特殊字符abcd
?
我可以阻止echo
打印吗?
根据 Stack Overflow 问题如何使用 sed/grep 提取两个单词之间的文本中的答案?,我们可以得到两个单词之间的文本:
sed -n "/first/,/second/p" file
Run Code Online (Sandbox Code Playgroud)
但是如果我想在一个单词和文件的最后一行之间获取文本怎么办,如下所示?
sed -n "/word/,/lastline/p" file
Run Code Online (Sandbox Code Playgroud) 我们知道覆盖bar.txt
,我们可以使用这个:
echo "foo" > bar.txt
Run Code Online (Sandbox Code Playgroud)
但是我们如何覆盖标准输出呢?我试过这个命令:
echo "foo" >
Run Code Online (Sandbox Code Playgroud)
但它失败了。我想要这个,因为我想打印这样的东西:
Hello
world
I'm
HERE
Run Code Online (Sandbox Code Playgroud)
一次一个词,我想删除前一个词(在标准输出中一次一个词)。