FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • 编辑日志
  • FreeBSD 中文文章翻译项目
  • 参与 FreeBSD
  • 提交者指南
  • 构建你自己的 FreeBSD 更新服务器
  • 使用 FreeBSD 开发产品
  • FreeBSD 上的打印服务器(CUPS)
  • FreeBSD 虚拟内存系统设计要素
  • BSD 简介
  • 桥接过滤器
  • 字体与 FreeBSD
  • 面向 FreeBSD 和 UNIX® 的新用户的简介
  • FreeBSD 和固态硬盘
  • FreeBSD 许可政策
  • 面向 Linux® 用户的 FreeBSD 快速入门指南
  • FreeBSD 发布工程
  • FreeBSD 状态报告流程
  • FreeBSD 对闰秒的支持
  • FreeBSD 邮件列表常见问题
  • 如何从 FreeBSD-questions 邮件列表中获得最佳结果
  • 在台机上实现 UFS 日志功能
  • 对 FreeBSD 中 IPsec 功能的独立验证
  • NanoBSD 简介
  • LDAP 身份验证
  • FreeBSD 中的 Linux® 仿真
  • 旧版 FreeBSD 发布工程
  • 镜像 FreeBSD
  • 可插拔认证模块(PAM)
  • Port 导师指南
  • BSD 中的实用 rc.d 脚本编程
  • 问题报告处理指南
  • 在没有远程控制台的情况下远程安装 FreeBSD 操作系统
  • 串口和 UART 教程
  • vinum 卷管理器
  • 使用 FreeBSD 源代码树中的语言服务器进行开发
  • IPsec VPN
  • 为什么要为开源项目选用类 BSD 许可证?
  • 编写 GEOM 类
  • 编写 FreeBSD 问题报告
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 摘要
  • 1. 登录与退出
  • 2. 添加具有 Root 权限的用户
  • 3. 四处看看
  • 4. 获取帮助和信息
  • 5. 编辑文本
  • 6. 其他有用的命令
  • 7. 下一步
  • 8. 你的工作环境
  • 9. 其他
  • 10. 欢迎提出意见
在GitHub上编辑
导出为 PDF

面向 FreeBSD 和 UNIX® 的新用户的简介

上一页字体与 FreeBSD下一页FreeBSD 和固态硬盘

最后更新于10天前

  • 原文:

摘要

恭喜你安装了 FreeBSD!本简介适合那些对 FreeBSD 以及 UNIX® 都不熟悉的用户,因此它从基础开始。

1. 登录与退出

当你看到 login: 提示符时,作为在安装过程中创建的用户或 root 登录。(你的 FreeBSD 安装中会自动创建一个 root 账户,root 可以访问任何地方并执行任何操作,包括删除重要文件,所以请小心!)以下的 % 和 # 表示提示符(你的提示符可能不同),% 表示普通用户,# 表示 root。

要退出(并获得新的 login: 提示符),输入:

# exit

根据需要多次输入。是的,输入命令后按 enter,并记住 UNIX® 是区分大小写的——exit,而不是 EXIT。

要关闭计算机,输入:

# /sbin/shutdown -h now

要重启计算机,输入:

# /sbin/shutdown -r now

或者

# /sbin/reboot

你也可以通过 Ctrl+Alt+Delete 重启计算机。稍等片刻,它就会完成工作。这等同于最近版本的 FreeBSD 中的 /sbin/reboot,并且比按重置按钮要好得多。你可不希望重新安装 FreeBSD,对吧?

2. 添加具有 Root 权限的用户

如果在安装系统时未创建任何用户,而你目前是以 root 身份登录,那么现在应该创建一个用户,可以使用以下命令:

# adduser

假设你创建了一个名为 jack 的用户,完整名称为 Jack Benimble。如果安全性是一个问题(例如周围有可能乱敲键盘的孩子),可以为 jack 设置一个密码。当它询问是否邀请 jack 加入其他组时,输入 wheel:

Login group is "jack". Invite jack into other groups: wheel

你可以随时按 Ctrl+C 退出 adduser,结束时会有机会确认新用户,或者直接输入 n 来取消。你可能还想创建第二个用户,这样在编辑 jack 的登录文件时,如果出现问题,至少有一个备用账户可以使用。

完成后,使用 exit 返回登录提示符,并以 jack 用户身份登录。通常,作为一个普通用户进行尽可能多的工作是一个好习惯,这样就没有 root 所带来的权限和风险。

要删除用户,可以使用 rmuser 命令。

3. 四处看看

作为普通用户登录后,四处看看并尝试一些命令,这些命令将帮助你获取 FreeBSD 系统中的帮助和信息。

以下是一些命令及其作用:

id

告诉你当前是谁!

pwd

显示你所在的目录,即当前工作目录。

ls

列出当前目录中的文件。

ls -F

列出当前目录中的文件,对于可执行文件在后面加上 *,对于目录加上 /,对于符号链接加上 @。

ls -l

以长格式列出文件——显示文件大小、日期和权限。

ls -a

列出包括隐藏的“点”文件在内的所有文件。如果你是 root 用户,隐藏的“点”文件在没有 -a 参数时就会显示。

cd

更改目录。cd .. 返回上一层目录;注意 cd 后面的空格。cd /usr/local 会进入该目录。cd ~ 会进入当前登录用户的主目录,例如 /usr/home/jack。尝试 cd /cdrom,然后使用 ls 命令,查看你的 CD-ROM 是否已挂载并正常工作。

less filename

让你查看一个文件(名为 filename),而不更改文件内容。尝试 less /etc/fstab。输入 q 退出。

cat filename

显示 filename 文件的内容。如果文件过长,你只能看到文件的最后部分,可以按 ScrollLock 并使用 上箭头 向上滚动;你也可以在查看手册页时使用 ScrollLock。再次按 ScrollLock 退出滚动。你可能想尝试在家目录中的某些点文件上使用 cat 命令——例如 cat .cshrc、cat .login、cat .profile。

你会注意到 .cshrc 中有些 ls 命令的别名(这些别名非常方便)。你可以通过编辑 .cshrc 来创建其他别名。如果你想让这些别名对系统中的所有用户可用,可以将它们添加到系统范围的 csh 配置文件 /etc/csh.cshrc 中。

4. 获取帮助和信息

以下是一些有用的帮助来源。Text 表示你输入的内容,通常是命令或文件名。

apropos text

在 whatis 数据库中查找包含 text 字符串的所有内容。

man text

查看 text 的手册页。UNIX® 系统文档的主要来源。比如,man ls 会告诉你如何使用 ls 命令。按 Enter 键浏览文本,按 Ctrl+B 返回上一页,按 Ctrl+F 前进一页,按 q 或 Ctrl+C 退出。

which text

告诉你命令 text 在用户路径中的位置。

locate text

查找所有包含字符串 text 的路径。

whatis text

告诉你命令 text 的功能及其手册页。输入 whatis * 可以查看当前目录下所有二进制文件的信息。

whereis text

找到文件 text,并给出它的完整路径。

你可能想尝试使用 whatis 查找一些常见有用的命令,如 cat、more、grep、mv、find、tar、chmod、chown、date 和 script。more 命令让你逐页阅读文件,就像在 DOS 中一样,例如 ls -l | more 或 more filename。* 作为通配符使用,例如 ls w* 会显示以 w 开头的文件。

这些命令中的一些没有很好地工作吗?locate(1) 和 whatis(1) 都依赖于一个每周重建的数据库。如果你的机器在周末不会长时间开启(并且不会运行 FreeBSD),你可能需要定期运行每日、每周和每月维护命令。以 root 身份运行这些命令,并且每次运行时给它们足够的时间完成。

# periodic daily
输出省略
# periodic weekly
输出省略
# periodic monthly
输出省略

如果你等得不耐烦,可以按 Alt+F2 获取另一个 虚拟控制台 并重新登录。毕竟,这是一个多用户、多任务的系统。尽管如此,这些命令运行时可能会在屏幕上显示消息;你可以在提示符下输入 clear 清除屏幕。它们运行完成后,你可能想查看 /var/mail/root 和 /var/log/messages。

运行这些命令是系统管理的一部分——作为 UNIX® 系统的唯一用户,你就是自己的系统管理员。几乎所有需要 root 权限的操作都属于系统管理工作。即使是那些厚厚的 UNIX® 手册,也往往没有很好地涵盖这些内容,因为它们似乎更多地关注于窗口管理器中的菜单操作。你可能想参考两本系统管理的经典书籍,分别是 Evi Nemeth 等人编写的《UNIX 系统管理手册》(Prentice-Hall,1995年,ISBN 0-13-15051-7,第二版,红色封面)或 Æleen Frisch 的《Essential System Administration》(O’Reilly & Associates,2002年,ISBN 0-596-00343-9)。我用的是 Nemeth 的书。

5. 编辑文本

为了配置你的系统,你需要编辑文本文件。大多数文件都会在 /etc 目录下,你需要通过 su 切换到 root 用户才能修改它们。你可以使用简单的 ee 编辑器,但从长远来看,学习文本编辑器 vi 是值得的。如果你安装了系统源代码,可以在 /usr/src/contrib/nvi/docs/tutorial 找到 vi 的优秀教程。

在编辑文件之前,你应该备份它。假设你要编辑 /etc/rc.conf 文件,你可以先通过 cd /etc 进入 /etc 目录,然后执行:

# cp rc.conf rc.conf.orig

这样会将 rc.conf 复制为 rc.conf.orig,以后你可以将 rc.conf.orig 复制回 rc.conf 来恢复原始文件。但更好的方法是先移动(重命名)文件,然后再复制回来:

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

因为 mv 命令会保留文件的原始日期和所有者。现在你可以编辑 rc.conf 文件。如果想恢复原文件,可以将修改后的文件命名为 rc.conf.myedit(假设你想保留修改版本),然后执行:

# mv rc.conf rc.conf.myedit
# mv rc.conf.orig rc.conf

这样就能将文件恢复到原来的状态。

要编辑文件,输入:

# vi filename

通过方向键移动光标。按下 <kbd>Esc</kbd> 键(即逃逸键)进入 vi 的命令模式。以下是一些常用命令:

x

删除光标所在的字符

dd

删除整行(即使它在屏幕上换行)

i

在光标位置插入文本

a

在光标后插入文本

你按下 i 或 a 后,就可以开始输入文本。按下 Esc 键返回命令模式,然后你可以输入:

:w

保存修改并继续编辑

:wq

保存并退出

:q!

不保存修改退出

/文本

将光标移动到指定的 text 处;按 / Enter(回车键)可以找到下一个出现的 文本。

G

跳转到文件末尾

nG

跳转到文件中的第 n 行,n 是一个数字

Ctrl+L

重新绘制屏幕

Ctrl+b 和 Ctrl+f

像 more 和 view 一样翻页,前进和后退。

你可以在你的家目录里练习使用 vi,通过 vi filename 创建一个新文件,添加和删除文本,保存文件,并再次打开它。vi 有一些让人吃惊的地方,因为它其实相当复杂,有时你会无意中执行一个命令,导致一些你没有预料到的结果。(有些人实际上喜欢 vi——它比 DOS 的编辑器更强大——你可以了解一下 :r 命令。)确保经常按 <kbd>Esc</kbd> 键回到命令模式,遇到问题时从命令模式开始,频繁保存文件(使用 :w),当需要重新开始时使用 :q! 放弃修改(从你上次的 :w 开始)。

现在你可以 cd 到 /etc 目录,su 切换到 root,使用 vi 编辑 /etc/group 文件,并将一个用户添加到 wheel 组中,从而赋予该用户 root 权限。只需在文件的第一行末尾添加一个逗号和用户的登录名,按 <kbd>Esc</kbd> 键,然后使用 :wq 保存文件并退出。立刻生效。(你没有在逗号后加空格吧?)

6. 其他有用的命令

df

显示文件空间和挂载的系统。

ps aux

显示正在运行的进程。ps ax 是更简洁的形式。

rm filename

删除 filename 文件。

rm -R dir

删除目录 dir 及其所有子目录——小心使用!

ls -R

列出当前目录及所有子目录中的文件;我使用过一个变体 ls -AFR > where.txt,它可以列出 / 和(分别)/usr 中的所有文件,直到我找到更好的方法来查找文件。

passwd

更改用户的密码(或 root 的密码)。

man hier

查看 UNIX® 文件系统的手册页。

使用 find 在 /usr 或其任何子目录中查找文件名:

% find /usr -name "filename"

你可以在 "filename" 中使用 * 作为通配符(应该加引号)。如果你让 find 从 / 目录开始搜索,它会在所有挂载的文件系统中查找文件,包括 CDROM 和 DOS 分区。

一本很好的书,讲解了 UNIX® 命令和工具,是 Abrahams & Larson 的《Unix for the Impatient》(第二版,Addison-Wesley,1996)。互联网上也有大量的 UNIX® 信息。

7. 下一步

如果你发现手册中关于从 CDROM 安装 Port 的内容过于复杂(涉及 lndir 等),通常可以按以下方法进行:

找到你需要的 Port,比如 kermit。它在 CDROM 上有个对应的目录。将该子目录复制到 /usr/local(这是添加的软件存放位置,所有用户都可以访问):

# cp -R /cdrom/ports/comm/kermit /usr/local

这样就会在 /usr/local/kermit 子目录下生成一个与 CDROM 上 kermit 子目录相同的文件夹。

接下来,使用 mkdir 创建目录 /usr/ports/distfiles(如果它尚不存在)。然后在 /cdrom/ports/distfiles 中查找一个名称指示它是你需要的 Port 的文件。将该文件复制到 /usr/ports/distfiles 目录;在最新版本中,你可以跳过这一步,因为 FreeBSD 会自动为你完成。如果是 kermit,则没有 distfile 文件。

然后 cd 到 /usr/local/kermit 子目录下,进入包含 Makefile 的目录。输入:

# make all install

在此过程中,Port 将通过 FTP 下载它需要的任何压缩文件,如果这些文件在 CDROM 或 /usr/ports/distfiles 中没有找到。如果你还没有启动网络,并且 /cdrom/ports/distfiles 中没有该 Port 的文件,你需要使用另一台机器下载该文件并将其复制到 /usr/ports/distfiles。你可以通过 cat、more 或 view 阅读 Makefile,了解该文件的主分发站点和文件名。(使用二进制文件传输!)然后返回到 /usr/local/kermit,找到包含 Makefile 的目录,再次执行 make all install。

8. 你的工作环境

你的 shell 是工作环境中最重要的部分。shell 解释你在命令行输入的命令,从而与操作系统的其他部分进行通信。你还可以编写 shell 脚本——一系列无需干预即可运行的命令。

FreeBSD 默认安装了两个 shell:csh 和 sh。csh 适合命令行操作,但脚本应该使用 sh(或 bash)编写。你可以通过输入 echo $SHELL 来查看你正在使用的 shell。

可以用 csh shell,但 tcsh 做了 csh 所做的所有事情,并且做得更多。它能让你用箭头键回顾命令并编辑它们。它还支持通过 tab 键完成文件名(而 csh 使用 Esc 键),并且可以使用 cd - 切换到你最后访问的目录。你还可以更轻松地修改提示符。tcsh 让生活更轻松。

安装新 shell 的三个步骤:

  1. 将该 shell 作为 Port 或包安装,就像安装其他任何 Port 或包一样。

  2. 使用 chsh 命令永久更改你的 shell 为 tcsh,或者在提示符下输入 tcsh 以便在不重新登录的情况下临时更改 shell。

注意

更改 root 的 shell 为 sh 或 csh 以外的其他 shell 在早期版本的 FreeBSD 和许多其他 UNIX® 版本中可能是危险的;当系统将你置于单用户模式时,可能无法使用有效的 shell。解决方案是使用 su -m 成为 root,这样你就可以作为 root 使用 tcsh,因为 shell 是环境的一部分。你可以通过将以下内容添加到你的 .tcshrc 文件中作为别名来使其永久生效:

alias su su -m

当 tcsh 启动时,它将读取 /etc/csh.cshrc 和 /etc/csh.login 文件,就像 csh 一样。它还会读取你家目录中的 .login 和 .cshrc 文件,除非你提供了一个 .tcshrc 文件。你可以通过简单地将 .cshrc 复制为 .tcshrc 来实现这一点。

现在你已经安装了 tcsh,你可以调整你的提示符。你可以在 tcsh 的手册页中找到详细信息,但这里有一行代码可以放入你的 .tcshrc 中,它将告诉你输入了多少条命令、当前时间和你所在的目录。如果你是普通用户,它还会显示 >,如果你是 root 用户,它会显示 #,但无论如何 tcsh 都会这么做:

set prompt = "%h %t %\~ %# "

如果已有 set prompt 行,这行代码应该放在同一位置,或者如果没有,就放在 if(\$?prompt) then 语句下。注释掉旧的行;如果你更喜欢它,你随时可以切换回来。不要忘记空格和引号。你可以通过输入 source .tcshrc 来重新读取 .tcshrc。

你可以通过在提示符下输入 env 来列出已设置的其他环境变量。结果将显示你的默认编辑器、分页程序和终端类型等,可能还有很多其他信息。如果你从远程位置登录,并且由于终端不支持,无法运行某个程序,可以使用 setenv TERM vt100 命令来设置终端类型。

9. 其他

作为 root 用户,你可以使用 /sbin/umount /cdrom 来卸载 CDROM,取出光盘,插入另一张,然后使用 /sbin/mount_cd9660 /dev/cd0a /cdrom 来挂载它,假设 cd0a 是你的 CDROM 驱动器的设备名称。最新版本的 FreeBSD 允许你仅使用 /sbin/mount /cdrom 来挂载 CDROM。

如果你的空间有限,使用 FreeBSD 的 CDROM 上的实时文件系统(第二张光盘)是很有用的。实时文件系统的内容因版本而异。你可以尝试从 CDROM 上玩游戏。这涉及使用 lndir,它与 X Window 系统一起安装,用来告诉程序在哪里找到必要的文件,因为它们在 /cdrom 中,而不是在预期的 /usr 和其子目录中。阅读 man lndir。

10. 欢迎提出意见

如果你使用了本指南,我很想知道哪些地方不清楚,以及你认为应该包括哪些被遗漏的内容,或者它是否有帮助。感谢 Eugene W. Stark(纽约州立大学石溪分校计算机科学教授)和 John Fieber 提供的有益意见。

第一次使用 adduser 时,它可能会要求保存一些默认值。如果它建议默认使用 作为默认的 shell,你可能想要改为 。否则只需按 Enter 键接受每个默认值。这些默认值会保存在 /etc/adduser.conf 文件中,这是一个可编辑的文件。

这将使你能够以 jack 身份登录并使用 命令切换到 root。这样,你就不必再因为直接以 root 身份登录而被责骂了。

如果你已经创建了一个用户,并希望该用户能够通过 su 切换为 root,可以以 root 用户身份登录并编辑 /etc/group 文件,将 jack 添加到第一行(即 wheel 组)。但首先,你需要练习 编辑器——或者使用 FreeBSD 新版本中安装的更简单的文本编辑器 。

现在你应该拥有了必要的工具来浏览和编辑文件,能够让系统顺利运行。FreeBSD 手册中有大量的信息(它可能已经存储在你的硬盘上),还有 。CDROM 和网站上也有各种各样的包和 Port 。手册会告诉你如何使用它们(如果存在包,可以使用 pkg add packagename 安装,其中 packagename 是包的文件名)。CDROM 中有包和 Port 的列表,简短的描述位于 cdrom/packages/index、cdrom/packages/index.txt 和 cdrom/ports/index 中,完整的描述位于 /cdrom/ports/*/*/pkg/DESCR,其中 * 代表程序种类和程序名称的子目录。

Annelise Anderson,

For People New to Both FreeBSD and UNIX®
sh(1)
csh(1)
su(1)
vi(1)
ee(1)
FreeBSD 的官方网站
andrsn@andrsn.stanford.edu