看板FreeBSD
标 题[接龙] BSD 小技巧分享
发信站山水兰阳 (Sat Nov 17 22:54:03 2007)
转信站ptt!ctu-reader!news.nctu!ilcbbs
※ 本文转录自 [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