User Tools

Site Tools


Sidebar

projects

wcp1 (due 20240828)
wcp2 (due 20240904)
pct0 (bonus; due 20240905)
pct1 (bonus; due 20240905)
pct2 (due 20240905)
abc0 (due 20240906)
dac0 (due 20240911)
pct3 (bonus; due 20240911)
wcp3 (due 20240911)
gtf0 (due 20240918)
pct4 (due 20240918)
wcp4 (due 20240918)
pct5 (bonus; due 20240926)
tpb0 (due 20240926)
wcp5 (due 20240926)
gfo0 (due 20241002)
pct6 (due 20241002)
tpb1 (due 20241002)
wcp6 (due 20241002)
pct7 (bonus; due 20241009)
usr0 (due 20241009)
wcp7 (due 20241009)
bwp1 (bonus; due 20241016)
pct8 (due 20241016)
tpb2 (due 20241016)
wcp8 (due 20241016)
pct9 (bonus; due 20241023)
wcp9 (due 20241023)
wpa0 (due 20241023)
fwg0 (due 20241030)
gfo1 (due 20241030)
pctA (due 20241030)
wcpA (due 20241030)
pctB (bonus; due 20241106)
upf0 (due 20241106)
wcpB (due 20241106)
ldg0 (due 20241113)
pctC (due 20241113)
wcpC (due 20241113)
pctD (bonus; due 20241120)
wcpD (bonus; due 20241120)
bwp2 (bonus; due 20241204)
gfo2 (due 20241204)
pctE (bonus; due 20241204)
wcpE (bonus; due 20241204)
EoCE (due 20241216)
haas:fall2024:unix:projects:pbx1

Corning Community College

CSCS1730 UNIX/Linux Fundamentals

Project: ANOTHER PUZZLEBOX (pbx1)

Errata

  • any bugfixes or project updates will be posted here

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.

Toolbox

You might want to consult the following manual pages before commencing on the project:

  • cat(1)
  • cut(1)
  • grep(1)
  • head(1)
  • paste(1)
  • sort(1)
  • tail(1)
  • tr(1)
  • uudecode(1)
  • uniq(1)

Note

While you may need to install any needed packages and perform investigations on your pi to perform tasks related to this project, do keep in mind that for the actual solving of the puzzlebox:

  • you do NOT need to call upon sudo / root access in any way (solutions containing such steps will be considered to not be following the spirit of the project)
  • all actionable steps taken are to be done using non-interactive tools. There is zero need to make use of an interactive tool like nano. Solutions that make central use of interactive tools will be considered to not be following the spirit of the project.

While you as a user investigating things may end up using various tools to see what is going on, your resultant steps file is to only be representative of the core automated/non-interactive task the computer is performing (with value-added comments giving pertinent clued-in information as a result of your observations and investigations).

Obtain the file

This week's project is located in the pbx1/ sub-directory of the UNIX Public Directory, under a directory by the name of your username, there should be 2 files. One named README, and the other containing pbx1 in its name.

Make a copy into your home directory somewhere and set to work.

NOTE: Hopefully it has been standard practice to locate project files in their own unique subdirectory, such as under src/SEMESTER/unix/, where you can then add/commit/push the results to your repository (you ARE regularly putting stuff in your repository, aren't you?)

Process

As with the first puzzle box, you are on your own. Use your skills, your observations, and your experiences gained to unravel this new puzzle.

Be observant, explore ideas, read about and learn how to use various tools (both familiar, but in potentially new/different ways, as well as entirely new tools).

Your pbx1steps file is expected to be an operational script that will fully automate the project (from initial copy/creation of local project data directories right up until, but not including, the final submit line).

As such, you are expected to make use of various shell features, such as:

  • wildcards
  • variables
  • I/O redirection

These features will also serve to simplify your script, allowing it to be cleaner and less error-prone.

Verification

The final file, when correctly unscrambled and assembled, can be verified by generating its md5sum hash.

This hash should match the hash stored inside the MANIFEST file located in the project directory (in the public directory).

Submission

In addition to the file produced during the completion of this project, I would also like for you to create a detailed step-by-step text file called pbx1steps which includes the valid command-lines that will document for me the steps you took from project commencement through completion. You will submit this file at the end in accordance with the instructions.

When you see an ordered english-readable file with ASCII art in it, you have reached the conclusion of the unraveling. Submit that file (by the appropriate name), along with the pbx1steps file.

To successfully complete this project, the following criteria must be met:

  • Submit your pbx1.results
  • Submit your pbx1steps file

To submit this program to me using the submit tool, run the following command at your lab46 prompt:

$ submit unix pbx1 pbx1.results pbx1steps
Submitting unix project "pbx1":
    -> pbx1.results(OK)
    -> pbx1steps(OK)

SUCCESSFULLY SUBMITTED

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.

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

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

Additionally:

  • Solutions not abiding by spirit of project will be subject to a 50% overall deduction
  • Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
  • Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction
  • Solutions not organized and easy to read are subject to a 25% overall deduction
haas/fall2024/unix/projects/pbx1.txt · Last modified: 2023/03/14 15:43 by 127.0.0.1