Table of Contents

Corning Community College

CSCS1730 UNIX/Linux Fundamentals

PROJECT: The Next Puzzle Box (TPB1)

OBJECTIVE

To continue to cultivate your problem solving skills, and to demonstrate your basic scripting skills for task automation.

COMMENTARY

The first puzzlebox was in many ways a test of your observational skills. To many, the frustrations emerged from what was being taken for granted. But once you took proper notice, and could apply the appropriate skills, its secrets could be obtained.

This second puzzlebox will test both your observation skills (in a slightly different way) and reasoning skills in an abstract manner. Along with that, your scripting skills are being put to the test as well: your submission will more heavily rely upon a fully functional steps file that will entirely automate the process. If you are observant, the information you need is presented early on, but is a few layers of abstraction out of reach. Patience and perseverance will be key to victory.

PROCESS

Do note, the productive way to go about this project involves taking the following steps:

If you start too late, and do not ask questions, and do not have enough time and don't know what is going on, you are not doing the project correctly.

TASK

You are to unravel the puzzle, getting to the instructions inside. Be wary of deceptions and obstacles trying to throw you off track.

You are seeking the creation of two files, that you will submit:

EDIT

You will want to go here to edit and fill in the various sections of the document:

TPB1

In this puzzle box we'll be using tools such as stegsnow, to find hidden data in files, and other useful tools such as cut, paste, and tac to assemble our ASCII image results with the correct orientation.

The first thing we want to do as always is investigate the files we received from /var/public/fall2024/unix/tpb1. We can do so using the file command. We should investigate all of the files we received if we want to be thorough. We should have two files, a README and a text file of some sort. An example might be iliad.txt

TOOLBOX

  • file(1) - determine file type
  • head(1) - output the first part of files
  • tail(1) - similar to head except it outputs the lines from the bottom up (-n can be used to specify the number of lines
  • rev(1) - reverse lines characterwise
  • stegsnow(1) - hides or reveals messages within trailing spaces of ASCII text that may or may not be encrypted
  • tac(1) - reverses the order of lines in a file, delimited by newline characters by default (this can be changed with the -s option)
  • cut(1) - used to extract sections of lines using delimiters that can be defined by the user with the -d option. The -f option will also be pertinent
  • paste(1) - used to merge lines from multiple files side by side using a user defined delimiter
  • cat(1) - cat can be used to merge two files vertically (cat file1 file2 > file3)
  • * uniq(1) - report or omit reported lines
 

SUBMISSION

To be successful in this project, the following criteria (or their equivalent) must be met:

Submit Tool Usage

Let's say you have completed work on the project, and are ready to submit, you would do the following:

lab46:~/src/SEMESTER/DESIG/PROJECT$ submit DESIG PROJECT file1 file2 file3 ... fileN

You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.

RUBRIC

I'll be evaluating the project based on the following criteria:

78:tpb1:final tally of results (78/78)
*:tpb1:submitted tpb1.results file via submit tool [8/8]
*:tpb1:submitted tpb1steps file via submit tool [8/8]
*:tpb1:both files pushed to lab46 semester repository [8/8]
*:tpb1:tpb1.results is correctly unscrambled and assembled [8/8]
*:tpb1:tpb1.results md5sum matches project MANIFEST [8/8]
*:tpb1:tpb1steps has valid list of non-interactive instructions [8/8]
*:tpb1:tpb1steps uses shell features like wildcards, IO redir [8/8]
*:tpb1:tpb1steps contains comments explaining process [6/6]
*:tpb1:tpb1steps automates the project when executed [8/8]
*:tpb1:tpb1steps when executed outputs nothing [8/8]

Pertaining to the collaborative authoring of project documentation

Additionally