版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Shell应用1Shell介绍目录2Shell变量3Shell第一个脚本Shell介绍Shell的作用Shell的作用——命令解释器,“翻译官”介于系统内核与用户之间,负责解释命令行2024/3/14Shell计算机用户应用程序Linux内核输入输入控制控制系统硬件输出输出Shell的作用用户的登录Shell登录后默认使用的Shell程序,一般为/bin/bash不同Shell的内部指令、运行环境等会有所区别2024/3/15[kylin@localhost~]#cat/etc/shells/bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh/bin/kshBash简介Bash(BourneAgainSHell)是GNU计划的一个组件与Unix上的BourneShell完全兼容,是其增强版本支持命令行输入、操作历史、快捷键、输入输出重定向、管道、变量等功能2024/3/16通配符*代表0个到无穷多个任意字符。?
代表一定有一个任意字符。[]
代表一定有一个在括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是a,b,c,d这四个任何一个
。[-]若有减号在中括号内时,代表在编码顺序内的所有字符。例如[0-9]代表0到9之间的所有数字,因为数字的语系编码是连续的!。[!]若中括号内的第一个字符为感叹号符号(!),那表示反向选择。2024/3/17常见特殊符号2024/3/18!:
执行历史命令!!执行上一条命令$:
变量中取内容符+-*/%:
对应数学运算加减乘除取余数&:
后台执行;:
分号可以在shell中一行执行多个命令,命令之间用分号分割\:
转义字符``:
反引号命令中执行命令echo"todayis`date+%F`"'':
单引号,脚本中字符串要用单引号引起来,但是不同于双引号的是,单引号不解释变量"":
双引号,脚本中出现的字符串可以用双引号引起来重定向>覆盖输入>>追加输入<输出<<追加输出管道命令|:管道符上一个命令的输出作为下一个命令的输入catfilename|grep"abc"常用的热键Ctrl+d输入已结束Ctrl+c键盘中断请求Ctrl+s暂停屏幕输出Ctrl+q恢复屏幕输出Ctrl+l清屏,相当于clearTab自动补完命令行与文件名Ctrl+u删除当前光标前的所有字符Ctrl+k删除当前光标后的所有字符2024/3/19Shell变量02Shell变量描述变量作用
方便用户或程序将数据临时存入内存或者从内存中读出变量的定义简单的说,就是让某一个特定字符串代表不固定的内容就是了。变量具有可变性和方便性,为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
自定义变量、本地变量、全局变量、预定义变量2024/3/111变量赋值赋值符号=
变量名=值赋值时使用引号的区别双引号:允许通过$符号引用其他变量值单引号:禁止引用其他变量值,$视为普通字符从键盘输入内容为变量赋值格式:read[-p
"提示信息"]变量名2024/3/112自定义变量用户自定义的变量,定义在脚本或者当前终端中,脚本执行完毕或终端结束变量失效。VAR1=1age=18整形name=‘kylin’字符串score=88.8浮点环境变量环境变量一般由系统提前创建,用来设置用户的工作环境用户可以用set或者env来查询环境变量常见的环境变量:PWD、PATHUSER、LOGNAME、UID、SHELL、HOMEPS1、$PS22024/3/114[kylin@localhost~]#echo$PATHusr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/kylin/bin[kylin@localhost~]#PATH="$PATH:/kylin"[kylin@localhost~]#echo$PATHusr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/kylin/bin:/kylin全局变量通过export命令将本地变量定义为全局变量格式1:export
变量名...格式2:export变量名=变量值…2024/3/115[kylin@localhost~]#echo"$Product$Version"kylin4.0[kylin@localhost~]#exportProductVersion[kylin@localhost~]#bash[kylin@localhost~]#echo"$Product$Version"kylin4.0[kylin@localhost~]#exit导出为全局变量子程序引用全局变量预定义变量$#:命令行中位置变量的个数$*:所有位置变量的内容$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错$0:当前执行的进程/程序名2024/3/116[kylin@localhost~]#catmybak.sh#!/bin/bashTARFILE=beifen-`date+%s`.tgztarzcf$TARFILE$*&>/dev/nullecho"已执行$0脚本,"echo"共完成$#个对象的备份"echo“具体内容包括:$*”[kylin@localhost~]#./mybak.sh/etc/passwd/etc/shadow已执行./mybak.sh脚本,共完成2个对象的备份具体包括:/etc/passwd/etc/shadowunset变量名取消变量[kylin@localhost~]#echo"$Productkylin[kylin@localhost~]#unsetProduct[kylin@localhost~]#echo"$Product"[kylin@localhost~]#通过unset命令可释放变量,回收变量占用的内容空间变量有效期默认情况下,在shell下的用户变量、alias等,只在此次登录中有效。一旦关闭终端或注销后,则将会设置恢复初始值。用户可以将这些设置放入一个系统环境配置文件中,使其长期生效。每一个用户都有一个登录shell,且默认为bash,当用户打开一个bash时,系统就去读取~/.bashrc配置文件。因此可以将相关的用户设定放入次文件中。2024/3/118环境配置文件Bash会在用户登录时,主要读取下列4个环境配置文件:
全局配置文件:/etc/profile/etc/bashrc
用户设置文件:~/.bash_profile~/.bashrc2024/3/119/etc/profile/etc/profile.d/*.sh/etc/bashrc~/.bashrc~/.bash_profile开始使用shellShell第一个脚本03编写第一个Shell脚本编写脚本代码使用vim文本编辑器每行一条Linux命令,按执行顺序依次编写2024/3/121[kylin@localhost~]#vifirst.shcd/boot/pwdls-lhvml*编写第一个Shell脚本赋予可执行权限使脚本具有可执行属性2024/3/122[kylin@localhost~]#chmod+xfirst.sh[kylin@localhost~]#ls-lfirst.sh-rwxr-xr-x1kylinkylin14404-2615:02first.sh编写第一个Shell脚本执行脚本文件方法一:脚本文件路径(需要x权限)方法二:bash脚本文件路径方法三:source脚本文件路径2024/3/123[kylin@localhost~]#./first.sh/boot-rwxr-xr-x1rootroot8.9M4月1511:36vmlinuz-4.19.90-25.14.v2101.ky10.aarch64[kylin@localhost~]#bash/first.sh/boot-rwxr-xr-x1rootroot8.9M4月1511:36vmlinuz-4.19.90-25.14.v2101.ky10.aarch64[kylin@localhost~]#source/first.sh/boot-rwxr-xr-x1rootroot8.9M4月1511:36vmlinuz-4.19.90-25.14.v2101.ky10.aarch64编写第一个Shell脚本更完善的脚本构成脚本声明注释信息可执行语句2024/3/124[kylin@localhost~]#vi/first.sh#!/bin/bash#ThisismyfirstShell-Script.cd/bootecho"当前的目录位于:"pwdecho"其中以vml开头的文件包括:"ls-lhvml*输出友好提示信息Shell应用1Shell介绍目录2Shell变量3Shell第一个脚本Shell变量Shell变量描述变量作用
方便用户或程序将数据临时存入内存或者从内存中读出变量的定义简单的说,就是让某一个特定字符串代表不固定的内容就是了。变量具有可变性和方便性,为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
自定义变量、本地变量、全局变量、预定义变量2024/3/128变量赋值赋值符号=
变量名=值赋值时使用引号的区别双引号:允许通过$符号引用其他变量值单引号:禁止引用其他变量值,$视为普通字符从键盘输入内容为变量赋值格式:read[-p
"提示信息"]变量名2024/3/129自定义变量用户自定义的变量,定义在脚本或者当前终端中,脚本执行完毕或终端结束变量失效。VAR1=1age=18整形name=‘kylin’字符串score=88.8浮点环境变量环境变量一般由系统提前创建,用来设置用户的工作环境用户可以用set或者env来查询环境变量常见的环境变量:PWD、PATHUSER、LOGNAME、UID、SHELL、HOMEPS1、$PS22024/3/131[kylin@localhost~]#echo$PATHusr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/kylin/bin[kylin@localhost~]#PATH="$PATH:/kylin"[kylin@localhost~]#echo$PATHusr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/kylin/bin:/kylin全局变量通过export命令将本地变量定义为全局变量格式1:export
变量名...格式2:export变量名=变量值…2024/3/132[kylin@localhost~]#echo"$Product$Version"kylin4.0[kylin@localhost~]#exportProductVersion[kylin@localhost~]#bash[kylin@localhost~]#echo"$Product$Version"kylin4.0[kylin@localhost~]#exit导出为全局变量子程序引用全局变量预定义变量$#:命令行中位置变量的个数$*:所有位置变量的内容$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错$0:当前执行的进程/程序名2024/3/133[kylin@localhost~]#catmybak.sh#!/bin/bashTARFILE=beifen-`date+%s`.tgztarzcf$TARFILE$*&>/dev/nullecho"已执行$0脚本,"echo"共完成$#个对象的备份"echo“具体内容包括:$*”[kylin@localhost~]#./mybak.sh/etc/passwd/etc/shadow已执行./mybak.sh脚本,共完成2个对象的备份具体包括:/etc/passwd/etc/shadowunset变量名取消变量[kylin@localhost~]#echo"$Productkylin[kylin@localhost~]#unsetProduct[kylin@localhost~]#echo"$Product"[kylin@localhost~]#通过unset命令可释放变量,回收变量占用的内容空间变量有效期默认情况下,在shell下的用户变量、alias等,只在此次登录中有效。一旦关闭终端或注销后,则将会设置恢复初始值。用户可以将这些设置放入一个系统环境配置文件中,使其长期生效。每一个用户都有一个登录shell,且默认为bash,当用户打开一个bash时,系统就去读取~/.bashrc配置文件。因此可以将相关的用户设定放入次文件中。2024/3/135环境配置文件Bash会在用户登录时,主要读取下列4个环境配置文件:
全局配置文件:/etc/profile/etc/bashrc
用户设置文件:~/.bash_profile~/.bashrc2024/3/136/etc/profile/etc/profile.d/*.sh/etc/bashrc~/.bashrc~/.bash_profile开始使用shell编写第一个Shell脚本编写脚本代码使用vim文本编辑器每行一条Linux命令,按执行顺序依次编写2024/3/137[kylin@localhost~]#vifirst.shcd/boot/pwdls-lhvml*编写第一个Shell脚本赋予可执行权限使脚本具有可执行属性2024/3/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京信息工程大学《应用软件基础》2022-2023学年期末试卷
- 光学仪器在冶金工程中的应用考核试卷
- 宠物脱毛疗法减轻宠物过敏和脱毛问题考核试卷
- 创业者的团队激励与绩效评估考核试卷
- 企业危机管理与业务恢复计划策略考核试卷
- 南京信息工程大学《向量微积分》2023-2024学年第一学期期末试卷
- 放射性金属矿的矿产资源开发与保护考核试卷
- 制造业绿色转型可持续生产的实践考核试卷
- 《美好生活视域下大学生劳动观教育研究》
- 信息系统开发流程控制考核试卷
- GA/T 1629-2019法庭科学血液、尿液中百草枯检验气相色谱和气相色谱-质谱法
- 开题报告 地方政府融资平台问题分析与转型发展研究-以A平台公司为例
- 中小学幼儿园师德师风监测台账(对教师)
- 科技改变生活-课件
- UPS电源蓄电池更换实施方案
- 2022年中级经济师《专业知识与实务(人力资源管理)》考试题库(含解析)
- 结直肠癌肝转移消融课件
- 【教师必备】部编版五年级语文上册第三单元【集体备课】
- 项目管理系列课程之进度管理课件
- 城市轨道交通票务管理07票务差错和票务事故处理
- 医院发票模板
评论
0/150
提交评论