Shell入门

1.什么是Shell

  • Shell是个命令解释器,用于解释用户输入的命令。
  • Shell存在于操作系统的最外层,负责与最终用户对话,把用户的输入解释给系统内核,接着内核再去支配计算机硬件去执行各种操作。
    如图:

2.什么是Shell脚本

  • linux命令、变量和流程控制语句等有机的结合起来,就成了一个功能强大的Shell脚本

3.Shell脚本在运维工作中的作用

Linux系统中所有的配置文件,日志文件(如MySQL、Httpd、Rsync服务)、以及绝大多数的启动文件都是纯文本文件。而Shell脚本很适合处理纯文本类型的数据。

4.Shell的类型

查看系统支持的shell
cat /etc/shell
查看系统当前使用的是哪个shell
方法1:
echo $SHELL
方法2:
grep root /etc/passwd
注意:ubuntu默认使用的shell为dash,如何切换,以及与bash的区别?

5.Shell脚本的建立和执行

推荐使用linux中自带的vim编辑器来编辑Shell,因为linux中除了vim外还有vi,为了方便,建议做一个别名alias vi="vim",并使其永久有效,这样习惯输入vi的用户也可以直接调用vim。
方法如下:
echo 'alias vi="vim"' >> /etc/profile
检查:
tail -1 /etc/profile
使其立即生效(原理查看后面的shell执行的几种方式)
source /etc/profile

. /etc/profile

5.1 脚本的建立

1.第一行Shbang.作用是告诉解释器用哪个程序来解释这个脚本
#!/bin/bash

#!/bin/sh

  • bash和sh的区别
    ls -l /bin/bash
    ls -l /bin/sh
    sh是bash的软链接。
    2.脚本注释
  • 在shell脚本中,跟在#后面的内容表示注释,注释不会被执行
  • 注释可以自成一行,也可以跟在命令的后面,与命令同一行
  • 写注释是一个良好的习惯,注释不光是为了别人,也为了方便自己。
  • 注释尽量不要用中文
5.2 脚本的执行

Shell脚本执行前会先加载环境变量文件,加载顺序为:/etc/profile->~/.bash_profile->~/.bashrc->/etc/bashrc。加载上述环境变量后,就会开始执行shell脚本。
1.执行顺序:
从上向下,从左到右。依次执行。如果遇到子shell,会先执行子shell,执行完子shell后再返回执行父shell.
2.执行方式

  • 方法1:适用于脚本没有可执行权限后没有指定解释程序
    bash 脚本名.sh 或 sh 脚本名.sh
  • 方法2:适用于脚本有执行权限
    通过绝对路径和相对路径执行脚本
  • 方法3:source 和 . 的方式
    与之前2种方式区别:不会启用新的进行执行脚本,脚本执行结束后会将执行脚本的变量和函数传递到当前脚本中,相当于配置文件中的include功能,修改/etc/profile中的变量,使其立即生效也是这个原因。

6.Shell脚本书写规范和习惯

6.1 规范

1.脚本命令以.sh结尾
2.脚本中第一行为:#!/bin/bash
3.脚本中尽量不要使用中文
4.脚本尽量放在统一目录中。

6.2 习惯

1.代码缩进
2.常规变量字符串定义变量值应加双引号,并且等号前后不能有空格,需要强引用的,则要用单引号'',如果是命令引用的则用反引号。





posted @ 2019-01-30 16:12  whatislinux  阅读(95)  评论(0编辑  收藏  举报