`
isiqi
  • 浏览: 16487104 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多
FreeBSD带有许多简单而功能强大的命令以使你的计算机工作更容易。不管你对任何Unix系统有多少经验,都会发现有效完成工作的新捷径和新方法。

在这篇文章中,我们将讨论命令以帮你记住你是谁,你在哪儿,如何找东西以及如何像Unix鬼精灵一样地思考问题和完成任务!

我喜欢虚拟终端的概念,而且通常我都运行所有8个终端以及XWindows会话。通常,我会运行一个PPP会话、一个打开邮件客户端的终端、几个不同的打开手册页所占的终端、以root身份运行命令的终端以及以普通用户身份运行命令的终端。当然功能越强带来的混乱越多。我会用一些命令来帮我解决混乱。

如果我忘了把手册页开在哪个终端上的话,PrintScrn键会以升序依次滚动列出所有虚拟终端。如果没有运行X Window会话,可以永远继续重复1到8号终端。否则,它会在9号终端上停下来,也就是X服务器。

如果我进入了一个终端并希望知道这是哪个终端的话,可以用tty命令:

tty
/dev/ttyv4
注意,这实际上是5号虚拟终端,因为这些终端是从0开始排列的。如果离开了该终端,就可以用Alt-F5返回。

如果我想知道在该终端上的是哪个用户,可以用whoami:

whoami
root
如果我想知道有谁登录进了终端,可以用who:

who
genisisttyv0Jun3 15:45
genisisttyv1Jun3 15:46
genisisttyv2Jun3 21:09
genisisttyv3Jun3 21:10
genisisttyv4Jun3 21:27
genisisttyv5Jun4 09:40
genisisttyv6Jun4 09:43
genisisttyv7Jun4 10:46
注意who和whoami之间的区别。在ttyv4,我本来是以genisis身份登录的,然后再成为超级用户。who命令告诉你谁拥有登录命令解释器而不返回非登录解释器的信息。也就是说,因为我的X Window会话不是一个登录解释器,ttyv8就不会显示在输出信息中。

如果我忘了自己在哪个目录中,可以用pwd:

pwd
它会显示我当前所在的工作目录:

/usr/home/genisis
好的经验是:不要在还没有用pwd查看一下你实际所处的位置之前就创建或删除文件。

现在,如果我忘了时间信息:

date
Sun Jun4 11:15:46 EDT 2000
或者更糟的话,忘了今天的日期:

cal
June 2000
Su Mo Tu We Th Fr Sa
123
456789 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
或者需要知道2020年的圣诞节时哪一天:

cal 12 2020
December 2020
Su Mo Tu We Th Fr Sa
12345
6789 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
或者签署独立宣言那一周的日程:

cal 07 1776
July 1776
Su Mo Tu We Th Fr Sa
123456
789 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
最后两个关于cal的小技巧同样可以使你的朋友很吃惊;试一下这个:

cal 9 1752
September 1752
Su Mo Tu We Th Fr Sa
12 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
空缺的日期是由于恺撒历到阳历的切换。还有:

ncal -e
April 23 2000
这会显示耶稣降临日;用-o就可以知道东正教日历。

到此,你可能会想我一定是个非常出色的打字员。让我们看一下命令历史列表:

h
110 date > /usr/home/genisis/cal
111cal > /usr/home/genisis/cal
112 cal 12 2020 > /usr/home/genisis/cal
113 cal 07 1776 > /usr/home/genisis/cal
117 cal 9 1752 > /usr/home/genisis/cal
122 ncal -e > /usr/home/genisis/cal
134 h > /usr/home/genisis/cal
我很讨厌打字,而且还用了这么多重定向符>。如果你要保存命令行上的结果到一个文件中就要用这个重定向符;它的语法总是一样的:

command > filename
因为我要你看到以上历史列表中每个命令的输出,所以把它们重定向到了一个文件中。然后再贴到我的文档里来。注意我覆盖了七次同样的文件;因为我只用了一个重定向符。

让我们假定你已经向FreeBSD问答列表中发出一个问题,这时就会有人要你提供uname -a,dmesg和fstab的输出内容。你就可以用>创建三个文件然后把它们贴到你的电子邮件文档中。但是你也可以把所有三个输出重定向到一个文件,只要用>>这个重定向符替换即可:

uname -a > /usr/home/genisis/help
dmesg >> /usr/home/genisis/help
more /etc/fstab >> /usr/home/genisis/help
如果我现在输入:

more /usr/home/genisis/help,
就会看到以上三个文件的输出了。

让我们更仔细地看一下这些命令:

在uname -a命令中我只用了一个>,因为我正在创建一个新文件,不会覆盖它本身的内容。

因为我在dmesg命令中用了>>,就不会覆盖那个文件中uname -a的那部分了。

注意,我需要为/etc/fstab使用更多的命令。如果我用:

fstab >> /usr/home/genisis/help,
fstab: Command not found:
将会出现错误信息。你不能重定向文件;你只能对命令输出进行重定向。在这种情况下,读/etc/fstab的命令就是more了;读取的结果就会被重定向到/usr/home/genisis/help。

这样你已经成功地发送了三个命令到一个文件中,而不会覆盖每个命令的输出。但为什么要打上三个命令呢?完全可以有一种方法用一个命令就完成这些工作。如果我打:

uname -a dmesg more /etc/fstab >> /usr/home/genisis/help2,
usage: uname [-amnrsv]
我就会收到这样的信息。再看一下这个命令;它的确有你要做的每件事儿,但你能说出倒底哪个是命令,哪个是开关,哪个是文件呢?如果你对此感到因惑的话,想象一下你的命令解释器在试图解释你的意图时会感觉怎样。所以我们需要一些分隔命令的方法;试一下这个:

uname -a; dmesg; more /etc/fstab >> /usr/home/genisis/help3
这会使uname -a和dmesg的输出送到终端上;如果你用这个命令:

more /usr/home/genisis/help3
你只会看到more /etc/fstab命令的输出。

所以,我们已经有点接近了。我们已经分隔了这些命令,现在要让命令解释器知道我们想要的是三个输出都送到那个文件中,而不是最后那个命令的输出。最后再试一下这个:

(uname -a; dmesg; more /etc/fstab) >> /usr/home/genisis/help4
more /usr/home/genisis/help4
你就会得到想要的结果了。上面的圆括号告诉命令解释器,你想先运行括号里的命令,然后再把它们所有的输出重定向到那个文件中。

FreeBSD还有几个好用的工具用于查找信息。使用哪个工具就取决于你要找什么。如果你要找应用程序的话,可以用whereis:

whereis ls
ls: /bin/ls
如果你要找一个文件的话,可以用locate:

locate fstab
/etc/fstab
如果你要找些东西但不知道它是什么的话,可以用whatis:

whatis ls
ls(1) - list directory contents
whatis fstab
fstab(5) - static information about the filesystems
注意whatis这个命令会在括号中包含手册页的号码。如果你要上面两样东西的附加信息的话,可以用:

man 1 ls
man 5 fstab
但你是否需要找一段指定的文本呢?就需要用grep工具了,它有一套很简单的语法:

grep whatyou'relookingfor filename
让我们假设我记不清在FreeBSD 4.0的缺省内核里是否允许了bpf这个设备。虽然我可以打开这个文件开始阅读,但更快的办法是:

grep bpf /usr/src/sys/i386/conf/GENERIC
# The `bpf' pseudo-device enables the Berkeley Packet Filter.
pseudo-device bpf #Berkeley packet filter
如果你记不清bpf选项所在的行号是多少,可以向grep里加一个开关:

grep -n bpf /usr/src/sys/i386/conf/GENERIC
212:# The `bpf' pseudo-device enables the Berkeley Packet Filter.
214:pseudo-device bpf #Berkeley packet filter
这样就可以列出相应的行号了。

当然,我也可以把这些输出重定向到一个文件里,把它寄给向我要的人。

grep -n bpf /usr/src/sys/i386/conf/GENERIC > /usr/home/genisis/reply
看另一个例子,如果你想取得计算机的CPU信息,可以运行dmesg,打开你的scroll lock按钮,往上翻屏,查找描述CPU的那些行。或者你可以用:

dmesg | grep CPU
CPU: AMD-K6tm w/ multimedia extensions
(199.96-MHz 586-class CPU)
这样会更快地取得同样的信息。注意,如果你这样用那个命令:

grep CPU dmesg
grep: dmesg: No such file or directory)
就会得到错误信息了。dmesg是一个命令,而你只能对文件进行grep。但是你可以用管道把输出信息送到grep,这样你就可以打到特定的信息了。

现在总结一下:当你使用grep时,问一下自己要找的东西是在文件里还是命令结果。如果在文件里,用:

grep text filename
如果是命令结果,用:

command | grep text
如果你有兴趣学习其它基本命令,这里有一份非常好的在线初学者教程,Introduction to Unix。
分享到:
评论

相关推荐

    初级Freebsd命令学习

    初级Freebsd命令学习和使用方法让菜鸟们更加了解Freebsd命令.

    FreeBSD常用命令110条

    以下是一些关键的FreeBSD命令及其用途: 1. **查看网络流量**: - `systat -if 1`:实时显示网络接口的流量,1表示每秒更新一次。 - `netstat 1`:展示网络状态,包括连接、路由等信息,1表示每秒刷新。 2. **...

    FreeBSD常用命令

    ### FreeBSD常用命令详解 #### 一、`ls` 命令 - **功能概述**: - `ls` 命令是Unix和类Unix操作系统中最常用的命令之一,用于列出目录内容,如文件和子目录等。 - **常用选项**: - `-a`:显示所有文件及目录,...

    FreeBSD Vim 常用命令

    FreeBSD Vim 常用命令 很好的资源

    freebsd的入门配置和命令

    本文将深入探讨 FreeBSD 的入门配置和常用命令,帮助初学者快速上手。 首先,我们来看如何在 FreeBSD 中安装软件。FreeBSD 支持 Linux 兼容模式,这意味着很多 Linux 下的软件也能在 FreeBSD 上运行。对于复杂软件...

    FreeBSD常用命令。

    ### FreeBSD常用命令详解 #### 一、概述 FreeBSD作为一款强大的类Unix操作系统,拥有丰富的命令行工具,这些工具能够帮助用户高效地管理和操作系统。本文将详细介绍一系列FreeBSD中的常用命令及其用法,旨在帮助新...

    Freebsd命令

    标题:"Freebsd命令" 描述:"Freebsd命令绝对能让一个普普通通的新手成为一个行手。" 根据提供的信息,我们可以深入探讨FreeBSD系统中的一些基础但关键的命令和操作,这对于新手掌握系统管理技能至关重要。 ### ...

    FreeBSD命令合集

    ### FreeBSD命令合集知识点解析 #### 一、FreeBSD操作系统概述 **FreeBSD**是一款开源的操作系统,基于Unix,以其高效稳定而闻名于世。它不仅适用于服务器领域,在桌面环境和嵌入式设备中也有广泛的应用。以下是...

    freeBSD架构中文手册

    - 进程控制命令如`ps`, `kill`, `nice`在手册中会有详尽解释。 4. **文件系统** - FreeBSD采用Berkeley Fast File System (FFS)及其改进版UFS,还支持其他如ZFS、EXT4等。 - 文件系统的挂载、操作、维护和故障...

    FreeBSD Chinese HowTo

    ### FreeBSD中文使用指南 #### 1. 前言 ##### 1.1. 简介 本文档旨在帮助用户解决在FreeBSD系统中使用中文时遇到的问题,并提供详细的安装与配置各种中文软件的方法。此外,文档还介绍了FreeBSD的国际化及中文化...

    FreeBSD系统编程.doc

    FreeBSD系统编程是针对FreeBSD操作系统进行应用程序开发和系统维护的技术。在FreeBSD中,`make`是一个核心的工具,用于管理和构建项目,特别是跟踪文件之间的依赖关系,以自动化构建过程。以下是关于FreeBSD系统编程...

    freebsd u盘安装 教程

    - 使用`dd`命令将下载好的FreeBSD安装镜像文件写入U盘。具体命令如下: ```bash sudo dd if=/path/to/8.0-RELEASE-i386-memstick.img of=/dev/sdb bs=1M ``` - 等待大约2分钟后,安装FreeBSD的U盘即制作完成。 ...

    FreeBSD使用大全 CHM).rar

    FreeBSD使用大全 CHM)

    FreeBSD网络配置

    五、FreeBSD网络配置命令 在FreeBSD操作系统中,有多种命令可以用于配置网络信息。例如: * ifconfig命令:用于配置网卡信息,例如设置ip地址、子网掩码、网关等。 * route命令:用于配置路由信息,例如添加或删除...

    FreeBSD下制作U盘启动盘.pdf

    2. 插入U盘到电脑后,通过FreeBSD系统中的df命令可以查看到U盘的设备名,如/dev/da0。接下来,使用dd命令对U盘进行清零操作,以确保U盘中没有残留数据。这个命令的格式如下: ``` dd if=/dev/zero of=/dev/da0 bs=1k...

    freebsd开发环境解决方案

    ### FreeBSD开发环境解决方案 在构建高效且稳定的开发环境时,选择合适的操作系统至关重要。FreeBSD作为一款优秀的类Unix操作系统,在服务器领域以及开发环境中拥有广泛的应用。本文将详细探讨如何搭建一个基于...

    FreeBSD 8.1使用手册

    了解FreeBSD的命令行界面至关重要,手册将介绍各种常用命令,如文件操作、进程管理、网络配置等。同时,手册还会讲述如何使用控制台、编辑器(如vi)以及配置文件管理,以便对系统进行日常维护。 三、网络与服务...

Global site tag (gtag.js) - Google Analytics