一、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命令


Linux学习高级篇(一)_脚本语言




-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编写

Linux学习高级篇(一)_bash_02


执行:


Linux学习高级篇(一)_linux kernel_03


三、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

搜索出的关键字用颜色显示