Skip to Content

Unix Terminal Cheat Sheet

Below is a table of the most common unix terminal commands and what they do. Always remember that when using a terminal, your terminal is in a particular directory (also called a folder), and the commands you do are going to operate relative to that directory, or on files in that directory.

Command Meaning
pwd print working directory: it shows you what folder/directory you are in
ls list directory: it shows you what files and sub-directories are in here
ls -a list all: it will include hidden names that begin with a dot
ls -l list long: it will include detailed information about each file
cd dir change directory: this changes the folder/directory that your terminal is in; dir is relative unless it begins with a / (forward slash); . and .. are special directory names that mean current directory and parent directory
cd cd with no argument moves you back to your home directory
cat filename prints the contents of the file onto your terminal
more filename like cat, except it displays one page at a time
mkdir dirname makes a new subdirectory (sub-folder) inside the current one
rm filename deletes a file; be careful if you are in a Git workspace!
mv filename newname renames a file, possibly moving it into a different directory; be careful if you are in a Git workspace!
pico filename edits a text file inside the terminal window; control actions are listed at the bottom
gedit filename & pops up a separate editor window application, and edits the file; the & symbol makes the application run in the background, so you get a command prompt back immediately
code . & starts VSCode and opens the current directory as a project
man command bring up a manual page that describes the command. Try “man cd” for fun!
Common Compiling Commands
g++ -o execname filename.cpp compile the program in filename.cpp and name the output executable program execname (often the root of the source file name)
g++ -c filename.cpp compile the source file only to object code; do not try to create an executable; resulting file is filename.o
g++ -o execname many-files create an executable from many source and/or object files
make target use the available Makefile to build the named target
g++ -Wall other-compiling-args tell g++ to warn you about everything; very good!
gcc options_as_above compile a plain-C program (not C++)
Common Git Commands
git clone URL makes a new clone of a Git repository
git pull fetches and merges external changes of a Git repo into this one
git add filename tells Git to stage the file for committing
git commit -m ‘message’ commits the currently staged changes, with the commit message as given; always provide a commit message!
git push pushes the local commits up to the remote repository (on GitHub, perhaps)
git mv filename newname changes the name of a file in a Git workspace and tells Git about the new name
git rm filename removes a file in a Git workspace and tells Git about it; the file will still be in the repository! (as history)

You can also do some special operations on your command line after the command and any arguments you give it.

Operation Meaning
cmdline & put the command in the background, meaning a command prompt comes back immediately and does not wait for the command to finish
cmdline > filename redirect any output from this program into the named file
cmdline < filename take the contents of the file and use it as input to this command
cmdline | cmdline take the output of the first command and use it as input to the second command; this is called a command pipeline
Ctrl-C stop and kill whatever command is out of control, possibly your own program in an infinite loop!
Ctrl-Z stop and suspend whatever command is running; you can then enter the command bg to let it continue in the background
Ctrl-D end input to a command; if a command is taking input, this tells it the end of input has been reached