短いコマンドでユーザーとサーバーを識別する方法は?

短いコマンドでユーザーとサーバーを識別する方法は?

私は学生にUnixオペレーティングシステム(およびLinux)の基本を4週間教えてきました。次に私は彼らに宿題を与えたいと思います。今回が初めてなので、質問や課題は難しくありません。私の唯一の実際の目標は、学校、家、どこでも誰もが自分のUnix環境にアクセスできるようにすることです。また、彼らがお互いの答えをコピーしたことを確認したいと思います。彼らはコピーして共有するのが好きです。

学生が答えを書くことができる紙が提供されます。最初の質問は「1. 名前、学番2番目は次のとおりです。

2. 次のコマンドの出力は何ですか?

whoami、、、whoまたはwho|tail -1短くするために同じコマンドを考えてみましたが、hostnameすべて弱点があります。

背景知識:学校には独自のUnixユーザーアカウントがなく、他のワークステーションで同じユーザー名を使用します。対話型サーバーもありません。一部の学生は、Linuxがインストールされた起動可能なフラッシュドライブを持っています。 MacBookをお使いの方もいらっしゃいます。ほとんどの学生には、Unixの使い方を知っている友人が1〜2人います。

だから私は2番目の質問のアイデアを探しています。私はその答えが本物であり、誰もが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.

おすすめ記事