]> Pileus Git - ~andy/sfvlug/blob - abcs/abc.tex
Update ABCs.
[~andy/sfvlug] / abcs / abc.tex
1 \documentclass[13pt]{beamer}
2
3 \input{poem.tex}
4
5 %%%%%%%%%%%%%%%%%%%
6 % Commands/macros %
7 %%%%%%%%%%%%%%%%%%%
8 \newcommand{\link}[1]{
9   \begin{flushright}
10     \scriptsize{#1}
11   \end{flushright}
12 }
13
14 \newcommand{\header}[1]{
15   \hspace{-1em}\textit{#1:}
16 }
17
18 \newcommand{\sheader}[1]{
19   \vspace{1.5em}
20   \header{#1}
21 }
22
23 %%%%%%%%%%%%%%%%
24 % Header/theme %
25 %%%%%%%%%%%%%%%%
26 %\usetheme[
27 %  pageofpages=of,
28 %  alternativetitlepage=true,
29 %]{Torino}
30 \setbeamertemplate{navigation symbols}{}
31 \setbeamertemplate{footline}{}
32 \setbeamersize{text margin left=20mm} 
33 \setbeamersize{text margin right=10mm} 
34 \setbeamerfont{frametitle}{size={\fontsize{15}{16}}}
35
36 % Import packages
37 \usepackage[english]{babel}
38 \usepackage[latin1]{inputenc}
39 \usepackage{times}
40 \usepackage[T1]{fontenc}
41 \usepackage{graphics}
42 \usepackage{hyperref}
43 \usepackage{ulem}
44 \usepackage{listings}
45
46 %%%%%%%%%%%%%%%%%%%%
47 % Title page setup %
48 %%%%%%%%%%%%%%%%%%%%
49 \subject{%
50   abcs,
51   unix,
52 }
53
54 \keywords{%
55   abc,
56   abcs
57   unix,
58   commands,
59 }
60
61 \title[ABC's of Unix]{%
62   The ABC's of UNIX
63 }
64
65 \author[Spencer]{%
66   Andy Spencer
67 }
68
69 \date[2018-08-18]{%
70   August 18, 2018 \\
71   \small{San Fernando Valley Linux Users Group}
72 }
73
74 %%%%%%%%%%%%%%%%%
75 % Content pages %
76 %%%%%%%%%%%%%%%%%
77
78 \begin{document}
79
80 %%%%%%%%%%%%%%%%
81 % Introduction %
82 %%%%%%%%%%%%%%%%
83
84 \begin{frame}[plain]
85   \titlepage
86 \end{frame}
87
88 \section{The ABC's}
89
90 % A is for awk
91 \framea
92 \begin{frame}{\abca}
93   \header{awk is}
94   \begin{itemize}
95     \item Aho Weinberger Kernighan
96     \item a text processing utility
97     \item See also: sed, perl, python
98   \end{itemize}
99
100   \sheader{Some other ``A'' programs}
101   \begin{itemize}
102     \item[at] schedule jobs \textit{at} a given time
103     \item[alsa] sound system
104   \end{itemize}
105 \end{frame}
106
107 % B is for biff
108 \frameb
109 \begin{frame}{\anda \\ \abcb}
110   \header{biff is}
111   \begin{itemize}
112     \item an email notification program
113     \item traditionally a command line program
114     \item the original ``You've got mail''
115     \item possibly named after a dog
116   \end{itemize}
117
118   \sheader{Some other ``B'' programs}
119   \begin{itemize}
120     \item[bc] a command line calculator
121     \item[bash] the standard GNU shell
122     \item[bison] parser generator
123   \end{itemize}
124 \end{frame}
125
126 % C is for cc
127 \framec
128 \begin{frame}{\abcc}
129   \header{cc is}
130   \begin{itemize}
131     \item the C Compiler
132     \item one step in the compile process
133     \item GCC is the most common these days
134     \item See also: cpp, as, ld
135   \end{itemize}
136
137   \sheader{Some other ``C'' programs}
138   \begin{itemize}
139     \item[cd]  change directory (shell command)
140     \item[cat] ``concatenate'' files
141     \item[cron] run scheduled jobs
142   \end{itemize}
143 \end{frame}
144
145 % D is for dd
146 \framed
147 \begin{frame}{\andc \\ \abcd}
148   \header{dd is}
149   \begin{itemize}
150     \item binary file copy utility
151     \item can skip, seek, copy by blocks, swap bytes, convert encodings, etc
152   \end{itemize}
153
154   \sheader{Some other ``D'' programs}
155   \begin{itemize}
156     \item[dc] a reverse polish calculator \textit{(andy's favorite!)}
157     \item[ddd] a fancy C debugger
158     \item[dbus] Don't make a fuss, get on D-Bus!
159   \end{itemize}
160 \end{frame}
161
162 % E is for emacs
163 \framee
164 \begin{frame}{\abce}
165   \header{emacs is}
166   \begin{itemize}
167     \item a text editor
168     \item extremely configurable
169     \item one of the first ``free software'' programs
170   \end{itemize}
171
172   \sheader{Some other ``E'' programs}
173   \begin{itemize}
174     \item[eclipse] A more modern IDE
175     \item[ed] the \emph{standard} editor
176   \end{itemize}
177 \end{frame}
178
179 % F is for fsck
180 \framef
181 \begin{frame}{\ande \\ \abcf}
182   \header{fsck is}
183   \begin{itemize}
184     \item the ``file system checker''
185     \item used to repair broken file systems
186     \item not used as much on journalizing filesystems
187   \end{itemize}
188
189   \sheader{Some other ``F'' programs}
190   \begin{itemize}
191     \item[fortune] where I learned my ABC's!
192     \item[find] search for files
193     \item[fdisk] format partition table
194     \item[ftrace] trace kernel code calls
195   \end{itemize}
196 \end{frame}
197
198 % G is for grep
199 \frameg
200 \begin{frame}{\abcg}
201   \header{grep is}
202   \begin{itemize}
203     \item a text search utility
204     \item named after g/re/p from old UNIX editors
205   \end{itemize}
206
207   \sheader{Some other ``G'' programs}
208   \begin{itemize}
209     \item[git] version control
210     \item[gimp] powerful image editor 
211     \item[gpg] public key encryption
212     \item[g*] GNU/GTK/Gnome programs
213   \end{itemize}
214 \end{frame}
215
216 % H is for halt
217 \frameh
218 \begin{frame}{\andg \\ \abch}
219   \header{halt is}
220   \begin{itemize}
221     \item a way to shutdown your computer
222     \item can call other command such as kexec
223     \item see also: shutdown, reboot, init, telinit
224   \end{itemize}
225
226   \sheader{Some other ``H'' programs}
227   \begin{itemize}
228     \item[head] print first few lines of files
229     \item[hexdump] convert binary to hexadecimal
230     \item[htop] command line process monitor
231   \end{itemize}
232 \end{frame}
233
234 % I is for indent
235 \framei
236 \begin{frame}{\abci}
237   \header{indent is}
238   \begin{itemize}
239     \item a source code formatter
240     \item used to convert brace styles, indentation, etc
241   \end{itemize}
242
243   \sheader{Some other ``I'' programs}
244   \begin{itemize}
245     \item[info] GNU help browser
246     \item[inkscape] SVG image editor
247     \item[irssi] IRC client
248     \item[ip/iw] configure network interfaces
249     \item[iptables] configure firewalls
250   \end{itemize}
251 \end{frame}
252
253 % J is for join
254 \framej
255 \begin{frame}{\andi \\ \abcj}
256   \header{join is}
257   \begin{itemize}
258     \item a relational operator
259     \item matches lines in two different files
260     \item see also: cut, paste, cat
261   \end{itemize}
262
263   \sheader{Some other ``J'' programs}
264   \begin{itemize}
265     \item[jobs] show background processes
266     \item[j*] java programs
267   \end{itemize}
268 \end{frame}
269
270 % K is for kill
271 \framek
272 \begin{frame}{\abck}
273   \header{kill is}
274   \begin{itemize}
275     \item the UNIX Task Manager
276     \item can signal processes
277     \item see also: pkill, killall
278   \end{itemize}
279
280   \sheader{Some other ``K'' programs}
281   \begin{itemize}
282     \item[keymap] linux keyboard mappings
283   \end{itemize}
284 \end{frame}
285
286 % L is for lex
287 \framel
288 \begin{frame}{\andk \\ \abcl}
289   \header{lex is}
290   \begin{itemize}
291     \item a lexical analyser or ``lexer''
292     \item often used to create programming languages
293     \item See also YACC/bison/flex
294   \end{itemize}
295
296   \sheader{Some other ``L'' programs}
297   \begin{itemize}
298     \item[latex] you're looking at it!
299     \item[lynx] and friends
300     \item[libreoffice] office software
301   \end{itemize}
302 \end{frame}
303
304 % M is for more
305 \framem
306 \begin{frame}{\abcm}
307   \header{more is}
308   \begin{itemize}
309     \item a paginator
310     \item prints out a file or command output page by page
311     \item less is a more advanced version which can scroll up
312   \end{itemize}
313
314   \sheader{Some other ``M'' programs}
315   \begin{itemize}
316     \item[most] yet another paginator
317     \item[mkfs] format filesystems
318     \item[mpd] music player daemon
319     \item[make] the \emph{standard} build system
320     \item[man] manual pages (better than info!)
321   \end{itemize}
322 \end{frame}
323
324 % N is for nice
325 \framen
326 \begin{frame}{\andm \\ \abcn}
327   \header{nice is}
328   \begin{itemize}
329     \item used to control process priority
330     \item only for the default process scheduler
331     \item see also: ionice, chrt, taskset
332   \end{itemize}
333
334   \sheader{Some other ``N'' programs}
335   \begin{itemize}
336     \item[ntp] syncs your clocks
337     \item[nmap] port scanner
338     \item[netstat] show network connections
339   \end{itemize}
340 \end{frame}
341
342 % O is for od
343 \frameo
344 \begin{frame}{\abco}
345   \header{od is}
346   \begin{itemize}
347     \item ``octal dump''
348     \item can also dump out hex, binary, floating point, etc
349   \end{itemize}
350
351   \sheader{Some other ``O'' programs}
352   \begin{itemize}
353     \item[objdump] disassembler and more
354   \end{itemize}
355 \end{frame}
356
357 % P is for passwd
358 \framep
359 \begin{frame}{\ando \\ \abcp}
360   \header{passwd is}
361   \begin{itemize}
362     \item used to change your login password
363     \item see also: shadow, pam, getent, htpasswd
364   \end{itemize}
365
366   \sheader{Some other ``P'' programs}
367   \begin{itemize}
368     \item[patch] apply source code patches
369     \item[ps/pstree] print running processes
370     \item[ping] pong!
371     \item[pv] pipe viewer
372   \end{itemize}
373 \end{frame}
374
375 % Q is for quota
376 \frameq
377 \begin{frame}{\abcq}
378   \header{quota is}
379   \begin{itemize}
380     \item used to limit disk usage
381     \item see also: limit, ulimit
382     \item (I've never actually used it)
383   \end{itemize}
384
385   \sheader{Some other ``Q'' programs}
386   \begin{itemize}
387     \item[qemu] VM / emulator
388   \end{itemize}
389 \end{frame}
390
391 % R is for ranlib
392 \framer
393 \begin{frame}{\andq \\ \abcr}
394   \header{ranlib is}
395   \begin{itemize}
396     \item generates an index for an archive
397     \item used during the compile process
398   \end{itemize}
399
400   \sheader{Some other ``R'' programs}
401   \begin{itemize}
402     \item[rename] rename things
403     \item[rsync] copy files between computers
404     \item[rtorrent] bit torrent client
405   \end{itemize}
406 \end{frame}
407
408 % S is for spell
409 \frames
410 \begin{frame}{\abcs}
411   \header{spell is}
412   \begin{itemize}
413     \item a spell checker
414     \item common version include: ispell, aspell (GNU), myspell/hunspell (OpenOffice)
415   \end{itemize}
416
417   \sheader{Some other ``S'' programs}
418   \begin{itemize}
419     \item[ssh] remote login
420     \item[sed] \emph{the} stream editor
421     \item[su/sudo] also makes you the boss
422     \item[screen] terminal multiplexer
423     \item[strace] trace system calls
424   \end{itemize}
425 \end{frame}
426
427 % T is for true
428 \framet
429 \begin{frame}{\ands \\ \abct}
430   \header{true is}
431   \begin{itemize}
432     \item very simple
433     \item just returns ``true''
434     \item .. unless you're talking about GNU true
435     \item see also: false
436   \end{itemize}
437
438   \sheader{Some other ``T'' programs}
439   \begin{itemize}
440     \item[tex] you're looking at it!
441     \item[tar] \sout{tape} archiver
442     \item[tac] like cat, but backwards
443   \end{itemize}
444 \end{frame}
445
446 % U is for uniq
447 \frameu
448 \begin{frame}{\abcu}
449   \header{uniq is}
450   \begin{itemize}
451     \item used to remove duplicate lines
452   \end{itemize}
453
454   \sheader{Some other ``U'' programs}
455   \begin{itemize}
456     \item[uname] show kernel version
457     \item[un*] unzip/unxz/unshare/umount
458   \end{itemize}
459 \end{frame}
460
461 % V is for vi
462 \framev
463 \begin{frame}{\andu \\ \abcv}
464   \header{vi is}
465   \begin{itemize}
466     \item a text editor
467     \item also vim, elvis, vile, nvi, busybox
468   \end{itemize}
469
470   \sheader{Some other ``V'' programs}
471   \begin{itemize}
472     \item[vlc] media player
473     \item[vnc] remote desktop
474   \end{itemize}
475 \end{frame}
476
477 % W is for whoami
478 \framew
479 \begin{frame}{\abcw}
480   \header{whoami is}
481   \begin{itemize}
482     \item used for scripting
483     \item prints your username
484   \end{itemize}
485
486   \sheader{Some other ``W'' programs}
487   \begin{itemize}
488     \item[wireshark] network analyzer
489     \item[wine] run windows programs
490     \item[wc] count works or lines
491     \item[watch] watch watch watch
492     \item[wget] download stuff
493   \end{itemize}
494 \end{frame}
495
496 % X is, well, X
497 \framex
498 \begin{frame}{\andw \\ \abcx}
499   \header{X is}
500   \begin{itemize}
501     \item the display server
502     \item used for (almost) all graphical interfaces
503     \item ``the largest program that doesn't actually do anything'' -somebody
504     \item see also: wayland, mir, directfb
505   \end{itemize}
506
507   \sheader{Some other ``X'' programs}
508   \begin{itemize}
509     \item[send stuff to | ] xargs
510     \item[xournal] annotate pdfs
511     \item[xxd] another hex dumper
512   \end{itemize}
513 \end{frame}
514
515 % Y is for yes
516 \framey
517 \begin{frame}{\abcy}
518   \header{yes is}
519   \begin{itemize}
520     \item used to repeat a line
521     \item answers ``yes'' to any prompt
522   \end{itemize}
523
524   \sheader{Some other ``Y'' programs}
525   \begin{itemize}
526     \item[yacc] yet another compiler compiler
527     \item[youtube-dl] download music/videos
528   \end{itemize}
529 \end{frame}
530
531 % Z is for zcat
532 \framez
533 \begin{frame}{\andy \\ \abcz}
534   \header{zcat is}
535   \begin{itemize}
536     \item a like cat for compressed files
537     \item used for gzip files (Lempel-Ziv coding - LZ77)
538     \item see also: bzip2, lzma, lzop, zx
539   \end{itemize}
540
541   \sheader{Some other ``Z'' programs}
542   \begin{itemize}
543     \item[zsh] bash with more completion
544     \item[zathura] pdf viewer
545     \item[zenity] command like dialogs
546   \end{itemize}
547 \end{frame}
548
549 \end{document}