FreeBSD Shell的操作和使用

FreeBSD Shell的操作和使用

一、常见sh介绍

sh

sh是系统标准的shell.系统里面的许多脚本(例如/etc/rc.subr,./configure)都是sh脚本。能看懂sh脚本,才能自己独立解决问题。

tcsh

tcsh随发行版一起提供给用户,属于系统默认的root用户使用的shell。

tcsh是一个非常好用的 shell,合理地配置能够极大地提高工作效率,并减少出错的机会。但是需要注意的是,tcsh在很多方面与 sh 并不兼容。

bash

FreeBSD上面的bash和linux上面的是一样的。如果你没入门的话,linux论坛里面能能找到中文资料。bash和sh是兼容的。

bash不作为FreeBSD的一部分提供给用户。如果需要使用bash,需要到ports下进行安装。

二、如何查看当前用户的默认shell

用这个命令

echo $SHELL

三、如何更改用户的默认shell

1,作为root改变别人的默认shell

vipw

或者

chsh 用户名

2,改变自己的shell

chsh

四、如何设置环境变量

1,Csh

临时使用:

bsdx64# setenv CVSROOT /opt/cvsroot
bsdx64# env|grep CVSROOT
CVSROOT=/opt/cvsroot

写到.cshrc,永久生效

setenv CVSROOT  /data/cvsroot

2,Sh/Bash

临时使用:

bsdx64$ export CVSROOT=/opt/cvsroot
bsdx64$ env|grep CVSROOT
CVSROOT=/opt/cvsroot

写入 .profile 可以永久生效

CVSROOT=/data/cvsroot
export CVSROOT

或者

export CVSROOT=/data/cvsroot

原文链接:http://wiki.freebsdchina.org/faq/shell/about
http://wiki.freebsdchina.org/faq/shell/query_login_shell
http://wiki.freebsdchina.org/faq/shell/change_login_shell
http://wiki.freebsdchina.org/faq/shell/setenv

使用FreeBSD默认的csh替代bash

使用FreeBSD默认的csh替代bash

一直以来,都习惯了bash的风格,比如命令补全、历史命令编辑、nohup后台运行,等等。

现在基本上只使用FreeBSD,而FreeBSD默认的shell并不是bash,而且bash ports是安装在/usr/local/bin/bash的,我一般都把/usr/local从根分区分离出去,这样的话,如果系统有问题需要进入单用户模式的时候,bash是不可用的。

研究了一下,如果csh经过一定的设置,也是很好用的。

1、设置命令补全,修改/etc/csh.cshrc文件:
set autolist

2、显示类似 [dirk@trinity /usr/local/etc]# 这样的提示符,修改/etc/csh.cshrc文件:
set prompt = ‘[%B%n@%m%b %B%~%b%]#’

3、让ls命令显示目录的时候带/斜杠区分普通文件,修改/etc/csh.cshrc文件:
alias ls ls -F

4、让csh具有历史命令编辑功能,还是/etc/csh.cshrc文件:
bindkey “^W” backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward

5、最后,使用script命令替代nohup命令:
script -a script.log “command”

原文链接:http://www.dirk.pdx.cn/blog/diary,266894.html