Unix: It could be worse, but it'll take time
Man pages that confuse you even more than they help you
Having to read man pages in the first place
Needing help and not knowing that the command to get help is 'man' (OBVIOUSLY, 'help' would be too easy - oops, 'help' is already reserved by the shell, well, bash at least, maybe not others) - er wait, is the command 'info'? Ah yes...
[alexant@x84-33-247 alexant]$ info
File: dir Node: Top This is the top of the INFO tree
This (the Directory node) gives a menu of major topics.
Typing "d" returns here, "q" exits, "?" lists all INFO commands, "h"
gives a primer for first-timers, "mEmacs<Return>" visits the Emacs topic,
etc.
In Emacs, you can click mouse button 2 on a menu item or cross reference
to select it.
--- PLEASE ADD DOCUMENTATION TO THIS TREE. (See INFO topic first.) ---
* Menu: The list of major topics begins on the next line.
Emacs
* Ada mode: (ada-mode). The GNU Emacs mode for editing Ada.
* Autotype: (autotype). Convenient features for text that you enter frequently
in Emacs.
* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
Java, Pike, and IDL code.
* CL: (cl). Partial Common Lisp support for Emacs Lisp.
* Dired-X: (dired-x). Dired Extra Features.
* EUDC: (eudc). A client for directory servers (LDAP, PH)
* Ebrowse: (ebrowse). A C++ class browser for Emacs.
* Ediff: (ediff). A visual interface for comparing and merging programs.
-----Info: (dir)Top, 87 lines --Top---------------------------------------------
Welcome to Info version 4.6. Type ? for help, m for menu item.
Thanks info, that clears it right up!
Simplicity at all costs (which is to say simplicity for the developers, eyeball-clawing complexity for the users)
Inconsistency being a virtue
"Sure I'll erase your whole filesystem, because you just typed rm -rf / and that couldn't have been a typo"
xdefaults
xhost
NFS locking up the whole filesystem waiting for a timeout
crond
C, language of infinite buffer overflows
A million stupid "libraries" all dependent on each other
libBlah0.0.0.1.2.43b-breaks-compatibility-with-libBlah0.0.0.1.2.43a
X-Windows: "The client is the server is the server is the client and the boundary between them is arbitrary,"
X-Windows: Raw pixel coordinates with no way to automatically adjust on-screen graphics' aspect ratios. "A rectangle is a rectangle, a square is a square, unless you're in 1280x1024 in which case a square is a rectangle too, and a circle is an ellipse, and GOD KNOWS what that arc is"
ICCCM
Kernel modules
25 different goddam places for shell config files
/etc, config file wasteland, except when the config files are in /usr/local somewhere, or maybe /opt, or maybe /var
ifconfig: illegal option -- p
usage: ifconfig [-L] interface address_family [address [dest_address]]
[parameters]
ifconfig interface create
ifconfig -a [-L] [-d] [-m] [-u] [address_family]
ifconfig -l [-d] [-u] [address_family]
ifconfig [-L] [-d] [-m] [-u]
(null)
/var/log/amillionlogfilessittingtherefornoreason
/bin, /usr/bin, /usr/local/bin, /usr/sbin, /sbin, what's the difference? Who knows! Just remember, binaries don't go in /bin, they go in /usr/bin! Obviously! What's "usr" short for? "User?" Oh OK, that's where the user home directories must be, right?
[alexant@x84-33-247 alexant]$ help
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
%[DIGITS | WORD] [&] (( expression ))
. filename :
[ arg... ] [[ expression ]]
alias [-p] [name[=value] ... ] bg [job_spec]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] case WORD in [PATTERN [| PATTERN].
cd [-L|-P] [dir] command [-pVv] command [arg ...]
compgen [-abcdefgjksuv] [-o option complete [-abcdefgjksuv] [-pr] [-o
continue [n] declare [-afFirtx] [-p] name[=valu
dirs [-clpv] [+N] [-N] disown [-h] [-ar] [jobspec ...]
echo [-neE] [arg ...] enable [-pnds] [-a] [-f filename]
eval [arg ...] exec [-cl] [-a name] file [redirec
exit [n] export [-nf] [name[=value] ...] or
false fc [-e ename] [-nlr] [first] [last
fg [job_spec] for NAME [in WORDS ... ;] do COMMA
for (( exp1; exp2; exp3 )); do COM function NAME { COMMANDS ; } or NA
getopts optstring name [arg] hash [-lr] [-p pathname] [-dt] [na
help [-s] [pattern ...] history [-c] [-d offset] [n] or hi
if COMMANDS; then COMMANDS; [ elif jobs [-lnprs] [jobspec ...] or job
kill [-s sigspec | -n signum | -si let arg [arg ...]
local name[=value] ... logout
popd [+N | -N] [-n] printf format [arguments]
pushd [dir | +N | -N] [-n] pwd [-PL]
read [-ers] [-u fd] [-t timeout] [ readonly [-anf] [name[=value] ...]
return [n] select NAME [in WORDS ... ;] do CO
set [--abefhkmnptuvxBCHP] [-o opti shift [n]
shopt [-pqsu] [-o long-option] opt source filename
suspend [-f] test [expr]
time [-p] PIPELINE times
trap [arg] [signal_spec ...] or tr true
type [-afptP] name [name ...] typeset [-afFirtx] [-p] name[=valu
ulimit [-SHacdflmnpstuv] [limit] umask [-p] [-S] [mode]
unalias [-a] [name ...] unset [-f] [-v] [name ...]
until COMMANDS; do COMMANDS; done variables - Some variable names an
wait [n] while COMMANDS; do COMMANDS; done
{ COMMANDS ; }
Thanks for the help, bash, that clears it right up! Gee, it's getting late. What time is it? [alexant@x84-33-247 bin]$ time
-bash: syntax error near unexpected token `newline'
[alexant@x84-33-247 local]$ cdrecord
-bash: cdrecord: command not found
[alexant@x84-33-247 local]$ recordcd
-bash: recordcd: command not found
[alexant@x84-33-247 local]$ record my cd
-bash: record: command not found
[alexant@x84-33-247 local]$ there's a cd on my desktop, record it!
> what?
> What is this?
> A new prompt?
> What did I do to deserve this?
> Get me out of here!
> stop
> end
> QUIT
> QUIT MOTHER****ER
> QUIT
> QUIT
> QUIT
hiding files that start with a dot
deleting files that start with a dot:
[alexant@x84-33-247 alexant]$ rm .*
Cue Unix Tyrant: Silly non-nerd, that would be too intuitive! Unix will not allow that. The penalty for screwing up is, your entire filesystem is now empty! Ha ha!"
Practically useless copy-paste, when it even works at all
[alexant@x84-33-247 alexant]$ computer, display a list of everybody logged in.
-bash: computer,: command not found
Stuff scrolling past the terminal and not knowing about 'more' and 'less'
The fact that 'more' and 'less,' which do basically the same thing (?), are actually called 'more' and 'less' - yes, that makes sense... although 'less' sense than 2+3=8
If I list files with ls, and I move files with mv, and I copy files with copy, then it must be that I rename files with, hmm... 'rn'?
[alexd@x84-33-247 alexd]$ rn
-bash: rn: command not found
Oh well, maybe this one's spelled out the long way:
[alexd@x84-33-247 alexd]$ rename
-bash: rename: command not found
[alexd@x84-33-247 alexd]$ help rename
-bash: help: no help topics match `rename'. Try `help help' or `man -k rename' or `info rename'.
[alexd@x84-33-247 alexd]$ info rename
YES!!!! INFO IS MY SAVIOUR!!! Wait...
File: *manpages*, Node: rename, Up: (dir)
rename(n) Tcl Built-In Commands rename(n)
______________________________________________________________________________
NAME
rename - Rename or delete a command
SYNOPSIS
rename oldName newName
_________________________________________________________________
DESCRIPTION
Rename the command that used to be called oldName so that it is now
called newName. If newName is an empty string then oldName is deleted.
oldName and newName may include namespace qualifiers (names of contain-
ing namespaces). If a command is renamed into a different namespace,
future invocations of it will execute in the new namespace. The rename
command returns an empty string as result.
SEE ALSO
-----Info: (*manpages*)rename, 28 lines --Top-----------------------------------
Welcome to Info version 4.6. Type ? for help, m for menu item.
Namespace? Empty string? Qualifiers? Maybe not.
-----
Stupid stupid stupid stupid stupid. Where's the thought? It's like, "OK, here's the lump of poop, sure it's stinky but it gets the job done so stop complaining."