\documentclass[8pt,letterpaper,twoside]{extreport}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{kpfonts}

% page size
\usepackage[
	paperheight=8.5in,
	paperwidth=5.5in,
	left=1cm,
	right=1cm,
	top=2cm,
	bottom=2cm]
	{geometry}

% fancy headers
\usepackage{fancyhdr}
\pagestyle{fancy}
 \fancyhf{}
 \fancyhead[RO]{\textit{A Linux Dictionary}}
 \fancyhead[LE]{1\textsuperscript{st} Edition}
 \cfoot{Page \thepage}
\renewcommand{\footrulewidth}{0.5pt}

% multicolumns
\usepackage{multicol}
\setlength{\columnsep}{0.25in}
\setlength{\columnseprule}{0.1pt}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Comment out the following in favor of using definition lists

% hanging indents; keep this as we need it for the bibliography
\usepackage{hanging}

% paragraph spacing in all paragraphs
% \usepackage{parskip}
% \setlength{\parskip}{0pt}

% Use tab stops when we need to (especially in footnotes)
% \usepackage{tabto}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Use definition lists instead:
\usepackage{enumitem}

% Do not insert space between items
% We will space between items when we create the definition list
\setlist{noitemsep}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Include sections and subsections in the TOC
% https://latex-tutorial.com/tutorials/table-of-contents/
\setcounter{tocdepth}{2}

% Turn off section numbering
% https://tex.stackexchange.com/questions/246571/table-of-contents-problem
% Necessary to create table of contents with unnumbered sections
\setcounter{secnumdepth}{0}

% Use a custom title for the TOC
% https://tex.stackexchange.com/questions/35903/formatting-the-title-of-the-toc
\AtBeginDocument{\renewcommand\contentsname{The Contents}}

% Center the TOC title
% https://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf
% https://tex.stackexchange.com/questions/114709/how-do-i-get-the-table-of-contents-list-of-figures-and-list-of-tables-to-have-t
% See Werner's note about the variable 'Z'
\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\hfill\Large\textbf}
\renewcommand{\cftaftertoctitle}{\hfill} 

% Change the space above and below the TOC title
% https://tex.stackexchange.com/questions/46724/remove-vertical-space-before-table-of-contents-title
\setlength{\cftbeforetoctitleskip}{-3em}
\setlength{\cftaftertoctitleskip}{1em}

% Tighten up the typography
\usepackage{microtype}
\raggedbottom

\author{Kenneth John Odle}

\begin{document}

\tableofcontents

\medskip

\begin{small}
Pages 1-40 are in volume 1. Pages 41-80 are in volume 2.
\end{small}

\bigskip

\hrule

\begin{center}
\section{The Introduction}
\end{center}

\begin{multicols}{2}

% \begin{small}

What follows is a dictionary of various terms related to Linux. It currently resides online at \texttt{https://git.kjodle.net/kjodle/li \\ nux-dictionary}. Go there to buy a paper copy of this book. 

\textbf{Note:} A lot of these terms also relate to Unix, upon which Linux is based, and may have little meaning or a different meaning in a Linux context. \textit{Caveat emptor!}

\textbf{n.b.:} Some of these terms may also refer to Mac OSX or Windows. \textit{Intense shuddering intensifies.} I have tried to keep these references to a minimum.

I make no warranty, express or implied, regarding the accuracy, completeness, or currency of any of these terms. Most of the software described herein is in a fairly heavy state of development and things change. Sometimes they change quickly, sometimes they evolve slowly over time, but the salient point is that they change. Sources sometimes confirm one another and sometimes contradict one another because they may be looking at information which was published in different years. The moving hand writes, and having written, moves on.

As well, there is no small amount of controversy regarding the definition of some of these terms. This is to be expected: the Linux community is large and diverse, and some of these terms no doubt have different meanings in different contexts. I have tried to be as thorough in my research as I can, but I have no doubt missed a great many things. If you would like to make aware of errors and/or omissions, contact info is inside the back cover.

I have tried to make as few value judgments as possible, particularly with regard to distros. The best distro is the one that works best for your particular set of needs. The same is true of command options. Anyone can get a directory listing with \textbf{ls}, but I prefer \textbf{ls -Ahl}. You may prefer \textbf{ls -al} or even just \textbf{ls -A}. The choice is yours. While there are often many wrong ways to do something, there are often many right ways to do something, as well.

Likewise, when I point out that a lot of people like a particular item, or that a lot of people dislike a particular item, I am not suggesting that you should be in the same camp, or that I consider either option valid. I am merely reporting what has come up in my research. As much as is humanly possible, I have tried to exclude my own opinion from these pages. My experience is neither broad enough nor deep enough as to inform other's opinions on a wide range of Linux-related topics. When I say that people like or don't like something, I try to include the most often cited reason(s), and in the case where they don't like something, I also try to include the most popular alternatives, if there are any.

With regard to alphabetizing, I do not include the leading dot that indicates a file name (so \texttt{.deb} is in the `d' section), nor do I include an asterisk used as a wildcard (meaning that \texttt{*nix} is alphabetized with other terms that start with `n'). Information about . (dot) and .. (dot dot) is found in the `d' section as well.

I created this document in \LaTeX{}, which is an ideal situation for a document like this, because it makes it easy to keep things uniform. It does introduce other issues, however. To see what they were and how I handled them, please consult the source code, listed at the beginning of this introduction. Again, if you have suggestions as to how to do it better, contact info is inside the back cover.

I have not included links in any of the entries. Links tend to change or fade away, and your best bet for finding anything is always an internet search.

% \end{small}

\end{multicols}

\hrule

\begin{center}
\section{The Abbreviations}
\end{center}

\begin{multicols}{2}

% \begin{small}

Standard Latin definitions are used extensively throughout this document.

\textit{cf.} -- An abbreviation of the Latin word \textit{confer}, meaning ``compare.'' Essentially, compare the current entry to this other one.

\textit{e.g.} -- An abbreviation of the Latin phrase \textit{exempli gratia}, meaning ``for the sake of an example.''

\textit{i.e.} -- An abbreviation of the Latin phrase \textit{id est}, meaning, ``that is.''

\textit{n.b.} -- An abbreviation of the Latin phrase \textit{nota bene}, meaning ``note well.'' It indicates an aside, or more often, a warning.

\textit{q.v.} -- This is an abbreviation of the Latin phrase \textit{quod vide}, which translates as ``which see'' which denotes a cross reference to another item. Essentially, it means ``see also (this other thing).''

\textit{qq.v.} -- Similar to \textit{q.v.} (but an abbreviation of the Latin phrase \textit{quae vide}), this denotes a cross reference to two or more other items. Essentially, it means ``see also (these other things).''

\medskip

Additional modern abbreviations used include:

\textbf{RTFM} ``Read the effing manual'' 

\textbf{tl;dr:} ``too long; didn't read''

\textbf{YMMV} ``Your mileage may vary''

% \end{small}

\end{multicols}

\hrule

\begin{center}
\section{The Words}
\end{center}

\bigskip

% {\parskip=2pt %Add parskip

\begin{multicols}{2}

%\begin{small}

\begin{description}[leftmargin=4mm,labelsep=3mm,itemindent=0mm,itemsep=1mm]

\begin{centering}
\subsection{alias -- fsck}
\end{centering}

\item[alias] A command for creating a shell alias for a command.

\item[ALSA] 

\item[apt] A command (\textbf{a}dvanced \textbf{p}ackaging \textbf{t}ool) for installing new software. It is the front end for the Debian package management system, performing a large number of functions, including downloading of packages, resolving dependencies, and installation of Debian packages (which have a \texttt{.deb} file extension).

\item[apt-get] 

\item[Arch Linux] 

\item[bash] 

\item[bin] 

\item[binary] 

\item[boot] 

\item[build] 

\item[chmod] 

\item[chown] 

\item[Cinnamon] 

\item[clear] 

\item[CLI] The Command Line Interface, that is, a text-based interface, which is the opposite of a GUI or graphical user interface.

\item[codec] A piece of software that encodes and decodes (i.e., plays) digital data, typically audio and video streams.

\item[command binary] 

\item[command line] 

\item[compile] 

\item[console] 

\item[cowsay] 

\item[cp] 

\item[CUPS] The Common Unix Print Server. It is Ubuntu's print server, which is a dream when it works properly and a nightmare when it doesn't.

\item[daemon] A process that runs in the background. These perform a large number of tasks, such as writing to system logs or monitoring your network.

\item[Debian] 

\item[dependency] 

\item[dev] 

\item[df] 

\item[diff] 

\item[distro] Short for ``distribution,'' this refers to a specific version of Linux that is customized with its own software, options, and look and feel. These include things like Ubuntu, Debian, and Fedora. \textit{c.f.} flavor.

\item[. (dot)] 

\item[.. (dot dot)] 

\item[dpkg] 

\item[du] 

\item[dvipdf] 

\item[echo] 

\item[Elementary OS] 

\item[etc] 

\item[Fedora] 

\item[find] 

\item[flabor] 

\item[fsck] A utility (\textbf{f}ile \textbf{s}ystem che\textbf{ck}) for checking the consistency of a file system. (The Windows equivalent is \texttt{chkdsk}.) fsck runs automatically on every 30th boot of Ubuntu.

\medskip
\hrule

\begin{centering}
\subsection{gedit - mv}
\end{centering}

\item[gedit] GNOME's standard GUI text editor.

\item[Ghost Script] 

\item[git] 

\item[GNOME] 

\item[gpdf] An application for viewing pdf files.

\item[grep] 

\item[groff] 

\item[GUI] 

\item[gv] A command (GhostView) for viewing postscript files from the command line.

\item[head] 

\item[history] 

\item[home] 

\item[hostname] 

\item[info] 

\item[init] 

\item[JED] A powerful but easy to use text editor available for both GNU Linux and other operating systems.

\item[jobs] 

\item[KDE] A desktop environment used by the openSuse and Kubuntu Linux distros as well as others.

\item[KDM] The \textbf{K}DE \textbf{D}isplay \textbf{M}anager, which is the standard display manager for the KDE desktop. It provides the initial login screen, and also manages the starting and stopping of X (\textit{q.v.}) server sessions.

\item[kdvi] A KDE application, similiar to xdvi (\textit{q.v.}) for viewing dvi files.

\item[kernel] 

\item[kernel module] 

\item[kill] 

\item[kpdf] An application for viewing pdf files.

\item[Kubuntu] A GUI for Linux, based on Ubuntu. It uses KDE.

\item[latex] 

\item[lib] 

\item[Linux Mint] 

\item[locate] command

\item[ls]

\item[man] A command-line utility to display the ``man'' (i.e., manual) page for a particular command. It has many parameters. Some people jest that \texttt{man} is the only command you really need to know. Try \texttt{man man} to start. The actual files that \texttt{man} reads from are generally stored in \texttt{/usr/share/man}. \\ A lot of people don't find the \texttt{man} command very helpful, as it generally contains no examples. If you are in this camp, \textit{qq.v.} ``tldr'' and ``info.''

\item[media] 

\item[Metacity] The window manager of the GNOME desktop.

\item[mkdir] 

\item[mnt] 

\item[mv] A command for moving files and directories.

\medskip
\hrule

\begin{centering}
\subsection{nano -- sys}
\end{centering}

\item[nano] A text editor for *nix systems, based on curses (\textit{q.v.}) It is a clone of Pico form the Pine email client.

\item[Nautilus] The default file manager for GNOME and Ubuntu. It is the equivalent of MacOSX's Finder or Windows Explorer.

\item[opt] 

\item[package] 

\item[pandoc] 

\item[pdftk] A command line utility for manipulating pdf files. PDF Chain is a GUI wrapper for pdftk.

\item[ping] 

\item[Plasma] 

\item[proc] 

\item[Pulse] 

\item[Puppy Linux] 

\item[pwd] Short for ``print working directory,'' this command displays the path you are on from your home directory.

\item[rm] 

\item[rpm] 

\item[root] 

\item[run] 

\item[SANE] 

\item[sbin] 

\item[shell] 

\item[srv] 

\item[sudo] An acronym for \textbf{s}uper\textbf{u}ser \textbf{do}. It provides a fairly safe environment (YMMV, however) for non-root users to access files, directories, and settings, without native root permission. It is required to execute some commands.

\item[sudoer] A user with \texttt{sudo} permission rights.

\item[sys] A root-level directory that contains information about devices, drivers, and some kernel features.

\medskip
\hrule

\begin{centering}
\subsection{tail -- zip}
\end{centering}

\item[tail] 

\item[tar] A command for archiving files into tarballs. As a noun, it is also shorthand for the tarball itself.

\item[tar (tarball)] Tar is shorthand for ``tape archive.'' Although tape archives are no longer around, tarballs are a common file archive format in Linux. Tarballs are not compressed, but you can use a compression tool such as gzip or bzip2 when creating them to compress the files. The common file extension for a tarball is .tar, as in archive.tar. When combined with gzip, tarballs often take the filename format archive.tar.gz and when combined with bzip2, filenames often assume the filename archive.tar.bz2.

\item[terminal] A text-based user interface. On most Linux distros, it can be accessed by pressing \texttt{Ctrl + Alt + t}.

\item[tex] 

\item[tldr] 

\item[tmp] 

\item[top] 

\item[touch] 

\item[troff] 

\item[Tux] 

\item[Ubuntu] 

\item[uname] 

\item[Unity] Ubuntu's desktop environment, \textit{i.e.}, the name for Ubuntu's graphical interface. A ``shell'' for GNOME.

\item[unix principle] 

\item[unzip] A command for decompressing \texttt{.zip} archives.

\item[update] To change software or parts of software to newer versions, in order to add new features, eliminate bugs, or enhance security, or for a combination of those three reasons. In Ubuntu, the apt (\textit{q.v.}) application handles updates.

\item[useradd] 

\item[userdel] 

\item[usr] 

\item[var] 

\item[VI (vi)] A command line text editor. ``VI'' refers to the word ``visual.''

\item[VIM] Acronym for ``VI Improved.''

\item[wget] 

\item[which] A command which shows where an app is installed. The default usage is \texttt{which <appname>}.

\item[window manager] A layer of software that works with the X Window System (\textit{q.v.}) and provides windows management. KDE uses KWin and GNOME uses Metacity.

\item[working directory] 

\item[X, X-11, X-Windows] A windowing system for bitmap displays which is common on Unix-like operating systems. It handles the low-level tasks for the graphical interface. We typically discuss \textbf{X-11} as the eleventh version is the one currently in use on most Linux desktop systems.

\item[xdvi] An application for viewing dvi files.

\item[Xfce] A desktop environment that is considered to be one of the most efficient in terms of resource usage, and is therefore often preferred on older machines. It forms the basis of Xubuntu.

\item[xpdf] An application for viewing pdf files.

\item[Xubuntu] A distro derived from Ubuntu that uses the Xfce desktop (\textit{q.v.}).

\item[zip] A command for compressing one or more files into an archive using the zip compression algorithm. 

\end{description}

%\end{small}

\end{multicols}

\hrule

\begin{center}
\section{The Sources}
\end{center}

\begin{multicols}{2}

As much as possible, I've tried to stick to APA style here, because it focuses on the date the article or book was published, which is relevant here (\textit{q.v.} my remarks in the introduction). I am sure this is not perfect, because the citation style I am most familiar with is MLA style. I have also added the date of access, with the exception of Wikipedia sources, because APA omits this except for Wikipedia articles. The date of access is in square brackets, in the format \texttt{YYYY.MM.DD}.

As always, \textit{caveat emptor!}

\end{multicols}

\begin{hangparas}{12mm}{1}

\begin{small}

Community Help Wiki. (n.d.) \textit{Glossary}. Ubuntu Documentation. \texttt{https://help.ubuntu.com/community/Gloss \\ ary} [Accessed 2021.11.18]

JED (text editor). (2021, November 15). In \textit{Wikipedia}. \texttt{https://en.wikipedia.org/wiki/JED\_(text\_editor)}

The Linux Development Project. (n.d.). \textit{Linux Filesystem Hierarchy: Glossary}. \texttt{https://tldp.org/LDP/Linux- \\ Filesystem-Hierarchy/html/glossary. \\ html} [Accessed 2021.11.17.]

Linuxtopia. (n.d.). \textit{Linux - Glossary}. \texttt{https://www.linuxtopia.org/online\_books/introduction\_to\_linux/g \\ loss.html} [Accessed 2021.11.17.]


\end{small}

\end{hangparas}

\end{document}
