歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> FreeBSD的一些簡單使用技巧

FreeBSD的一些簡單使用技巧

日期:2017/2/27 17:39:21   编辑:Unix教程
FreeBSD

1、在 unix-like 中檔案結構是蠻重要的,那麼要如何去看相關檔案目錄結構的說明呢?

難道是 cd 到每個目錄下嗎?其實有更好的方法..

那就是用好男人 man 來看:

# man hier



2、在 console 下操作時,由於屏幕顯示有限,有時需看前面顯示的資料,這時你可:

. 按一下 Pause or Scroll Lock鍵後,則可利用 PageUp PageDown Up Down
Home End 等鍵來看前後顯示的資料

. 再按一下 Pause or Scroll Lock則可回復等待輸入畫面.

3、 使用 pw 來管理你的帳號

在 FreeBSD 下使用 adduser 來新增帳號,有些時會滿煩的,可用以下方式:

pw useradd -n -g -m -s /bin/csh

=> -m 代表建立使用者目錄

●同時設密碼

echo | pw useradd -n -g -m -s /bin/csh -h 0

● 刪除帳號

pw userdel -n -r

=> -r 代表同時刪除其 home 目錄等相關資料

● 修改帳號

pw usermod -g -s /bin/csh

PS:無法修改帳號名稱

● lock 及 unlock 使用者帳號


pw lock
pw unlock

4、 激活你的 screensaver

由於 FreeBSD 大多當為主機使用,都是常期不關機的,因此可將屏幕關掉,或使
用 ScreenSaver 功能..

使用 ScreenSaver 請在 /etc/rc.conf 這個檔加入以下兩行:

blanktime="900"

=> 以秒數為單位,如以上為 15 分鐘

saver="logo"

=> logo 是 FreeBSD 的吉祥物(圖型接口),另也可使用 "daemon",這是文字型式

5、 檢查你的某一個 ports 版本及更新

如果要更新所有的 port 只需在 /etc/ports/ 下執行以下指令:

# make update

有時我們可能要檢查某一個 ports 的版本,在每個 ports 中的 Makefile 都有這一行

PORTVERSION= x.x.x

如此就可看到這個 ports 的版本了,另外也可使用以下方式(用 grep),比如我
們想看 mod_php4 的版本

# grep PORTVERSION= /usr/ports/www/mod_php4/Makefile
PORTVERSION=   1.4.1 -> 版本訊息

如果版本太舊了,則可利用以下方法來更新單一 ports

a. 使用 portupgrade 或 portinstall,請用 man 查看用法

b. 到 FreeBSD 網站查詢最新的 ports 信息,並抓 ports 回來更新

網址:http://www.freebsd.org/cgi/cvsweb.cgi/ports/

抓回來後在相關目錄更新,例如我們抓回的是 mod_php4.tar.gz,存在 /usr/tmp/ 目錄下,則解壓縮的方式如下:

# cd /usr/ports/www/mod_php4
# tar xzvf /usr/tmp/mod_php4.tar.gz

如此就 ok 了..

6、 加速你的按鍵速度..

相信使用 FreeBSD 的人很多都是在 console 下操作吧,有些時,要重復某一按鍵速度實在很慢..

另一個問題就是 cusror 的位置有些時不太明顯..

可用以下方法來改善:

在 /etc/rc.conf 中加入以下資料..

keyrate="fast"
cursor="blink" 或 "destructive"

7、 設定開機畫面

使用 windows 的人,都知道所謂的開機畫面,在 FreeBSD 下是否也有此功能呢?答案是肯定的,而且設定更為簡便,請照以下 steps:

一. 首先制作一個圖型文件,檔案格式為 logo.pcx 或 logo.bmp,需注意的是
.bmp 的檔案存盤時不用壓縮,分辨率需為 640 X 480 以內(含),色階為 256
色..

二. 將此檔案 copy 到 /boot/ 這個目錄下

三. 設定 /boot/loader.conf,加入以下資料

splash_bmp_load="YES" -> 如果使用 .bmp 格式,此項需設為 YES
splash_pcx_load="YES" -> 使用 .pcx,請將此項設為 YES
vera_load="YES"
bitmap_load="YES"
bitmap_name="/boot/logo.pcx" -> 請依你的檔案格式更改
bitmap_type="splash_image_data"

四. 重新激活
ps: 請檢查你的 kernel 中是否有設定以下資料,一般在 4.x 中都是內定值..,至於 3.x 版,沒用過..^.^

preudo-device splash

如果沒有,則需將此行加入並重新編繹核心.


8、 一些 console 下使用的快速鍵..

相信大多使用 unix-like 的使用者,還是在 console 下執行你的日常維護工作吧,那有那些按鍵組合可幫我們提高效率呢..

以下按鍵皆適用於 tcsh 及 bash..

1. 快速移動光標

ctrl+a -> 到最前面
ctrl+e -> 到最後面

2. 編輯方面

ctrl+d -> 刪除光標所在字符
ctrl+w -> 刪除光標所在字前面的字符
ctrl+u -> bash:將光標前所有的字及字符刪掉,tcsh:刪除所有字
ctrl+k -> 將光標後所有字符刪掉
ctrl+b -> 下個字符
ctrl+f -> 前一個字符
ctrl+m -> 和按下 enter 的結果一樣
ctrl+h -> 和按下 del 或 backspace 鍵一樣
del 或 backspace -> 刪除前一個字符

如果對按鍵有研究興趣者,不彷參考 /usr/share/syscons/keymaps/ 這個目錄,其中 us.iso.kbd 是一般我們使用的按鍵..

9、 快速切換目錄

在 FreeBSD 中常常需要切換目錄,有時目錄名稱較長、或是有大小寫、或是只記得前面幾個字,怎麼辦..

其實只要輸入部份字再加上 * 這個符號就可以了..

如我們要切換到 /usr/local/ 這個目錄,只需輸入 cd /usr/lo* 就可以了..

如果輸入 cd /usr/l* 會如何呢?則會進到 /usr/lib/ 這個目錄,這是因為 shell 找到第一個符合的條件便停止了..

10、 有關時間及時區的比較

使用 FreeBSD 大多是拿來當做主機使用,那時間及時區的正確與否就非常重要
了,以下介紹如何校整時間及時區

● 時間校正
1. 使用 date 指令

格式 date [yymmdd]HHMM
說明:
yy 年數,如 02 代表 2002 年
mm 月份 01-12
dd 日數 01-31
HH 時數 01-59
MM 分鐘 01-59

2. 使用對時主機

# ntpdate clock.stdtime.gov.tw

這項需能連上網絡,其中 clock.stdtime.gov.tw 是一標准時間的主機

● 時區的設定

1. 使用 tzsetup

2. 在 /etc/ 下有個檔案 localtime,這個就是本機的時區設定檔案,因此我們可用個取巧方式(不經由 tzsetup),如以下:

# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

這樣是不是比較快呢..

11、 如何清空檔案內容..

有時我們需將一個檔案內容清空,但需保留這個檔案..

一般常見的用法是用文字編輯器,如 vi 將這個檔案叫出來,再將其內容全部刪掉,再存盤..

這樣是不是有些煩呢?

有一個更好的方法,使用 true 指令..

如我們要將 /var/log/httpd-access.log 清空,則下以下指令..

# cd /var/log/
# true > httpd-access.log

12、 顯示目錄及檔案 => tree

有時需顯示某個目錄下所有的目錄及檔案,雖使用 ls 可達到部份功能,但並不是很方便..

在 dos 中,有個 tree 指令,是不是滿好用的..

其實在 FreeBSD 中也有類似的指令 => tree..

以下我們就透過 ports 來安裝 tree

# cd /usr/ports/sysutils ; make install

如此會將 tree 這個指令安裝在 /usr/local/bin/ 這個目錄下..

使用例子:

1. 顯示 /usr/ 下的目錄及檔案

# tree /usr

2. 只顯示 /usr 下的目錄

# tree -d /usr

詳細用法請參考 man tree

PS:可透過管道 | 及 more 來顯示

如 tree /usr | more..

13、 如何檢視檔案類型

由於 FreeBSD 並沒有像 dos 或 windows 般有擴展名的觀念,因此要如何檢查一個檔案的類型呢?

用 file 吧..

語法: file

詳細用法請參考 man file

14、 重復使用先前使用過的指令

你可以使用以下的方法來重復使用先前使用過的指令:

例如,我們先用 history 顯示先前輸入的指令:

# history
.
..
...
10 clear
11 cd /usr/local
12 ls
13 ls etc
14 cd ~
15 clear

1. 用 up down 可用上下一個指令,或是 ctrl+p ctrl+n 亦然

2. 配合 ! 的用法,例如以下(ps: 在<...>內代表要輸入的東東)

!!
# !! => 重復執行上個一個指令

!<編號>
# !11 => 執行 cd /usr/local

!<指令> 可輸入部份字,但前面部份需符合
# !cl
執行 15 clear 指令

! 輸入部份字符,部份吻合
# !?etc?
執行 13 ls etc

以上指令在 tcsh 及 bash 下皆可使用,如此是不是可幫你省下許多時間..


15、 如何將 man 的檔案印出來..

man 是大家學習 FreeBSD 的最佳資料參考來源,但在顯示器上看到底不是很方便,有沒有方法轉成一般的文件檔案呢?

使用 col 這個指令吧..

例我們要將 ssh2 轉成 ssh2.txt,則使用以下語法:

# man ssh2 | col -b > ssh2.txt


16、 為何查不到正確的 ports 資料..

在 /usr/ports/ 下有著幾千個 ports 的安裝資料,有時我們可使用以下方式來查相關的 ports..

以下都是在 /usr/ports/ 這個目錄下執行..

1. 先將 ports 資料轉換成一個文字文件,如 index.txt

# make print-index > index.txt

2. 使用 make search key="...." 來查

3. 將 ports 內容轉換成 README.html

用以上方法,可很容易的查到相關的 ports 資料,但很奇怪的是,為何我更新
一個 ports 的資料後(或 ports tree),為何會查不到,
查到的仍然是舊的資料..

原來,在 /usr/ports/ 中有一個 INDEX文件,以上的查詢方式都是在這個
INDEX 檔中查詢,當你更新 ports 資料時,這個 INDEX 檔並不會隨之更新..

所以為了查詢方便,我們需以手動的方式來做..

# make index

做完後,再更新 index.txt 及 README.html..

不過更新 INDEX 檔需要一些時間,大約 12-30 分鐘..(視計算機等級而定).


17、 用 dig 及 host 來取代 nslookup

一般我們用來檢查網絡是否有問題,大多是用以下三個指令..

nslookup
ping
traceroute

其中 nsllokup 是用來檢查 dns 的相關設定, ping 用來檢查自己和對方網絡是
否通順,而 traceroute 則是用來檢查從自己的計算機到對方的計算機所經過的
線路狀況..

不過以 nslookup 而言,個人覺得不是很實用,有時我們只是想單純的查一下某
台主機或是 MX 記錄,那使用 nslookup 就有點噜嗦了..

在此介紹二個好用的指令 host 及 dig,這二個指令很類似,不過效率較 nslookup 高

# host -a <主機名稱> 或

=> 輸入主機名稱顯示 dns 正向解析的部份,輸入 ip 則是顯示反向(ptr)

# dig <主機名稱或ip>

如要顯示 MX 記錄

# dig 主機名稱 mx

個人是覺得比 nslookup 方便多了,你覺得呢.. ^.^

當然功能不只這些,詳情請 man dig 或 host..


18、 加快你的開機速度..

嚴格說起來,FreeBSD 的開機速度算滿快的,不過中間會有個 10 秒的延遲時間
(以便讓你進入 boot 的 command prompt mode),如果你嫌這10秒還是太慢了,
那你可將時間?#123;短一些..

FreeBSD 激活時會先去參考 /boot/defaults/loader.conf 檔的設定,然後再參
考 /boot/loader.conf,一般我們都不去?#123;整
/boot/defaults/loader.conf 這個檔,而直接?#123;整 /boot/loader.conf..

只要在 /boot/loader.conf 中加上以下這一行即可

autoboot_delay="秒數" 即可,如

autoboot_delay="7" 代表7秒

這樣開機是不是更快了..

另外建議,有時間可參考一下 /boot/defaults/loader.conf 這個檔案的設定,
其中有許多實用的設定哦


19、 忘了 root 密碼

如果你忘了 root 的密碼怎麼辦,這在 FreeBSD 中滿好解決的,請照以下 steps 來處理..

1. 進入單人模式

開機後,當出現

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...

按 space(或除了 enter 以外的鍵) 鍵則會進入 command prompt mode,同時出現一個 ok ..

這時請輸入 boot -s 以進入單人模式

2. 選擇 sh

進入單人模式後,系統會詢問你要使用那個 sh,內定是 /bin/sh ,就使用這個吧,直接按 enter 跳過

3. 將所有的硬盤分割架起來

# mount -a

4. 更改密碼

# passwd

長度要在 6 個以上,輸入二次

5. 重新激活

# reboot


20、 有關 kernel 的激活..

kernel 對 unix-like 系統來說,是非常重要的一環,如果 kernel 損壞或編譯出了問題,可能會導致嚴重的後果..

FreeBSD 一向以安全著稱,在這方面有什麼防護的措施呢?

FreeBSD 的 kernel 是放在 / 目錄下,一般會有二個

kernel
kernel.GENERIC

如果你有編譯過核心(kernel)的話,則原先的 kernel 會轉換成 kernel.old,新
的核心會變成 kernel,也就是在 / 下的 kernel 檔案如下:

kernel => 新編譯過的核心
kernel.GENERIC
kernel.old => 原先的核心

那 kernel.GENERIC 是什麼呢,這個是系統安裝時所裝好的,一般都不會變動,
即使編譯過核心亦然,這個檔案可說是救命核心,最好不要亂動,理由如下所
言..

FreeBSD 激活時,會使用 kernel 這個核心,如果這個檔案不存在,則會抓 kernel.old 這個檔案..

如果這二個檔案不幸都不在,那怎麼辦..這時則會進入 command prompt mode,你必需自行輸入 kernel 的名稱,如

boot 如

boot kernel.GENERIC

了解以上之後,在編譯核心無法正常執行時,相信各位知道如何處理了..


21、 FreeBSD 在那激活程序..

一般 FreeBSD 激活後會依序執行以下位置的程序..

1. /etc/rc.conf 這個檔案內的程序,如 sendmail、sshd .. 都是在此執行,另
外要注意的是,在執行這個檔案之前,會先參考 /etc/defaults/rc.conf 的設定

2. /usr/local/etc/rc.d 下的一些 .sh 文件,這些檔案的權限都是被設定成 x ,如 apache samba .. 都是在此設定

3. /etc/rc.local 這裡也可設定,如我要把 postfix 設定在此,只需在這個檔案內加一行,如下

/use/local/sbin/postfix start &

加上 & ,就不會顯示出訊息

4. 由 cron 所控制的一些檔案,當時間到了,便會自動執行..

那心細的人可能會問, /etc/inetd.conf 內設定的呢?這些在第 1 項就執行了..

了解以上並時時注意是否有不明的程序在執行(可能是被人植入木馬程序),也是
日常檢視系統的重要工作..

22、 加快你的主機名稱查詢速度..

unix-like 系統,初期都是使用 hosts 這個設定文件來做主機的查詢,因此有些
程序在查主機名稱時,都會參照這個設定檔,像 sendmail 就是一個很好的例
子..

系統內定第一個是會查 /etc/hosts 這個檔案,因此如果裡面設定有問題,則會影響到某些程序的執行..

典型的 hosts 檔設定如下..以我本身的主機來說

127.0.0.1 localhost.cmlab.idv.tw localhost
61.219.230.5 cmlab.idv.tw cmlab
61.219.230.5 cmlab.idv.tw.

其中第一及第二行最後一個項目是 aliases 名稱(主機別名),比如我們在主機

ping cmlab.idv.tw



ping cmlab

是同樣的結果..

你可把一些常用的主機加到這個項目內,如有一台 mail.cmlab.idv.tw ,假設 IP 為 61.219.230.8

則在這個 hosts 中加入以下

61.219.230.8 mail.cmlab.idv.tw mail
61.219.230.8 mail.cmlab.idv.tw.

這樣就行了..

另外如果有自行架設 dns server,請注意在 /etc/host.conf 這個檔案,典型的檔案如下:

# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis

由以上可以看得出來,在查詢主機名稱時的順序,是先查 hosts 再查 bind 也就是 dns,你可視你的需要修改其順序..

另外要注意的就是 /etc/resolv.conf 文件,這個是有關 dns 主機 search 的順序,如以我的設定如下:

domain cmlab.idv.tw
nameserver 61.219.230.5
nameserver 168.95.1.1
nameserver 168.95.192.1

其中第一行是設定我的網域名稱,第 2-4 行則是 dns 主機的設定,建議至少設二個以上,以免一個掛了,還有個備用的..

第2行是我的 dns 主機,3-4 行是 hinet 的 dns 主機..

了解以上並有正確的設定,是有助於主機的查詢的及速度的提升..

23、 我要如何分割硬盤..

檔案目錄對於 FreeBSD (或者是所有 unix-like 系統),都是相當重要的,如開
始時,分割的不是很恰當,日後就會遇到一些麻煩,如空間不夠..等問題..

那麼,我們要如何分割比較恰當呢..

這就有關於你的用途及 FreeBSD 的目錄架構了..

一般個人是建議你如此分割:

1. / 根目錄,一般在 250 ~ 500 MB 絕對夠用,以我的根目錄來說,使用一年多
了,也才用了 66 MB 多。因為這個目錄只是一些 kernel modules sbin bin
etc .. 等目錄

2. swap 檔,一般人都不知道如何設較恰檔,這也沒一個標准,最主要是要看你
的 ram 及硬盤而言,一般設成 1-2.5 倍(相對於你的 ram)。如你的 ram 在
256 mb 以上(含),設成一倍;如在 64 - 128 mb,則建議設成 2 倍

如要檢查你的 swap 使用狀況,可用以下指令來看..

# pstat -T
44/4044 files
0M/127M swap space

由以上可看出目前使用的 swap 為 0 ,設定的大小為 128 M


3. /var 目錄 及 /usr 目錄

這二個目錄一般都會占比較大的空間,/var 的變動較小,以我個人來說,一年前設為 8 GB ,在目前只使用了不到 2GB。

但要注意的是一般的 mail 軟件,都是將信件存在 /var/mail/ 中,如果你的信件很多或很大,這個部份不妨加大一些..

而 /usr 這個目錄能大就給它大一點的空間,因為所安裝的程序,或是 hone 都是在這個目錄下(如果你沒將 home 目錄設成一個分割) ..

那這兩個要如何分配呢,我的建議是 usr 和 var 的比例為 3:1,或是 2:1

4. 有些主機使用者較多,如學校單位。如果你沒將 home 設成一個 partition,
則 FreeBSD 會將 home 安裝在 /usr 目錄下,如果為了管理及安全問題,則不妨
將 home 分割為單一目錄..

至於大小,我想應該 3-5 GB 左右,就絕對夠用了

我們來舉個實際例子,假設你有一顆 40 GB 的硬盤,使用內存為 128 MB RAM,那我建議你的硬盤如此分割..

1. / => 250 MB
2. swap => 取 2 倍,即 256 MB
3. /home 如要獨立出來,給它 3-5 GB
4. 剩下來的以 3:1 或 2:1 的比例設給 /usr 及 /var


以上只是一般建議,最重要的是必需了解各目錄的性質及實際使用情況而予以適
當的分配,有關這方面的信息,不妨參考 man hier ..

Copyright © Linux教程網 All Rights Reserved