SHELL REFERENCE MANUAL

UNIX-Like Command Shell Interface

Phone: 555-0760

Introduction

Welcome to the Shell, the command-line interface for the Emulator.ca Systems BBS network.

Walk into any corporate computing centre or university computer lab in 1985, and you will find the same thing: programmers and system administrators working at UNIX terminals, navigating directories with cd, listing files with ls, and building complex operations from simple commands. These skills command salaries of $40,000 or more. The UNIX operating system runs on machines costing $15,000 to $100,000 - machines guarded by locked doors and system administrators who do not suffer novices gladly.

Until now.

The Shell brings genuine UNIX-style command-line computing to your home computer through the Emulator.ca modem network. This is not a simulation or a toy - it is a working hierarchical filesystem with real file storage that persists between sessions. Create directories, write files, use wildcards and output redirection. The commands you learn here are the same commands used by professionals at Bell Labs, Berkeley, and every major software company in the nation.

We have designed the Shell to follow established UNIX conventions precisely. If you learn these commands here, that knowledge transfers directly to real UNIX systems. If you already know UNIX, you will feel immediately at home. And unlike that temperamental VAX at the university computer centre, this shell is available whenever you want it - no waiting for a free terminal, no fighting for disk quota, no sysadmin asking why you are still logged in at 2 AM.

Your files are automatically preserved between sessions. Create a directory structure, write your notes and programs, and they will be waiting for you next time you dial in. The Shell is your own persistent workspace on the Emulator.ca Systems network.

System Capabilities:

Unlike traditional BBS systems, files and directories are automatically saved and will be available on subsequent connections. Users may create their own directory structure and store work between sessions.

Quick Start

To begin using the Shell immediately:

Step 1: Dial the service

ATDT555-0760

Step 2: Once connected, try these commands:

ls              (list your files)
pwd             (show current directory)
mkdir projects  (create a new directory)
cd projects     (enter the directory)
echo "Hello" > test.txt   (create a file)
cat test.txt    (display the file)

Step 3: Explore further with help to see all available commands.

You are now ready to manage files, build directory structures, and work productively within the Shell environment.

GETTING STARTED

To access the Shell, configure the modem and dial:

ATDT555-0760

Upon successful connection, you will see the shell banner and command prompt:

CODE_FENCE_0

The Command Prompt

The shell prompt displays your current context:

user@bbs:/home/user$ 
Component Description
user Your username
bbs The hostname of this BBS system
/home/user Your current working directory
$ Normal user prompt (ready for input)

Command History

Use the arrow keys to navigate through your command history:

The shell retains up to 50 commands in session history. Use the arrow keys to recall or modify previous commands.

FILESYSTEM STRUCTURE

The hierarchical filesystem is one of UNIX's great innovations. Instead of a flat list of files (as in CP/M or early DOS), files are organised into directories that can contain other directories, creating a tree structure. This organization scales - whether you have 10 files or 10,000, a good directory structure keeps everything findable.

The Shell provides a hierarchical filesystem modeled after UNIX System V. Upon first connection, the following directory structure is initialized:

/ (root)
├── bin/          System binaries (read-only)
├── etc/          System configuration files
│   ├── hostname  Contains system hostname
│   └── motd      Message of the day
├── home/
│   └── user/     Your home directory (~)
│       ├── README.txt
│       ├── welcome.txt
│       └── notes/
│           └── ideas.txt
├── tmp/          Temporary files
└── var/
    └── log/
        └── system.log

Directory Descriptions

Directory Purpose
/ Root directory — top of the filesystem hierarchy
/home/user User home directory. This is the initial working directory and where ~ resolves.
/bin System binary directory (reserved for system use)
/tmp Temporary storage — create scratch files here
/etc System configuration files — see motd and hostname
/var Variable data files — contains logs and runtime data
/var/log System log files

File Attributes

Each file and directory has associated metadata:

CODE_FENCE_0

NAVIGATION COMMANDS

pwd — Print Working Directory

Display the absolute path of your current directory.

SYNOPSIS: pwd

CODE_FENCE_0

cd — Change Directory

Change the current working directory.

SYNOPSIS: cd [directory]

Form Action
cd Change to home directory (~)
cd ~ Change to home directory
cd / Change to root directory
cd .. Change to parent directory
cd path Change to specified path (relative or absolute)

CODE_FENCE_0

ls — List Directory Contents

List files and directories.

SYNOPSIS: ls [-l] [-a] [path...]

Option Description
-l Long format — show permissions, size, and modification date
-a All files — include hidden files (starting with .)
-la Combine long format with all files

CODE_FENCE_0

CODE_FENCE_0

CODE_FENCE_0

FILE OPERATIONS

cat — Concatenate and Display Files

Display the contents of one or more files.

SYNOPSIS: cat file [file...]

CODE_FENCE_0

CODE_FENCE_0

touch — Create File or Update Timestamp

Create an empty file or update an existing file's modification time.

SYNOPSIS: touch file [file...]

CODE_FENCE_0

rm — Remove Files

Delete one or more files. Cannot remove directories — use rmdir for that.

SYNOPSIS: rm file [file...]

There is no undelete facility. Deleted files cannot be recovered. Verify file selection before executing rm.

CODE_FENCE_0

cp — Copy Files

Copy a file to a new location.

SYNOPSIS: cp source destination

If the destination is a directory, the file is copied into that directory with its original name.

CODE_FENCE_0

mv — Move or Rename Files

Move a file to a new location or rename it.

SYNOPSIS: mv source destination

CODE_FENCE_0

CODE_FENCE_0

mkdir — Make Directory

Create one or more new directories.

SYNOPSIS: mkdir directory [directory...]

CODE_FENCE_0

rmdir — Remove Empty Directory

Remove an empty directory. The directory must be empty — use rm to delete files first.

SYNOPSIS: rmdir directory [directory...]

CODE_FENCE_0

TEXT OUTPUT AND REDIRECTION

One of UNIX's most powerful ideas is that commands do not care where their output goes. By default, output appears on your terminal. But with redirection operators, you can send that output to a file instead - creating logs, building documents, or capturing results for later analysis.

This simple mechanism enables sophisticated workflows. You can build files incrementally, combine outputs from multiple commands, and create automated processes. Professional programmers use these techniques daily.

echo — Display Text

Display a line of text. Often used with redirection to write to files.

SYNOPSIS: echo [text...]

CODE_FENCE_0

Output Redirection

The shell supports output redirection to write command output to files:

Operator Description
> Redirect output to file (overwrite if exists)
>> Redirect output to file (append to existing content)

CODE_FENCE_0

CODE_FENCE_0

CODE_FENCE_0

Use > to create new files or overwrite existing ones. Use >> to append content to existing files, which is useful for log files.

WILDCARDS (GLOBBING)

Here is where command-line efficiency truly shines. Instead of typing individual filenames, wildcards allow you to specify multiple files with a single pattern. Need to delete all your backup files? Remove all .bak files with one command. Want to see only your text files? ls *.txt shows exactly those.

The shell expands wildcard patterns before executing commands - it builds the list of matching files and passes them to the command. This happens automatically and invisibly.

Wildcard Matches
* Any sequence of characters (including empty)
? Any single character

CODE_FENCE_0

CODE_FENCE_0

CODE_FENCE_0

CODE_FENCE_0

If no files match a wildcard pattern, the literal pattern is kept. For example, if there are no .bak files, ls *.bak will look for a file literally named *.bak.

PATH RESOLUTION

Paths can be specified in multiple ways. Understanding path resolution is key to efficient shell navigation.

Absolute Paths

Absolute paths start with / and specify the complete location from the root:

/home/user/notes/ideas.txt
/etc/motd
/var/log/system.log

Relative Paths

Relative paths are interpreted from your current directory:

notes/ideas.txt        # File in subdirectory
myfile.txt             # File in current directory

Special Path Components

Symbol Meaning
. Current directory
.. Parent directory
~ Home directory (/home/user)
~/path Path relative to home directory

CODE_FENCE_0

Multiple .. components may be chained to traverse several levels: cd ../../.. ascends three directories.

SYSTEM COMMANDS

clear / cls — Clear Screen

Clear the terminal screen.

SYNOPSIS: clear
ALIAS: cls

whoami — Display Username

Print the current username.

SYNOPSIS: whoami

CODE_FENCE_0

date — Display Date and Time

Show the current system date and time.

SYNOPSIS: date

CODE_FENCE_0

uname — System Information

Print system information.

SYNOPSIS: uname [-a]

Option Output
(none) Operating system name: BBS-UNIX
-a All system information

CODE_FENCE_0

help — Display Help

Show available commands and their usage.

SYNOPSIS: help

exit / quit / logout — Disconnect

End the shell session and disconnect from the BBS.

SYNOPSIS: exit
ALIASES: quit, logout

COMMAND REFERENCE TABLE

Command Synopsis Description
pwd pwd Print current working directory
cd cd [dir] Change directory (default: home)
ls ls [-la] [path] List directory contents
cat cat file... Display file contents
touch touch file... Create empty file / update timestamp
mkdir mkdir dir... Create directories
rm rm file... Remove files
rmdir rmdir dir... Remove empty directories
cp cp src dest Copy file
mv mv src dest Move / rename file or directory
echo echo text Display text
clear clear Clear screen
whoami whoami Print username
date date Show date/time
uname uname [-a] System information
help help Show command help
exit exit Disconnect from BBS

TIPS AND TRICKS

Efficient Navigation

File Management

Building Content

Quoting

Use double quotes to include spaces in your text:

echo "Hello, World!" > greeting.txt
echo 'Single quotes work too' >> messages.txt

Command History Shortcuts

EXAMPLE SESSION

The following transcript demonstrates a typical shell session:

CODE_FENCE_0

ERROR MESSAGES

Common error messages and their meanings:

Error Cause
command not found: xxx Unknown command — check spelling or use help
No such file or directory Path does not exist — verify with ls
Not a directory Tried to cd into a file, or use file as path component
Is a directory Tried to cat or rm a directory
File exists Tried to mkdir when name already exists
Directory not empty Tried to rmdir a directory with files — remove files first
missing file operand Command requires filename argument
missing operand Command requires argument(s)

Appendix A: Quick Reference Card

╔═══════════════════════════════════════════════════════════════════╗
║                   SHELL QUICK REFERENCE                        ║
╠═══════════════════════════════════════════════════════════════════╣
║  NAVIGATION                    FILE OPERATIONS                    ║
║  ──────────                    ───────────────                    ║
║  pwd      Show current dir     cat FILE    Display file           ║
║  cd DIR   Change directory     touch FILE  Create empty file      ║
║  cd       Go to home (~)       rm FILE     Delete file            ║
║  cd ..    Go up one level      cp SRC DST  Copy file              ║
║  ls       List files           mv SRC DST  Move/rename file       ║
║  ls -l    Long listing         mkdir DIR   Create directory       ║
║  ls -a    Show hidden files    rmdir DIR   Remove empty dir       ║
║                                                                   ║
║  REDIRECTION                   SPECIAL PATHS                      ║
║  ───────────                   ─────────────                      ║
║  cmd > file   Overwrite        ~     Home directory               ║
║  cmd >> file  Append           .     Current directory            ║
║                                ..    Parent directory             ║
║  WILDCARDS                                                        ║
║  ─────────                     SYSTEM COMMANDS                    ║
║  *   Match any chars           ───────────────                    ║
║  ?   Match single char         whoami   Show username             ║
║                                date     Show date/time            ║
║  SESSION                       uname    System info               ║
║  ───────                       clear    Clear screen              ║
║  Up/Down  Command history      help     Show all commands         ║
║  Ctrl+C   Cancel input         exit     Disconnect                ║
╚═══════════════════════════════════════════════════════════════════╝

Appendix B: Troubleshooting

Common Problems and Solutions

Problem: Command not found

Cause: The command was mistyped or does not exist.

Solution: Check your spelling and use help to see the list of available commands. Shell commands are case-sensitive and must be entered in lowercase.


Problem: No such file or directory

Cause: The specified path does not exist.

Solution: Use ls to verify the file or directory exists. Check for typos in the path. Remember that paths are case-sensitive.


Problem: Directory not empty

Cause: Attempted to remove a directory that contains files.

Solution: First remove all files within the directory using rm, then use rmdir to remove the empty directory.


Problem: Permission denied

Cause: Attempted to modify a system directory or read-only file.

Solution: Some directories (such as /bin) are reserved for system use. Work within your home directory (/home/user) or /tmp.


Problem: Connection dropped unexpectedly

Cause: Modem carrier loss or line noise.

Solution: Reconnect and dial again. Your files are automatically saved—no work is lost.

Appendix C: Glossary

Absolute Path — A file path that begins with / and specifies the complete location from the root directory. Example: /home/user/notes/ideas.txt

Current Directory — The directory you are presently working in, shown in the command prompt and returned by pwd.

Globbing — The process of expanding wildcard patterns (* and ?) to match multiple files.

Home Directory — Your personal directory, typically /home/user. The ~ symbol is a shortcut to this location.

Parent Directory — The directory one level above the current directory, referenced as .. in paths.

Redirection — Sending command output to a file instead of the screen, using > (overwrite) or >> (append).

Relative Path — A file path interpreted from the current directory, not beginning with /. Example: notes/ideas.txt

Root Directory — The top-level directory of the filesystem, represented by /.

Working Directory — See Current Directory.

Appendix D: A Typical Working Session

Here is how an experienced user might approach a real task - organizing project files and creating a simple log:

user@bbs:/home/user$ mkdir -p projects/bbs-game
user@bbs:/home/user$ cd projects/bbs-game
user@bbs:/home/user/projects/bbs-game$ echo "BBS Adventure Game" > README.txt
user@bbs:/home/user/projects/bbs-game$ echo "Started: January 1986" >> README.txt
user@bbs:/home/user/projects/bbs-game$ echo "Goal: Create text adventure" >> README.txt
user@bbs:/home/user/projects/bbs-game$ mkdir src docs
user@bbs:/home/user/projects/bbs-game$ ls -l
drwxr-xr-x  1 user user    0B Jan 22 15:30 src
drwxr-xr-x  1 user user    0B Jan 22 15:30 docs
-rw-r--r--  1 user user   67B Jan 22 15:30 README.txt
user@bbs:/home/user/projects/bbs-game$ cat README.txt
BBS Adventure Game
Started: January 1986
Goal: Create text adventure

Notice the workflow: create a project directory, change into it, establish documentation, create subdirectories for organization, verify the results. This pattern - plan, execute, verify - serves well in any command-line environment.

What To Explore Next

You now have the skills to navigate and manipulate a UNIX-style filesystem. These commands will serve you well whether you pursue system administration, software development, or simply want to organise your work effectively.

Deepen Your Shell Skills

Related Services

The Shell integrates well with other Emulator.ca Systems services:

The Path Forward

The commands you have learned here - cd, ls, cat, cp, mv, rm, mkdir - are the foundation of command-line computing. Master these, and you will be comfortable on any UNIX system: the Sun workstations appearing in engineering firms, the VAXen running at universities, or the new 386 machines that will soon bring UNIX to the desktop.

The Shell is your training ground. Experiment freely - your home directory is yours to organise as you see fit. Build something. Break something (you can always mkdir it again). The best way to learn is by doing.


Shell Reference Manual - Emulator.ca Systems

Document Revision 1.0