Shell基础大纲:
- Shell概述
- Shell脚本的执行方式
- Bash的基本功能
- Bash的变量
- Bash的运算符
- 环境变量配置文件
一、Shell概述
- Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
- Shell还是一个功能相当强大的编程语言,易编写、易调用,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。所有的系统命令都可以直接在脚本中直接调用。
Linux支持的Shell的基本信息如下:
- 命令名称:Shell
- 所在路径:/etc/shells(即etc下的Shells)
二、Shell脚本的执行方式
1,echo输出命令
格式:[root@localhost ~]# echo [选项] [输出内容]
选项:
- -e:支持反斜杠控制的字符转换;
反斜杠的相关用法:
控制字符 | 作用 |
---|---|
\\ | 输出反斜杠本身 |
\ | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\c | 取消输出行末的换行符。与“ -n ”选项一样 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码表输出字符。其中0位八进制标识,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
举例说明:
- 删除左侧字符:
[root@root ~]# echo "abc"
abc
[root@root ~]# echo -e "ab\bc"
ac
[root@root ~]#
- 制表符与换行符
[root@root ~]# echo -e "a\tb\tc\nd\te\tf"
a b c
d e f
- 按照十六进制ASCII码也同样可以输出:
[root@root ~]# echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a b c
d e f
不加选项的echo输出。直接加所要输出的内容。:
[root@root 桌面]# echo "hello world"
hello world
[root@root 桌面]# echo 'hello world'
hello world
[root@root 桌面]#
[root@root 桌面]# echo 'hello world!'
hello world!
[root@root 桌面]# echo "hello world!"
bash: !": event not found
注意:
- 如果输出的内容有空格,就要加""(双引号),如果没有空格可以不用双引号括起来。
- 感叹号(!)在Shell当中是有特殊作用的。如果输出的内容里面有感叹号(!),就必须用单引号将感叹号的作用去掉,否则会报错。
- 输出颜色
[root@root ~]# echo -e "\e[1;31m abcd \e[0m"
abcd
命令格式:[root@root ~]# echo -e "\e[1;31m abcd \e[0m"
- -e ——>是特殊符号,支持反斜杠控制的字符转换;
- \e[1 ——>开启颜色输出;
- \e[0m ——>结束颜色输出;
- abcd ——>表示输出的字符;
- 31m ——>表示输出的颜色;
#30#=黑色,31m=红色,32m=绿色,33m=黄色
#34#=蓝色,35m=洋红,36m=青色,37m=白色
2、第一个脚本
[root@localhost sh]# vi hello.sh
#!/bin/Bash
#The first program
# Author: shenchao (E-mail: shenchao@lampbrother.net)
echo -e "Mr. Shen chao is the most honest am in LampBroher"
- vi hello.sh ——> 一般Linux是不区分扩展名的。若将脚本的扩展名为.sh时,这个的作用是告诉系统,写得这个是Bash脚本。若用的不是vi编译器,而使用的是vim编译器那么会使用颜色来帮助提示编译。因此,建议将脚本写成.sh;
- #!/bin/Bash ——> 一般在Linux中以#开始表示的是注释,但是这句话并不是注释,而是标志,标称我以下写得都是Shell脚本。若脚本比较简单时,这句话不写可以的,但是若Shell脚本比较复杂嵌套其他语句,没有标称其他语句为Shell,程序运行就会报错。总而言之,这句话不能省略;
- #The first program ——> 表示注释;
3、脚本执行
(1)赋予执行权限,直接运行;
- 第一步给脚本赋予执行权限,例如:chmod 755 hello.sh ——>基于所用用户权限
- 第二步通过绝对路径或相对路径的方式来调用例如:./hello.sh
注意:在Linux当中所有的执行文件,不管是我们写得Shell脚本,还是二进制执行命令,要想执行都必须用绝对路径或相对路径才能执行的。
脚本运行如下:
[root@root ~]# chmod 755 hello.sh
[root@root ~]# ll
总用量 104
-rwxr-xr-x. 1 root root 78 7月 5 10:13 hello.sh
zhaoliying is the most honest man in sisters
[root@root ~]# ls
anaconda-ks.cfg install.log 公共的 视频 文档 音乐
hello.sh install.log.syslog 模板 图片 下载 桌面
(2)通过Bash调用执行脚本;
命令格式:[root@root ~]# bash hello.sh
- 通过Bash来执行脚本时,甚至这个执行权限我们都不用赋予,就可以直接去执行。
- 意思为:通过这个bash来解释后面的这个脚本。但是我们习惯的还是第一种方式来运行;
[root@root ~]# bash hello.sh
zhaoliying is the most honest man in sisters