[接龍] BSD 小技巧分享
※ 本文轉錄自 [chinsan] 看板
作者: chinsan (淡) 看板: chinsan
標題: [接龍] BSD 小技巧分享
時間: 2007/11/17 Sat 22:53:31
不知道有沒有人有興趣一起來寫些類似 BSD Hacks 的小技巧分享,
不管你是長輩、晚輩也好,都可以分享一下心得喔 :p
當然,若有更好的方式或其他作法也可以提供給大家腦力激盪一下喔
以下是舉例,既然是我提的那我就開個頭好了 :p
大家可以接龍看看,字數篇數不限 :p
寫得不錯的,我會把您大名列到
http://www.freebsd.org/doc/en/articles/contributors/contrib-additional.html
並放到 chinese/fortunetw 內,幅度較長的則視情況放到 FAQ 或相關 books/articles。
■ 善用 CVSweb
比方說我要查 freebsd-tips 的相關 commit 紀錄跟 diff,
那麼可以先 locate freebsd-tips 找出路徑是在
/usr/src/games/fortune/datfiles/freebsd-tips
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
而通常 /usr 後面接的路徑,可以對應到 http://cvsweb.freebsd.org/ 相對應路徑
比方說上述的 src/games/fortune/datfiles/freebsd-tips 就會是
http://cvsweb.freebsd.org/src/games/fortune/datfiles/freebsd-tips
■ 若要用 locate 找東西,該檔案明明剛剛才新增,但 locate 卻跟妳說沒有
那麼可以用 /usr/libexec/locate.updatedb 來立即更新現有 locate 資料庫,或者
/etc/periodic/weekly/310.locate 也可以
■ 通常會看到有類似 find(1), whereis(1), which(1), fnmatch(3) 這些是?
這表示 man 的章節,系統上一般有八個章節:
1->generl commands
2->system calls and error numbers
3->C libraries
4->devices and device drivers
5->file formats
6->games
7->miscellaneous information pages
8->system maintenance and operation commands
比如:pf(4) 就是指 man 4 pf。
■ 不知道要翻什麼就是了,太多不懂了?
whatis is your good friend
■ 嫌打 exit 太麻煩?按 Ctrl + D 就可以囉
■ 在 /usr/ports 打 make search key=關鍵字 時,
明明該 port 已經有放到 port tree 你也更新 port tree 了,但卻跟你說沒找到?
請愛用 make fetchindex
■ 機器不正常關機,進 single 模式要修復壞軌,但人待在那邊又覺得太浪費時間?
可以用 fsck -y ; exit 即可
不過也有比較好的方式,是在 /etc/rc.conf 設
fsck_y_enable="YES"
background_fsck="YES"
這樣子等於上述的 fsck -y ; exit,如此一來不正常關機之後,
只要請人在機器面前幫忙重開電源即可。
■ big5, utf-8 轉換(用 iconv 或 piconv)
iconv (converters/libiconv):
(轉換 Big5 => UTF-8 )
iconv -c -f big5 -t utf-8 BIG5File > UTF8File
Perl 的 piconv:
piconv -f big5 -t utf-8 BIG5File > UTF8File
同理 UTF-8 轉為 Big5 則是:
(iconv 方式) iconv -c -f utf-8 -t big5 UTF8File > BIG5File
(piconv 方式) piconv -f utf-8 -t big5 UTF8File > BIG5File
■ 要快速把某檔案內容都清掉? 試試 :> filename 吧
■ 要快速回到家目錄? 直接打 cd
■ meta-port 是不能 make fetch 的? 試試 make fetch-recursive 吧
■ 要如何快速察看該 port 的 dependency 關係?
在該 port 目錄打 make all-depends-list
■ 如何快速檢查目前已裝的套件,是否還有未升級的套件?
試試 pkg_version -Iv | awk '$2 !="=" {print $1}'
■ 快速找出目前機器上所用的網卡是哪一張
ifconfig -a | grep mtu | awk -F: '{if ($1 != "lo0") print $1;}'
■ 當更換網路環境時,假設已知目前網卡代號是 fxp0,欲重新以 DHCP 方式要新 IP
那麼打 dhclient fxp0 即可
■ 如何快速切換 X Window 的解析度大小?
試試 xrandr -s XxY
其中 X 跟 Y 請換成所欲變更的解析度,比如 1024x768 之類
■ 如何快速檢視系統狀態跟相關資訊
- uptime 可以看出開機時間跟最近 CPU loading 概況
- vmstat 可以看 virtual memory 使用狀況
- pstat -T 可以快速看目前正開啟中的檔案系統總數限制、已用多少,
以及 swap 運用量
- iostat 可以看 disk I/O 的狀況
- swapinfo -h 可以直接只看 swap 部分
- sockstat -4 可以快速察看目前目前哪些 socket 有開啟、哪些程式在開、PID等等
- netstat -rn 可以快速看 routing table
netstat -na 可察看網路對外連線概況
- df -h 是看磁碟使用量,而 df -hi 可以多顯示 inode 使用狀況
- top 跟 ps 這應該不用介紹了吧 :p
- mailq 可以查 sendmail queue 狀況
Postfix 則是 postqueue -p
■ 凡走過必留下痕跡,像是 shell 通常會有 history 功能,
有些人會覺得在 shell 打指令時,直接打密碼會洩漏在 shell 的 histroy
而認為只要像下面這樣就產生放心的錯覺
『mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.*
TO custom@localhost
IDENTIFIED BY 'stupid';
但是密碼會被 hash 過所以看起來是亂碼』
但實際並不然,請翻查 ~/.mysql_history 再來確認一下上述的可信度
比較好的處理方式,請參考
http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#id1129808
■ 如何得知現在有裝哪些 port/package? 請善用 pkg_info
■ 如何得知該套件裝到哪邊去了? 請善用 pkg_info -L
比如: pkg_info -L perl-5.8.8_1
或者用 pkg_info -L 'perl>0' 亦可
■ 如何得知某檔案是哪個套件裝的? 請裝 ports-mgmt/portupgrade{,-devel}
裝好後,先 pkgdb -u 更新資料索引一下,然後打 pkg_which 該檔
比方說 pkg_which /usr/local/bin/piconv
--
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:_
--
◢◣ - ● -
◢██◣◢◣ ` Origin: 宜蘭資教.山水蘭陽 telnet://yilan.twbbs.org
~~ ﹌ ~﹌ ﹉ From : 220-133-108-147.HINET-IP.hinet.net
討論串 (同標題文章)
完整討論串 (本文為第 1 之 26 篇):