shell基础介绍

来源:互联网 发布:全国高考大数据分析 编辑:程序博客网 时间:2024/05/18 00:19

1. shell介绍

shell 是Linux内核和用户交互的一个界面 ,作为用户与操作系统内核的中间媒介而存在 。当我们登录Linux,打开终端,第一眼看到的就是shell界面。最早的第一个shell版本是Bourne shell(为纪念这个版本的资助者:Steven Bourne),简称:sh。其后,有伯克利的 C shell,简称:csh(这个版本现被 tcsh代替)。贝尔实验室的ksh,以及基于ksh发展出来功能更强大的zsh。无论哪个版本的shell其功能都相似,差别在于一些语法上的不同。


2. 查看可用shell和当前shell

要查看当前系统可用shell版本有哪些,可以查看 /etc/shells 文件(某些版本可能是/etc/shell 文件,笔者使用Ubuntu 12.04):

~$ cat /etc/shells
可能显示的结果是:

/bin/sh/bin/dash/bin/bash/bin/rbash
Ubuntu默认的shell是 dash,root用户是bash。那如何知道当前shell是哪个版本呢?可查看 $SHELL变量:

~$ echo $SHELL/bin/bash
如果不是dash,可使用:sudo dpkg-reconfigure dash 命令恢复。


3. 安装其他版本的shell

上面查看/etc/shells文件时,没有显示tcsh, zsh,如果你想用这些版本的shell,在Ubuntu下是很简单的,只要install一下:

~$ sudo atp-get install tcsh

~$ sudo apt-get install zsh

查看/etc/shells文件就可知道安装的shell版本有没有成功:

/bin/sh/bin/dash/bin/bash/bin/rbash/bin/zsh/usr/bin/zsh/bin/tcsh


4. 切换shell版本

如果当前shell版本是dash,想换成tcsh,可以使用 chsh命令:

~$ chsh -s /bin/tcsh
如果不是root用户,需要输入当前用户密码。现在我们来看下,是否切换成功:

~$ echo $SHELL/bin/bash

发现$SHELL变量显示的还是bash,而不是tcsh。是上面操作没成功吗?其实不是的,shell版本是切换成功了,只是$SHELL变量值修改后,需要当前用户注销后,再次登录才会生效。所以,如果你重新登录后,再查看$SHELL变量,显示的就是 /bin/tcsh。

或者,可以这样:

~$ chsh jeff
输入密码后,显示:

Changing the login shell for jeffEnter the new value, or press ENTER for the default        Login Shell [/bin/tcsh]:

上面让你输入一个新的shell版本值,或者按回车不做修改。但我们看到,现在Login Shell 的版本是:/bin/tcsh。说明我们在执行:chsh -s /bin/tcsh 时,将shell版本换成了tcsh。

好了,shell的一些基本情况就先介绍这些。


0 0
原创粉丝点击