FreeBSD can be used in various ways. One of them is typing commands to a text
terminal. A lot of the flexibility and power of a UNIX® operating system is readily available at your hands
when using FreeBSD this way. This section describes what “terminals” and
“consoles” are, and how you can use them in FreeBSD.
If you have not configured FreeBSD to automatically start a graphical environment
during startup, the system will present you with a login prompt after it boots, right
after the startup scripts finish running. You will see something similar to:
Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:
The messages might be a bit different on your system, but you will see something
similar. The last two lines are what we are interested in right now. The second last line
reads:
FreeBSD/i386 (pc3.example.org) (ttyv0)
This line contains some bits of information about the system you have just booted. You
are looking at a “FreeBSD” console, running on an Intel or compatible
processor of the x86 architecture. The name of this machine (every UNIX machine has a name) is pc3.example.org, and you are now looking at its system console--the
ttyv0 terminal.
Finally, the last line is always:
login:
This is the part where you are supposed to type in your “username” to log
into FreeBSD. The next section describes how you can do this.
FreeBSD is a multiuser, multiprocessing system. This is the formal description that is
usually given to a system that can be used by many different people, who simultaneously
run a lot of programs on a single machine.
Every multiuser system needs some way to distinguish one “user” from the
rest. In FreeBSD (and all the UNIX-like operating
systems), this is accomplished by requiring that every user must “log into”
the system before being able to run programs. Every user has a unique name (the
“username”) and a personal, secret key (the “password”). FreeBSD
will ask for these two before allowing a user to run any programs.
Right after FreeBSD boots and finishes running its startup scripts, it will present
you with a prompt and ask for a valid username:
login:
For the sake of this example, let us assume that your username is john. Type john at this prompt and press
Enter. You should then be presented with a prompt to enter a
“password”:
login: john
Password:
Type in john's password now, and press Enter. The password is not
echoed! You need not worry about this right now. Suffice it to say that it is
done for security reasons.
If you have typed your password correctly, you should by now be logged into FreeBSD
and ready to try out all the available commands.
You should see the MOTD or message of the day
followed by a command prompt (a #, $,
or % character). This indicates you have successfully logged
into FreeBSD.
Running UNIX commands in one console is fine, but
FreeBSD can run many programs at once. Having one console where commands can be typed
would be a bit of a waste when an operating system like FreeBSD can run dozens of
programs at the same time. This is where “virtual consoles” can be very
helpful.
FreeBSD can be configured to present you with many different virtual consoles. You can
switch from one of them to any other virtual console by pressing a couple of keys on your
keyboard. Each console has its own different output channel, and FreeBSD takes care of
properly redirecting keyboard input and monitor output as you switch from one virtual
console to the next.
Special key combinations have been reserved by FreeBSD for switching consoles.
You can use Alt-F1, Alt-F2, through Alt-F8 to switch to a different virtual console in FreeBSD.
As you are switching from one console to the next, FreeBSD takes care of saving and
restoring the screen output. The result is an “illusion” of having multiple
“virtual” screens and keyboards that you can use to type commands for FreeBSD
to run. The programs that you launch on one virtual console do not stop running when that
console is not visible. They continue running when you have switched to a different
virtual console.
The default configuration of FreeBSD will start up with eight virtual consoles. This
is not a hardwired setting though, and you can easily customize your installation to boot
with more or fewer virtual consoles. The number and settings of the virtual consoles are
configured in the /etc/ttys file.
You can use the /etc/ttys file to configure the virtual
consoles of FreeBSD. Each uncommented line in this file (lines that do not start with a
# character) contains settings for a single terminal or virtual
console. The default version of this file that ships with FreeBSD configures nine virtual
consoles, and enables eight of them. They are the lines that start with ttyv:
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
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/X11R6/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) manual
page.
A detailed description of what “single user mode” is can be found in Section 12.6.2. It is worth noting that there
is only one console when you are running FreeBSD in single user mode. There are no
virtual consoles available. The settings of the single user mode console can also be
found in the /etc/ttys file. Look for the line that starts with
console:
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure
Note: As the comments above the console line indicate,
you can edit this line and change secure to insecure. If you do that, when FreeBSD boots into single user mode,
it will still ask for the root password.
Be careful when changing this to insecure. If you ever forget the root password, booting into single user mode is a bit involved. It
is still possible, but it might be a bit hard for someone who is not very comfortable
with the FreeBSD booting process and the programs involved.
The FreeBSD console default video mode may be adjusted to 1024x768, 1280x1024, or any
other size supported by your graphics chip and monitor. To use a different video mode,
you first must recompile your kernel and include two additional options:
options VESA
options SC_PIXEL_MODE
Once the kernel has been recompiled with these two options, you can then determine
what video modes are supported by your hardware by using the vidcontrol(1) utility.
To get a list of supported video modes issue the following:
# vidcontrol -i mode
The output of this command is a list of video modes that are supported by your
hardware. You can then choose to use a new video mode by passing it to vidcontrol(1) in a root console:
# vidcontrol MODE_279
If the new video mode is acceptable, it can be permanently set on boot by setting it
in the /etc/rc.conf file:
allscreens_flags="MODE_279"