Difference between revisions of "Linux System Administration for Programmers"

From CDOT Wiki
Jump to: navigation, search
(LVM)
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Chris Tyler Draft}}
 
{{Chris Tyler Draft}}
This is a topic outline for teaching a future "System Administration for Programmers" session.
+
This is a topic outline for the upcoming "System Administration for Programmers" session.
  
== Screen ==
+
Basics:
 +
* Assume a RHEL/CentOS/Fedora context
  
* GNU [[Screen]] command
+
== Bash (or, "How To Save Hours of Your Life on the Command Line") ==
** Common options
 
 
 
== SSH ==
 
 
 
* [[SSH]] tips and tricks
 
** X tunneling
 
** arbitrary forward and reverse tunnels
 
** Using <code>.ssh/config</code> for convenience
 
** Public key authentication
 
 
 
== LVM ==
 
 
 
* Using LVM for storage management
 
** Concepts: PVs, VGs, LVs
 
** <code>pvs, vgs, lvs</code>
 
** <code>vgextend</code>
 
** <code>lvextend -r</code>
 
** <code>pvmove</code>
 
 
 
== Bash ==
 
  
 
* Bash tips 'n' tricks
 
* Bash tips 'n' tricks
** Aliases
 
** cd shortcuts: using - and ~
 
 
** Command editing
 
** Command editing
 
*** ^Right, ^Left, Home, ^A, End, ^E, ^T
 
*** ^Right, ^Left, Home, ^A, End, ^E, ^T
Line 37: Line 16:
 
*** !
 
*** !
 
** Tab completion
 
** Tab completion
 +
*** Non-file tab completion
 
** Prompts
 
** Prompts
 +
** Aliases
 +
** cd shortcuts: using - and ~
 +
** Startup Scripts - .bashrc, .profile, etc
 +
** Environment Variables - especially PATH
 +
* One-Line Scripting
 +
** Looping on the command line
  
== X11 ==
+
== SSH (or, "Remote Access made Easy and Secure") ==
 +
 
 +
* [[SSH]] tips and tricks
 +
** X tunneling
 +
** arbitrary forward and reverse tunnels
 +
** Using <code>.ssh/config</code> for convenience
 +
** Public key authentication
 +
*** Use of passphrases
 +
*** ssh-agent (and gnome ssh agent, ...)
 +
* Securing SSH
 +
** Preventing direct root login
 +
 
 +
== Screen (or, "How to Start a Build at the End of the Day") ==
 +
 
 +
* GNU [[Screen]] command
 +
** Common options
 +
 
 +
== X11 (or, "Why the Linux GUI Rocks and No One Knows") ==
  
 
* Remote access
 
* Remote access
 
* Clipboard vs. Selection
 
* Clipboard vs. Selection
 
* Fast-paste (middle mouse)
 
* Fast-paste (middle mouse)
 +
* Composed desktops
 +
* Virtual desktops
  
== Using Root ==
+
== Using Root (or, "No Power in the 'Verse Can Stop Me") ==
  
 
* Via sudo
 
* Via sudo
Line 52: Line 57:
 
* Dangers
 
* Dangers
  
== Installing and Removing Software ==
+
== Services ==
 +
* Systemd
 +
** enable and disable
 +
** start and stop
 +
** status
 +
** isolate
 +
** set default
 +
 
 +
== Firewalls ==
 +
* firewalld
 +
* iptables
 +
 
 +
== Networking ==
 +
* ip vs. ifconfig
 +
== Installing and Removing Software (or, "That Software is only a Yum Away") ==
  
 
On an RPM-based system
 
On an RPM-based system
Line 64: Line 83:
 
* repoquery basics (?)
 
* repoquery basics (?)
 
* apt-get basics (As needed)
 
* apt-get basics (As needed)
 +
 +
== LVM (or, "Why Running out of Disk Space is No Big Deal" or "Snapshots, Volumes, and Disk Errors, Oh My!") ==
 +
 +
* Using LVM for storage management
 +
** Why?
 +
** Concepts: PVs, VGs, LVs
 +
** <code>pvs, vgs, lvs</code>
 +
** <code>vgextend</code>
 +
** <code>lvextend -r</code>
 +
** <code>pvmove</code>
 +
** LV snapshots

Latest revision as of 15:04, 18 February 2015

Important.png
This is a draft only!
It is still under construction and content may change. Do not rely on this information.

This is a topic outline for the upcoming "System Administration for Programmers" session.

Basics:

  • Assume a RHEL/CentOS/Fedora context

Bash (or, "How To Save Hours of Your Life on the Command Line")

  • Bash tips 'n' tricks
    • Command editing
      • ^Right, ^Left, Home, ^A, End, ^E, ^T
      • Esc-BS, Ctl-W
      • Esc-_
    • Command searching
      • ^R
      •  !
    • Tab completion
      • Non-file tab completion
    • Prompts
    • Aliases
    • cd shortcuts: using - and ~
    • Startup Scripts - .bashrc, .profile, etc
    • Environment Variables - especially PATH
  • One-Line Scripting
    • Looping on the command line

SSH (or, "Remote Access made Easy and Secure")

  • SSH tips and tricks
    • X tunneling
    • arbitrary forward and reverse tunnels
    • Using .ssh/config for convenience
    • Public key authentication
      • Use of passphrases
      • ssh-agent (and gnome ssh agent, ...)
  • Securing SSH
    • Preventing direct root login

Screen (or, "How to Start a Build at the End of the Day")

  • GNU Screen command
    • Common options

X11 (or, "Why the Linux GUI Rocks and No One Knows")

  • Remote access
  • Clipboard vs. Selection
  • Fast-paste (middle mouse)
  • Composed desktops
  • Virtual desktops

Using Root (or, "No Power in the 'Verse Can Stop Me")

  • Via sudo
  • Via su
  • Directly (don't do it!)
  • Dangers

Services

  • Systemd
    • enable and disable
    • start and stop
    • status
    • isolate
    • set default

Firewalls

  • firewalld
  • iptables

Networking

  • ip vs. ifconfig

Installing and Removing Software (or, "That Software is only a Yum Away")

On an RPM-based system

  • Why use a package manager
  • Yum/DNF basics
    • list, search, info
    • install, remove
  • rpm -q basics
    • package selection: name -a -f --whatrequires --whatprovides
    • info selection: default -i -l --requires --provides --scripts --qf
  • repoquery basics (?)
  • apt-get basics (As needed)

LVM (or, "Why Running out of Disk Space is No Big Deal" or "Snapshots, Volumes, and Disk Errors, Oh My!")

  • Using LVM for storage management
    • Why?
    • Concepts: PVs, VGs, LVs
    • pvs, vgs, lvs
    • vgextend
    • lvextend -r
    • pvmove
    • LV snapshots