Good resource if you want a second perspective on what we discuss in class.
Other Resources
MS Teams is where the live tutorials will occur
Study Group (Very helpful!)
Most important resource is your own practice.
Course Policies: Remote
Keep up with the course: watch Blackboard Announcements for upcoming important dates.
Links to the lecture videos will be provided: watch these in order and make note of any questions you might have.
Tutorials are real-time, they are a chance for us to connect as a group. Bring your questions (or email them ahead of time), they make the tutorials more interesting for everyone.
After Tutorials, we have a chance for one-on-one sessions. SomeMost problems are easier to solve during these sessions than over email.
Keep up with assignments, these are crucial for success in the course!
Course Policies
Attendance: Some tutorials will have short quizzes/surveys that count for marks. However attendance is not mandatory. Tutorials will be recorded for people to refer to later.
Tests/Quizzes: I will announce on Blackboard/in class/Email at least a week in advance. (Specifics of how quizzes will run TBA). If you miss an assessment, you get a zero. If you have a doctor’s note, you need to tell me before the assessment.
Academic Dishonesty: Zero tolerance. I expect you to know the difference.
If you have an issue, be prepared to communicate the specific issue, including:
error output.
what you have tried already.
Course Policies II
Assignments are a big part of this course.
You will need to log on to our servers in order to work on these assignments.
The assignments don’t exist locally, you must have an internet connection to access the servers.- But your progress will be saved automatically as we go.
Most importantly, learn by doing. Practice what you learn in the assignments.
So What is Linux, and why should you care?
Time for a History Lesson…
Unix was developed in 1969, and was meant to run on mainframes.
Unix was widely adopted by businesses but also academic institutions.
Many people were comfortable with Unix, but it was proprietary, meaning it wasn’t free to copy, use or modify.
Richard Stallman started the GNU project in 1983, hoping to build a Unix-like operating system.
Linus Torvalds contributed the kernel in 1991. So have that name ‘Linux’, but keep in mind that there were many contributors to the project.
What Does the History of Linux Have to do with Course?
The way it is organized is different.
Assumes multiple users
Better permission controls
There’s a pattern of having multiple terminals active at any one time
Some Terminology
Terminal
Text input/output environment
Terminal Emulator
An application which simulates one of these old devices
Shell
Command line interpreter. The shell we will be using is called Bash.
SSH
A secure protocol that allows us to log into a machine remotely
This course is mostly about getting more comfortable with the Shell.
CLI = Command Line Interface. CLIs are not unique to Linux. Powershell in Windows, Bash on Mac.
Being able to use a CLI is a crucial skill for programmers for a number of reasons:
It’s faster
A number of commands can be put into a script and can then be run automatically
Many servers or embedded systems won’t even have a graphical environment installed, or it might be broken. A CLI could be your last resort
Many tools for developers are designed to be used from a CLI (for example, Git and NPM).
CLIs are much easier to set up for remote work
If you’ve ever had to try and help someone solve a problem remotely on their computer, you know how slow and awkward using a GUI can be. (“Click on the Start Button. No, the other Start Button. What do you see?”) Using a GUI is like playing 20 questions. A CLI is all about communicating directly with the system. You need to know the language, but once you do you can get what you want much faster.
CLIs are more fun :D
What is Linux?
Linux is actually a Kernel.
Call it Linux, or GNU/Linux, probably at this point it isn’t too interesting to you. Just be aware that in some corners of the Internet, the terminology is important.
What is a Kernel?
Kernel Summary
The Kernel is a thing that acts as an interface between applications and hardware.
You can’t directly interact with it. It’s not quite the Operating System.
Maybe a good analogy is an air traffic controller. You don’t see the effect is you’re a passenger at the airport, watching the planes. It doesn’t affect your user experience at all.
Linux has many desktop environments. But they all use the same Kernel. (Windows, by comparison, has only one Desktop environment. It’s running on the Windows NT kernel, but we never really talk about the Windows kernel.)
Enter matrix.senecacollege.ca for the host name, and click “Open.”
If you see a dialog box about security, click ‘Yes.’
When you see the text Login as:, enter your myseneca username. For example, ebrauer11. This is the same username you use to log into Blackboard. (Must be lowercase!)
Enter your Blackboard password.
If all is well, you should see a prompt that looks like this:
[eric.brauer@mtrx-node04pd ~]$
Commands Are What We Really Want You To Learn!
Once you are in Matrix/Knoppix, you can practice the following commands:
pwd: Print working directory
cd: Change directory
ls: List files
ls -l: List files vertically
ls -d: List directories
ls -a: List all (including hidden files)
cal: Calendar
date: Print today’s date
who: Who’s online?
whoami: Answering life’s big questions
Next Steps.
Assignment #1 is available to you. You should start working on it.
To access the assignment, enter this into your terminal:
Login to: matrix.senecacollege.ca using your username and password.
Type ~uli101/assign1 at the command prompt.
Enter your correct section.
Make sure you enter your correct section or you stand to lose your work.
Can take ~10 hours to complete the whole thing.
As you go, your progress will be saved.
But if you get stuck on a question, you aren’t able to skip. So it’s a good idea to start work early, and get help once you encounter those issues.