FreeBSD一些常用的命令

Posted on Oct 8, 2021
都作为类UNIX FreeBSD命令与Linux大体上类似但任然有不小的区别,具体来说用户管理 网络命令 系统管理等差异比较明显

专有命令

  1. pkg

    FreeBSD 使用 pkg 作为包管理工具类似于Debian的 apt 或 Fedora 的 dnf

    pkg install <package>
    pkg search <package>
    pkg delete <package>

  2. fstat

    fstat 是 FreeBSD 中一个用于显示打开文件的详细信息的命令。它类似于 Linux 中的 lsof 命令

    fstat -p <PID>

  3. sockstat

    FreeBSD 系统中用于显示当前打开的网络套接字状态的命令。它类似于 Linux 中的 ss

    sockstat -l

  4. freebsd-update

    FreeBSD 特有的命令,用于二进制更新系统
    freebsd-update fetch
    freebsd-update install
    freebsd-update upgrade -r 12.1-RELEASE
    freebsd-update install
    shutdown -r now
    freebsd-update install

  5. bsdinstall

    这是 FreeBSD 的安装工具,类似于 Fedora 的 anaconda 或 Debian 的 debian-installer

    bsdinstall

  6. freebsd-version

    用于显示 FreeBSD 系统的版本信息

    freebsd-version

  7. pw

    用于管理用户和组,类似于 Linux 中的 useraddgroupadd,但有更多特性

    创建/删除用户组:
    pw groupadd users -g 100
    pw groupdel users

    创建/删除用户
    pw useradd usr1 -u 1026 -g 100 -s /usr/local/bin/bash -d /home/usr1
    pw userdel usr1

    修改用户到组:
    pw usermod usr1 -g users

    添加用户到属组:
    pw groupmod users -m usr1
    pw usermod squid -G wheel

  8. mtree

    用于检查和验证文件系统的完整性

    mtree -c -K sha256digest -p /usr/local > /var/db/mtree/usr.local.dist
    mtree -f /var/db/mtree/usr.local.dist -p /usr/local

  9. dump

    FreeBSD 特有的备份工具

    dump -0 -f /backup/root.dump /

  10. restore

    FreeBSD 特有的恢复工具

    restore -r -f /backup/root.dump

  11. sysrc

    sysrc 是 FreeBSD 中的一个命令行工具,用于管理系统配置文件 /etc/rc.conf/etc/rc.conf.d/ 中的配置项

    sysrc sshd_enable="YES"
    sysrc -a
    sysrc -l

  12. jail

    FreeBSD 独有的轻量级虚拟化技术,类似于 Linux 的容器,但有自己的独特实现

    jail
    jls
    jexec

磁盘管理

  1. gpart

    用于磁盘分区管理,虽然 Linux 也有类似工具(如 fdiskparted),但 gpart 是 FreeBSD 特有的

    gpart show
    gpart add
    gpart delete

  2. geom

    GEOM 是 FreeBSD 的一个模块化块设备框架,提供了对磁盘设备进行高级管理的能力,比如磁盘分区、加密、RAID 等功能

    geom disk list
    geom label list

  3. camcontrol

    用于管理 SCSI 和 ATA 设备

    camcontrol devlist
    camcontrol inquiry

  4. growfs

    growfs 是 FreeBSD 中用于扩展已存在的文件系统的命令 sysrc growfs_enable="YES" 启动 growfs

    growfs /dev/ada0p

通用命令及差异

  1. netstat

    bsd netstat 命令与linux netstat 命令有较大区别

    netstat -an # 示活动的网络连接 [linux&bsd]
        -rn # 显示路由表 [linux&bsd]
        -i # 显示接口统计信息 [linux&bsd] 
        -s # 显示协议统计信息 [linux&bsd] 
        -l # 显示监听端口 [linux] 
        -p # 显示监听端口的程序/PID [linux] 
        -t # 显示TCP链接 [linux] 
        -u # 显示UDP链接 [linux] 
        -u # 显示UDP链接 [linux] 
    

    bsd查看监听端口:
    netstat -na -f inet | grep LISTEN

  2. service

    FreeBSD 用 rc.d 管理服务进程,虽然 Linux 中也有 service 命令,但 FreeBSD 的 service 命令具有一些特有的功能和用法

    启用服务:
    service <service_name> enable
    启动服务:
    service <service_name> start
    终止服务:
    service <service_name> stop
    查看启用服务:
    service -e
    查看全部服务:
    service -l

  3. sysctl

    虽然 Linux 也有 sysctl 命令,但 FreeBSD 的 sysctl 有一些不同的参数和用法

    sysctl -a
    sysctl hw.model
    sysctl kern.version

  4. dd

    尽管 Linux 也有 dd 命令,但 FreeBSD 的 dd 命令支持一些 Linux 不常见的选项,如 iflag=direct

  5. top/ps

    用于查看进程与Linux类似

  6. vmstat

    用于查看内存使用情况与Linux类似

内核工具

bsd与linux内核各自独立开发采用的工具也各不相同

  1. kenv

    用于查看和设置内核环境变量

    kenv
    kenv hw.model
    kenv boot_serial

  2. kldload

    用于加载内核模块类似Linux的 modprobe xxx, FreeBSD可通过kldload 加载内核模块, 也可通过配置 /boot/loader.conf 自动加载

    kldload pf.ko # 加载pf模块
    kldstat # 查看已经加载的内核模块