5. Editing Text
Prev |  | Next

## 5. Editing Text

To configure your system, you need to edit text files. Most of them will be in the `/etc` directory; and you will need to `su` to `root` to be able to change them. You can use the easy `ee`, but in the long run the text editor `vi` is worth learning. There is an excellent tutorial on vi in `/usr/src/contrib/nvi/docs/tutorial`, if you have the system sources installed.

Before you edit a file, you should probably back it up. Suppose you want to edit `/etc/rc.conf`. You could just use `cd /etc` to get to the `/etc` directory and do:

`#` `cp rc.conf rc.conf.orig`

This would copy `rc.conf` to `rc.conf.orig`, and you could later copy `rc.conf.orig` to `rc.conf` to recover the original. But even better would be moving (renaming) and then copying back:

`#` `mv rc.conf rc.conf.orig` `#` `cp rc.conf.orig rc.conf`

because the `mv` command preserves the original date and owner of the file. You can now edit `rc.conf`. If you want the original back, you would then `mv rc.conf rc.conf.myedit` (assuming you want to preserve your edited version) and then

`#` `mv rc.conf.orig rc.conf`

to put things back the way they were.

To edit a file, type

`#` `vi `filename``

Move through the text with the arrow keys. Esc (the escape key) puts `vi` in command mode. Here are some commands:

`x`

  delete letter the cursor is on

`dd`

  delete the entire line (even if it wraps on the screen)

`i`

  insert text at the cursor

`a`

  insert text after the cursor

Once you type `i` or `a`, you can enter text. `Esc` puts you back in command mode where you can type

`:w`

  to write your changes to disk and continue editing

`:wq`

  to write and quit

`:q!`

  to quit without saving changes

`/`text``

  to move the cursor to `text`; `/Enter` (the enter key) to find the next instance of `text`.

`G`

  to go to the end of the file

``n`G`

  to go to line `n` in the file, where `n` is a number

Ctrl+L

  to redraw the screen

Ctrl+b and Ctrl+f

  go back and forward a screen, as they do with `more` and `view`.

Practice with `vi` in your home directory by creating a new file with `vi `filename`` and adding and deleting text, saving the file, and calling it up again. `vi` delivers some surprises because it is really quite complex, and sometimes you will inadvertently issue a command that will do something you do not expect. (Some people actually like `vi`—it is more powerful than DOS EDIT—find out about the `:r` command.) Use Esc one or more times to be sure you are in command mode and proceed from there when it gives you trouble, save often with `:w`, and use `:q!` to get out and start over (from your last `:w`) when you need to.

Now you can `cd` to `/etc`, `su` to `root`, use `vi` to edit the file `/etc/group`, and add a user to `wheel` so the user has root privileges. Just add a comma and the user's login name to the end of the first line in the file, press Esc, and use `:wq` to write the file to disk and quit. Instantly effective. (You did not put a space after the comma, did you?)

Prev |  | Next
4. Getting Help and Information | Home | 6. Printing Files from DOS

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.