shell的简介

一.什么是shell?
*Shell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口。
*当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作。
*系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。

二.什么是shell脚本?
简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本;也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些命令一次性执行完毕,这种通过文件执行命令的方式称为非交互式.

三.为什么使用shell脚本?
•1. 适合处理操作系统底层的业务,有众多系统命令为其做支撑
(还有文本处理三兄弟grep,sed,awk)
•2. 适合处理纯文本文件,linux中许多服务配置文件,启动脚
本,都是纯文本(httpd,nfs,mysql,nginx,lvs)
•3. linux系统脚本用shell开发更简单

四.如何查看系统默认shell?
有三种可以查看默认shell的方式,比较简单的是echo $SHELL

[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cat /etc/passwd | head -1
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# 

五.脚本shell的建立
•1.第一行:#!/bin/bash
指定解释器:由哪个程序来执行脚本内容
#!:幻数
注意:#!/bin/bash必须写在第一行,否则会被认为是注释

[root@localhost mnt]# vim test.sh 
[root@localhost mnt]# cat test.sh 
#!/bin/bash
echo "haha"

[root@localhost mnt]# sh test.sh 
haha
[root@localhost mnt]# 

六.脚本执行的程序
•1.先加载系统环境变量
怎么查看系统环境变量:env
•2.一条一条命令执行,遇到子脚本,先执行子脚本,然后返回父
脚本继续执行

[root@localhost mnt]# env
LC_PAPER=zh_CN.utf8
XDG_SESSION_ID=2
HOSTNAME=localhost
LC_MONETARY=zh_CN.utf8
SELINUX_ROLE_REQUESTED=
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.25.254.250 52662 22
SELINUX_USE_CURRENT_RANGE=
LC_NUMERIC=zh_CN.utf8
SSH_TTY=/dev/pts/1
USER=root

七.脚本的执行方法

•1. bash script.sh或者 sh script.sh		(当脚本没有执行权限时)
•2. path/script.sh或者 ./script.sh		(绝对路径,或当前目录下)
•3. source script.sh 或者 . script.sh	(需要传递变量或函数时使用)
(这种方式会使用source或.号来读如指定shell文件,并会把其他shell中的变量值或函数返回给父shell继续使用

八.脚本开发规范
•1.注释:可以命令后,也可以自成一行
•2.脚本信息:
•3. 脚本名:最好以.sh结尾

#!/bin/bash
#Date:2018-12-14
#Author:westos-wsp
#Connect:[email protected]
#Desc:This script is for...
#Version:1.0
echo "haha"   ---->这里以下就为代码范围

猜你喜欢

转载自blog.csdn.net/weixin_43323669/article/details/85278739