Difference between revisions of "Linux System Administration for Programmers"

From CDOT Wiki
Jump to: navigation, search
(Bash (or, "How To Save Hours of Your Life on the Command Line"))
 
Line 4: Line 4:
 
Basics:
 
Basics:
 
* Assume a RHEL/CentOS/Fedora context
 
* Assume a RHEL/CentOS/Fedora context
 
== Screen (or, "How to Start a Build at the End of the Day") ==
 
 
* GNU [[Screen]] command
 
** Common options
 
 
== 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
 
 
== 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
 
  
 
== Bash (or, "How To Save Hours of Your Life on the Command Line") ==
 
== Bash (or, "How To Save Hours of Your Life on the Command Line") ==
  
 
* 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 48: Line 18:
 
*** Non-file tab completion
 
*** Non-file tab completion
 
** Prompts
 
** Prompts
 +
** Aliases
 +
** cd shortcuts: using - and ~
 
** Startup Scripts - .bashrc, .profile, etc
 
** Startup Scripts - .bashrc, .profile, etc
 
** Environment Variables - especially PATH
 
** Environment Variables - especially PATH
 
* One-Line Scripting
 
* One-Line Scripting
 
** Looping on the command line
 
** 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 <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") ==
 
== X11 (or, "Why the Linux GUI Rocks and No One Knows") ==
Line 68: Line 57:
 
* Dangers
 
* 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") ==
 
== Installing and Removing Software (or, "That Software is only a Yum Away") ==
  
Line 81: Line 84:
 
* apt-get basics (As needed)
 
* apt-get basics (As needed)
  
== Services ==
+
== LVM (or, "Why Running out of Disk Space is No Big Deal" or "Snapshots, Volumes, and Disk Errors, Oh My!") ==
* Systemd
 
** enable and disable
 
** start and stop
 
** status
 
** isolate
 
** set default
 
  
== Firewalls ==
+
* Using LVM for storage management
* firewalld
+
** Why?
* iptables
+
** Concepts: PVs, VGs, LVs
 
+
** <code>pvs, vgs, lvs</code>
== Networking ==
+
** <code>vgextend</code>
* ip vs. ifconfig
+
** <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