FreeBSD_11-系統管理——{Part_0-基礎}

Tips:node

  • sysctl -d kern.maxvnodes #查看系統控制選項的含義
  • true > file #清空文件內容
  • alias ls 'ls -I(大寫i)' #取消 root 的 ls 自動顯示隱匿文件 

在線查詢 ports 庫中的軟件包信息shell

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

下載工具 fetch安全

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

配置文件目錄bash

  • /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

系統服務ssh

  • /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

命令行使用快捷鍵tcp

  • 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 
相關文章
相關標籤/搜索