我已经教我的学生 Unix 操作系统(和 Linux)的基础知识四个星期了。接下来我想给他们布置一个家庭作业。这是第一个,所以问题和任务不会很难。我唯一的实际目标是确保每个人都可以访问自己的 Unix 环境,无论是在学校、家里还是任何地方。我还想看看他们是否互相复制了答案。他们喜欢复制和分享。
会有一张纸供学生填写答案。第一个问题是“1.姓名、学号”。第二个将类似于:
”2. 以下命令的输出是什么?”
我一直在考虑像whoami
、who
、 或者可能who|tail -1
为了保持简短而使用的命令,hostname
但它们都有各自的弱点。
一些背景:他们在学校没有自己的 unix 用户帐户,他们在不同的工作站上使用相同的用户名。也没有交互式服务器。有些学生有一个装有 Linux 的可启动闪存驱动器。有些人有 Macbook。大多数学生只有一两个知道如何使用 Unix 的朋友。
所以我正在寻求第二个问题的想法。我想看看答案是否真实以及每个人都在自己使用 Unix。
答案1
您可以使问题渐进且相互依赖。所以你可以:
运行
MAGIC=$(uuidgen)
并给出输出:echo $MAGIC
给出输出:
MAGIC_NUMBERS=$(printf '%d\n' "0x$(echo $MAGIC | cut -d- -f1)") echo $MAGIC_NUMBERS
给出输出:
echo "$MAGIC_NUMBERS * 3" | bc
修复以下命令并给出其输出:
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 列进行排序,您可以猜测谁正在分享答案(前提是您没有数千名学生)。