\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}}
