如何用简短的命令来识别用户和服务器?

如何用简短的命令来识别用户和服务器?

我已经教我的学生 Unix 操作系统(和 Linux)的基础知识四个星期了。接下来我想给他们布置一个家庭作业。这是第一个,所以问题和任务不会很难。我唯一的实际目标是确保每个人都可以访问自己的 Unix 环境,无论是在学校、家里还是任何地方。我还想看看他们是否互相复制了答案。他们喜欢复制和分享。

会有一张纸供学生填写答案。第一个问题是“1.姓名、学号”。第二个将类似于:

2. 以下命令的输出是什么?

我一直在考虑像whoamiwho、 或者可能who|tail -1为了保持简短而使用的命令,hostname但它们都有各自的弱点。

一些背景:他们在学校没有自己的 unix 用户帐户,他们在不同的工作站上使用相同的用户名。也没有交互式服务器。有些学生有一个装有 Linux 的可启动闪存驱动器。有些人有 Macbook。大多数学生只有一两个知道如何使用 Unix 的朋友。

所以我正在寻求第二个问题的想法。我想看看答案是否真实以及每个人都在自己使用 Unix。

答案1

您可以使问题渐进且相互依赖。所以你可以:

  1. 运行MAGIC=$(uuidgen)并给出输出:

    echo $MAGIC
    
  2. 给出输出:

    MAGIC_NUMBERS=$(printf '%d\n' "0x$(echo $MAGIC | cut -d- -f1)")
    echo $MAGIC_NUMBERS
    
  3. 给出输出:

    echo "$MAGIC_NUMBERS * 3" | bc
    
  4. 修复以下命令并给出其输出:

    bc <<< $MAGIC_NUMBERS - 4 >> $MAGIC && cat $MAGIC
    

显然,您需要在某处声明必须在同一会话中按顺序回答问题。

$MAGIC重复变量的概率uuidgen是无穷小的,但我在这里使用的一些处理命令有点困难。如果您使用bc.

答案2

正如评论中所说

uname -a ; who am i

uname -a提供有关系统的信息

Linux mybox 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

who am iw告诉unix用户

archemar pts/0        2014-09-15 09:41 (172.16.17.77)

这当然可以在您的学生中复制(例如)

 Linux anotherbox 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

通过对 uname -a 列进行排序,您可以猜测谁正在分享答案(前提是您没有数千名学生)。

相关内容