一、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。
二、shell脚本执行方式
(1)、echo命令
-e表示支持反斜杠字符转换。
linux中字符有以下几种:
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh
控制字符 | 作 用 |
\\ | 输出\本身 |
\a | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进 制数 |
\xhh | 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
shell脚本Hello.sh编写
执行:
三、Bash的基本功能
(1)history命令
[root@localhost ~]# history [选项] [历史命令保存文件]
选项:
-c: 清空历史命令
-w: 把缓存中的历史命令写入历史命令保存文件
~/.bash_history
历史命令默认会保存1000条,可以在/etc/profile中修改。
(2)alias 命令
给某个命令设置别名:
[root@localhost ~]# alias 别名='原命令
查询命令的别名:alias
Bash中常用的快捷键:
快捷键 | 作 用 |
ctrl+A | 把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移 动到命令行开头时使用。 |
ctrl+E | 把光标移动到命令行结尾。 |
ctrl+C | 强制终止当前的命令。 |
ctrl+L | 清屏,相当于clear命令。 |
ctrl+U | 删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退 格键一个一个字符的删除,使用这个快捷键会更加方便 |
ctrl+K | 删除或剪切光标之后的内容。 |
ctrl+Y | 粘贴ctrl+U或ctrl+K剪切的内容。 |
ctrl+R | 在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入 搜索内容,就会从历史命令中搜索。 |
ctrl+D | 退出当前终端。 |
ctrl+Z | 暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管 理章节详细介绍。 |
ctrl+S | 暂停屏幕输出。 |
ctrl+Q | 恢复屏幕输出。 |
(3)
标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /dev/stdin | 0 | 标准输入 |
| /dev/sdtout | 1 | 标准输出 |
显示器 | /dev/sdterr | 2 | 标准错误输 出 |
(4)
输出重定向
类 型 | 符 号 | 作用 | ||
标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的 正确输出输出到指定的文 件或设备当中。 | 命令 >> 文件 | 以追加的方式,把命令的 正确输出输出到指定的文 件或设备当中。 |
标准错误输出重定 向 | 错误命令 2>文件 | 以覆盖的方式,把命令的 错误输出输出到指定的文 件或设备当中。 | 错误命令 2>>文件 | 以追加的方式,把命令的 错误输出输出到指定的文 件或设备当中。 |
正确输出和错误输 出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 >> 文件 2>&1 | 以追加的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 &>文件 | 以覆盖的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 &>>文件 | 以追加的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令>>文件1 2>>文件2 | 把正确的输出追加到文件 1中,把错误的输出追加 到文件2中。 |
(5)
.输入重定向
使用wc命令:
wc 选项 文件名
选项:
-c | 统计字节数 |
-w | 统计单词数 |
-l | 统计行数 |
(6)多命令顺序执行
多命令执行 符 | 格式 | 作 用 |
; | 命令1 ;命令2 | 多个命令顺序执行 系 ,命令之间没有任何逻辑联 |
&& | 命令1 && 命令2 | 逻辑与 当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行 |
|| | 命令1 || 命令2 | 逻辑或 当命令1 执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行 |
(7)管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
例如:ll -a /etc/ | more
netstat -an | grep "ESTABLISHED"
[root@localhost ~]# grep [选项] "搜索内容"
文件名
选项: -i: | 忽略大小写 |
-n: | 输出行号 |
-v: | 反向查找 |
--color=auto | 搜索出的关键字用颜色显示 |