Shell概述
-
Shell是一个命令行解释器,它为用户提供了一个向 Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
-
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用 Linux系统命令。
-
Shell分类:
- Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
- C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名
-
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。Linux的标准Shell是Bash,语法结构和Bourne Shell非常类似并且完全兼容。
-
Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
-
/etc/shells
中可以查看Linux支持的Shell,在命令行中直接输入Shell名即可切换Shell。 -
系统用户的Shell是
/sbin/nologin
,nologin
代表该用户不允许登录。
Shell脚本的执行
-
echo输出命令
[root@localhost ~]#echo [选项] [输出内容]
选项:-e 支持反斜线控制的字符转换
控制字符 作用 \\ 输出\本身 \a 输出警告音 \b 退格键,也就是向左删除键 \c 取消输出行末的换行符。和“-n”选项一致 \e ESCAPE键 \f 换页符 \n 换行符 \r 回车键 \t 制表符,也就是Tab键 \v 垂直制表符 \0nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 \xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 #echo -e "ab\bc"
#删除左侧字符,输出
ac
#echo -e "\e[1;31m abcd \e[0m"
#输出红色的
abcd
,\e[1;color str \e[0m
是输出颜色的标准用法,表示将str
以color
的颜色输出。#30m=黑色,31m=红色,32m=绿色,33m=黄色 #34m=蓝色,35m=洋红,36m=青色,37m=白色
-
在编写脚本时建议将脚本文件命名为
.sh
格式,这样在使用Vim的时候会有颜色帮助。我们来看下列这样一个脚本:#!/bin/Bash #The first program # Author: xxxx echo -e "Hello World"
第一行
#!/bin/Bash
不是注释,而是标志以下写的程序是Shell脚本。第二、三行是注释。 -
脚本执行:
-
赋予执行权限,直接运行
$ chmod 755 hello.sh $ ./hello.sh
-
通过Bash调用执行脚本
#bash hello.sh
-
-
在Windows环境下编写的Shell脚本无法直接在Linux下执行,通过
#dos2unix xxx.sh
命令可以将其进行转换。