0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

USS でシェルを使い、ジョブを回して出力を整理する(IBM Z Xplore USS1)

0
Posted at

Series: IBM Z Xplore — Fundamentals + Concepts | Challenge: USS1 | Beginner, Fundamentals | 60 minutes
Platform status: Completed (as of 2026-11-03)
Prerequisite: VSC1, FILES1, JCL1. Source: IBM Z Xplore official USS1 challenge documentation, plus my own practice.

USS とは、一言でいうと

USS(UNIX System Services)は、z/OS の中にある POSIX 準拠の UNIX 環境です。別のマシンではありません。すでに使ってきた z/OS と同じシステム API の上で動きますが、整理の仕方は UNIX 流で、ディレクトリの中にディレクトリ、ディレクトリの中にファイルがあります。FILES1 で学んだデータセットとメンバーという整理の仕方と並んで存在します。COBOL のプログラマーには両方が必要です。ソースや業務データはデータセットにあることが多く、スクリプトやモダンなツールは USS にあることが多いからです。

パート 1 — シェルに入る

  1. VS Code でターミナルを開き、まず PowerShell から CMD に切り替えました。チュートリアルに、PowerShell で ssh を使うとパスワードが合っていても Permission denied になることがあると書いてあったからです。PowerShell のプロンプトで cmd と打ち、次に ssh z70127@204.90.115.200 と打ちました。
  2. 最初のパスワード入力は Permission denied, please try again. と返ってきました。もう一度入力したら入ることができました。チュートリアルが間違っていたわけではなく、最初の入力が失敗しただけで、打ち直したら解決しました。
  3. ログイン後のバナーには IBM Z Xplore learning platform、UNIX System Services 3.1 と表示され、集中管理されているツールは自分で入れ直さないこと、仮想環境を作らないこと、許可なく製品を入れないこと、商用のソースコードをアップロードしないこと、といった注意書きがありました。プロンプトの前には /etc/zprofile:338: FSUZ0155 no matches found: /z/z70127/.npm/_logs/*.log という行も出ましたが、何も妨げなかったので、そのまま進めました。
  4. 最初の ls では tmp しか表示されませんでした。uss-setup を実行すると "Hi and welcome to the ZXPLORE UNIX System Service Challenges!" と返ってきて、もう一度 ls を実行すると、ホームディレクトリはチュートリアルの例よりもずっとにぎやかでした。animals.sh、assembler、cobol-check.config.properties、codeathons、directory1、dslist.py、movie-data.csv、members.py、odbc など、これまでの作業で残ったものが並んでいました。実際のホームディレクトリは教科書のきれいな例ではない、という当たり前のことを思い出させられました。
    image-43.png

パート 2 — 移動と、ファイルの作成

  1. pwd で自分の位置を確認すると /z/z70127 でした。cd ~ でホームに戻り、cd directory1 で入り、pwd で /z/z70127/directory1 を確認し、cd .. で 1 つ上に戻りました。
  2. 次に自分のものを作りました。touch mynewfile と mkdir mynewdir を実行し、ls で確認しました。一覧には mynewdir と mynewfile が加わり、そのほか code1.py、code2.py、go2、hackathons、j2p、scramble.sh、secret.txt、test、zosmf なども並んでいました。この時点では削除せず、後の du の出力でも両方とも 0 と表示されました。空のファイルと空のディレクトリなら、当然の結果です。
    image-44.png

パート 3 — Zowe でも同じファイルを見る

  1. シェルは入口の 1 つで、Zowe はもう 1 つの入口です。Zowe Explorer の USS ビューで、フィルターを自分のホームディレクトリ /z/z70127(すべて小文字)に設定しました。ターミナルと Zowe で同じホームディレクトリが見えることが、ここでの要点でした。USS のファイルはターミナルの中に閉じているわけではなく、データセットだけがシステムの中身を見る方法でもありません。このチャレンジの残りは、学ぶべきはコマンドを打つこと、確認に使うのはビューだという理由で、ターミナルで進め、Zowe で確認しました。
    image-45.png

パート 4 — 秘密の解読

  1. 課題は、/z/public/secret.txt に対して scramble.sh を実行し、解読できる回転数を見つけることでした。このプログラムは第 1 引数にファイル、第 2 引数に回転数をとり、小文字にしか効きません。数が合えば解読した出力が、合わなければ意味不明な文字列が出ます。
  2. 試した順番は 13、7、3、12 でした。どれも "Processing..........Done!" の後に読めない文字列が出るだけでした。5 回目の 17 で、"congratulations! you unscrambled the message in the uss challenge!!" と出ました。方法はこれだけです。近道はなく、4 回の間違いを捨て、1 回の正解を残しただけです。数を試し、出力を読み、「これではない」と判断すること自体が作業であって、作業の前の失敗ではありません。
    image-46.png

パート 5 — リダイレクトと、ファイルをきちんと作ること

  1. リダイレクトは、> と >> が理論でなくなる場所です。成功したコマンドをもう一度実行し、末尾に > ussout.txt を付けて、出力を画面ではなくファイルに入れ、cat ussout.txt で確認しました。その後は上書きせず、追加だけをしました。まず du -ak >> ussout.txt、次に date >> ussout.txt です。この違いは重要で、ステップ 11 や 12 で上書きしてしまったら、解読したメッセージが消えてしまいます。
    image-47.png
  2. du -ak はキロバイト単位のディスク使用量を、カレントディレクトリとその下すべてについて(-a)一覧にします。自分のホームディレクトリは合計 694 で、一覧にはこれまでのチャレンジの残り、作ったばかりの 0 サイズの mynewfile と mynewdir、そして ussout.txt 自体の 8 が含まれていました。最後の cat ussout.txt では、解読したメッセージ、次に du の出力、最後に日付 Tue Nov 3 00:37:34 CST 2026 という正しい順番で並んでいました。
    image-48.png

パート 6 — 検証

  1. ZXP.PUBLIC.JCL から検証ジョブ CHKUSS1 をサブミットしました。Jobs ビューには @USS1(JOB02768) - SOW1 - CC 0000 と表示されました。次にプラットフォームに Challenge Complete のオーバーレイが出て、"Great work — your progress has been recorded." と表示されました。これが証拠で、自分の言葉だけではありません。
    image-49.png
    image-50.png

COBOL にとってなぜ重要か

USS がなければ、COBOL のプログラマーはシステムの半分にしか入れません。データセットにはソースとデータがありますが、ファイルを動かし、スクリプトを実行し、ディスク使用量を確認し、リダイレクトでコマンドをつなげるのはシェルです。次のチャレンジ Code も USS の中で Python を使うので、これは寄り道ではありません。次に進むための作業環境そのものです。最も持ち帰ったのは、個別のコマンドではなく、習慣です。コマンドを実行し、実際の出力を読み、それから次に何をするか決める。スクランブルの試行も、> と >> の区別も、まさにその習慣を報いるものでした。

次回:Code — z/OS のメインフレーム上で直接 Python を使ったプログラミングの基礎(120 分)。

個人学習ブログ原文:https://github.com/YuQing-ai/CobolNote/issues/6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?