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
In this lecture, we discuss the course's structure and some historical and background information about computing, operating systems, and UNIX/Linux.
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.
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.
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.
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 |.
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.
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.
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.
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.
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.
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.