
An overview of the topics that will be covered, including introduction, installation and setup, basic commands, advanced topics, and tips and tricks. As well as an explanation of how this course is formatted, with minimal slides, practice examples and reference materials, step-by-step examples, building up on prior lessons, and more condensed videos.
An overview of what a bash terminal is, a command line interpreter default to Mac OS and Linux called Bourne Again Shell that supports simple programming and scripting.
Also an overview of why the terminal is still relevant today, including command like focused tools like Git, Ruby on rails, Maven, and more, online help being command line focused, and that it's an excellent tool for teaching concepts.
An overview of the ways we will be setting up our terminal App as well as our text editor TextMate 2.
A quick guide to locating where the terminal application is on our Mac system, pinning it to the dock for easy access.
Adjusting the size of the text and window within the terminal preferences.
Installing the text editor TextMate 2 on our local Mac OS system.
Configuring TextMate 2 to be more usable throughout the rest of this course.
Executing each of several basic Bash terminal commands, allowing us to navigate in bash, work with files and folders, open text editors, output commands to a file, and chain commands together.
Using the basic navigational commands pwd, cd, and ls to move around and view the file system on our local mac operating system.
Using commands to clear off the stuff on the terminal screen, as well as using shortcuts and a command to exit out of our terminal when we are done.
Using the echo command to repeat text or variables back to ourselves.
Locating where our commands are located on our system, which allows us to determine if one command is potentially running from the wrong location, as well as using the man command to get documentation within our terminal about specific commands.
Using a basic command (cat) as well as a more complex command (less) and a full text editor (nano) to view files on our local system.
Opening our GUI based text editor TextMate with our files from our terminal.
Using our open command to view a current directory within our GUI based Finder application, as well as opening files with the default editor we can set up on our Mac system.
Creating, moving, copying, renaming, and deleting files within our bash terminal using touch, mv, cp, and rm.
Updating the time a file was last modified by touching it with the touch command.
Creating and deleting directories within our bash terminal by using mkdir and rmdir, in addition to using parameters with those commands to extend the functionality.
Using the greater than and less than signs to send the output of commands to create or append to a text file on our system.
Using the tee command to write text to a file, similarly to the last lesson, and then learning how to use pipes '|' to chain commands together without having to put them in on two separate lines, using the output of one command as the input for the next.
Running commands as a root user, which allows us to change the owners of files as well as the group that files are a part of.
Escalating permissions using the sudo command to gain root access and then create and delete files.
Using the commands chown and chgrp to change the owner or group of files respectively, in order to allow lesser users to gain permissions to change files.
Using the sudo command to change ownership recursively to directories and all files and folders within those directories.
A quick overview of the more advanced topics covered in this section, including executing scripts, creating scripts, looking at our history, and customizing the bash shell environment.
Creating our first shell script, a hello world type script, and then executing it within our Bash terminal.
Looking at quasi hidden files (files that start with a dot), in order to find and look at the file on our system that contains our past bash history.
Customizing our bash environment by creating an alias that allows us to have a shortened version of a longer command.
A final overview of what we have covered in this course and why.
Overview
This is a comprehensive course designed to show how to use the Terminal app in Mac OS X and many Bash shell commands, many overlap with Linux or other *nix variants.
The course currently covers the following:
Each one of these concepts is demonstrated in a methodological, step-by-step manner so you can follow along for easy learning.
Course Outline
Introduction provides an overview for the course.
Installation provides step-by-step instructions on how to setup Terminal and all the related tools for the course.
The Basics provides the first look at several core or foundational commands. While learn how to get around, manage files and even some simple ways to use the output of commands.
After the basics are covered, we dive into permissions related concepts by assuming admin user while we change permissions on files and folders.
Finally, we cover some more Advanced topics like writing a Bash shell script and customizing the Bash environment.
Course Features
Presentations provide audio/video training of conceptual ideas in each major area or introduction of new concepts.
Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. There are several hours of screencat video content -- it makes up the vast majority of the course. Any command line based screencast will include a command listing in the lecture downloads.
At the end of each section is a document lecture with a listing of commands or a brief tutorial regarding the video content covered during that section.