![shell输出问题](https://linux22.com/image/627/shell%E8%BE%93%E5%87%BA%E9%97%AE%E9%A2%98.png)
date -u +%W$(uname)|sha256sum|sed 's/\W//g'
(如果重要的话,在 Arch Linux 上)的输出是什么?
我怎样才能发现这一点?
答案1
date -u %W
显示一年中的当前周。
uname
显示内核名称。
sha256sum
生成 SHA-256 哈希和。
sed 's/\W//g'
剪切掉所有非单词字符。
' |
s 将第一个命令的输出重定向到附加命令。
在终端中输入该行 fegnome-terminal
或xterm
:
date -u +%W$(uname)|sha256sum|sed 's/\W//g'
根据日期和安装的操作系统,这将输出不同的哈希值,如下所示:
2aa4cb287b8a9314116f43b5e86d892d76a9589559aa69ed382e8f5dc493d955
答案2
1.“uname”部分
要回答第一个问题,关键是uname
Arch Linux 上不带参数的返回值。这手册页做不是定义它,但是uname 命令说它相当于uname -s
:
-s 显示系统名称。该标志默认打开。
对于-s
,手册页显示“打印内核名称”。 Arch Linuxuname
回归
Linux
而例如,西格文 uname
返回类似以下内容:
CYGWIN_NT-5.2-WOW64
2.“日期”部分
date -u +%W
返回周数。由于最后一部分(“Linux”)是固定字符串,因此最终输出取决于命令行运行的周(例如,计算哈希值“07Linux”)。有了这些知识,还可以在 Cygwin 上计算输出。
3. 一个例子
2012-02-18 的周数是 7 并date -u +%W`uname`
返回(有一个前导零,但这对于手头的任务来说是预期的)
07Linux
4a65f65b40cc2b0a7aaa726e895d72425ede255021e2ce3e935dd2719e4d33b9
在 Cygwin 上,它可以计算为:
echo '07Linux'|sha256sum|sed 's/\W//g'
(当我尝试注册时,这实际上有效建筑维基百科...)