User Level Linux (ULUX) is an online training course designed to get you quickly up to speed on Linux from a user perspective. It will allow you to do the most common set of tasks on Linux in a very short span of time. The laboratory environment is based on Linux a free variant of UNIX. However, the course has been designed in such a way as to focus on the common commands and techniques across Unices such as AIX, HP-UX, Solaric etc. If you have heard the term Linux or GNU/Linux and want to learn this awesome operating system from the convenience of your home or office and at your own pace, then VirtuQ™ online training course (course) on Linux (or UNIX) is the way to go.
ULUX is a pre-requisite for taking up any course from VirtuQ™ because all our laboratories are based on Linux. Also, most of the high-tech industries rely on Linux for their operations. It is thus recommended that you take up this course and get to know it from a user perspective so that you are very comfortable working on it.
ULUX is divided into two parts. Part I focuses on the most common set of tools and utilities in Linux and part II focuses on programming and document formatting. It has 8 hours of theory and around 40 hours of laboratory exercises. However, the time may shrink considerably for users who are somewhat familiar with Linux or have otherwise done considerable scripting in windows.
Highlights
Strong focus on hands-on experience
Insight into various design choices in Linux
Familiarity with various programming and software engineering tools
The concepts, commands, exercises follow POSIX standard, so that you are able to work equally well on any UNIX and not just Linux
Discuss with the instructor on the forums as much as you want
Instructor and Forum Moderator
This course is taught by Anup Gangwar. He will also be moderating the course forums.
Pre-requisites
You only need to have basic familiarity with computers.
Who should take the course
Students who want to make themselves familiar with one of the most extensively used operating system
Job seekers or fresh hires who are looking forward to or starting a career in Embedded Systems, Semiconductors, Networking or any other high-tech area, but have little or no experience of working on Linux based systems
Depth
ULUX course is a beginners+ course. It is not an advanced course, however subject treatment in the course is more than what a typical beginner level course will offer.
Detailed Description
Part I
Part I starts by offering insights into the original UNIX and windows design philosophies. Doing so allows us to understand the reasons for many of the design choices of Linux as we gain more insight into it. Next, it discusses how to do the common tasks in Linux. By the time you are done with this part, you should be very familiar with the most common set of commands in Linux. Detailed table of content is as follows.
Prerequisites and goals of this course
Differences between UNIX and Windows
Original Windows and UNIX philosophies
Client server model of computation
Multi-user and multi-tasking
Overview of unices
Various flavours of UNIX
Is it necessary to learn all unices
The Linux shell interface
What is shell
Command conventions
Managing processes
Files and Directories
File types
Managing file/directory creation and deletion
File ownerships
Disk usages and quota
Special files
Customizing your account
What is meant by customizing the account
Different shells
Envirnment variables
Shell initialization
Changing password, shell, finger information etc.
Remote process execution
Why do we need remote process execution
Telnet, rsh, ssh and rsh
Communication security with ssh
Remote execution of graphics programs
Moving files across network
Vulnerabilities
Taking printouts
Concept of network and local printers
Printer languages: Postscript and PCL
Ghostview, xpdf and acroread
Managing printer job
N-up printing
Archiving and compressing
What is an archive
Various archiving and compression utilities
Email and internet browsing
SMTP, IMAP and related technologies
Internet browsers on Linux and how they work
Miscellaneous stuff
Accessing manpages
Serching patterns
Serching files
Concept of authentication: NIS, Kerberose and LDAP
Concept of Network File Systems
File editors in Linux
The Visual Editor: VI
Emacs
Part II
Part II is about programming on Linux. It starts by discussing shell scripts which are very common and very popular on the Linux platforms. Next, it discusses the various tools for C/C++ programming on Linux. It briefly touches upon GUI programming on Linux and ends with document formatting. The goal of Part II is to make you aware of the various common programming tools which are available on Linux. Detailed table of content is as follows.
Shell Scripting
What is the need for shell scripting
Bourne shell and family
C shell
Scripting examples
Introduction to C/C++ programming on Linux
Software tools and flow
Introduction to build system: make
The GNU Compiler Collection: GCC
Compiling and running hello world program
Common compilation and optimization options
Common debugging and profiling options
The GNU Linker: Ld
What exactly are libraries
Static and shared libraries
LD related options in GCC
Library examples
The GNU Debugger: GDB
What is a debugger
Common commands
Attaching a process
GDB frontends
Other C/C++ related tools
Memory checker: valgrind
Automatic documentation generation: doxygen
The GNU Make
Need for build systems: make
Writing and optimizing makefiles
Version control systems
Classic model of version control system
Various version control systems
GIT
GUI development in Linux
Differences with TurboC++
Approaches to GUI programming on Linux
Document formatting
Need for text formatting
Writing documents using LaTeX
References and further study
The User Level Linux course as outlined above will help you to quickly get started on Linux systems which are extensively used in industry and academics. After going through this course, you will get hands-on-experience of various common commands, tools and utilities which will help you become more productive in a short span of time.