zoukankan      html  css  js  c++  java
  • FreeBSD_11-系统管理——{Part_0-基础}

    Tips:

    • sysctl -d kern.maxvnodes #查看系统控制选项的含义
    • true > file #清空文件内容
    • alias ls 'ls -I(大写i)' #取消 root 的 ls 自动显示隐匿文件 

    在线查詢 ports 库中的软件包信息

    • http://www.freebsd.org/ports

    下载工具 fetch

    • 类似 wget,如: fetch ftp://ftp.center.kl.edu.tw/xxx.tgz

    配置文件目录

    • /etc/defaults/ 系统默认的启动配置和脚本
    • /etc/periodic/ 计划任务

    查看硬件信息

    • pciconf -lv | grep -i xxx(根据显示結果中的 vendor 信息,查询相关驱动帮助頁 man -k VENDOR
    • sysctl hw.model hw.ncpu
    • dmesg | grep -i cpu(类似的:memory、sector 等对应内存与硬盘)

    文件保护

    • chflags sunlink xxx:防止誤删除
    • chflags nosunlink xxx:以 no 开头的标志表示解除状态
    • chflags simmutable /sbin/* 及 chflags -R simmutable /bin:set the system immutable(不可修改) flag

    系统服务

    • /etc/netstart #初始化网络服务
    • /etc/rc.d/netif restart #重载 IP 配置
    • /etc/rc.d/routing restart #重载 route 配置
    • 默认 route 设定及更改:route add/change default xx.xx.xx.xx
    • 查询 routing table:netstat -rn
    • 查询网络接口流量统计:netstat -I
    • 查询 TCP网络联机情形:netstat -p tcp
    • 查询所有网络联机情形:netstat -a
    • 查看服务监听状态:sockstat -4 #IPv4,sockstat -6 #IPv6
    • 关闭 X 的6000端口:編辑 /usr/X11R6/bin/startx,设置 serverargs=”-nolisten tcp”
    • 一次性更改了大量的系统配置,使之一次性生效,无須重启:sh /etc/rc
    • 系统管理员編写的启动脚本存放路径:/usr/local/etc/rc.d

    命令行使用快捷键

    • ctrl+a 行首
    • ctrl+e 行尾
    • ctrl+u 从当前位置删除到行首
    • ctrl+k 从当前位置删除到行尾
    • ctrl+w 向行首方向清除一个单詞

    用户管理

    • adduser / rmuser / chpass

    /etc/rc.conf.local 常用参数

    • local_unbound_enable="YES"
    • syslogd_flags="-ss":ss (两个s) 禁止来自远程主机的记录,仅允许本地日志
    • clear_tmp_enable=”YES”:在系统启动时清空 /tmp 
    • update_motd=”NO”:禁止系统重建 /etc/motd 文件
    • icmp_drop_redirect="YES":預防 ICMP type5 重定向攻击,与 ping 没有关系
    • log_in_vain="YES":记录所有试图连接到已关闭端口的连接
    • accounting_enable="YES":启用系统审计功能
    • ifconfig_alc0="inet 10.1.1.10/8" #可设置为 “DHCP” 自动获取 IP
    • ifconfig_alc0_alias0="inet 172.16.10.10/16" #添加 IP 地址
    • defaultrouter="10.1.1.1":默认网关 
    • sshd_enable="YES":设置随机启动

    ports 管理

    • PKG
    • pkg which /PATH/TO/FILE :查詢指定文件是由哪个软件包安装的
      pkg autoremove :卸载软件包时,自动清除不再需要的依賴包
      pkg info :查看已安装的非系统软件列表
      pkg info PACKAGE :查看指定软件包的详细信息
      pkg delete PACKAGE :解除安装,同时适用于 ports 及 pkg 两种方式安装的包
      pkg check -d -a :检查所有已安装包是否存在依賴缺失问题
      pkg check -s -a :检查所有已安装包的完整性
      pkg audit :对所有已安装的包进行安全审计
      pkg create -o /PATH perl :为本机已安装的 perl 创建一个安装包 ,若不用 -o 指定輸出路径,则在当前目录下生成 
      pkg create -a -o /PATH :为本机所有已安装的 port 创建安装包到提定路径
      pkg add [-f] /PATH/TO/CREATED_PACKAGES :安装先前 pkg create 生成的包,-f 强制安装(即使相同 port 已被安装)
      pkg -N :显示当前安装的非系统软件包数量
      pkg set -A 0 PACKAGE :保护指定包不会被 autoremove
      pkg set -A 1 PACKAGE :撤消保护状态
    • portsnap fetch:下载 ports 鏡像
    • portsnap extract:展开 ports 鏡像
    • portsnap update:用已 fetch 的新 snap 更新现有 ports 树,各选项可复合使用,后续更新可使用 portsnap fetch update
    • freebsd-update fetch:下载系统更新
    • freebsd-update install:安装系统更新
    • freebsd-update cron:同期性检查更新,主要用于 cron 中
    • whereis PACKAGE 或 ls /usr/ports/*/*PACKAGE*:搜索软件包位置
    • cd /usr/ports ; make search name=PACKAGE:搜索包的位置并查看详细信息,make quicksearch 查看简要信息
    • MAKE
    • make fetch:下载所在目录层級的源码包,不編译安装,若在 /usr/ports 目录中执行,将下载 ports 库中所有可用的源码包
      make fetch-list:列出将要下载的软件包
      make fetch-recursive:在指定 port 目录中执行,将同时下载依賴包
      make fetch-recursive-list:列出包括依賴包在内的下载列表
      make all-depends-list:列出将要安装的 port 的依赖列表
      make missing:列出依賴列表中尚没有在本机安装的条目,即本次将要安装的依賴包
      make checksum:核对下载的 port 包的完整性
      make install clean:安装软件包,并在安装完成后清理环境(源代码恢复初始状态),安装过程中可能会暂停数次,用于詢问配置目标包及其依賴包的可选功能
      make config-recursive:編译安装之前,一次性设置所有可用选项,安装过程中不会再出现暂停
      make config:重新配置当前软件包的选项
      make showconfig:列出已配置的选项
      make showconfig-recursive:连同依賴包的选项一起显示
      make rmconfig:清除用户选项,恢复初始状态
      make rmconfig-recursive:递归清除依賴包的选项
      make maintainer:显示当前 port 作者的邮箱
      make reinstall:重新安装
      make deinstall:卸载(注:若目标包被其它软件依賴,仍然会被卸载,但 ports 会給出提示信息)
      make all install :如果系统程序被誤删,可进入 /usr/src/usr.bin/file/ 及 ./usr.sbin/file/ 目录下执行該命令恢复
      make -jN -DNO_CLEAN :同时編译 N 个任务,不清空已編译出的对象文件(仅可在由于鍵盘誤按导致編译中断时可安全使用 NO_CLEAN)
    • portmaster -L:显示已安装的包及可更新的包
    • portmaster -a[nf]:更新所有包,-n 选项指仅测试并不实际編译安装,-f 选项指强制更新
    • portmaster PACKAGE:指定升級或新装某个包,同时解决依賴关系

    top 快捷鍵

    • P:显示 per-CPU 负载
    • m:cpu 负载与 io 负载视图切换
    • S:仅显示系统服务进程
    • s:指定视图刷新的间隔(单位:秒)
    • u:指定某用户的进程 

    sh

    • #/root/.shrc
          export PS1="root@h w $ "
      #~/.shrc
          export PS1="`whoami`@h W $ "
      #/etc/profile
        alias ls="ls -aG"
        alias grep="grep --color=auto"
      .
      ~/.shrc  

    设置环境

    • chsh -s bash USERNAME:如果不是从 ports 安装,则 echo /usr/local/bin/bash >> /etc/shells
    • rehash(tcsh/csh)/hash -r(sh): 清空 HASH 緩存,通常在新装软件包之后执行

    定制内核

    • 没有在配置文件中指定的功能,默认将編译成模块
    • /boot/kernel:内核模块存放目录
    • /boot/loader.conf 中设置 xxx_load=“YES”:内核模块 xxx 将开机自动载入
    • /usr/src/sys/amd64/:内核源码目录
    • /usr/src/sys/amd64/conf/GENERIC:基于 x86_64 架构的内核主配置文件,不要直接編辑,cp 之后編辑副本;同一目录下的 NOTES 文件包含了額外不常用的配置选项
    • /usr/src/sys/conf/NOTES:此文件存放与架构无关的額外内核选项
    • cd /usr/src/sys/amd64/conf && make LINT:build a file which contains all available options
    • 編译步骤(make -jN ... 可利用多 CPU 核心加快編译速度)
    • 1 cd /usr/src
      2 make buildkernel KERNCONF=MyKernel :若在 /etc/make.conf 中指定了 KERNCONF=“MyKernel”,则此处可写简写为 make buildkernel ,下同
      3 make installkernel KERNCONF=MyKernel
      注:默认情况下,編译内核将会重新編译所有模块
    • 内核选项(功能 - 需求)
    • KERNEL / amd64
      #Dtrace
        options  KDTRACE_HOOKS
        options  DDB_CTF
        makeoptions  DEBUG=-g
        makeoptions  WITH_CTF=1
        options  KDTRACE_FRAME
      #ZFS
              options  ZFS
              options  UFS_ACL
              options  NFSD 
  • 相关阅读:
    整个过程
    iframe 重新加载闪过白块问题
    C# 获得两日期之间所有月份(包括跨年)
    新手是个框,啥都往里装!---谨以此文致歉博友和自己的无知
    C# 和Java的foreach的不同用法
    终于鼓起勇气,辞掉了第一份工作
    Java Junit4测试功能
    自学Android的第一个小程序(小布局、button点击事件、toast弹出)
    JS--Div中数据滚动到最后一条重新从头开始滚动
    RelativeLayout与LinearLayout的区别
  • 原文地址:https://www.cnblogs.com/hadex/p/6056031.html
Copyright © 2011-2022 走看看