Table of Contents
Textbook
The class has one required textbook: Computer Systems: A Programmer’s Perspective, 3rd Edition by Bryant and O’Hallaron. We will also be using an online Wikibook, C Programming, when we learn about C programing.
Learning Resources
Here are some other resources that might help you:
-
The original book on C, The C Programming Language.
-
Jan Schaumann has a lot of great videos on Advance Programming in the UNIX Environment.
-
Ben Eater has some great videos on how to build a computer, write assembly, and other computer topics.
-
Computerphile has approachable videos on various computing topics.
-
Chris has some tutorials on various Linux topics on his blog.
Linux Command Summary
For more information on the following commands, type man
and the name of the command to see a help manual for that command. You can open another terminal window at the same time to type the man
command and see the helpful text. Some commands, like alias
, are built into bash. For these, type man bash
to get help. If you type man <command>
and the response is No manual entry for <command>
, it is likely built into bash. Online help is also available for shell built-in commands and other core commands.
Command | Description |
---|---|
alias | define an alternative to a command |
cat | concatenate files and print on standard output |
cd | change the current directory to another |
chmod | change file mode bits |
clear | clear the terminal screen |
cp | copy files and directories |
df | report file system disk space usage |
diff | compare files line by line |
echo | print a string of text |
exit | end shell session and close terminal |
find | search for files in a directory hierarchy |
free | display amount of free and used memory in the system |
grep | scan files and print lines that match patterns |
groups | print the groups a user is in |
head | output the first part of files |
history | list recently typed commands |
kill | send a signal to a process (usually to end it) |
less, more | show the contents of a text file |
ls | list directory contents |
man | show help information about Linux commands |
mkdir | make directories |
mv | move or rename files |
passwd | change user password |
ping | send an echo request to another machine |
ps | list the current processes |
pwd | print name of current directory |
rmdir | remove empty directories |
ssh | login to a remote machine |
tail | output the last part of files |
tar | an archive utility for (de)compressing files |
top | display Linux processes |
uname | print system information |
who | show who is logged on |
If you want even more commands at a glance, check out this cheat sheet.