shell编程第一天

shell编程第一天

shell简介

什么是shell

shell是一门编程语言,是操作者和操作系统对话的一种工具,相当于一种应用程序,也就是操作者将自己的需求反馈给应用程序,应用程序给操作系统,操作系统翻译给硬件,最后去执行。shell俗称是壳,一种命令解释器。shell就是将我们已知的命令写到一个文件中去,变成一个新的应用程序。

shell语言的特点

shell语言是指unix操作系统的命令语言,同事有是该命令语言的解释程序的简称。shell的本身是一个用C语言编写的程序,它是用户使用unix和linux的桥梁,用户的大部分的工作都是通过shell完成的。

shell的作用

shell可以做的事情有很多,比如说:

1.自动化批量系统初始化程序(update 软件安装 设置时区 安全策略)
2.自动化批量软件部署程序(LAMP LNMP TOMCAT LAS NGINX)
3.应用管理程序(kvm,集群管理扩容 MySQL)
4.日志分析处理程序
5.自动化备份恢复程序(Mysql完全和增量备份 计划任务)

等等
shell可以做很多的事情,那怎么执行shell呢?

shell的执行方式

准备测试的文件
创建文件并且写入内容

vi /shell/file1
read -p "请输入您的姓名:" name
echo "2021,祝$name牛年大吉"

保存并且退出

  • 第一种执行方式:bash shell文件
bash file1
  • 第二种执行方式:sh shell文件
sh file1

第一种的bash和第二种的sh都是同一种应用程序,只不过称呼有些不同
在这里插入图片描述
第一种和第二种执行的方式是子shell。


  • 第三种执行方式:. shell文件
. file1

第三种执行方法中的点. 代表的是当前目录,也就是当前目录下去执行shell文件,就相当于windows上的双击应用程序一样,使用./也可以

  • 第四种执行方式:source shell文件
source file1

第三和四种是本shell运行

四种执行方式的区别:

第一种和第二种执行的方式是子shell,当我们进入电脑打开命令行时在命令行中写入
bash时就已经打开了一个子shell程序,只不过这个子shell和本shell长得一样,区分不出来而已。
那么既然不容易观察,怎么证明前两种的执行的是子shell程序的呢?
可以尝试exit来退出,来观察命令行的反应,如果命令行并没有关闭则证明是子shell,如果命令行关闭了则证明是本shell
在这里插入图片描述
由此证明第一种和第二种是子shell执行,他们之间的关系就相当于亲子关系。
第一种和第二种在执行时先进入一个子shell程序,把shell文件执行完成后,再退出子shell程序
怎么证明?
编写一个shell文件file2.sh(在这里文件的编写并没有要求必须要扩展名并不影响运行,加扩展名只是更体现的更加专业)

vi file2.sh
#!/usr/bin/bash第一行是脚本声明,表示的是shell语言编写的,其中的#表示是注释,!表示起始语
cd /home/# 到home目录下
ls# 查看当前的目录

保存退出
使用第一种或者是第二种执行方式:
shell编程第一天_第1张图片
目录并没有发生改变,证明bash在执行完后退出了子shell程序。
第三四种执行方式:
shell编程第一天_第2张图片
当前目录发生了改变,由shell变成了home,证明是本shell.

shell编辑器的位置

使用以下的命令可以查看shell程序的位置

cat /etc/shells

或者是

chsh -l

shell编程第一天_第3张图片
只不过有些shell可以使用,有些shell不可以使用

你可能感兴趣的:(shell,shell)