CSCE 215: Unix/Linux FUndamentals
Course Summary:
This course introduces the fundamentals of UNIX/Linux with emphasis on using the command-line interface and shell. The topics covered in the course are:
Navigating the File System using the Shell
The VIM Text Editor
Command Line Arguments and Options
STDIO Redirection and Pipes
Wildcards and Regular Expressions
Shell Scripting and Makefiles
Permissions, Processes, and Jobs
Lecture 00
In this lecture, we discuss the course's structure and some historical and background information about computing, operating systems, and UNIX/Linux.
Lecture 01
This lecture teaches students the fundamental shell commands found in most UNIX/Linux systems including cd, ls, mv, rm, etc. We also briefly cover the file system hierarchy.
Lecture 02
In this lecture, we cover the basics of the VIM command line-based text editor. We discuss how to open files in VIM, edit them, and then subsequently save and quit them.
Lecture 03
This lecture focuses on expanding the functionality of the base navigational and fundamental commands learned in previous lectures including how to use options that enable verbose output, etc.
Lecture 04
This lecture introduces the concept of STDIO redirection and piping. This lecture covers what STDOUT, STDERR, and STDIN are and how to redirect them using operators such as >, >>, <, <<, and the pipe |.
Lecture 05
In this lecture, we briefly go over the SSH and SCP commands. We then go over several important symbols in constructing regular expressions and give some examples of regular expressions and how they are useful in application.
Lecture 06
In this lecture, we discuss how to search for patterns using regular expressions in the grep, sed, and find commands. We show how grep can be used for searching through the text inside of files and how sed can search and replace inside of files. Finally, we show how find can be used to locate files and directories inside of the filesystem.
Lecture 07
This lecture presents the idea of permissions with respect to the chmod command. We first briefly introduce binary to decimal conversion and then we use this conversion in changing file/directory permissions. We then briefly discuss scripting ideas such as creating variables, functions, and accessing input arguments inside of scripts. Finally, a brief introduction to creating Makefiles is presented.
Lecture 08
This lecture presents the idea of processes and jobs in the Linux shell. We first discuss the concepts of sequential/serial, concurrent, and parallel computing. We then discuss the different architectures used in computing i.e. CPUs and GPUs and their advantages/disadvantages. Finally, we conclude the lecture with a quick introduction to C++ programming and compilation.
Lecture 09
In this lecture, we discuss and demonstrate how to use the Git version control software in the UNIX/Linux command line as well as give a quick demo on how to use Git-integrated websites like GitHub for collaboration on coding projects.
Lecture 10
This lecture reviews the topics covered throughout the course. We specifically focus on Makefiles and scripting as these two concepts combines topics throughout the course.