"Command-line Computing" Exercise
Command-line Application
Open the Terminal application (Mac) or the Git Bash application (Windows).
Git Bash (Windows OS)
FYI: Windows users who are into maximum efficiency through keyboard shortcuts can get there quickly by pressing the "windows" button, then begin typing the word "git", then hit enter when you see "Git Bash" show up. 😺
Terminal (Mac OS)
FYI: Mac users who are into maximum efficiency through keyboard shortcuts can get there quickly by pressing the "command + space" buttons to start a spotlight search, then begin typing the word "terminal", then hit enter when you see "Terminal" show up. :smiley_cat:

FYI: Mac users who are interested in customizing Terminal app color themes and keyboard shortcuts can reference the professor's Terminal app configuration notes. :smiley_cat:
Instructions
After typing each of the commands below, press "enter" to execute it.
Optionally clear previous terminal output at any time by pressing "command + k", or by typing clear and pressing "enter".
Current User
Display the current user's name:
whoamiPresent Working Directory
Display the current/present working directory:
pwdListing Files in a Directory
List files in the current working directory:
ls
ls -al # for a different displayNavigating and Managing Directories
Change directories (specifying an absolute file path):
cd ~/DesktopFYI: the tilde (
~) represents your "home" filepathFYI: you can use
cd ..to move "up" one directory relative to the current working directory
Open a directory via the operating system's filesystem explorer:
# Mac Terminal:
open .
# Windows Git Bash:
explorer .Make a new directory:
mkdir my_folderRemove a directory:
rm my_folder # triggers an error
rm -rf my_folder # recursively (-r) forces (-f) removalManaging Files
Setup a new directory in which to add some files, and navigate into that directory:
mkdir my_folder
cd my_folderCreate one or more files in the new directory you just created:
touch README.md
touch index.html
touch my_data.csv
touch my_message.txtRemove a file:
rm index.htmlEdit and save a file, using a command-line utility provided by your preferred text editor (like VS Code):
code my_message.txt # may first require installation of shell commands from the settingsNOTE: Mac users may need to first configure the
codecommand by following these VS Code shell command setup instructions
Display file contents:
cat my_message.txtMove a file:
mv ~/Desktop/my_folder/my_message.txt ~/DesktopFYI: If you are into maximum efficiency, press "tab" to auto-complete file paths so you don't have to type the whole thing. :smiley_cat:
Copy a file:
cp ~/Desktop/my_message.txt ~/Desktop/my_folderCopy contents of a file into the clipboard for pasting:
# Mac OS:
pbcopy < ~/Desktop/my_folder/my_message.txt
# Windows OS:
cat ~/Desktop/my_folder/my_message.txt | clip
# ... then just paste as you normally would after copying some textFurther Exploration (Mac only)
There are many other utilities to use from the command-line.
First, turn up the volume on your computer so everyone around you can hear, then make it speak:
say "Hello, I am your computer. Let's be friends." # or something else polite and appropriateOptionally explore additional command-line interfaces, if you're curious.
Internet Computing
Trace the route traveled by a network request:
traceroute google.com
# ... stop after a few seconds if necessary by pressing: control + cTime the duration of a network request:
ping google.com
# ... stop after a few seconds if necessary by pressing: control + cRequest the contents of a webpage:
curl google.com
curl http://www.google.com
curl https://raw.githubusercontent.com/prof-rossetti/intro-to-python/master/data/products.jsonLast updated
Was this helpful?
