- 論壇徽章:
- 0
|
在freebsdchina論壇中看到的,覺得很實(shí)用,就轉(zhuǎn)過來了。
這是原帖子的地址:
http://www.freebsdchina.org/forum/topic_20063.html
問:如何讓FreeBSD像RedHat那樣在ls時顯示多種顏色的目錄?
答:在/etc/csh.cshrc里面加入:
代碼:setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
然后,執(zhí)行:
代碼:sed -i.bak -E s/set prompt/#set prompt/g /root/.cshrc
并重新登錄。
問:如何讓FreeBSD的csh像bash那樣按tab列出列出無法補(bǔ)齊的候選文件?
答:標(biāo)準(zhǔn)的方法是按Ctrl+D。但如果一定要用tab的話,在/etc/csh.cshrc中加入:
代碼:set autolist
問:如何讓FreeBSD的csh顯示類似[delphij@spirit] ~這樣的提示符?
答:在/etc/csh.cshrc中加入:
代碼:set prompt = '[%B%n@%m%b] %B%~%b%# '
然后,執(zhí)行:
代碼:sed -i.bak -E s/set prompt/#set prompt/g /root/.cshrc
問:如何讓普通用戶也擁有類似root用戶那樣的命令行編輯能力?
答:在/etc/csh.cshrc中加入:
代碼:bindkey "^W" backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward
問:為什么我非得在這里學(xué)習(xí)tips?
答:因?yàn)槟惆惭bfreebsd是總是不裝games包,而fortune程序在games包里,而tips是由fortune程序生成的,而shell會在你每次登陸都送你一條tip.
問:為什么我非得在這里學(xué)習(xí)tips?
答:因?yàn)槟惆惭bfreebsd是總是不裝games包,而fortune程序在games包里,而tips是由fortune程序生成的,而shell會在你每次登陸都送你一條tip.
問:關(guān)鍵的服務(wù)程序?yàn)槭裁床挥胮orts安裝?
答:關(guān)鍵的服務(wù)程序如:apache,php,mysql,bind,MTA等大多是激進(jìn)地項(xiàng)目組織在維護(hù),這些項(xiàng)目組的工作進(jìn)度當(dāng)然要領(lǐng)先于freebsd的ports組的進(jìn)度。另外ports二次包裝了configure程序的參數(shù),但又不是完全完整地映射,以至于個別的configure參數(shù)無法通過ports傳遞到原始程序包的編譯環(huán)境中。安裝其他的程序如:autoconf,glibc,各種shell,libiconv,perl-xx等應(yīng)盡量用ports裝,因?yàn)檫@些程序更新速度慢,但依賴性又較復(fù)雜,用ports安裝正合適。
問: 如何用簡易的方式快速學(xué)習(xí)freebsd系統(tǒng)的操作命令?
答: 在bash里,連按兩下tab鍵,既列出了所有的命令(如果嫌多可以用"a-tab-tab","b-tab-tab"分別列出)。(csh里的操作方法delphij教過)然后看哪個命令是不會用的,不懂的,沒見過的,就 man 那個命令,但卻只看第一頁.這樣全部堅(jiān)持下來,你就了解的整個系統(tǒng)都"能"做什么了。以后遇到一個問題,你自然就知道freebsd能不能做;具體到真要去做的時候在去詳細(xì)地看man.
這樣還可以幫助你了解各種*nix之間的差異。
問:使用port來安裝軟件的理由是什么?
答:ports是FreeBSD推薦的安裝方式,它提供了依賴關(guān)系檢查、自動安全審計(jì)(portaudit)、更新等多種功能。此外,還有一些其他理由:
a) 并不是每一個開發(fā)人員都了解FreeBSD,但是每一個ports committer都了解。他們可以幫助那些第三方軟件的開發(fā)者將軟件更好地運(yùn)行在FreeBSD上。
b) 幾乎每一個port都符合hier(7)標(biāo)準(zhǔn)。你可以輕易地找到文件。
c) 可以完整地卸載port,但手工安裝的不行。
d) port出了問題你可以去郵件列表銼г筽ort有問題,手工安裝一個人一個辦法,沒人知道你的問題是什么。
e) FreeBSD的POLA政策保證了絕大多數(shù)情況下ports的使用方式的延續(xù)性(閱讀ports/UPDATING基本上不會遇到大的困難)
問:bash, sh, csh哪一個更好?我是否可以把普通用戶或root的shell改為bash或者ksh?
答:答案是,習(xí)慣哪個哪個就更好。唯一要注意的一點(diǎn)是,盡量不要改變root的shell,特別是要避免使用第三方的shell,因?yàn)檫@會在升級時帶來麻煩。
改變shell官方的作法是chsh(1),然而你也可以用vipw或另外一大打工具來完成類似的工作。
路徑 .zshrc
export PROMPT='%/>'
other as:
PROMPT='%/> '
[displays the current working directory]
/home/matt> PROMPT='%~> '
[use short form of current directory]
PROMPT='%m> '
[the first part of the hostname
(use %M for the full hostname)]
PROMPT='[%!]> '
[current history event number]
問:tcsh(csh兼用) 提示符的變量常用的都有哪些?
答:
! 和%h一樣
%B 開始粗體模式
%b 結(jié)束粗體模式
%c 當(dāng)前工作目錄名稱的最后部分
%c2,%c3等等 當(dāng)前工作目錄名稱的最后兩個、三個(等等)組成部分
%C 跟%c類似,但是使用長形式的目錄名稱
%d 本周的當(dāng)天
%D 今天是當(dāng)月中的第幾天
%h 當(dāng)前命令的歷史記錄編號
%l shell的當(dāng)前控制終端
%L 清除從提示符末尾到下一行的所有內(nèi)容
%m 機(jī)器的主機(jī)名稱
%M 機(jī)器的完全符合規(guī)范的域名
%n 用戶名
%p 用精確格式(包括秒)顯示的12小時制時間
%P 用精確格式(包括秒)顯示的24小時制時間
%S 開始標(biāo)準(zhǔn)輸出格式
%s 結(jié)束標(biāo)準(zhǔn)輸出格式
%t 以12小時制格式顯示時間
%T 以24小時制格式顯示時間
%U 開始下劃線模式
%u 結(jié)束下劃線模式
%w 當(dāng)前月的名稱
%W 當(dāng)前月的序數(shù)
%y 以2位格式表示的年
%Y 以4位格式表示的年
%% %字符
%! 跟%h相同
%@ 跟%t相同
$# 擴(kuò)展到>供常規(guī)使用,如果用戶正以root身份運(yùn)行的話,就擴(kuò)展到#
%/ 當(dāng)前工作目錄的完整名稱
%- 以短格式表示的當(dāng)前工作目錄
^C 跟C匹配的控制字符:例如^G代表Ctrl+G
a 使tcsh在任何時候顯示提示符時嘟嘟響
e 終止的escape符0x1B
f 終止的換頁符
在這個位置開始一個新行
回車符
Tab制表符
v 垂直制表符
nn 由八進(jìn)制數(shù)字nnn所指定的字符
以下是本人收集的小tips,不是原創(chuàng),只是網(wǎng)上收集,希望對大伙有幫助!
1、在 console 下操作時,由于屏幕顯示有限,有時需看前面顯示的資料,這時你可:
. 按一下 Pause or Scroll Lock鍵后,則可利用 PageUp PageDown Up Down Home End 等鍵來看前后顯示的資料
. 再按一下 Pause or Scroll Lock則可回復(fù)等待輸入畫面.
2、 使用 pw 來管理你的帳號
在 FreeBSD 下使用 adduser 來新增帳號,有些時會滿煩的,可用以下方式:
pw useradd -n -g -m -s /bin/csh
=> -m 代表建立使用者目錄
●同時設(shè)密碼
echo | pw useradd -n -g -m -s /bin/csh -h 0
● 刪除帳號
pw userdel -n -r
=> -r 代表同時刪除其 home 目錄等相關(guān)資料
● 修改帳號
pw usermod -g -s /bin/csh
PS:無法修改帳號名稱
● lock 及 unlock 使用者帳號
pw lock
pw unlock
3、 加速你的按鍵速度..
相信使用 FreeBSD 的人很多都是在 console 下操作吧,有些時,要重復(fù)某一按鍵速度實(shí)在很慢..
另一個問題就是 cusror 的位置有些時不太明顯..
可用以下方法來改善:
在 /etc/rc.conf 中加入以下資料..
keyrate="fast"
cursor="blink" 或 "destructive"
4、 一些 console 下使用的快速鍵..
相信大多使用 unix-like 的使用者,還是在 console 下執(zhí)行你的日常維護(hù)工作吧,那有那些按鍵組合可幫我們提高效率呢..
以下按鍵皆適用于 tcsh 及 bash..
1. 快速移動光標(biāo)
ctrl+a -> 到最前面
ctrl+e -> 到最后面
2. 編輯方面
ctrl+d -> 刪除光標(biāo)所在字符
ctrl+w -> 刪除光標(biāo)所在字前面的字符
ctrl+u -> bash:將光標(biāo)前所有的字及字符刪掉,tcsh:刪除所有字
ctrl+k -> 將光標(biāo)后所有字符刪掉
ctrl+b -> 下個字符
ctrl+f -> 前一個字符
ctrl+m -> 和按下 enter 的結(jié)果一樣
ctrl+h -> 和按下 del 或 backspace 鍵一樣
del 或 backspace -> 刪除前一個字符
如果對按鍵有研究興趣者,不彷參考 /usr/share/syscons/keymaps/ 這個目錄,其中 us.iso.kbd 是一般我們使用的按鍵..
5、 快速切換目錄
在 FreeBSD 中常常需要切換目錄,有時目錄名稱較長、或是有大小寫、或是只記得前面幾個字,怎么辦..
其實(shí)只要輸入部份字再加上 * 這個符號就可以了..
如我們要切換到 /usr/local/ 這個目錄,只需輸入 cd /usr/lo* 就可以了..
如果輸入 cd /usr/l* 會如何呢?則會進(jìn)到 /usr/lib/ 這個目錄,這是因?yàn)?shell 找到第一個符合的條件便停止了..
6、 有關(guān)時間及時區(qū)的?#123;校
使用 FreeBSD 大多是拿來當(dāng)做主機(jī)使用,那時間及時區(qū)的正確與否就非常重要了,以下介紹如何?#123;整時間及時區(qū)
● 時間?#123;整椒?br />
1. 使用 date 指令
格式 date [yymmdd]HHMM
說明:
yy 年數(shù),如 02 代表 2002 年
mm 月份 01-12
dd 日數(shù) 01-31
HH 時數(shù) 01-59
MM 分鐘 01-59
yy mm dd 皆可省略
例:
?#123;整日期為 2002-03-25
# date 022325
?#123;整時間為 14:20
# date 1420
2. 使用對時主機(jī)
# ntpdate clock.stdtime.gov.tw
這項(xiàng)需能連上網(wǎng)絡(luò),其中 clock.stdtime.gov.tw 是一標(biāo)準(zhǔn)時間的主機(jī)
● 時區(qū)的設(shè)定
1. 使用 tzsetup
2. 在 /etc/ 下有個檔案 localtime,這個就是本機(jī)的時區(qū)設(shè)定檔案,因此我們可用個取巧方式(不經(jīng)由 tzsetup),如以下:
# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
這樣是不是比較快呢..
7、 如何清空檔案內(nèi)容..
有時我們需將一個檔案內(nèi)容清空,但需保留這個檔案..
一般常見的用法是用文字編輯器,如 vi 將這個檔案叫出來,再將其內(nèi)容全部刪掉,再存盤..
這樣是不是有些煩呢?
有一個更好的方法,使用 true 指令..
如我們要將 /var/log/httpd-access.log 清空,則下以下指令..
# cd /var/log/
# true > httpd-access.log
8、 顯示目錄及檔案 => tree
有時需顯示某個目錄下所有的目錄及檔案,雖使用 ls 可達(dá)到部份功能,但并不是很方便..
在 dos 中,有個 tree 指令,是不是滿好用的..
其實(shí)在 FreeBSD 中也有類似的指令 => tree..
以下我們就透過 ports 來安裝 tree
# cd /usr/ports/sysutils ; make install
如此會將 tree 這個指令安裝在 /usr/local/bin/ 這個目錄下..
使用例子:
1. 顯示 /usr/ 下的目錄及檔案
# tree /usr
2. 只顯示 /usr 下的目錄
# tree -d /usr
詳細(xì)用法請參考 man tree
PS:可透過管道 | 及 more 來顯示
如 tree /usr | more..
9、 如何檢視檔案類型
由于 FreeBSD 并沒有像 dos 或 windows 般有擴(kuò)展名的觀念,因此要如何檢查一個檔案的類型呢?
用 file 吧..
語法: file
詳細(xì)用法請參考 man file
10、 重復(fù)使用先前使用過的指令
你可以使用以下的方法來重復(fù)使用先前使用過的指令:
例如,我們先用 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: 在內(nèi)代表要輸入的東東)
!!
# !! => 重復(fù)執(zhí)行上個一個指令
!
# !11 => 執(zhí)行 cd /usr/local
! 可輸入部份字,但前面部份需符合
# !cl
執(zhí)行 15 clear 指令
! 輸入部份字符,部份吻合
# !?etc?
執(zhí)行 13 ls etc
以上指令在 tcsh 及 bash 下皆可使用,如此是不是可幫你省下許多時間..
11、 如何將 man 的檔案印出來..
man 是大家學(xué)習(xí) FreeBSD 的最佳資料參考來源,但在顯示器上看到底不是很方便,有沒有方法轉(zhuǎn)成一般的文件檔案呢?
使用 col 這個指令吧..
例我們要將 ssh2 轉(zhuǎn)成 ssh2.txt,則使用以下語法:
# man ssh2 | col -b > ssh2.txt
12、 為何查不到正確的 ports 資料..
在 /usr/ports/ 下有著幾千個 ports 的安裝資料,有時我們可使用以下方式來查相關(guān)的 ports..
以下都是在 /usr/ports/ 這個目錄下執(zhí)行..
1. 先將 ports 資料轉(zhuǎn)換成一個文字文件,如 index.txt
# make print-index > index.txt
2. 使用 make search key="...." 來查
3. 將 ports 內(nèi)容轉(zhuǎn)換成 README.html
# make readmes
用以上方法,可很容易的查到相關(guān)的 ports 資料,但很奇怪的是,為何我更新一個 ports 的資料后(或 ports tree),為何會查不到,查到的仍然是舊的資料..
原來,在 /usr/ports/ 中有一個 INDEX 檔,以上的查詢方式都是在這個 INDEX 檔中查詢,當(dāng)你更新 ports 資料時,這個 INDEX 檔并不會隨之更新..
所以為了查詢方便,我們需以手動的方式來做..
# make index
做完后,再更新 index.txt 及 README.html..
不過更新 INDEX 檔需要一些時間,大約 12-30 分鐘..(視計(jì)算機(jī)等級而定).
13、 用 dig 及 host 來取代 nslookup
一般我們用來檢查網(wǎng)絡(luò)是否有問題,大多是用以下三個指令..
nslookup
ping
traceroute
其中 nsllokup 是用來檢查 dns 的相關(guān)設(shè)定, ping 用來檢查自己和對方網(wǎng)絡(luò)是否通順,而 traceroute 則是用來檢查從自己的計(jì)算機(jī)到對方的計(jì)算機(jī)所經(jīng)過的線路狀況..
不過以 nslookup 而言,個人覺得不是很實(shí)用,有時我們只是想單純的查一下某臺主機(jī)或是 MX 記錄,那使用 nslookup 就有點(diǎn)嚕嗦了..
在此介紹二個好用的指令 host 及 dig,這二個指令很類似,不過效率較 nslookup 高
# host -a 或
=> 輸入主機(jī)名稱顯示 dns 正向解析的部份,輸入 ip 則是顯示反向(ptr)
# dig
如要顯示 MX 記錄
# dig 主機(jī)名稱 mx
個人是覺得比 nslookup 方便多了,你覺得呢.. ^.^
當(dāng)然功能不只這些,詳情請 man dig 或 host..
14、 加快你的開機(jī)速度..
嚴(yán)格說起來,F(xiàn)reeBSD 的開機(jī)速度算滿快的,不過中間會有個 10 秒的延遲時間(以便讓你進(jìn)入 boot 的 command prompt mode),如果你嫌這10秒還是太慢了,那你可將時間?#123;短一些..
FreeBSD 激活時會先去參考 /boot/defaults/loader.conf 檔的設(shè)定,然后再參考 /boot/loader.conf,一般我們都不去?#123;整 /boot/defaults/loader.conf 這個檔,而直接?#123;整 /boot/loader.conf..
只要在 /boot/loader.conf 中加上以下這一行即可
autoboot_delay="秒數(shù)" 即可,如
autoboot_delay="7" 代表7秒
這樣開機(jī)是不是更快了..
另外建議,有時間可參考一下 /boot/defaults/loader.conf 這個檔案的設(shè)定,其中有許多實(shí)用的設(shè)定哦..
15、 忘了 root 密碼
如果你忘了 root 的密碼怎么辦,這在 FreeBSD 中滿好解決的,請照以下 steps 來處理..
1. 進(jìn)入單人模式
開機(jī)后,當(dāng)出現(xiàn)
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...
按 space(或除了 enter 以外的鍵) 鍵則會進(jìn)入 command prompt mode,同時出現(xiàn)一個 ok ..
這時請輸入 boot -s 以進(jìn)入單人模式
2. 選擇 sh
進(jìn)入單人模式后,系統(tǒng)會詢問你要使用那個 sh,內(nèi)定是 /bin/sh ,就使用這個吧,直接按 enter 跳過
3. 將所有的硬盤分割架起來
# mount -a
4. 更改密碼
# passwd
長度要在 6 個以上,輸入二次
5. 重新激活
# reboot
16、 有關(guān) kernel 的激活..
kernel 對 unix-like 系統(tǒng)來說,是非常重要的一環(huán),如果 kernel 損壞或編譯出了問題,可能會導(dǎo)致嚴(yán)重的后果..
FreeBSD 一向以安全著稱,在這方面有什么防護(hù)的措施呢?
FreeBSD 的 kernel 是放在 / 目錄下,一般會有二個
kernel
kernel.GENERIC
如果你有編譯過核心(kernel)的話,則原先的 kernel 會轉(zhuǎn)換成 kernel.old,新的核心會變成 kernel,也就是在 / 下的 kernel 檔案如下:
kernel => 新編譯過的核心
kernel.GENERIC
kernel.old => 原先的核心
那 kernel.GENERIC 是什么呢,這個是系統(tǒng)安裝時所裝好的,一般都不會變動,即使編譯過核心亦然,這個檔案可說是救命核心,最好不要亂動,理由如下所言..
FreeBSD 激活時,會使用 kernel 這個核心,如果這個檔案不存在,則會抓 kernel.old 這個檔案..
如果這二個檔案不幸都不在,那怎么辦..這時則會進(jìn)入 command prompt mode,你必需自行輸入 kernel 的名稱,如
boot 如
boot kernel.GENERIC
了解以上之后,在編譯核心無法正常執(zhí)行時,相信各位知道如何處理了..
17、 FreeBSD 在那激活程序..
一般 FreeBSD 激活后會依序執(zhí)行以下位置的程序..
1. /etc/rc.conf 這個檔案內(nèi)的程序,如 sendmail、sshd .. 都是在此執(zhí)行,另外要注意的是,在執(zhí)行這個檔案之前,會先參考 /etc/defaults/rc.conf 的設(shè)定
2. /usr/local/etc/rc.d 下的一些 .sh 檔,這些檔案的權(quán)限都是被設(shè)定成 x ,如 apache samba .. 都是在此設(shè)定
3. /etc/rc.local 這里也可設(shè)定,如我要把 postfix 設(shè)定在此,只需在這個檔案內(nèi)加一行,如下
/use/local/sbin/postfix start &
加上 & ,就不會顯示出訊息
4. 由 cron 所控制的一些檔案,當(dāng)時間到了,便會自動執(zhí)行..
那心細(xì)的人可能會問, /etc/inetd.conf 內(nèi)設(shè)定的呢?這些在第 1 項(xiàng)就執(zhí)行了..
了解以上并時時注意是否有不明的程序在執(zhí)行(可能是被人植入木馬程序),也是日常檢視系統(tǒng)的重要工作..
18、 加快你的主機(jī)名稱查詢速度..
unix-like 系統(tǒng),初期都是使用 hosts 這個設(shè)定文件來做主機(jī)的查詢,因此有些程序在查主機(jī)名稱時,都會參照這個設(shè)定檔,像 sendmail 就是一個很好的例子..
系統(tǒng)內(nèi)定第一個是會查 /etc/hosts 這個檔案,因此如果里面設(shè)定有問題,則會影響到某些程序的執(zhí)行..
典型的 hosts 檔設(shè)定如下..以我本身的主機(jī)來說
127.0.0.1 localhost.cmlab.idv.tw localhost
61.219.230.5 cmlab.idv.tw cmlab
61.219.230.5 cmlab.idv.tw.
其中第一及第二行最后一個項(xiàng)目是 aliases 名稱(主機(jī)別名),比如我們在主機(jī)
ping cmlab.idv.tw
和
ping cmlab
是同樣的結(jié)果..
你可把一些常用的主機(jī)加到這個項(xiàng)目內(nèi),如有一臺 mail.cmlab.idv.tw ,假設(shè) IP 為 61.219.230.8
則在這個 hosts 中加入以下
61.219.230.8 mail.cmlab.idv.tw mail
61.219.230.8 mail.cmlab.idv.tw.
這樣就行了..
另外如果有自行架設(shè) 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
由以上可以看得出來,在查詢主機(jī)名稱時的順序,是先查 hosts 再查 bind 也就是 dns,你可視你的需要修改其順序..
另外要注意的就是 /etc/resolv.conf 文件,這個是有關(guān) dns 主機(jī) search 的順序,如以我的設(shè)定如下:
domain cmlab.idv.tw
nameserver 61.219.230.5
nameserver 168.95.1.1
nameserver 168.95.192.1
其中第一行是設(shè)定我的網(wǎng)域名稱,第 2-4 行則是 dns 主機(jī)的設(shè)定,建議至少設(shè)二個以上,以免一個掛了,還有個備用的..
第2行是我的 dns 主機(jī),3-4 行是 hinet 的 dns 主機(jī)..
了解以上并有正確的設(shè)定,是有助于主機(jī)的查詢的及速度的提升..
19、 簡單編輯你的文件檔..
在 unix-like 中,標(biāo)準(zhǔn)的文字編輯器是 vi,不過 vi 對于初學(xué)者而言,并不是很容易上手..
而在 FreeBSD 中使用的是 ee ,這個文字編輯器,雖功能沒 vi 這么強(qiáng)大,但使用簡便..新手不妨初期時使用個編輯器..
其使用方式很簡單,只要在 command line 下 ee 即可
# ee
進(jìn)入 ee 畫面后,最上方是一些按鍵說明,如要取得相關(guān)的 ee 說明,可先按 ctrl+c 鍵,再輸入 help,則會顯示詳細(xì)說明
有時可能只想在一個檔案內(nèi)加入一小部份的資料,那使用文字編輯器來處理,就顯得沒效率,其實(shí)我們可以利用 cat > [檔名]和 cat >> [檔名] 來做..
那這二個方式有何差異呢..
cat > [檔名] 時,如果檔案不存在,則會自動產(chǎn)生一個檔案;如檔案存在則會將檔案清空..
cat >> [檔名],檔案不存在則自動建立此檔,如存在則將所編輯的資料加在檔案的最后..
舉個例子,如我們要編輯 /etc/mail/access 這個是 sendmail 的 relay 設(shè)定檔..
想在這個檔案中加入 192.168.88.5 relay
則可用此方法(假設(shè) access 檔案已存在,故使用 cat >> .. 的方法) ..
# cat >> /etc/mail/access
192.168.88.5 RELAY
按 ctrl+d 存盤
如此則可將 192.168.88.5 relay 加到 access 的最后一行..
不過,建議大家,unix-like 的共通文字編輯器是 vi,有時間不妨好好的學(xué)一下 vi..
20、 FreeBSD 帳號及密碼的注意事項(xiàng)
在架完 FreeBSD 后,再來就是新增人員(使用者)的資料了..
在設(shè)定帳號時,請注意以下事項(xiàng):
1.其長度需在 1-16 個字符
2.使用英文小寫字母、數(shù)字及 - _ 符號
在設(shè)定密碼時,請注意以下事項(xiàng)
1. 密碼可設(shè)可不設(shè),但建議你一定要設(shè)
2. 長度最好在 6 個字以上,你知道據(jù)安全專家的說法,破解一個長度6及長度4密碼,至少要多花 10 倍的時間
3. 請勿用你的生日、相關(guān)證照號碼、電話..等資料,而使用大小寫英文字母及混合特殊符號,如 ct!Home-12 就是一個相當(dāng)不容易破解的密碼
4. 長度最長我曾設(shè)到 16 位數(shù)(最大長度多少,有興趣者可自行試試)
21、 有關(guān)系統(tǒng)的一些激活問題..
有時,會修改 FreeBSD 的一些設(shè)定,如一些網(wǎng)絡(luò)參數(shù)、軟件的 .conf 設(shè)定,或是 /etc/r.conf 檔,那么如何讓設(shè)定值生效,是否一定要重新開機(jī)呢?
這可分為三方面來說..
1. 網(wǎng)絡(luò)相關(guān)設(shè)定,如網(wǎng)絡(luò)適配卡、hostname .. 等,只要執(zhí)行以下指令就可以重新加載你的網(wǎng)絡(luò)設(shè)定..
# sh /etc/netstart
netstart 是一個 script 檔案,執(zhí)行時會去參考 /etc/rc.network。因此只要執(zhí)行這個指令就能夠重新激活網(wǎng)絡(luò)設(shè)定..
有興趣者可參考一下 netstart 及 rc.network 這二個檔的內(nèi)容,研究看看到底做了些什么東東..
2. 修改了 rc.conf 中其它的設(shè)定
可參考以下三個 step 來做..
. 進(jìn)入單人模式
# shutdown now
. 選擇 sh,造內(nèi)定值即可,即 /bin/sh
. 離開單人模式
# exit
這樣就會重新激活系統(tǒng)了..
3. 軟件的設(shè)定,如一些 *.conf 檔,像是修正了 apache sendmail .. 等
通常在 /etc/local/rc.d/ 這個目錄中會有相關(guān)的 .sh 檔,直接執(zhí)行就可以了,注意的是一般要加上參數(shù),一般的參數(shù)有以下(視軟件而定會有不同)..
start 激活
stop 停止
reload 或 restart 重新激活
第二種方法就是直接使用 killall,如我們要重新激活 inetd,可用以下方法:
# killall -1 inetd
或是
# killall -HUP inetd
這樣就可以重新激活這個 daemon 了
22、 保護(hù)你的檔案
在系統(tǒng)中,有許多檔案或一些設(shè)定檔是非常重要的,加上 FreeBSD (或是一般 unix-like)系統(tǒng)都沒有類似 ms 的垃圾回收桶的功能,萬一不幸刪掉(或修改)某個重要的檔案,可能會造成不小的困擾..
雖然,F(xiàn)reeBSD 對于檔案的權(quán)限設(shè)定的非常嚴(yán)密,但有些時候,我們以 root 身份工作,仍會有此風(fēng)險..
那要如何避免這種情形發(fā)生或是保護(hù)某些重要的檔案呢?
我們可以用 chflags 來達(dá)成這個目的,顧名思義, chflags 是由二個字所組成,即 change 和 flags(檔案的旗標(biāo))..
例如我們要保護(hù) /etc/inetd.conf 這個檔案,以免誤刪或被修改,則指令如下:
# chflags schg /etc/inetd.conf
這樣就可以保護(hù)這些檔案,如要顯示這些檔案的旗標(biāo)(flag),可用 ls 來看..
# ls -lo /etc/inetd.conf => l 是小寫的 L
-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf
要解除旗標(biāo)設(shè)定,可用 unschg,也就是在 schg 前加 un ,如:
# chflags unschg /etc/inetd.conf
大部份我們進(jìn)入主機(jī)都是以 root 身份執(zhí)行,因此稍不小心,可能就..因此建議將一些重要的檔案及設(shè)定檔設(shè)定為 schg flags,以保護(hù)檔案..
如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 這些檔案最好都是定成 schg 旗標(biāo)..
chflags 詳細(xì)用法請參考 man chflags..
23、 談?wù)勡浖陌惭b路徑..
FreeBSD 對于檔案目錄的觀念非常重,什么樣的檔案要放在那個目錄都有規(guī)定,這也是有別于其它 unix-like 系統(tǒng)..
一般我們將軟件安裝分成二個部份,在這里來探討一下軟件到底都安裝到那去了..
在安裝軟件時,通常會安裝諸如 執(zhí)行檔、設(shè)定檔、man file、doc 文件..
1. 安裝系統(tǒng)時所安裝的軟件
執(zhí)行檔通常裝在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下
設(shè)定文件通在在 /etc 目錄下
man file 通常在 /usr/man 或 /usr/share/man
doc 文件通常在 /usr/share/doc 下
2. 經(jīng)由 package 或 port 安裝的軟件
執(zhí)行檔通常裝在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下
設(shè)定文件通在在 /use/local/etc 目錄下
man file 通常在 /usr/local/man ..
doc 文件通常在 /usr/share/doc 下
以上并不是絕對的(所以我用通常..^.^),因?yàn)橛行┨厥馇闆r需視軟件而定..
如此有時可能會造成些許困擾,因?yàn)槿?ssh 、 bind .. 大多是在系統(tǒng)安統(tǒng)時就安裝的,那如果升級新版時怎么辦..
由于 FreeBSD 找尋執(zhí)行檔時會依照 $PATH 這個環(huán)境變量找尋,因?yàn)?/bin、/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先,所以會先執(zhí)行..也就是先抓到舊版的執(zhí)行檔..
因此在更新時要注意這種情況,以免更新了還是執(zhí)行舊的程序..
那么如何看安時程序時的相關(guān)檔案的安裝路徑呢?通常有以下方法
1. 看 port 的 pkg-plist 檔
2. 有時用 man [執(zhí)行檔名稱] 可看到一些重要檔案的位置
3. 看說明文件,通常在 /usr/local/share/doc 目錄下
24、 如何在 FreeBSD 同一片網(wǎng)硌卡加一個 ip 地址
有的時候,需要在同一片網(wǎng)絡(luò)卡上加 ip 以達(dá)到一些特殊的要求..
在 FreeBSD 這是非常簡單的,假設(shè)原先網(wǎng)絡(luò)卡的 ip 是 211.211.211.211,想加一個 211.211.211.212,使用的是 rl0 這片網(wǎng)絡(luò)卡,則做法如下..
1. 在 /etc/rc.conf 加上這一行
ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"
其中的 alias0 就是加裝的第一個 ip,如要設(shè)定多個可在此修正,如 alias1、alias2.. aliasN
2. 重新激活網(wǎng)絡(luò)卡,執(zhí)行 /etc/netstart
# /etc/netstart
25、 簡單的加密你的資料
在實(shí)務(wù)上我們常需要將某些敏感的資料加密,一般我們可使用 pgp 或在這里所介紹的 crypt 來達(dá)到這個功能..
crypt 是透過 | 這個管道轉(zhuǎn)換功能及密碼設(shè)定來達(dá)成加密的功能,也就是說將你所設(shè)的密碼當(dāng)做加密產(chǎn)生的種子隨機(jī)數(shù)..
先說明一下 crypt 的使用方法:
crypt [-s] [-k] [password]
一般 -s 及 -k 參數(shù)可不予理會,password 是加密或解密的密碼
在這里假設(shè)我們先產(chǎn)生一個 test.txt 檔,內(nèi)容為 test,然后用 1234 這個密碼加密
# cat > test.txt
test
按 ctrl+d 存盤
先看看 test.txt 內(nèi)容
# more test.txt
test
將 test.txt 這個檔案用 1234 這個密碼加密,需配合管道 | 及轉(zhuǎn)向符號使用,加密后的文件名稱為 test2.txt
# cat test.txt | crypt 1234 > test2.txt
如此則會產(chǎn)生一個加密后的檔案 test2.txt,另外密碼可先不輸入,按 enter 鍵后會顯示 enter key: 讓你輸入密碼
我們來看看加密后的檔案內(nèi)容,原先是 test 結(jié)果變成了:
# more test2.txt
e&h => 已經(jīng)不是原來的 test
接著來將 test2.txt 解開,如下,假設(shè)解開后的檔名為 test3.txt:
# cyrpt 1234 test3.txt
以上的意思是
1234 加密時的密碼
test3.txt 解密后的資料轉(zhuǎn)向到 test3.txt
再顯示 test3.txt 的內(nèi)容是否和原來一樣,即 test
# more test3.txt
test
PS:
1. 加密或解密時檔名如和源文件一樣,則會將原來的檔案取代
2. 另有一個指令 enigma 和 crypt 用法完全一樣
參考資料 man crypt
26、用 telnet 簡測你的服務(wù)器(Server)有無在跑
有時你可以用 telnet 測試你的 Server 有無正常的 run
例如:我要查看 ftpd 有無在跑
可下指令:# telnet localhost 21
若跑出類似以下的訊息, 表示有在跑
--------------------------------
Trying 127.0.0.1...
Connected to localhost.ahkun.
Escape character is '^]'.
220-=( )=-.:. (( Welcome to PureFTPd 1.0.11 )) .:.-=( )=-
220-You are user number 1 of 50 allowed
220-Local time is now 18:52 and the load is 0.06. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
若跑出以下的訊息, 表示沒在跑
------------------------------------------------
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
同理你也可以用:
telnet localhost 25 測 stmpd
telnet localhost 110 測 pop3d
結(jié)論:
正確來講是用 telnet 測 port 啦~
27、 如何防止別人登錄到你的計(jì)算機(jī)
有時,我們并不想讓別人直接登入到我們的主機(jī)或是只想限定某些人可使用,如 telnet、ssh..
或者是開放了些服務(wù),如 ftp、smtpd ..等,由于這些都必需在主機(jī)端建有帳號,因此防止不相干的人登入到你的主機(jī)是非常重要的,也是一個安全上的考量..
但一般限定的方式都是使用 ip 或是 domain 的方式,那么有無方法可解決這個問題呢?
答案是可從 /etc/login.access 來著手,這個檔案就是限定 login 的..
一個典型的設(shè)定如下,例如我們想限定只有 root 及 使用者 john 可登入到主機(jī)(含local 及 remote):
-:ALL EXCEPT root john:ALL
可分為三個項(xiàng)目,每個項(xiàng)目間以 : 分隔,說明如下:
1. + 或 - 代表允許或禁止
2. 設(shè)定的使用者或群組,可用 ALL EXCEPT 來強(qiáng)化限定的范圍
3. 限定的來源,如 ALL 代表全部、61.219.230. 、LOCAL、console、.bad.com ..等
適當(dāng)?shù)脑O(shè)定,可讓你的系統(tǒng)更加的安全..
詳細(xì)用法可 man login.access..
28、 一個 ./ 的技巧
眾所周知,在 nix-like 中執(zhí)行目前目錄中的可執(zhí)行文件時,必需加上 ./ 這二個符號,很多 unix-like 的初學(xué)者都會感覺較不習(xí)慣,因?yàn)樵?dos 或 windows 的 dos 窗口中并不是如此..
其實(shí)在 unix-like 中如此設(shè)定是有其安全考量的,在使用指令或執(zhí)行文件時,一般是建議使用完整的目錄,例如要使用 ls,則如下:
# /bin/ls
當(dāng)然,你直接輸入 ls 亦可正確的執(zhí)行,這是因?yàn)槟闼褂玫?shell 中環(huán)境變量 $PATH 的因素..
你可鍵入 echo $PATH,來看目前 $PATH 的設(shè)定,當(dāng)我們執(zhí)行一個指令時,系統(tǒng)會依照這個環(huán)境變量來搜尋這個執(zhí)行檔并加以執(zhí)行..
內(nèi)定 shell 不會將目前目錄 . 加到 $PATH 中,因此如果你想在目前目錄執(zhí)行這個目錄下的執(zhí)行文件而不想加上 ./ 時,可在你的 shell 中將 . 加入..
如一般在 FreeBSD 都是使用 tcsh,你可編輯個人 home 目錄下的 .cshrc 檔 set path = ( ........ ,在此加入 . 即可..
記得重新退出 shell 再登錄,以便讓你的新設(shè)定生效.
29、在提示列秀出 [使用者]目前工作目錄 (可以少打很多次pwd)
# cd /root
編輯 .cshrc
# set prompt="'hostname -s'# " ### 找到這一行并 mark 起來
set prompt = "[%n]%/# " ### 新增此行并存盤離開
# logout
login: root ....重新登入
ps.其它user id 是否可照辦? 我還沒試過哩..剛裝freebsd而已
30、rm 是 DEL 一個檔案
rm -r 是 DEL 整個目錄
31、介紹一些一些有用的參數(shù)(注意大小寫)..
%B 代表高亮度
%n 代表用者名稱
%m 主機(jī)名稱
%/ 目前的目錄
一般我們可能比較在意以上幾點(diǎn),如我要管理好幾臺 FreeBSD 主機(jī),那么以上幾個參數(shù)就很重要了..
舉個實(shí)例來說,如我想把我的 prompt 改成這樣,而且要高亮度顯示:
使用者名稱@主機(jī)名稱[目錄名稱]>
則 prompt 的設(shè)定應(yīng)該是這樣的..
set prompt = "%B%n@%m[%/]> "
注意 = 左右都要有一個空白,否則會出錯,導(dǎo)致無法登入,另外如果要統(tǒng)一所有使用者的 prompt 的話,除了更改 /home/使用者/.cshrc 外,最好也在 /etc/csh.cshrc 中設(shè)定這一行,另外如要新增新用者也用這種提示,則請?jiān)?/usr/share/skel/dot.cshrc 中也加上(或改成)這一行,這是因?yàn)椋?
tcsh 在使用時會先參考 /etc/csh.cshrc 這個檔案,再依 user 去抓其 home 目錄下的 .cshrc,而設(shè)定 /usr/share/skel/dot.cshrc 是讓你新使用者時,自動將其 prompt 設(shè)定成 set prompt = "%B%n@%m[%/]> "
這種設(shè)法,當(dāng)你在管理多臺主機(jī)及切換目錄時,就不易搞錯而發(fā)生一些慘劇
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/3123/showart_19753.html |
|