SHELL_学习之路(1)shell简介

1.什么是shell?

#系统结构
外围应用程序
命令解释器shell
系统核心(kernal)
硬件
#shell是linux的一个外壳,它包在linux内核的外面,为用户和内核之间的交互提供接口.
#当用户下达指令给操作系统的时侯,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作。
#系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。

2.什么是shell脚本?

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

3.为什么使用shell脚本?

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

4.如何查看系统默认shell(企业面式题)

1)方法一
[root@localhost Shell.scripts]# echo $SHELL
/bin/bash
2)方法二
[root@localhost Shell.scripts]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

5.shell脚本建立

#!/bin/bash  #shell解释器为bash,必须写在第一行。
#!  #幻数

练习:清空/var/log/messages文件

 #!/bin/bash
    LOG_DIR=/var/log
    ROOT_UID=0
    #当UID不是root的UID时,打印错误输出,并错误退出
    if [ "$UID" -ne $ROOT_UID ];then
            echo "Error:you should be root"
            exit 1
    fi
    #当cd到/var/log出现错误时,打印错误输出,并错误退出
    cd $LOG_DIR || {
            echo "Cannot assce to directory"
            exit 1
    }
    #当清空日志正确时,正常退出
    cat /dev/null > $LOG_DIR/messages && {
            echo "Logs clear up..."
            exit 0
    }
    echo "Logs cleaned failed..."
    exit 1

6.脚本的执行过程

1)查看系统环境变量env
[root@localhost Shell.scripts]# env
XDG_SESSION_ID=13
HOSTNAME=localhost
SELINUX_ROLE_REQUESTED=
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=1000
2)一条一条命令执行,遇到子脚本,先执行子脚本,然后返回父脚本继续执行。

7.脚本的执行方式

1)sh script.sh | bash script.sh ##没有执行权限时
2)chmod +x script.sh #绝对路径
   path/script.sh | ./script.sh
3)source script.sh | . script.sh #会把其它shell中的变量值或函数返回给父shell继续使用

示例:

[root@localhost Shell.scripts]# vim username.sh
username=root
[root@localhost Shell.scripts]# sh username.sh 
[root@localhost Shell.scripts]# echo $username

[root@localhost Shell.scripts]# bash username.sh 
[root@localhost Shell.scripts]# echo $username

[root@localhost Shell.scripts]# chmod +x username.sh 
[root@localhost Shell.scripts]# ./username.sh 
[root@localhost Shell.scripts]# echo $username

[root@localhost Shell.scripts]# . username.sh 
[root@localhost Shell.scripts]# echo $username
root

8.脚本开发规范

1).注释
2).脚本信息
#!/bin/bash
#Date: 2108-12-22
#Author: westos
#Connect: westos@qq.com
#Desc: This script is for ...
#Versiion
3).脚本名:最好以.sh结尾
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值