Shell基础-1:Shell概述
在生物信息学分析过程中,我们经常会使用Shell编写一些脚本,以便执行程序化的分析。因此,我们有必要对Linux下的Shell语法进行学习和了解,一方面可读懂别人写的Shell脚本,另一方面也可以自己编写一些脚本,以提高效率。
1.什么是Shell
Shell是一个命令行解释器。它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
简单说,Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。
image
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
也就是说,在Shell中我们不仅可以调用系统内置的命令,还可以自己编写程序,实现我们的个性化功能。
2.Shell的分类
-
Bourne Shell:从1979年起Unix就开始使用Bourne Shell,主文件名为sh,现已基本淘汰;
-
C Shell:主要在BSD版的Unix系统中使用,其语法和C语言类似而得名,在Linux中使用不多,但是Linux支持C Shll;
-
Shell的两种只要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh,在Linux中使用较多,其中Bash是Linux中的标准Shell,各发行版的语法基本一致;C家族主要包括:csh、tcsh。
在Linux系统中,我们可以使用echo $SHELL
命令查看系统使用的什么Shell:
yjjh@yjjh:~$ echo $SHELL
/bin/bash # Ubuntu使用的Shell是bash
3.Linux支持的Shell
Linux系统支持的Shell类型写在/etc/shell文件中,我们可以打开该文件查看:
# 查看文件
vim /etc/shells
# Linux系统支持的Shell类型
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen