1. what's shell?
shells是一个命令解释器,为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起、停止甚至是编写一些自定义的程序。
用大白话说其实shell就是我们和计算机、和内核交互的界面,他最主要的一个功能就是让我们有一个地方可以输命令,然后把我们的命令翻译为计算机可以识别的语言。
Shell还是一个功能强大的编程语言,易编写、易调试、灵活性较强,Shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令。
Shell的分类
Bourne Shell:从1979年起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
CShell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh,ksh,Bash,psh,zsh;C家族主要包括csh,tcsh。
现在使用的linux就是使用Bash作为用户的基本shell。
Linux支持的Shell
# vi /etc/shells 查询系统当中有哪些shell
Shell脚本的执行方式
echo输出命令
# echo [选项] [输出内容]
如果输入的字符有空格,要把内容用双引号括起来。
-e 支持反斜线控制的字符转换,
\\ :输出\本身
\a:输出警告音
\b:退格键,即向左删除键
\c:取消输出行末的换行符。和-n选项一致
\e:ESCAPE键
\f:换页符
\n:换行符
\r:回车键
\t:制表符,也就是Tab键
\v:垂直制表符
\0nnn:按照八进制ASCII码表输出字符。其中0为数字0,nnn是三位八进制数
\xhh:按照十六进制ASCII码表输出字符。其中hh是两位十六进制数
举例:
# echo -e "ab\bc" 删除左侧字符,将输出ac
# echo -e "a\tb\tc\nd\te\tf" 制表符与换行符
# echo -e "\e[1;31m abcddddd \e[0m" 输出颜色
#30m=黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色,35m=洋红,36m=青色,37m=白色
写第一个脚本
# vi hello.sh
#!/bin/Bash
#the first program
# author xingyubiji
echo -e "hello world,this is my first program"
脚本写完之后,要执行脚本有两种方法:
赋予执行权限,直接运行
# chmod 755 hello.sh
# ./hello.sh
通过bash调用执行脚本
bash hello.sh