现在的位置: 首页 > 综合 > 正文

freebsd的一些小技巧

2013年09月20日 ⁄ 综合 ⁄ 共 8235字 ⁄ 字号 评论关闭
转自:http://www.edtong.com/exurl.php/reply/113.html

1、左右声道音量调节
用mixer就好了:

代码:
$ mixer
$ mixer vol 80:80 // 80:80 分别是左右声道音量大小
$ mixer pcm 80:80 // 同上

2、多彩的终端
其实我在 http://bbs.linuxsir.org/showthread.php?t=223364 写过在linux bash下的实现,道理差不多,只要作些微修改:
先安装gnuls:

代码:
# cd /usr/ports/misc/gnuls
# make install clean
$ alias ls="gnuls --color"代码:
#对于bash,把下面的东西加入到~/.bashrc 即可
if [ "$TERM" = "cons25" ]
then
  #we're on the system console or maybe telnetting in
  export PS1='/[/e[32;1m/]/u@/H /w $ /[/e[0m/]'
else
  #we're not on the console, assume an xterm
  export PS1='/[/e]2;/u @ /H/a/e[32;1m/]/w $ /[/e[0m/] '
fi
LS_COLORS='no=00:fi=00:di=01;37;44:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41pose*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.xcf=01;35:*.pcx=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.avi=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.mov=01;35:*.qt=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.mp3=01;32:*.wav=01;32:*.mid=01;32:*.midi=01;32:*.au=01;32:*.ogg=01;32:*.flac=01;32:*.aac=01;32:';
export LS_COLORS
3、想要高分辨率的系统终端?
先在kernel配置文件加入下面两行并编译内核。

代码:
options VESA
options SC_PIXEL_MODE修改/etc/rc.conf,加入下面两行

代码:
vesa_load="YES"
allscreens_flags="-g 100x37 VESA_800x600" 好了,重启系统看看,应该有800x600了。想要更高的分辨率?你可以用vidcontrol :

代码:
$ vidcontrol -i mode // 看看有哪些显示模式
$ vidcontrol MODE_280 // 280就是用上一个命令得到的第一列的数字,1024x768,爽吧!
4、酷酷的splash画面
不要以为splash是linux的专有东东!

引用:
1. 准备好一个图片,如splash.pcx(bmp图象也可以),分辨率需为 640 X 480 以内, 256 色。
2. cp logo.pcx /boot/
3. 设定 /boot/loader.conf,加入以下几行

代码:
splash_bmp_load="YES" // 如果使用 .bmp 格式,此项需设为 YES
splash_pcx_load="YES" // 使用 .pcx,请将此项设为 YES
vera_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx" //请依你的档案格式更改
bitmap_type="splash_image_data" 

好了,重启系统看看!

5、怎么查看滚屏前的信息?
很简单,先按一下pause或者scroll lock 键,然后就可以按page up/down 查看了。要回到输入模式只要再按一下pause/scrollLock 。

6、加快终端的按键速度
在/etc/rc.conf加入:

代码:
keyrate="fast"
7、互换鼠标左右键
我习惯用左手鼠标,而且一只手握鼠标一只手握笔的感觉不错!
在/etc/rc.conf中加入:

代码:
moused_enable="YES"
moused_flags="-m 1=3 -m 3=1" // 1 代表左键,3代表右键,彼此map一下
8、去掉恼人的beep
无论用bash还是csh 还是tcsh,都喜欢常常给它tab一下,失败了小喇叭会"Beeee" 一下,在办公室里头非常讨厌。按我说的简单处理一下就没有beep了。

代码:
#------ 对于bash --------
$ cd
$ touch .inputrc
$ echo 'set bell-style none' >> .inputrc //好了,logout&login 试试!

#------ 对于csh/tcsh --------
$ cd
$ touch .tcshrc
$ echo 'set nobeep' >> .tcshrc //也可以直接在命令行敲 set nobeep
9、程序失败后不产生core文件
对于普通用户,产生core文件也没用,因为不会去调试,所以每每看见core就心烦。

代码:
#直接在命令行敲入:
# sysctl kern.coredump=0

#或者编辑 /etc/sysctl.conf , 增加下面这一行并重启就关闭这个功能了。
kern.coredump=0
10、不要老是呆在电脑旁边!
leave是个小命令,目的是在指定的时间内驱动可怜的小喇叭提醒你:喂喂,呆在电脑旁太久了,快出去走走!

代码:
$ leave 1430  // 14点30分钟时提醒我
或者:
$ leave +0003 // 三分钟后提醒我
~ $ Time to leave! 
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
That was the last time I'll tell you. Bye.
//小喇叭嘶哑的呐喊9次以后,不干了,你爱啥干啥去吧。如果你够自觉,你可以立即logout,它就不叫了; 或者,你把它kill掉

11、挂载iso镜像

代码:
// 挂载
# mdconfig -a -t vnode -f myiso.iso -u 9
# mount_cd9660 /dev/md9 /mnt/iso
// 卸载
# umount /mnt/iso
# mdconfig -d -u 9
12、把内存当硬盘使
没有1G以上内存者还是玩玩就好(md设备的大小是受到物理内存的限制的,占用的是宝贵的内核空间),比如做个2m的虚拟盘,看看内存有多快

代码:
# mdconfig -a -t swap -s 1g -u 8 //没有1g以上内存的话,也可以写成512m等等
# newfs -O2 /dev/md8 //初始化为UFS2
# mount /dev/md8 /tmp // 虚拟硬盘 /tmp诞生了 , 有什么用?
# echo WRKDIRPREFIX=/tmp >> /etc/make.conf // 知道了吧关于内存文件系统,可以参考 http://bbs.chinaunix.net/viewthread.php?tid=18063

13、简易加密文件
可以使用crypt 或者 enigma, 两者其实是用一个东西。

代码:
$ crypt < sourcefile > destfile // 把sourcefile加密为destfile
Enter key:  // 输入密码,不回显
$ rm sourcefile //要不要删除明文文件由你自己决定
$ crypt pwd_xxx < destfile > new_sourcefile  // 以密码pwd_xxx 来解密destfile到新文件
14、同时使用多个音源 (摘自用户手册)
  同时有多个声源的声音在播放, 这是完全可能的, 例如当 esound 或者 artsd 不支持与其它程序共享音频设备时。FreeBSD可以通过 虚拟声道(Virtual Sound Channels) 来达到, 具体设置用工具 sysctl 来完成。虚拟的声道可以能过在内核里混合声音来混合声卡里播放的声道。使用两条sysctl命令来设置虚拟声道的数目。 如果您是 root 用户, 执行下面的操作:

代码:
# sysctl hw.snd.pcm0.vchans=4
# sysctl hw.snd.maxautovchans=4
//我在FreeBSD6上只要执行这两个命令就OK了,爽!
//为了以后方便,可以把配置写入/etc/sysctl.conf里头。  上面的实例设定了4个虚拟声道,这也是实际上所使用的数目。 hw.snd.pcm0.vchans 是pcm0的虚拟声道数,一当链接上一个设备它就可配置了。 hw.snd.maxautovchans是分配给新的音频设备的虚拟声道数,此时这个设备要用 kldload来链接。因为 pcm 模块可以独立装载许多硬件驱动程序, 因此 hw.snd.maxautovchans 也就可以存储分配给以后链接到的设备的虚拟声道数。
  注意: 您不能在使用某个设备的时候改变其虚拟通道数。首先需要关闭所有使用该设备的程序, 如音乐播放器或声音服务。

15、关闭系统时关闭电源
reboot, halt, shutdown 命令都可以关闭系统,只要在这这三个命令后面加上 -p 参数即可。
比如:

代码:
# shutdown -p now //立即关闭系统现在的机器硬件都能支持关闭电源了,所以 -p 方式几乎能执行成功。
另外,Awei兄提供另一个有效关闭电源的技巧:

代码:
# init 0  //也能关闭电源
16、csh/tcsh的一些日用技巧,收集中

代码:
set autolist  # tab提示,大家都喜欢
set autologout=10 # 让csh/tcsh在发呆20分钟后自动登出
alias rm    rm -i # 删除提醒
alias cp    cp -i # 复制提醒
alias mv    mv -i # 移动提醒
17、栈式保存访问路径: pushd, popd
pushd把访问过的路径依次压栈,popd则依次退栈,怎么灵活使用就看你自己了

代码:
~ $ pushd /tmp/
/tmp ~ ~
/tmp $ pushd /usr/local/src
/usr/local/src /tmp ~ ~
/usr/local/src $ pushd /home/mf/download/
~/download /usr/local/src /tmp ~ ~
~/download $ popd
/usr/local/src /tmp ~ ~
/usr/local/src $ popd
/tmp ~ ~
/tmp $ 
18、防止 ctrl+d 退出终端
无论在text mode terminal还是在virtual terminal里头,都可以按ctrl+d快速的登出或者终止会话。虽然免敲exit/logout,不过有时难免手抖误按ctrl+d。只要编辑 /etc/profile ,加入如下一行就可以免除此隐患了:

代码:
ignoreeof=10 //提醒10次(次数可以自己设定)以后每次按ctrl+d 都会提醒:Use "exit" to leave the shell.
但超过10次后仍旧会退出。

19、防止ctrl+alt+delete重启系统
在内核配置文件中加入如下一行,再重新编译内核并重启即可

代码:
options SC_DISABLE_REBOOT # mask ctrl+alt+del
20、BASH下自定键盘热键
这是来源于我的另一篇原创文章,由于FreeBSD也可以采用GNU BASH和GNU Readline Library,所以该文章也同样适用于本平台。

21、让Del键实现delete功能
前提要求你使用GNU BASH。在~/.inputrc 中输入如下内容并保存,然后按ctrl+x ctrl+r 或者logout-login即可:

代码:
"/e[3~": "/C-d"虽然是一个tiny trick,不过实践中发现经常按del键,却打出~ 或者其他的古怪字符,很心烦──这就是发掘第20条的动因之一 所以其原理在第20条。遗憾的是,这仅仅是把del绑定到 ctrl+d,一旦当前命令行字符删尽以后,会导致终端退出──原因和解决办法参考第18条。

22、怎么看简体和繁体的pdf?
你可以同时安装 acroread-zh_CN 和 acroread-zh_TW,它们可以跑在linux兼容层上,不过装两个那么笨的东西也太不优雅了。我现在更喜欢zh-xpdf,非常快,而且简繁通吃。

代码:
# cd /usr/ports/chinese/xpdf
# make install clean
23、获取系统信息小集锦(终极幻想兄提供)

代码:
1) Determining the Hardware Type/platform:
# uname -m

2) Determining machine processor architecture:
# uname -p

3) Determining FreeBSD release level:
# uname -r
Generally, following command is use to get all info at a time:
# uname -mrs
FreeBSD 5.0-RELEASE i386

4) Determining CPU information such as speed, make etc
# dmesg | grep CPU
CPU: Pentium 4 (1716.41-MHz 686-class CPU)
acpi_cpu0: on acpi0
acpi_cpu: CPU throttling enabled, 8 steps from 100% to 12.5%

5) Determining real and available memory to FreeBSD:
# dmesg | grep memory
real memory = 201326592 (192 MB)
avail memory = 188555264 (179 MB)

OR

# sysctl -a | grep hw.*mem
# sysctl -a | grep mem

hw.physmem: 194985984
hw.usermem: 167641088
hw.cbb.start_memory: 2281701376

Note systcl has more info, just type to see rest of all info
# sysctl -a | less

6) Determining how long a system has been up
# uptime

7) Determining when a system was last rebooted or shutdown
# last -1 reboot
# last -1 shutdown

8) Determining swap file system usage
# swapinfo

9) Determining who is logged in and what they are doing
Following all commands can be use. users command displays the list of all logged in users only.
# w
# who
# users

10) Find out when user was last logged in
You can use last command as follows:
# last user-name

(a) To find out user vivek was last logged at what time use last as follows
# last vivek

关于Port的实用小技巧

--------------------------------------------------------------------------------

1、搜索port的一个小脚本
每次都要 cd /usr/ports , 还要打 make search xxxxx……少打几个字也好嘛

代码:
#!/usr/local/bin/bash
#---------------------------------------------------------------------------------
# Shell name: psearch
# Introduction: A kit for searching ports by name or key
# Author: Lolita@bbs.linuxsir.org
#---------------------------------------------------------------------------------
# Usage: psearch [name=]<part of port's name>
#    psearch <key=><part of port's key>
#---------------------------------------------------------------------------------

if [ $# -ne 1 ]; then
  echo -e "Usage: [name=]<part of port's name>"
  echo -e "    or <key=><part of port's key>"
  exit 1
fi

cd /usr/ports/

if [ "" = "${1##*=}" ]; then
  make search name="" | more
else
  make search "" | more
fi
2、用portaudit查明安全隐患(由终极幻想兄提供)
handbook 上的一句话:
A security vulnerabilities check can be automatically done by portaudit before any new application installation.

那么,既然我们喜欢安全的系统,就把portaudit装上吧。至少每次build前,都会检查一下安全漏洞。步骤:

代码:
#cd /usr/ports/security/portaudit
#make install clean
#cd /usr/ports/security/portaudit-db
#make install clean
#cd /usr/ports/security/vuxml
#make install clean
#portaudit -F
#portaudit -a就可以咯。
这样,每次build软件的时候,就不会出现那个 vulnerbility check disabled 的字样了。(我看到就觉得不爽)。

根据portaudit提示的信息,把存在安全隐患的port赶紧升级一下吧!

代码:
# portupgrade -r <your-vulnerable-packages>  

抱歉!评论已关闭.