24wi ver.

Note: this is for the Winter 2024 iteration of CSE 391. Looking for a different quarter? Please visit https://courses.cs.washington.edu/courses/cse391/.

These questions are included to facilitate question during our scheduled class time on Tuesdays. They are not graded and you don’t need to submit your answers anywhere - they’re just here to help you get practice with the material.

  1. We won’t have time to cover all the commands we want to in this class. Lots of useful commands will be included in the lecture slides. You’ll need this for your homework - try finding the commands that do the following:

    1. Move a file from one location to another
    2. Delete a file
    3. Copy a file
    Solution
    1. mv src dest
    2. rm file
    3. cp src dest
  2. Do you know the difference between the terminal and the shell? If not, do you have any educated guesses?

    Solutions

    A terminal is your way of interacting with your computer in a text-based environment. For example, Macs come with the “Terminal” program or you can install “iTerm” that has more customizations. A shell is a program someone wrote run in a terminal that interprets the commands you type and presents output. There are different types of shells written by different people (e.g., bash, zsh, fish, etc.).

  3. What is the command to list all files in the current directory, and recursively list the files in all subdirectories?

    Solutions

    ls -R

    We found this by using man ls to see the ls documentation. Then by typing / we were able to start searching the page for the term “recursive”.

  4. What is the flag we would pass to ls to sort files by size? (try searching the man page instead of just scrolling!)

    Solutions

    ls -S

  5. Using ssh, can you print out the contents of your home directory on attu without logging into attu? (You’ll still need your password, but you can do this without opening a login shell on attu).

    Solutions

    ssh <username>@attu.cs.washington.edu ls

    The important part of this problem is not the ssh command itself, but to look at the format of man ssh to see it’s something like ssh destination [command]. Things in square brackets are optional while things without square brackets are required. The way of reading this is to say that ssh requires a parameter destination and optionally, you can pass a command to run on the destination.

  6. find is a command that we will learn about more in this class that allows you to search through your file system. Suppose that we are in the lecture1 directory from the videos (i.e. we have a dir1 and dir2 subdirectory). Without actually running the command, do you think we could run find dir1 dir2 (i.e. give it two directories are arguments)? Why or why not?

    Solutions

    Yes! If you look at man find, you see the synopsis say

    SYNOPSIS
           find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]
    

    The pertinent part is [starting-point...]. The square brackets mean this argument is optional and the ... means it can accept one or more of them.