nat
[ikiwiki.git] / docs / newhandbook / UnixBasics / index.mdwn
index 705d1f6..6a60afc 100644 (file)
@@ -102,7 +102,7 @@ You can use the `/etc/ttys` file to configure the virtual consoles of DragonFly.
     ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
     ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
     ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
-    ttyv8   "/usr/pkg/xorg/bin/xdm -nodaemon"  xterm   off secure
+    ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
 
 For a detailed description of every column in this file and all the options you can use to set things up for the virtual consoles, consult the [ttys(5)](http://leaf.dragonflybsd.org/cgi/web-man?command#ttys&section5) manual page.
 
@@ -264,15 +264,13 @@ A complete description of the file system hierarchy is available in [hier(7)](ht
  `/tmp/` | Temporary files. The contents of `/tmp` are usually NOT preserved across a system reboot. A memory-based file system is often mounted at `/tmp`. This can be automated with an entry in `/etc/fstab`; see [mfs(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mfs&section8). 
  `/usr/` | The majority of user utilities and applications. 
  `/usr/bin/` | Common utilities, programming tools, and applications. 
+ `/usr/dports/` | The dports tree for installing packages (optional). 
  `/usr/include/` | Standard C include files. 
  `/usr/lib/` | Archive libraries. 
  `/usr/libdata/` | Miscellaneous utility data files. 
  `/usr/libexec/` | System daemons & system utilities (executed by other programs). 
- `/usr/local/` | Local executables, libraries, etc. Within `/usr/local`, the general layout sketched out by [hier(7)](http://leaf.dragonflybsd.org/cgi/web-man?command=hier&section7) for `/usr` should be used. An exceptions is the man directory, which is directly under `/usr/local` rather than under `/usr/local/share`. 
+ `/usr/local/` | Local executables, libraries, etc. Within `/usr/local`, the general layout sketched out by [hier(7)](http://leaf.dragonflybsd.org/cgi/web-man?command=hier&section7) for `/usr` should be used. An exceptions is the man directory, which is directly under `/usr/local` rather than under `/usr/local/share`. dports uses `/usr/local`. 
  `/usr/obj/` | Architecture-specific target tree produced by building the `/usr/src` tree. 
- `/usr/pkg` | Used as the default destination for the files installed via the pkgsrc® tree or pkgsrc packages (optional). The configuration directory is tunable, but the default location is `/usr/pkg/etc`. 
- `/usr/pkg/xorg/` | Xorg distribution executables, libraries, etc (optional). 
- `/usr/pkgsrc` | The pkgsrc tree for installing packages (optional). 
  `/usr/sbin/` | System daemons & system utilities (executed by users). 
  `/usr/share/` | Architecture-independent files. 
  `/usr/src/` | BSD and/or local source files. 
@@ -328,6 +326,82 @@ Or `C` could be mounted directly on to the `A` file system, under the `A1` direc
 <!-- XXX: image -->
 
 If you are familiar with MS-DOS, this is similar, although not identical, to the `join` command.
+### The fstab File 
+
+During the [boot process](boot.html), file systems listed in `/etc/fstab` are automatically mounted (unless they are listed with the `noauto` option).
+
+The `/etc/fstab` file contains a list of lines of the following format:
+  
+
+    device       mount-point   fstype     options      dumpfreq     passno
+
+These parameters have the following meaning:
+
+* `device`: A device name (which should exist), as explained [here](disks-naming.html).
+
+* `mount-point`: A directory (which should exist), on which to mount the file system.
+
+* `fstype`: The file system type to pass to [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8). The default DragonFly file system is `ufs`.
+
+* `options`: Either `rw` for read-write file systems, or `ro` for read-only file systems, followed by any other options that may be needed. A common option is `noauto` for file systems not normally mounted during the boot sequence. Other options are listed in the [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) manual page.
+
+* `dumpfreq`: This is used by [dump(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=dump&section8) to determine which file systems require dumping. If the field is missing, a value of zero is assumed.
+
+* `passno`: This determines the order in which file systems should be checked. File systems that should be skipped should have their `passno` set to zero. The root file system (which needs to be checked before everything else) should have its `passno` set to one, and other file systems' `passno` should be set to values greater than one. If more than one file systems have the same `passno` then [fsck(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=fsck&section8) will attempt to check file systems in parallel if possible.
+
+Consult the [fstab(5)](http://leaf.dragonflybsd.org/cgi/web-man?command=fstab&section5) manual page for more information on the format of the `/etc/fstab` file and the options it contains.
+
+### The mount Command 
+
+The [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) command is what is ultimately used to mount file systems.
+
+In its most basic form, you use:
+
+    
+
+    # mount device mountpoint
+
+Or, if `mountpoint` is specified in `/etc/fstab`, just:
+
+    
+
+    # mount mountpoint
+
+There are plenty of options, as mentioned in the [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) manual page, but the most common are:
+
+ **Mount Options** 
+
+* `-a`: Mount all the file systems listed in `/etc/fstab`. Except those marked as `noauto`, excluded by the `-t` flag, or those that are already mounted.
+
+* `-d`: Do everything except for the actual mount system call. This option is useful in conjunction with the `-v` flag to determine what [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) is actually trying to do.
+
+* `-f`: Force the mount of an unclean file system (dangerous), or forces the revocation of write access when downgrading a file system's mount status from read-write to read-only.
+
+* `-r`: Mount the file system read-only. This is identical to using the `rdonly` argument to the `-o` option.
+
+* `-t` ***fstype***: Mount the given file system as the given file system type, or, if used with `-a` option, mount only file systems of the given type. `ufs` is the default file system type.
+
+* `-u`: Update mount options on the file system.
+
+* `-v`: Be verbose.
+
+* `-w`: Mount the file system read-write.
+
+The `-o` option takes a comma-separated list of the options, including the following:
+
+* `nodev:` Do not interpret special devices on the file system. This is a useful security option.
+
+* `noexec`: Do not allow execution of binaries on this file system. This is also a useful security option.
+
+* `nosuid`: Do not interpret setuid or setgid flags on the file system. This is also a useful security option.
+
+### The umount Command 
+
+The [umount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=umount&section8) command takes, as a parameter, one of a mountpoint, a device name, or the `-a` or `-A` option.
+
+All forms take `-f` to force unmounting, and `-v` for verbosity. Be warned that `-f` is not generally a good idea. Forcibly unmounting file systems might crash the computer or damage data on the file system.
+
+`-a` and `-A` are used to unmount all mounted file systems, possibly modified by the file system types listed after `-t`. `-A`, however, does not attempt to unmount the root file system.
 
 ## Choosing File System Layout 
 
@@ -347,12 +421,24 @@ It is entirely possible to have one large root file system, and not need to crea
 
 * File systems are a fixed size. If you create a file system when you install DragonFly and give it a specific size, you may later discover that you need to make the partition bigger.  The [growfs(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=growfs&amp;section8) command makes it possible to increase the size of a UFS file system on the fly.
 <!-- XXX: what about hammer? -->
+
 ## Disk Slices, Partitions and local UNIX file systems 
 *** Heavily edited by Nick Matavka***
 
-Here we describe how disks are subdivided.
+DragonFly BSD divides disks into partitions and slices; it refers to locations on a disk by means of their unique codes.  For instance, the disk code `ad1s3d` has a clear meaning: IDE hard disk one, slice three, root file system.  Meanings for other such codes will become apparent by the end of this section; first of all come the meanings for the physical drive codes.  The most common are:
+
+[[!table  data="""
+<tablestyle="width:100%"> Code | Meaning 
+<tablestyle="width:100%"> `ad` | ATAPI (IDE) disk 
+`da` | SCSI direct access disk 
+`acd` | ATAPI (IDE) CDROM 
+`cd` | SCSI CDROM 
+`vn` | Virtual disk
+`fd` | Floppy disk |
+"""]]
+
+
 
-<!-- XXX: mention serno stuff -->
 
 ### Slices 
 
@@ -389,9 +475,7 @@ Partition layout is defined in a label on the slice where the partition reside.
 <tablestyle="width:100%"> `a` | Normally contains the root file system 
  `b` | Normally contains swap space 
   `c` | Normally the same size as the enclosing slice.  This allows utilities that need to work on the entire slice (for example, a bad block scanner) to work on the `c` partition. You would not normally create a file system on this partition. This is not necessarily true; it is possible to use the 'c' partition as a normal partition.
-   `d` | Normally the same size as the entire physical disk.  This is now rare, but to this day, some tools may operate oddly if told to work on partition `d`. |
-
-   """]]
+   `d` | Normally the same size as the entire physical disk.  This is now rare, but to this day, some tools may operate oddly if told to work on partition `d`. | """]]
 
    
 
@@ -436,194 +520,28 @@ Historically, you needed to set up  [cron(8)](http://leaf.dragonflybsd.org/cgi/w
 
 ### Adding a Disk 
 
-Adding a disk is done by installing it physically, and to connect it to a disk controller that DragonFly supports.  If you are in doubt if controller is supported, manual pages for disk controllers can be consulted ('man -k disk' or 'man -k scsi' can be of help).  The easiest thing is normally to boot DargonFly with the controller installed and note if boot message contains the controller.
+Adding a disk is done by installing it physically and by connecting it to a disk controller supported by DragonFly BSD.  If you are in doubt as to whether a particular disk controller is supported, the manual pages for disk controllers can be consulted (`man -k disk` or `man -k scsi` can be of help).  Another, easier way of ascertaining support for a controller is to boot with the controller installed, and note if the boot messages contain the controller.
 
-Assuming that disk `ad6` is installed, we could set it up using [fdisk(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=fdisk&amp;section8) and  disklabel(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel&amp;section8) or  [gpt(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=gpt&amp;section8) and 
-[disklabel64(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel64&amp;section8).
+Assuming that disk `ad6` is installed, we could set it up the old-fashioned way, using [fdisk(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=fdisk&amp;section8) and  disklabel(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel&amp;section8) or the modern way, with [gpt(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=gpt&amp;section8) and [disklabel64(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel64&amp;section8), or any combination thereof.
 
-In this example we choose [gpt(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=gpt&amp;section=8) & [disklabel64(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel64&amp;section=8).
-
-<!-- XXX: mention that disklabel64 is default now -->
-    
+In this example, we chose [gpt(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=gpt&amp;section=8) and [disklabel64(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel64&amp;section=8).
 
     # gpt -v create ad6
-
-    ...
-
+    [...]
     # gpt add -s1 ad6
-
     ad6s0
-
     # gpt add ad6
-
     ad6s1
-
     # gpt show ad6
+    [...]
 
-    ...
-
-Here we first create the GPT and then add two slices.  In this example the first slice added is `ad6s0`, which is made a dummy slice of size 1 sector, this is just for not having to make further reference to it, as many users remembers that `s0` has special meaning, which really isn't true for GPT slices.  The second slice is `ad6s1` which will cover the rest of the disk.
-
-    
+In the above example, we first create the GPT and then add two slices.  The first slice added is `ad6s0`, which is made a dummy slice of size 1 sector.  The reason for this is backwards compatibility: veteran users may remember that `s0` has special meaning in MBR slice schemes, but this is not true in GPT slices.  The second slice, `ad6s1`, will cover the rest of the disk:
 
     # disklabel64 -rw ad6s1 auto
-
     # disklabel64 -e ad6s1          # edit label to add partitions as needed
 
-### disklabel 
-<!-- XXX: what is all this fuzz about dangerously dedicated? -->
-
-For [disklabel(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=disklabel&amp;section8) labels some partitions have certain conventions associated with them.
-
-[[!table  data="""
-<tablestyle="width:100%"> Partition | Convention 
-<tablestyle="width:100%"> `a` | Normally contains the root file system 
- `b` | Normally contains swap space 
- `c` | Normally the same size as the enclosing slice.  This allows utilities that need to work on the entire slice (for example, a bad block scanner) to work on the `c` partition. You would not normally create a file system on this partition. This is not necessarily true; it is possible to use the 'c' partition as a normal partition.
- `d` | Partition `d` used to have a special meaning associated with it, although that is now gone.  To this day, some tools may operate oddly if told to work on partition `d`. |
-
-"""]]
-
-Each partition-that-contains-a-file-system is stored in what DragonFly calls a ***slice***.  Slice is DragonFly's term for what the common call partitions, and again, this is because of DragonFly's UNIX background.  Slices are numbered, starting at 1.
-
-Slice numbers follow the device name, prefixed with an `s`, starting at 1. So ***da0s1*** is the first slice on the first SCSI drive. There can only be four physical slices on a disk, but you can have logical slices inside physical slices of the appropriate type.  These extended slices are numbered starting at 5, so ***ad0s5*** is the first extended slice on the first IDE disk. These devices are used by file systems that expect to occupy a slice.
+                                        
 
-<!-- XXX: gpt allows for way more than 4 partitions... let's remove this stuff above -->
-
-***Dangerously dedicated*** physical drives are accessed as slice 0.
-
-Slices, ***dangerously dedicated*** physical drives, and other drives contain ***partitions***, which are represented as letters from `a` to `p`.  This letter is appended to the device name, so ***da0s0a*** is the a partition on the first da drive, which is ***dangerously dedicated***. ***ad1s3e*** is the fifth partition in the third slice of the second IDE disk drive.
-
-Finally, each disk on the system is identified.  A disk name starts with a code that indicates the type of disk, and then a number, indicating which disk it is.  Disk numbering starts at 0. Common codes that you will see are listed in [Table 3-1](disk-organization.html#BASICS-DEV-CODES).
-
-<!-- XXX: here would probably be the right place to talk about serno -->
-
-When referring to a partition DragonFly requires that you also name the slice and disk that contains the partition, and when referring to a slice you should also refer to the disk name. Do this by listing the disk name, `s`, the slice number, and then the partition letter.  Examples are shown in [Example 3-1](disk-organization.html#BASICS-DISK-SLICE-PART).
-
-<!-- XXX: later talk also about devfs, definitely not here though. also, devfs rules -->
-
-[Example 3-2](disk-organization.html#BASICS-CONCEPT-DISK-MODEL) shows a conceptual model of the disk layout that should help make things clearer.
-
-In order to install DragonFly you must first configure the disk slices, then create partitions within the slice you will use for DragonFly, and then create a file system (or swap space) in each partition, and decide where that file system will be mounted.
-
-***'Table 3-1. Disk Device Codes***'
-
-[[!table  data="""
-<tablestyle="width:100%"> Code | Meaning 
-<tablestyle="width:100%"> `ad` | ATAPI (IDE) disk 
- `da` | SCSI direct access disk 
- `acd` | ATAPI (IDE) CDROM 
- `cd` | SCSI CDROM 
- `vn` | Virtual disk
- `fd` | Floppy disk |
-
-"""]]
-
-***'Example 3-1. Sample Disk, Slice, and Partition Names***'
-
-[[!table  data="""
-<tablestyle="width:100%"> Name | Meaning 
-<tablestyle="width:100%"> `ad0s1a` | The first partition (`a`) on the first slice (`s1`) on the first IDE disk (`ad0`). 
- `da1s2e` | The fifth partition (`e`) on the second slice (`s2`) on the second SCSI disk (`da1`). |
-
-"""]]
-
-***'Example 3-2. Conceptual Model of a Disk***'
-
-This diagram shows DragonFly's view of the first IDE disk attached to the system. Assume that the disk is 4 GB in size, and contains two 2 GB slices (MS-DOS partitions).  The first slice contains a MS-DOS disk, `C:`, and the second slice contains a DragonFly installation. This example DragonFly installation has three partitions, and a swap partition.
-
-The three partitions will each hold a file system. Partition `a` will be used for the root file system, `e` for the `/var` directory hierarchy, and `f` for the `/usr` directory hierarchy.
-
-<!-- XXX: image -->
-
-## Mounting and Unmounting File Systems 
-
-The file system is best visualized as a tree, rooted at `/`.
-
-The directories, e.g. `/dev` and `/usr`, in the root directory are branches,
-
-which may have their own branches, such as `/usr/local`, and so on.
-
-There are various reasons to house some of these directories on separate file systems. `/var` contains the directories `log/` and `spool/`, and various types of temporary files, and as such, may get filled up. Filling up the root file system is not a good idea, so splitting `/var` from `/` is often favorable.
-
-Another common reason to contain certain directory trees on other file systems is if they are to be housed on separate physical disks, e.g. CD-ROM, or are used as separate virtual disks, such as [Network File System](network-nfs.html) exports.
-
-### The fstab File 
-
-During the [boot process](boot.html), file systems listed in `/etc/fstab` are automatically mounted (unless they are listed with the `noauto` option).
-
-The `/etc/fstab` file contains a list of lines of the following format:
-  
-
-    device       mount-point   fstype     options      dumpfreq     passno
-
-These parameters have the following meaning:
-
-* `device`: A device name (which should exist), as explained [here](disks-naming.html).
-
-* `mount-point`: A directory (which should exist), on which to mount the file system.
-
-* `fstype`: The file system type to pass to [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8). The default DragonFly file system is `ufs`.
-
-* `options`: Either `rw` for read-write file systems, or `ro` for read-only file systems, followed by any other options that may be needed. A common option is `noauto` for file systems not normally mounted during the boot sequence. Other options are listed in the [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) manual page.
-
-* `dumpfreq`: This is used by [dump(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=dump&section8) to determine which file systems require dumping. If the field is missing, a value of zero is assumed.
-
-* `passno`: This determines the order in which file systems should be checked. File systems that should be skipped should have their `passno` set to zero. The root file system (which needs to be checked before everything else) should have its `passno` set to one, and other file systems' `passno` should be set to values greater than one. If more than one file systems have the same `passno` then [fsck(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=fsck&section8) will attempt to check file systems in parallel if possible.
-
-Consult the [fstab(5)](http://leaf.dragonflybsd.org/cgi/web-man?command=fstab&section5) manual page for more information on the format of the `/etc/fstab` file and the options it contains.
-
-### The mount Command 
-
-The [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) command is what is ultimately used to mount file systems.
-
-In its most basic form, you use:
-
-    
-
-    # mount device mountpoint
-
-Or, if `mountpoint` is specified in `/etc/fstab`, just:
-
-    
-
-    # mount mountpoint
-
-There are plenty of options, as mentioned in the [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) manual page, but the most common are:
-
- **Mount Options** 
-
-* `-a`: Mount all the file systems listed in `/etc/fstab`. Except those marked as `noauto`, excluded by the `-t` flag, or those that are already mounted.
-
-* `-d`: Do everything except for the actual mount system call. This option is useful in conjunction with the `-v` flag to determine what [mount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount&section8) is actually trying to do.
-
-* `-f`: Force the mount of an unclean file system (dangerous), or forces the revocation of write access when downgrading a file system's mount status from read-write to read-only.
-
-* `-r`: Mount the file system read-only. This is identical to using the `rdonly` argument to the `-o` option.
-
-* `-t` ***fstype***: Mount the given file system as the given file system type, or, if used with `-a` option, mount only file systems of the given type. `ufs` is the default file system type.
-
-* `-u`: Update mount options on the file system.
-
-* `-v`: Be verbose.
-
-* `-w`: Mount the file system read-write.
-
-The `-o` option takes a comma-separated list of the options, including the following:
-
-* `nodev:` Do not interpret special devices on the file system. This is a useful security option.
-
-* `noexec`: Do not allow execution of binaries on this file system. This is also a useful security option.
-
-* `nosuid`: Do not interpret setuid or setgid flags on the file system. This is also a useful security option.
-
-### The umount Command 
-
-The [umount(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=umount&section8) command takes, as a parameter, one of a mountpoint, a device name, or the `-a` or `-A` option.
-
-All forms take `-f` to force unmounting, and `-v` for verbosity. Be warned that `-f` is not generally a good idea. Forcibly unmounting file systems might crash the computer or damage data on the file system.
-
-`-a` and `-A` are used to unmount all mounted file systems, possibly modified by the file system types listed after `-t`. `-A`, however, does not attempt to unmount the root file system.
 
 ## Processes 
 
@@ -756,7 +674,7 @@ Sending other signals is very similar, just substitute `TERM` or `KILL` in the c
  
 ## Shells 
 
-In DragonFly, a lot of everyday work is done in a command line interface called a shell. A shell's main job is to take commands from the input channel and execute them. A lot of shells also have built in functions to help everyday tasks such as file management, file globbing, command line editing, command macros, and environment variables. DragonFly comes with a set of shells, such as `sh`, the Bourne Shell, and `tcsh`, the improved C-shell. Many other shells are available from pkgsrc®, such as `zsh` and `bash`.
+In DragonFly, a lot of everyday work is done in a command line interface called a shell. A shell's main job is to take commands from the input channel and execute them. A lot of shells also have built in functions to help everyday tasks such as file management, file globbing, command line editing, command macros, and environment variables. DragonFly comes with a set of shells, such as `sh`, the Bourne Shell, and `tcsh`, the improved C-shell. Many other shells are available from dports, such as `zsh` and `bash`.
 
 Which shell do you use? It is really a matter of taste. If you are a C programmer you might feel more comfortable with a C-like shell such as `tcsh`. If you have come from Linux or are new to a UNIX® command line interface you might try `bash`. The point is that each shell has unique properties that may or may not work with your preferred working environment, and that you have a choice of what shell to use.
 
@@ -784,15 +702,15 @@ Another feature of the shell is the use of environment variables. Environment va
 
 """]]
 
-Setting an environment variable differs somewhat from shell to shell. For example, in the C-Style shells such as `tcsh` and `csh`, you would use `setenv` to set environment variables. Under Bourne shells such as `sh` and `bash`, you would use `export` to set your current environment variables. For example, to set or modify the `EDITOR` environment variable, under `csh` or `tcsh` a command like this would set `EDITOR` to `/usr/pkg/bin/emacs`:
+Setting an environment variable differs somewhat from shell to shell. For example, in the C-Style shells such as `tcsh` and `csh`, you would use `setenv` to set environment variables. Under Bourne shells such as `sh` and `bash`, you would use `export` to set your current environment variables. For example, to set or modify the `EDITOR` environment variable, under `csh` or `tcsh` a command like this would set `EDITOR` to `/usr/local/bin/emacs`:
     
 
-    % setenv EDITOR /usr/pkg/bin/emacs
+    % setenv EDITOR /usr/local/bin/emacs
 
 Under Bourne shells:
    
 
-    % export EDITOR="/usr/pkg/bin/emacs"
+    % export EDITOR="/usr/local/bin/emacs"
 
 You can also make most shells expand the environment variable by placing a `$` character in front of it on the command line. For example, `echo $TERM` would print out whatever `$TERM` is set to, because the shell expands `$TERM` and passes it on to `echo`.
 
@@ -810,25 +728,25 @@ You can also give `chsh` the `-s` option; this will set your shell for you, with
 
     
 
-    % chsh -s /usr/pkg/bin/bash
+    % chsh -s /usr/local/bin/bash
 
- **Note:** The shell that you wish to use ***must*** be present in the `/etc/shells` file. If you have installed a shell from the [ pkgsrc tree ](pkgsrc.html), then this should have been done for you already. If you installed the shell by hand, you must do this.
+ **Note:** The shell that you wish to use ***must*** be present in the `/etc/shells` file. If you have installed a shell from dports, then this should have been done for you already. If you installed the shell by hand, you must do this.
 
-For example, if you installed `bash` by hand and placed it into `/usr/local/bin`, you would want to:
+For example, if you installed `bash` by hand and placed it into `/usr/opt/bin`, you would want to:
 
     
 
-    # echo "/usr/local/bin/bash" >> /etc/shells
+    # echo "/usr/opt/bin/bash" >> /etc/shells
 
 Then rerun `chsh`.
 
 ## Text Editors 
 
-A lot of configuration in DragonFly is done by editing text files. Because of this, it would be a good idea to become familiar with a text editor. DragonFly comes with a few as part of the base system, and many more are available in the pkgsrc® tree.
+A lot of configuration in DragonFly is done by editing text files. Because of this, it would be a good idea to become familiar with a text editor. DragonFly comes with a few as part of the base system, and many more are available in the dports tree.
 
 The easiest and simplest editor to learn is an editor called  **ee** , which stands for easy editor. To start  **ee** , one would type at the command line `ee filename` where `filename` is the name of the file to be edited. For example, to edit `/etc/rc.conf`, type in `ee /etc/rc.conf`. Once inside of `ee`, all of the commands for manipulating the editor's functions are listed at the top of the display. The caret `^` character represents the  **Ctrl**  key on the keyboard, so `^e` expands to the key combination  **Ctrl** + **e** . To leave  **ee** , hit the  **Esc**  key, then choose leave editor. The editor will prompt you to save any changes if the file has been modified.
 
-DragonFly also comes with more powerful text editors such as  **vi**  as part of the base system, while other editors, like  **emacs**  and  **vim** , are part of the pkgsrc tree. These editors offer much more functionality and power at the expense of being a little more complicated to learn. However if you plan on doing a lot of text editing, learning a more powerful editor such as  **vim**  or  **emacs**  will save you much more time in the long run.
+DragonFly also comes with more powerful text editors such as  **vi**  as part of the base system, while other editors, like  **emacs**  and  **vim** , are part of the dports tree. These editors offer much more functionality and power at the expense of being a little more complicated to learn. However if you plan on doing a lot of text editing, learning a more powerful editor such as  **vim**  or  **emacs**  will save you much more time in the long run.
 
 ## Devices and Device Nodes