I. Introduction to Linux
• Linux history
✔ 1969
✔ 1980s
✔ 1990s
✔ 2015
• Distributions
✔ Red Hat
✔ Ubuntu
✔ Debian
✔ Other
✔ Which to choose?
• Licensing
✔ About software licenses
✔ Public domain software and freeware
✔ Free Software or Open Source Software
✔ GNU General Public License
✔ Using GPLv3 software
✔ BSD license
✔ Other licenses
✔ Combination of software licenses
II. Installing Linux
• Installing Debian 8
✔ Debian
✔ Downloading
✔ Virtualbox networking
✔ Setting the hostname
✔ Adding a static ip address
✔ Debian package management
• Installing CentOS 7
✔ Download a CentOS 7 image
✔ Virtualbox
✔ CentOS 7 installing
✔ CentOS 7 first logon
✔ Virtualbox network interface
✔ Configuring the network
✔ Adding one static ip address
✔ Package management
✔ Logon from Linux and MacOSX
✔ Logon from MS Windows
• Getting Linux at home
✔ Download a Linux CD image
✔ Download Virtualbox
✔ Create a virtual machine
✔ Attach the CD image
✔ Install Linux
III. First steps on the command line
• Man pages
✔ man $command
✔ man $configfile
✔ man $daemon
✔ man -k (apropos)
✔ whatis
✔ whereis
✔ Man sections
✔ man $section $file
✔ man man
✔ mandb
• Working with directories
✔ pwd
✔ cd
✔ Absolute and relative paths
✔ Path completion
✔ ls
✔ mkdir
✔ rmdir
✔ Practice: working with directories
✔ Solution: working with directories
• Working with files
✔ All files are case sensitive
✔ Everything is a file
✔ file
✔ touch
✔ rm
✔ cp
✔ mv
✔ rename
✔ Practice: working with files
✔ Solution: working with files
• Working with file contents
✔ head
✔ tail
✔ cat
✔ tac
✔ more and less
✔ strings
✔ Practice: file contents
✔ Solution: file contents
• The Linux file tree
✔ Filesystem hierarchy standard
✔ man hier
✔ The root directory /
✔ Binary directories
✔ Configuration directories
✔ Data directories
✔ In memory directories
✔ /usr Unix System Resources
✔ /var variable data
✔ Practice: file system tree
✔ Solution: file system tree
IV. Shell expansion
• Commands and arguments
✔ Arguments
✔ White space removal
✔ Single quotes
✔ Double quotes
✔ echo and quotes
✔ Commands
✔ Aliases
✔ Displaying shell expansion
✔ Practice: commands and arguments
✔ Solution: commands and arguments
• Control operators
✔ ; Semicolon
✔ & Ampersand
✔ $? Dollar question mark
✔ && Double ampersand
✔ || Double vertical bar
✔ Combining && and ||
✔ # Pound sign
✔ \ Escaping special characters
✔ Practice: control operators
✔ Solution: control operators
• Shell variables
✔ $ Dollar sign
✔ Case sensitive
✔ Creating variables
✔ Quotes
✔ set
✔ unset
✔ $PS1
✔ $PATH
✔ env
✔ export
✔ Delineate variables
✔ Unbound variables
✔ Practice: shell variables
✔ Solution: shell variables
• Shell embedding and options
✔ Shell embedding
✔ Shell options
✔ Practice: shell embedding
✔ Solution: shell embedding
• Shell history
✔ Repeating the last command
✔ Repeating other commands
✔ history
✔ !n
✔ Ctrl-r
✔ $HISTSIZE
✔ $HISTFILE
✔ $HISTFILESIZE
✔ Prevent recording a command
✔ (Optional) Regular expressions
✔ (Optional) Korn shell history
✔ Practice: shell history
✔ Solution: shell history
• File globbing
✔ * Asterisk
✔ ? Question mark
✔ [] Square brackets
✔ a-z and 0-9 ranges
✔ $LANG and square brackets
✔ Preventing file globbing
✔ Practice: shell globbing
✔ Solution: shell globbing
V. Pipes and commands
• I/O redirection
✔ stdin, stdout, and stderr
✔ Output redirection
✔ Error redirection
✔ Output redirection and pipes
✔ Joining stdout and stderr
✔ Input redirection
✔ Confusing redirection
✔ Quick file clear
✔ Practice: input/output redirection
✔ Solution: input/output redirection
• Filters
✔ cat
✔ tee
✔ grep
✔ cut
✔ tr
✔ wc
✔ sort
✔ uniq
✔ comm
✔ od
✔ sed
✔ pipe examples
✔ practice: filters
✔ solution: filters
• Basic Unix tools
✔ find
✔ locate
✔ date
✔ cal
✔ sleep
✔ time
✔ gzip – gunzip
✔ zcat – zmore
✔ bzip2 – bunzip2
✔ bzcat – bzmore
✔ practice: basic Unix tools
✔ solution: basic Unix tools
• Regular expressions
✔ Regex versions
✔ grep
✔ rename
✔ sed
✔ bash history
VI. vi
• Introduction to vi
✔ Command mode and insert mode
✔ Start typing (a A i I o O)
✔ Replace and delete a character (r x X)
✔ Undo and repeat (u .)
✔ Cut, copy and paste a line (dd yy p P)
✔ Cut, copy and paste lines (3dd 2yy)
✔ Start and end of a line (0 or ^ and $)
✔ Join two lines (J) and more
✔ Words (w b)
✔ Save (or not) and exit (:w :q :q! )
✔ Searching (/ ?)
✔ Replace all ( :1,$ s/foo/bar/g )
✔ Reading files (:r :r !cmd)
✔ Text buffers
✔ Multiple files
✔ Abbreviations
✔ Key mappings
✔ Setting options
✔ Practice: vi(m)
✔ Solution: vi(m)
VII. Scripting
• Scripting introduction
✔ Prerequisites
✔ Hello world
✔ She-bang
✔ Comment
✔ Variables
✔ Sourcing a script
✔ Troubleshooting a script
✔ Prevent setuid root spoofing
✔ Practice: introduction to scripting
✔ Solution: introduction to scripting
• Scripting loops
✔ Test [ ]
✔ If then else
✔ If then elif
✔ For loop
✔ While loop
✔ Until loop
✔ Practice: scripting tests and loops
✔ Solution: scripting tests and loops
• Scripting parameters
✔ Script parameters
✔ Shift through parameters
✔ Runtime input
✔ Sourcing a config file
✔ Get script options with getopts
✔ Get shell options with shopt
✔ Practice: parameters and options
✔ Solution: parameters and options
• More scripting
✔ Eval
✔ (( ))
✔ Let
✔ Case
✔ Shell functions
✔ Practice : more scripting
✔ Solution : more scripting
VIII. Local user management
• Introduction to users
✔ whoami
✔ who
✔ who am i
✔ w
✔ id
✔ su to another user
✔ su to root
✔ su as root
✔ su – $username
✔ su
✔ Run a program as another user
✔ Visudo
✔ Sudo su
✔ Sudo logging
✔ Practice: introduction to users
✔ Solution: introduction to users
• User management
✔ User management
✔ /etc/passwd
✔ root
✔ useradd
✔ /etc/default/useradd
✔ userdel
✔ usermod
✔ Creating home directories
✔ /etc/skel/
✔ Deleting home directories
✔ Login shell
✔ chsh
✔ Practice: user management
✔ Solution: user management
• User passwords
✔ passwd
✔ shadow file
✔ Encryption with passwd
✔ Encryption with openssl
✔ Encryption with crypt
✔ /etc/login.defs
✔ chage
✔ Disabling a password
✔ Editing local files
✔ Practice: user passwords
✔ Solution: user passwords
• User profiles
✔ System profile
✔ ~/.bash_profile
✔ ~/.bash_login
✔ ~/.profile
✔ ~/.bashrc
✔ ~/.bash_logout
✔ Debian overview
✔ RHEL5 overview
✔ Practice: user profiles
✔ Solution: user profiles
• Groups
✔ groupadd
✔ Group file
✔ groups
✔ usermod
✔ groupmod
✔ groupdel
✔ gpasswd
✔ newgrp
✔ vigr
✔ Practice: groups
✔ Solution: groups
IX. File security
• Standard file permissions
✔ File ownership
✔ List of special files
✔ Permissions
✔ Practice: standard file permissions
✔ Solution: standard file permissions
• Advanced file permissions
✔ Sticky bit on directory
✔ Setgid bit on directory
✔ Setgid and setuid on regular files
✔ Setuid on sudo
✔ Practice: sticky, setuid and setgid bits
✔ Solution: sticky, setuid and setgid bits
• Access control lists
✔ ACL in /etc/fstab
✔ getfacl
✔ setfacl
✔ Remove an ACL entry
✔ Remove the complete ACL
✔ The ACL mask
✔ Eiciel
• File links
✔ Inodes
✔ About directories
✔ Hard links
✔ Symbolic links
✔ Removing links
✔ Practice : links
✔ Solution : links