LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5361|回复: 26

[技巧]FreeBSD下实用小技巧[原创]

[复制链接]
发表于 2005-12-12 11:06:36 | 显示全部楼层 |阅读模式
我自己总结出来的以及看到的一些小技巧,奉献给大家。也希望大家不要吝啬自己的经验,多多补充!

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

  1. $ mixer
  2. $ mixer vol 80:80  // 80:80 分别是左右声道音量大小
  3. $ mixer pcm 80:80  // 同上
复制代码


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

  1. # cd /usr/ports/misc/gnuls
  2. # make install clean
  3. $ alias ls="gnuls --color"
复制代码

  1. #[color=blue]对于bash,把下面的东西加入到~/.bashrc 即可[/color]
  2. if [ "$TERM" = "cons25" ]
  3. then
  4.     #we're on the system console or maybe telnetting in
  5.     export PS1='\[\e[32;1m\]\u@\H \w \$ \[\e[0m\]'
  6. else
  7.     #we're not on the console, assume an xterm
  8.     export PS1='\[\e]2;\u @ \H\a\e[32;1m\]\w \$ \[\e[0m\] '
  9. fi
  10. 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;41:ex=01;32:*.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:';
  11. export LS_COLORS
复制代码


3、想要高分辨率的系统终端?
先在kernel配置文件加入下面两行并编译内核。

  1. options         VESA
  2. options         SC_PIXEL_MODE
复制代码

修改/etc/rc.conf,加入下面两行

  1. vesa_load="YES"
  2. allscreens_flags="-g 100x37 VESA_800x600"
复制代码

好了,重启系统看看,应该有800x600了。想要更高的分辨率?你可以用vidcontrol :

  1. $ vidcontrol -i mode  // 看看有哪些显示模式
  2. $ 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,加入以下几行
  1. splash_bmp_load="YES" // 如果使用 .bmp 格式,此项需设为 YES
  2. splash_pcx_load="YES" // 使用 .pcx,请将此项设为 YES
  3. vera_load="YES"
  4. bitmap_load="YES"
  5. bitmap_name="/boot/splash.pcx"  //请依你的档案格式更改
  6. bitmap_type="splash_image_data"
复制代码

好了,重启系统看看!

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

6、加快终端的按键速度
在/etc/rc.conf加入:
  1. keyrate="fast"
复制代码


7、互换鼠标左右键
我习惯用左手鼠标,而且一只手握鼠标一只手握笔的感觉不错!
在/etc/rc.conf中加入:
  1. moused_enable="YES"
  2. moused_flags="-m 1=3 -m 3=1" // 1 代表左键,3代表右键,彼此map一下
复制代码


8、去掉恼人的beep
无论用bash还是csh 还是tcsh,都喜欢常常给它tab一下,失败了小喇叭会"Beeee" 一下,在办公室里头非常讨厌。按我说的简单处理一下就没有beep了。

  1. #------ 对于bash --------
  2. $ cd
  3. $ touch .inputrc
  4. $ echo 'set bell-style none' >> .inputrc //好了,logout&login 试试!

  5. #------ 对于csh/tcsh --------
  6. $ cd
  7. $ touch .tcshrc
  8. $ echo 'set nobeep' >> .tcshrc  //也可以直接在命令行敲 set nobeep
复制代码


9、程序失败后不产生core文件
对于普通用户,产生core文件也没用,因为不会去调试,所以每每看见core就心烦。

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

  3. #或者编辑 /etc/sysctl.conf , 增加下面这一行并重启就关闭这个功能了。
  4. kern.coredump=0
复制代码


10、不要老是呆在电脑旁边!
leave是个小命令,目的是在指定的时间内驱动可怜的小喇叭提醒你:喂喂,呆在电脑旁太久了,快出去走走!

  1. $ leave 1430   // 14点30分钟时提醒我
  2. 或者:
  3. $ leave +0003  // 三分钟后提醒我
  4. ~ $  Time to leave!   
  5. Time to leave!
  6. Time to leave!
  7. Time to leave!
  8. Time to leave!
  9. Time to leave!
  10. Time to leave!
  11. Time to leave!
  12. Time to leave!
  13. That was the last time I'll tell you.  Bye.
  14. //小喇叭嘶哑的呐喊9次以后,不干了,你爱啥干啥去吧。
复制代码

如果你够自觉,你可以立即logout,它就不叫了; 或者,你把它kill掉

11、挂载iso镜像

  1. // 挂载
  2. # mdconfig -a -t vnode -f myiso.iso -u 9
  3. # mount_cd9660 /dev/md9 /mnt/iso
  4. // 卸载
  5. # umount /mnt/iso
  6. # mdconfig -d -u 9
复制代码


12、把内存当硬盘使
没有1G以上内存者还是玩玩就好(md设备的大小是受到物理内存的限制的,占用的是宝贵的内核空间),比如做个2m的虚拟盘,看看内存有多快

  1. # mdconfig -a -t swap -s 1g -u 8  //没有1g以上内存的话,也可以写成512m等等
  2. # newfs -O2 /dev/md8 //初始化为UFS2
  3. # mount /dev/md8 /tmp  // 虚拟硬盘 /tmp诞生了 , 有什么用?
  4. # echo WRKDIRPREFIX=/tmp >> /etc/make.conf  // 知道了吧
复制代码

关于内存文件系统,可以参考 http://bbs.chinaunix.net/viewthread.php?tid=18063

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

  1. $ crypt < sourcefile > destfile  // 把sourcefile加密为destfile
  2. Enter key:    // 输入密码,不回显
  3. $ rm sourcefile  //要不要删除明文文件由你自己决定
  4. $ crypt pwd_xxx < destfile > new_sourcefile   // 以密码pwd_xxx 来解密destfile到新文件
复制代码


14、同时使用多个音源 (摘自用户手册)
  同时有多个声源的声音在播放, 这是完全可能的, 例如当 esound 或者 artsd 不支持与其它程序共享音频设备时。FreeBSD可以通过 虚拟声道(Virtual Sound Channels) 来达到, 具体设置用工具 sysctl 来完成。虚拟的声道可以能过在内核里混合声音来混合声卡里播放的声道。使用两条sysctl命令来设置虚拟声道的数目。 如果您是 root 用户, 执行下面的操作:

  1. # sysctl hw.snd.pcm0.vchans=4
  2. # sysctl hw.snd.maxautovchans=4
  3. [color="Blue"]//我在FreeBSD6上只要执行这两个命令就OK了,爽!
  4. //为了以后方便,可以把配置写入/etc/sysctl.conf里头。[/color]
复制代码

  上面的实例设定了4个虚拟声道,这也是实际上所使用的数目。hw.snd.pcm0.vchans 是pcm0的虚拟声道数,一当链接上一个设备它就可配置了。 hw.snd.maxautovchans是分配给新的音频设备的虚拟声道数,此时这个设备要用 kldload来链接。因为 pcm 模块可以独立装载许多硬件驱动程序, 因此 hw.snd.maxautovchans 也就可以存储分配给以后链接到的设备的虚拟声道数。
  [color="Red"]注意: 您不能在使用某个设备的时候改变其虚拟通道数。首先需要关闭所有使用该设备的程序, 如音乐播放器或声音服务。


15、关闭系统时关闭电源
reboot, halt, shutdown 命令都可以关闭系统,只要在这这三个命令后面加上 -p 参数即可。
比如:
  1. # shutdown -p now //立即关闭系统
复制代码

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

  1. # init 0    //也能关闭电源
复制代码


16、csh/tcsh的一些日用技巧,收集中

  1. set autolist    # tab提示,大家都喜欢
  2. set autologout=10  # 让csh/tcsh在发呆20分钟后自动登出
  3. alias rm        rm -i # 删除提醒
  4. alias cp        cp -i # 复制提醒
  5. alias mv       mv -i # 移动提醒
复制代码


17、栈式保存访问路径: pushd, popd
pushd把访问过的路径依次压栈,popd则依次退栈,怎么灵活使用就看你自己了

  1. ~ $  pushd /tmp/
  2. /tmp ~ ~
  3. /tmp $  pushd /usr/local/src
  4. /usr/local/src /tmp ~ ~
  5. /usr/local/src $  pushd /home/mf/download/
  6. ~/download /usr/local/src /tmp ~ ~
  7. ~/download $  popd
  8. /usr/local/src /tmp ~ ~
  9. /usr/local/src $  popd
  10. /tmp ~ ~
  11. /tmp $  
复制代码


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

  1. ignoreeof=10  //提醒10次(次数可以自己设定)
复制代码

以后每次按ctrl+d 都会提醒:Use "exit" to leave the shell.
但超过10次后仍旧会退出。

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

  1. 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即可:

  1. "\e[3~": "\C-d"
复制代码

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

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

  1. # cd /usr/ports/chinese/xpdf
  2. # make install clean
复制代码


23、获取系统信息小集锦(终极幻想兄提供)

  1. 1) Determining the Hardware Type/platform:
  2. # uname -m

  3. 2) Determining machine processor architecture:
  4. # uname -p

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

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


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

  19. OR

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

  22. hw.physmem: 194985984
  23. hw.usermem: 167641088
  24. hw.cbb.start_memory: 2281701376

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

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

  29. 7) Determining when a system was last rebooted or shutdown
  30. # last -1 reboot
  31. # last -1 shutdown

  32. 8) Determining swap file system usage
  33. # swapinfo

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

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

  42. (a) To find out user vivek was last logged at what time use last as follows
  43. # last vivek
复制代码
 楼主| 发表于 2005-12-18 10:45:43 | 显示全部楼层

关于Port的实用小技巧

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

  1. #!/usr/local/bin/bash
  2. #---------------------------------------------------------------------------------
  3. # Shell name:  psearch
  4. # Introduction: A kit for searching  ports by name or key
  5. # Author:  Lolita@bbs.linuxsir.cn
  6. #---------------------------------------------------------------------------------
  7. # Usage: psearch [name=]<part of port's name>
  8. #        psearch <key=><part of port's key>
  9. #---------------------------------------------------------------------------------

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

  15. cd /usr/ports/

  16. if [ "$1" = "${1##*=}" ]; then
  17.    make search name="$1" | more
  18. else
  19.    make search "$1" | more
  20. fi
复制代码


2、用portaudit查明安全隐患(由[color="Blue"]终极幻想兄提供)
handbook 上的一句话:
A security vulnerabilities check can be automatically done by portaudit before any new application installation.

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

  1. #cd /usr/ports/security/portaudit
  2. #make install clean
  3. #cd /usr/ports/security/portaudit-db
  4. #make install clean
  5. #cd /usr/ports/security/vuxml
  6. #make install clean
  7. #portaudit -F
  8. #portaudit -a
复制代码

就可以咯。
这样,每次build软件的时候,就不会出现那个 vulnerbility check disabled 的字样了。(我看到就觉得不爽)。

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

  1. # portupgrade -r <your-vulnerable-packages>
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-12-18 14:17:34 | 显示全部楼层
不错
支持ing
回复 支持 反对

使用道具 举报

发表于 2005-12-18 17:09:10 | 显示全部楼层
顶,期待更多的好东东~!:2cool
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-26 12:14:08 | 显示全部楼层
大家一起来补充吧!
回复 支持 反对

使用道具 举报

发表于 2005-12-29 07:42:54 | 显示全部楼层
不错,收藏了
回复 支持 反对

使用道具 举报

发表于 2005-12-29 07:45:01 | 显示全部楼层
精华一下咯,以后就不用到处找了。

兄弟提供的技巧真不错。谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-29 07:58:34 | 显示全部楼层
谢谢支持
以后还会慢慢补充的
回复 支持 反对

使用道具 举报

发表于 2006-1-4 18:18:13 | 显示全部楼层
(ZT) 获取系统信息小集锦:

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 –k

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
回复 支持 反对

使用道具 举报

发表于 2006-1-5 20:50:26 | 显示全部楼层
话题来自 http://www.linuxsir.cn/bbs/showthread.php?t=238295
清除 孤立无用的 package:

看了一下 handbook,有方法的,不过我觉得不好。

sysutils/pkg-orphan
sysutils/pkg-cutleaves
sysutils/pkg-rmleaves (这个最容易用)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表