shell脚本基础

接下来的博客会详细介绍一下shell脚本知识要点掌握Shell脚本的基础知识学会使用Shell变量学会编写简单的Shell脚本什么是shell?Shell是个程序(文本界面和图形界面,Linux默认的shell是bash),解析命令,通过shell与内核打交道。 shell又是命令语言,或者说是一种编程语言。Shell脚本其实就是shell程序,管理维护UNIX,Linux操作系统...
摘要由CSDN通过智能技术生成

接下来的博客会详细介绍一下shell脚本

知识要点
掌握Shell脚本的基础知识
学会使用Shell变量
学会编写简单的Shell脚本

什么是shell?
Shell是个程序(文本界面和图形界面,Linux默认的shell是bash),解析命令,通过shell与内核打交道。 shell又是命令语言,或者说是一种编程语言。Shell脚本其实就是shell程序,管理维护UNIX,Linux操作系统。

Shell脚本的应用环境
1.学习shell脚本的基本流程
看、想、写

2.shell脚本用在什么地方
编写常用系统维护工具菜单
重要的性能参数、进程和日志分析
自动实现数据备份计划
自动批量搭建特定系统环境
防火墙自动配置脚本
服务器的配置文件安全比对
对批量设备进行远程巡检

Shell脚本的组成元素
shell脚本的基本组成
声明和注释
系统命令
文本处理工具(grep、cut、sed、awk…)
各种变量
各种条件判断
循环结构语句
各种函数
Shell脚本的大体结构:第一部分(第一行):声明解析器(#!/bin/bash)
第二部分:脚本的说明信息:编写时间,作者,版本,功能,使用方法
第三部分:变量,函数
第四部分:主体部分,各种命令在这里插入图片描述
Shell的作用
Shell的作用 —— 命令解释器,“翻译官”
介于系统内核与用户之间,负责解释命令行在这里插入图片描述Shell的种类和切换
1.登录Shell
指用户每次登录系统后自动加载的Shell程序,大多数Linux系统采用 /bin/bash 作为默认登录Shell
/etc/shells 文件记录了系统支持的有效登录Shell在这里插入图片描述2.如何切换Shell环境
临时切换:直接执行其他Shell程序,例如ksh、zsh等
返回到原来的Shell环境时可以执行“exit”命令或者按Ctrl+D快捷键
更改用户登录Shell:
需修改 /etc/passwd 文件中用户记录的最后一个字段
或执行:usermod -s Shell程序路径 用户名
Shell初始化
bash初始化
登录shell
指的是输入用户名、密码, 从系统登录时执行的第一个程序

非登录shell
登录系统后, 在login shell里启动的shell是非login shell
如执行bash命令、在图形中打开终端均是开一个非登录shell

Bash初始化
1.bash的初始化脚本在这里插入图片描述bash启动时,会进行初始化,初始化就是执行一些脚本,有哪些脚本呢?
分2种情况:
第1种:登录时启动的bash,登录shell
初始化脚本执行顺序:/etc/profile->/etc/profile.d/*.sh->/.bash_profile->/.bashrc->/etc/bashrc
如果这些脚本中的变量发出冲突,那么以最后一个脚本的设置生效。

第2种:登录后,启动的bash,非登录shell
初始化脚本执行顺序:~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
注意:这些脚本中不要乱增加内容。例如:在脚本中增加echo
补充:/etc/rc.local是Linux开机会启动的脚本文件,
2.Shell启动配置文件的区别
/etc/profile:配置全局环境变量,影响所有用户
~/.bash_profile :配置个人环境,影响一个用户
/etc/bashrc :配置全局的别名或者shell选项,影响所有用户
~/.bashrc :配置个人别名或者shell选项,影响一个用户
补充:使用env命令可以查看全局变量

3.登录和非登录Shell区别
登录Shell负责系统全局环境初始化,会读取所有启动配置文件
非登录Shell默认会继承登录shell的环境变量,为了加快速度,无需读取所有启动配置文件,只需读取少量局部配置文件

4.退出登录Shell:~/.bash_logout

Bash的命令历史
1.命令历史
保存用户曾经执行过的命令操作
存放位置:~/.bash_history 文件

2.查看历史命令
使用↑、↓按键逐条翻看,允许编辑并重复执行 快捷键 ctrl +r(搜索字符)
执行:history
清除历史命令
执行:history -c在这里插入图片描述3.调用历史命令
!n:执行历史记录中的第n条命令
!str:执行历史记录中以“str”开头的命令(从下往上找)
!!:重复上一次的命令

4.设置记录历史命令的条数
修改 HISTSIZE 参数(默认为1000条,在初始化脚本里可以修改,也可以在最后生效的脚本里添加)在这里插入图片描述Bash的命令别名
1.命令别名
为使用频率较高的复杂命令行设置简短的调用名称
存放位置:~/.bashrc
2.查看命令别名
格式:alias [别名]
设置命令别名
执行:alias 别名=‘实际执行的命令’
取消已设置的命令别名
格式:unalias 别名
unalias -a在这里插入图片描述编写第一个shell脚本
1.编写脚本代码
方法一:使用vim文本编辑器
每行一条Linux命令,按执行顺序依次编写在这里插入图片描述方法二:用notepad++连接Linux写脚本
打开脚本文件后,要检查:文件格式,看右下角是不是UNIX; 文件编码是不是UTF-8;
2.赋予可执行权限
使脚本具有可执行属性在这里插入图片描述3.执行脚本文件 (重要)
方法一:脚本文件路径(要求文件有X权限)
方法二:bash 脚本文件路径
方法三:source 或者. 脚本文件路径
结论:前两种方法,会产生子进程(子bash进程),会被另一个启动的另一个bash解析。第三种方法不会产生子进程。那么脚本中的命令行就会在当前进程中(当前bash)解析和执行
Shell脚本,执行顺序是:从上往下,解析一行,执行一行在这里插入图片描述4.更完善的脚本构成
脚本声明
注释信息
可执行语句在这里插入图片描述Shell变量的作用,类型
1.变量的概念
变量是计算机程序中用来存储数据的比较抽象的概念。存在内存中。
引用变量就是取变量值 shell使用$来引用变量 例如:a=123 引用变量 $a $a就是123

2.变量的作用
为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化

3.变量的类型
自定义变量:由用户自己定义、修改和使用
环境变量:由系统维护,用于设置工作环境
位置变量:通过命令行给脚本程序传递参数
预定义变量:Bash中内置的一类变量,不能直接修改

4.按变量使用的范围
局部变量:只在当前的shell中有效
全局变量:子shell会从父shell继承的变量

自定义变量
1.定义新的变量
变量名要求以英文字母或下划线开头,不能以数字开头,区分大小写,约定俗成为大写,但不强制,变量名要有意义
等号两边不要空格 有空格用双引号
格式:变量名=变量值
2.查看变量的值
格式:echo 变 量 名 ( 引 用 变 量 当 前 是 输 出 变 量 ) ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20190410212100842. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值