linux shell种类

1.shell 种类

目前我们的 Linux (以 CentOS 5.x 为例) 有多少我们可以使用的 shells 呢? 你可以检查一下 /etc/shells 这个文件,至少就有底下这几个可以用的 shells:

  • /bin/sh (已经被 /bin/bash 所取代)
  • /bin/bash (就是 Linux 默认的 shell)
  • /bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
  • /bin/tcsh (整合 C Shell ,提供更多的功能)
  • /bin/csh (已经被 /bin/tcsh 所取代)
  • /bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
::~/>cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/usr/bin/csh
/usr/bin/tcsh

2. /bin/sh 与 /bin/bash 的区别  http://blog.csdn.net/hcbbt/article/details/43305179/

/bin/sh/bin/bash 的区别: /bin/sh截取字符串不是POSIX 标准的。

联系: sh 一般设成 bash 的软链 (symlink) . 在一般的 linux 系统当中(例外如 FreeBSD,OpenBSD 等),使用 sh调用执行脚本相当于打开了bash 的 POSIX 标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix。

[root@localhost www]#  ls -l /bin/sh /bin/bash
-rwxr-xr-x 1 root root 801816 Sep 25  2014 /bin/bash
lrwxrwxrwx 1 root root      4 Jul  3 03:22 /bin/sh -> bash

所以,它们之间的各种差异都是来自 POSIX 标准模式 和 bash 的差异,比如 用 : 截取字符串,不能用 let ,遇错中断 等等,在使用时需要注意。

参考:

1. 鸟哥的私房菜:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts.php

原文地址:https://www.cnblogs.com/mylinux/p/4791103.html