shell广义的说就是与计算机交互的途径,狭义的说,就是linux/unix的命令行。下面只说狭义概念了。
shell又是一个抽象的概念,实际的实现有b shell, c shell, z shell, born again shell(bash)。bash 就是大多数Linux系统预装的shell了。zshell也比较流行。
shell又必须有一个载体,也就是我们常说的终端,你在windows上用的secure CRT,或者putty,都是shell终端。终端和shell是独立的概念。你的secure CRT,可以用来通过bash与系统打交道,也可以通过zsh,这个都是可以自由切换的,看你自己习惯。
shell有一些内置命令,比如在bash下你用which export命令,你得到的是:
/usr/bin/which: no export in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/node-v4.4.2/bin)
明明找不到,你却还是可以用,因为export就是内置命令。
至于实现,这个就难了,得学很多很多……
不用下载,随系统预装的都是正版的,如果要玩zsh之类的,用yum或者apg-get装就好了。