Final Exam Study Guide
![]()
Special Note:
- The final exam is in person.
- The exam is performance based and will require access to a Linux Virtual Machine.
- If you do not have a laptop/computer you can bring to school, a Linux Computer will be made available to you.
Recommendations
- Arrive to the classroom 30 minutes before the exam starts (5:00 PM)
- This will allow you to test your virtual machine, perform any maintenance, test your internet connection, clone your repository, ask any question, and troubleshoot any hardware problem. If you cannot make it to the classroom 30 minutes earlier, try to at least get to the classroom 10 minutes before the exam start.
- Make sure your github repository is organized
- Since you are allowed to use your notes during your exam, it is to your benefit to have all your notes organized.
- I recommend creating a single document with all of notes and converting it to pdf. This will make it easier to find information.
- BE AWARE that you can only use your notes - NOT YOUR LABS - for the exam. So if I catch you looking at your labs, presentations, book, or the internet during the exam, this will constitute cheating and your exam will be terminated
- Update Windows and Debian the day before the final exam
- Before updating Debian, take a snapshot of your virtual machine.
- Do not update Virtualbox.
- Create a snapshot of your virtual machine after updating it. If anything goes wrong, you will be able to recover the state before and after the install.
- If you plan on using one of my computers:
- Arrive 15 to 30 minutes early
- You will need to clone your repository
- You will need to make sure everything works for you before the exam starts.
- The computer has a proper internet connection
- All of necessary markdown extensions are installed
- You can open your notes
WARNING Your lack of preparation does not constitute an emergency for me. There are no make up exams. You are either here for the exam or your are not! There is another class after our class. Which means that the exam starts at 5:40 and ends at 7:00 on the dot! You must save the last 10 minutes of the exam to prepare your submission.
Commands to study
- Make sure you understand them well. Include in your notes 3 - 5 examples that you understand and can use without any challenge.
-
Don’t memorize instead practice and understand the syntax and the output of each command.
awkcatcpcutgrepheadlsmanmkdirmvtactailtouchtrtree
Concepts to study
Working with Git, GitHub, and Markdown
- How to clone a github repository
- How to use the git commands
- How to write a markdown file that contains images and proper formatting
- How to convert a markdown file to pdf
How to Practice?
- Create a repository in github. Give it any name you want.
- Clone the repository in your virtual machine
- Open the repository/folder/directory in vs code
- Create a markdown file inside containing random text. Make sure you have headings, images, paragraphs, bullet points etc…
- Convert the file to pdf
- Push everything to github
- Do you see the files there?
- Add a couple more pdf files by repeating the process.
- Did you get lost? if so, you know what you need to study!
Linux Specific Concents
- How to compress (zip) a directory/folder (the same as in windows or mac)
- The linux filesystem
- Absolute path and relative path
- When should you use absolute vs relative
- Moving around the filesystem with absolute and relative (pwd,cd, ls, and tree)
- How to work with multiple terminals open?
- How to work with the manual pages (man command)?
- How to parse (search) for specific words in the manual page
- How to redirect output
(>, >>, and |) - How to append the output of a command to a file
- How and when to redirect the output of a command to another (pipes)
- How to use echo and output redirection to create a new file that contains some text
- How to use wildcards
- For copying and moving multiple files at the same time
- How to use brace expansion
- For creating entire directory structures in a single command
How to practice?
- Go through the presentations and try to do the practice without looking at the solutions.
- Go over all the challenge questions. Do them again using only your notes as reference. That will allow you to know if you need to enhance them or if they are good enough for the final
- Did you get lost? Where? Why? Get to the answer without using google or chatgpt. Annotate and add those annotations to your notes
- Need more help? Take a look at the extra section of the website and the youtube channel
Regarding shell scripting:
How to practice shell scripting for your final exam.
Challenge yourself to write these scripts. Try to do them on your own simply using your notes and the presentation. Every time you find yourself lost, take notes of the problem and the solution so that you can have it for reference.
Script 1: Using Echo and environment variables
Write a shell script that will display the following output:
The challenge here is to:
- Use echo to display messages that include tabs and new lines
- Use echo and environment variables together
- In this screenshot I use HOME, USER, PWD, and OLDPWD
- There is also a cd command in there
Script 2: Using user defined variables and user input
NOTE For Spring 25 Students: This script (script 2) does not apply to you as the concept of user input was not covered. Please skip this script during your studies.
Write a shell script that will ask the user several questions, store the responses in variables and then use those variables in a single echo command. The output should look like this:
The challenge here is to:
- Collect user information and store it in a variable
- Use the variables in an echo command to generate a multi line message
- You have to use a single echo command
Script 3: Drawing a box
Create a script that generates this output. Here are the special characters:
┌
┐
└
┘
│
─