From 464899aa844a2caf2398e52436e7d96b8ba93f99 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sun, 17 Mar 2013 02:30:53 +0000 Subject: [PATCH] Initial ABS's presentation --- abcs/abc.tex | 497 ++++++++++++++++++++++++++++++++++++++++++++++++++ abcs/makefile | 2 + abcs/poem.tex | 85 +++++++++ abcs/poem.txt | 27 +++ 4 files changed, 611 insertions(+) create mode 100644 abcs/abc.tex create mode 100644 abcs/makefile create mode 100644 abcs/poem.tex create mode 100644 abcs/poem.txt diff --git a/abcs/abc.tex b/abcs/abc.tex new file mode 100644 index 0000000..6221bbb --- /dev/null +++ b/abcs/abc.tex @@ -0,0 +1,497 @@ +\documentclass[13pt]{beamer} + +\input{poem.tex} + +%%%%%%%%%%%%%%%%%%% +% Commands/macros % +%%%%%%%%%%%%%%%%%%% +\newcommand{\link}[1]{ + \begin{flushright} + \scriptsize{#1} + \end{flushright} +} + +\newcommand{\header}[1]{ + \hspace{-1em}\textit{#1:} +} + +\newcommand{\sheader}[1]{ + \vspace{1.5em} + \header{#1} +} + +%%%%%%%%%%%%%%%% +% Header/theme % +%%%%%%%%%%%%%%%% +%\usetheme[ +% pageofpages=of, +% alternativetitlepage=true, +%]{Torino} +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{footline}{} +\setbeamersize{text margin left=20mm} +\setbeamersize{text margin right=10mm} +\setbeamerfont{frametitle}{size={\fontsize{15}{16}}} + +% Import packages +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +\usepackage{times} +\usepackage[T1]{fontenc} +\usepackage{graphics} +\usepackage{hyperref} +\usepackage{ulem} +\usepackage{listings} + +%%%%%%%%%%%%%%%%%%%% +% Title page setup % +%%%%%%%%%%%%%%%%%%%% +\subject{% + abcs, + unix, +} + +\keywords{% + abc, + abcs + unix, + commands, +} + +\title[ABC's of Unix]{% + The ABC's of UNIX +} + +\author[Spencer]{% + Andy Spencer +} + +\date[2013-03-16]{% + March 16, 2013 \\ + \small{San Fernando Valley Linux Users Group} +} + +%%%%%%%%%%%%%%%%% +% Content pages % +%%%%%%%%%%%%%%%%% + +\begin{document} + +%%%%%%%%%%%%%%%% +% Introduction % +%%%%%%%%%%%%%%%% + +\begin{frame}[plain] + \titlepage +\end{frame} + +\section{The ABC's} + +% A is for awk +\framea +\begin{frame}{\abca} + \header{awk is} + \begin{itemize} + \item text processing utility + \item (talked about last week) + \end{itemize} + + \sheader{Some other ``A'' programs} + \begin{itemize} + \item[as] the assembler + \item[at] schedule jobs \textit{at} a given time + \end{itemize} +\end{frame} + +% B is for biff +\frameb +\begin{frame}{\anda \\ \abcb} + \header{biff is} + \begin{itemize} + \item an email notification program + \item traditionally a command line program + \item the original ``You've got mail'' + \item possibly named after a dog + \end{itemize} + + \sheader{Some other ``B'' programs} + \begin{itemize} + \item[bc] a command line calculator + \end{itemize} +\end{frame} + +% C is for cc +\framec +\begin{frame}{\abcc} + \header{cc is} + \begin{itemize} + \item the C Compiler + \item one step in the compile process + \item GCC is the most common these days + \end{itemize} + + \sheader{Some other ``C'' programs} + \begin{itemize} + \item[cd] change directory (shell command) + \item[cat] ``concatenate'' files + \end{itemize} +\end{frame} + +% D is for dd +\framed +\begin{frame}{\andc \\ \abcd} + \header{dd is} + \begin{itemize} + \item binary file copy utility + \item can skip, seek, copy by blocks, swap bytes, convert encodings, etc + \end{itemize} + + \sheader{Some other ``D'' programs} + \begin{itemize} + \item[dc] a reverse polish calculator \textit{(andy's favorite!)} + \end{itemize} +\end{frame} + +% E is for emacs +\framee +\begin{frame}{\abce} + \header{emacs is} + \begin{itemize} + \item a text editor + \item extremely configurable + \item one of the first ``free software'' programs + \end{itemize} + + \sheader{Some other ``E'' programs} + \begin{itemize} + \item[eclipse] A modern IDE + \end{itemize} +\end{frame} + +% F is for fsck +\framef +\begin{frame}{\ande \\ \abcf} + \header{fsck is} + \begin{itemize} + \item the ``file system checker'' + \item used to repair broken file systems + \item not used as much on journalizing filesystems + \end{itemize} + + \sheader{Some other ``F'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% G is for grep +\frameg +\begin{frame}{\abcg} + \header{grep is} + \begin{itemize} + \item a text search utility + \item named after g/re/p from old UNIX editors + \end{itemize} + + \sheader{Some other ``G'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% H is for halt +\frameh +\begin{frame}{\andg \\ \abch} + \header{halt is} + \begin{itemize} + \item a way to shutdown your computer + \item can call other command such as kexec + \item see also: shutdown, reboot, init, telinit + \end{itemize} + + \sheader{Some other ``H'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% I is for indent +\framei +\begin{frame}{\abci} + \header{indent is} + \begin{itemize} + \item a source code formatter + \item used to convert brace styles, indentation, etc + \end{itemize} + + \sheader{Some other ``I'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% J is for join +\framej +\begin{frame}{\andi \\ \abcj} + \header{join is} + \begin{itemize} + \item a relational operator + \item matches lines in two different files + \item see also: cut, paste, cat + \end{itemize} + + \sheader{Some other ``J'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% K is for kill +\framek +\begin{frame}{\abck} + \header{kill is} + \begin{itemize} + \item the UNIX Task Manager + \item can signal processes + \item see also: pkill, killall + \end{itemize} + + \sheader{Some other ``K'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% L is for lex +\framel +\begin{frame}{\andk \\ \abcl} + \header{lex is} + \begin{itemize} + \item a lexical analysier or ``lexer'' + \item often used to create programming languaes + \end{itemize} + + \sheader{Some other ``L'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% M is for more +\framem +\begin{frame}{\abcm} + \header{more is} + \begin{itemize} + \item a paginator + \item prints out a file or command output page by page + \item less is a more advanced version which can scroll up + \end{itemize} + + \sheader{Some other ``M'' programs} + \begin{itemize} + \item[most] yet another paginator + \end{itemize} +\end{frame} + +% N is for nice +\framen +\begin{frame}{\andm \\ \abcn} + \header{nice is} + \begin{itemize} + \item used to controll process priority + \item only for the default process scheduler + \item see also: ionice + \end{itemize} + + \sheader{Some other ``N'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% O is for od +\frameo +\begin{frame}{\abco} + \header{od is} + \begin{itemize} + \item ``octal dump'' + \item can also dump out hex, binary, floating point, etc + \end{itemize} + + \sheader{Some other ``O'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% P is for passwd +\framep +\begin{frame}{\ando \\ \abcp} + \header{passwd is} + \begin{itemize} + \item used to change your login password + \item see also: shadow, pam, getent, htpasswd + \end{itemize} + + \sheader{Some other ``P'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% Q is for quota +\frameq +\begin{frame}{\abcq} + \header{quota is} + \begin{itemize} + \item used to limit disk usage + \item see also: limit, ulimit + \item (I've never actually used it) + \end{itemize} + + \sheader{Some other ``Q'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% R is for ranlib +\framer +\begin{frame}{\andq \\ \abcr} + \header{ranlib is} + \begin{itemize} + \item generates an index for an archive + \item used during the compile process + \end{itemize} + + \sheader{Some other ``R'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% S is for spell +\frames +\begin{frame}{\abcs} + \header{spell is} + \begin{itemize} + \item a spell checker + \item common version include: ispell, aspell (GNU), myspell/hunspell (OpenOffice) + \end{itemize} + + \sheader{Some other ``S'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% T is for true +\framet +\begin{frame}{\ands \\ \abct} + \header{true is} + \begin{itemize} + \item very simple + \item just returns ``true'' + \item .. unless you're talking about GNU true + \item see also: false + \end{itemize} + + \sheader{Some other ``T'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% U is for uniq +\frameu +\begin{frame}{\abcu} + \header{uniq is} + \begin{itemize} + \item used to remove duplicate lines + \end{itemize} + + \sheader{Some other ``U'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% V is for vi +\framev +\begin{frame}{\andu \\ \abcv} + \header{vi is} + \begin{itemize} + \item a text editor + \item also vim, elvis, vile, nvi, busybox + \end{itemize} + + \sheader{Some other ``V'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% W is for whoami +\framew +\begin{frame}{\abcw} + \header{whoami is} + \begin{itemize} + \item print our our username + \item used for scripting + \end{itemize} + + \sheader{Some other ``W'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% X is, well, X +\framex +\begin{frame}{\andw \\ \abcx} + \header{X is} + \begin{itemize} + \item the display server + \item used for (almost) all graphical interfaces + \item ``the largest program that doesn't actually do anything'' -somebody + \item see also: wayland, mir, directfb + \end{itemize} + + \sheader{Some other ``X'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% Y is for yes +\framey +\begin{frame}{\abcy} + \header{yes is} + \begin{itemize} + \item used to repeat a line + \item answers ``yes'' to any prompt + \end{itemize} + + \sheader{Some other ``Y'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +% Z is for zcat +\framez +\begin{frame}{\andy \\ \abcz} + \header{zcat is} + \begin{itemize} + \item a like cat for compressed files + \item used for gzip files (Lempel-Ziv coding - LZ77) + \item see also: bzip2, lzma, lzop + \end{itemize} + + \sheader{Some other ``Z'' programs} + \begin{itemize} + \item[] + \end{itemize} +\end{frame} + +\end{document} diff --git a/abcs/makefile b/abcs/makefile new file mode 100644 index 0000000..6233327 --- /dev/null +++ b/abcs/makefile @@ -0,0 +1,2 @@ +clean: + rm -f *.aux *.log *.nav *.out *.pdf *.snm *.toc *.vrb diff --git a/abcs/poem.tex b/abcs/poem.tex new file mode 100644 index 0000000..4b477d6 --- /dev/null +++ b/abcs/poem.tex @@ -0,0 +1,85 @@ +\newcommand{\abcframe}[4]{ +\begin{frame} + \begin{centering} + {\fontsize{40}{0}\selectfont #1} + + \vspace{20} + {\fontsize{20}{0}\selectfont #2} + + \vspace{20} + {\fontsize{40}{0}\selectfont \textbf{#3}} + + \vspace{30} + {\fontsize{20}{0}\selectfont \textit{#4}} + + \end{centering} +\end{frame} +} + +\newcommand{\abca}{\textbf{A is for awk, which runs like a snail.}} +\newcommand{\abcb}{\textbf{B is for biff, which reads all your mail.}} +\newcommand{\abcc}{\textbf{C is for cc, as hackers recall.}} +\newcommand{\abcd}{\textbf{D is for dd, the command that does all.}} +\newcommand{\abce}{\textbf{E is for emacs, which rebinds your keys.}} +\newcommand{\abcf}{\textbf{F is for fsck, which rebuilds your trees.}} +\newcommand{\abcg}{\textbf{G is for grep, a clever detective.}} +\newcommand{\abch}{\textbf{H is for halt, which may seem defective.}} +\newcommand{\abci}{\textbf{I is for indent, which rarely amuses.}} +\newcommand{\abcj}{\textbf{J is for join, which nobody uses.}} +\newcommand{\abck}{\textbf{K is for kill, which makes you the boss.}} +\newcommand{\abcl}{\textbf{L is for lex, which is missing from DOS.}} +\newcommand{\abcm}{\textbf{M is for more, from which less was begot.}} +\newcommand{\abcn}{\textbf{N is for nice, which it really is not.}} +\newcommand{\abco}{\textbf{O is for od, which prints out things nice.}} +\newcommand{\abcp}{\textbf{P is for passwd, which reads in strings twice.}} +\newcommand{\abcq}{\textbf{Q is for quota, a Berkeley-type fable.}} +\newcommand{\abcr}{\textbf{R is for ranlib, for sorting ar table.}} +\newcommand{\abcs}{\textbf{S is for spell, which attempts to belittle.}} +\newcommand{\abct}{\textbf{T is for true, which does very little.}} +\newcommand{\abcu}{\textbf{U is for uniq, which is used after sort.}} +\newcommand{\abcv}{\textbf{V is for vi, which is hard to abort.}} +\newcommand{\abcw}{\textbf{W is for whoami, which tells you your name.}} +\newcommand{\abcx}{\textbf{X is, well, X, of dubious fame.}} +\newcommand{\abcy}{\textbf{Y is for yes, which makes an impression.}} +\newcommand{\abcz}{\textbf{Z is for zcat, which handles compression.}} + +\newcommand{\anda}{\textit{A is for awk, which runs like a snail, and}} +\newcommand{\andc}{\textit{C is for cc, as hackers recall, while}} +\newcommand{\ande}{\textit{E is for emacs, which rebinds your keys, and}} +\newcommand{\andg}{\textit{G is for grep, a clever detective, while}} +\newcommand{\andi}{\textit{I is for indent, which rarely amuses, and}} +\newcommand{\andk}{\textit{K is for kill, which makes you the boss, while}} +\newcommand{\andm}{\textit{M is for more, from which less was begot, and}} +\newcommand{\ando}{\textit{O is for od, which prints out things nice, while}} +\newcommand{\andq}{\textit{Q is for quota, a Berkeley-type fable, and}} +\newcommand{\ands}{\textit{S is for spell, which attempts to belittle, while}} +\newcommand{\andu}{\textit{U is for uniq, which is used after sort, and}} +\newcommand{\andw}{\textit{W is for whoami, which tells you your name, while}} +\newcommand{\andy}{\textit{Y is for yes, which makes an impression, and}} + +\newcommand{\framea}{\abcframe{A}{is for}{awk}{which runs like a snail}} +\newcommand{\frameb}{\abcframe{B}{is for}{biff}{which reads all your mail}} +\newcommand{\framec}{\abcframe{C}{is for}{cc}{as hackers recall}} +\newcommand{\framed}{\abcframe{D}{is for}{dd}{the command that does all}} +\newcommand{\framee}{\abcframe{E}{is for}{emacs}{which rebinds your keys}} +\newcommand{\framef}{\abcframe{F}{is for}{fsck}{which rebuilds your trees}} +\newcommand{\frameg}{\abcframe{G}{is for}{grep}{a clever detective}} +\newcommand{\frameh}{\abcframe{H}{is for}{halt}{which may seem defective}} +\newcommand{\framei}{\abcframe{I}{is for}{indent}{which rarely amuses}} +\newcommand{\framej}{\abcframe{J}{is for}{join}{which nobody uses}} +\newcommand{\framek}{\abcframe{K}{is for}{kill}{which makes you the boss}} +\newcommand{\framel}{\abcframe{L}{is for}{lex}{which is missing from DOS}} +\newcommand{\framem}{\abcframe{M}{is for}{more}{from which less was begot}} +\newcommand{\framen}{\abcframe{N}{is for}{nice}{which it really is not}} +\newcommand{\frameo}{\abcframe{O}{is for}{od}{which prints out things nice}} +\newcommand{\framep}{\abcframe{P}{is for}{passwd}{which reads in strings twice}} +\newcommand{\frameq}{\abcframe{Q}{is for}{quota}{a Berkeley-type fable}} +\newcommand{\framer}{\abcframe{R}{is for}{ranlib}{for sorting ar table}} +\newcommand{\frames}{\abcframe{S}{is for}{spell}{which attempts to belittle}} +\newcommand{\framet}{\abcframe{T}{is for}{true}{which does very little}} +\newcommand{\frameu}{\abcframe{U}{is for}{uniq}{which is used after sort}} +\newcommand{\framev}{\abcframe{V}{is for}{vi}{which is hard to abort}} +\newcommand{\framew}{\abcframe{W}{is for}{whoami}{which tells you your name}} +\newcommand{\framex}{\abcframe{X}{is, well}{X}{of dubious fame}} +\newcommand{\framey}{\abcframe{Y}{is for}{yes}{which makes an impression}} +\newcommand{\framez}{\abcframe{Z}{is for}{zcat}{which handles compression}} diff --git a/abcs/poem.txt b/abcs/poem.txt new file mode 100644 index 0000000..5cb76bf --- /dev/null +++ b/abcs/poem.txt @@ -0,0 +1,27 @@ +A is for awk, which runs like a snail, and +B is for biff, which reads all your mail. +C is for cc, as hackers recall, while +D is for dd, the command that does all. +E is for emacs, which rebinds your keys, and +F is for fsck, which rebuilds your trees. +G is for grep, a clever detective, while +H is for halt, which may seem defective. +I is for indent, which rarely amuses, and +J is for join, which nobody uses. +K is for kill, which makes you the boss, while +L is for lex, which is missing from DOS. +M is for more, from which less was begot, and +N is for nice, which it really is not. +O is for od, which prints out things nice, while +P is for passwd, which reads in strings twice. +Q is for quota, a Berkeley-type fable, and +R is for ranlib, for sorting ar table. +S is for spell, which attempts to belittle, while +T is for true, which does very little. +U is for uniq, which is used after sort, and +V is for vi, which is hard to abort. +W is for whoami, which tells you your name, while +X is, well, X, of dubious fame. +Y is for yes, which makes an impression, and +Z is for zcat, which handles compression. + -- THE ABC'S OF UNIX -- 2.43.2