网站开发教程Shell编程一_第1页
网站开发教程Shell编程一_第2页
网站开发教程Shell编程一_第3页
网站开发教程Shell编程一_第4页
网站开发教程Shell编程一_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SHELL编程-1单元目标1.shell的作用和历史2.shell的常用功能3.shell变量种类3.shell脚本的运行4.编写简单的shell脚本Shell的作用及常见种类Shell计算机用户应用程序Linux内核输入输入控制控制系统硬件输出输出Shell的作用--命令解释器,“翻译官”Bash的常用功能Tab键自动补齐命令历史命令别名标准输入输出重定向操作管道操作Bash的命令历史命令历史保存用户曾经执行过的命令操作存放位置:~/.bash_history文件查看历史命令使用↑、↓按键逐条翻看,允许编辑并重复执行执行:history清除历史命令执行:history-c[root@localhostroot]#history……556useraddjerry557passwdjerry558crontab-e-ujerry559crontab-l-ujerryBash的命令历史调用历史命令!n:执行历史记录中的第n条命令!str:执行历史记录中以“str”开头的命令设置记录历史命令的条数修改HISTSIZE参数(默认为1000条)[root@localhostroot]#!562crontab-l-ujerrynocrontabforjerry[root@localhost~]#vi/etc/profileHISTSIZE=200Bash的命令别名命令别名为使用频率较高的复杂命令行设置简短的调用名称存放位置:~/.bashrc查看命令别名格式:alias[别名]设置命令别名执行:alias别名='实际执行的命令'取消已设置的命令别名

格式:unalias

别名[root@localhost~]#aliasaliascp='cp-i'aliasl.='ls-d.*--color=tty'aliasll='ls-l--color=tty'aliasls='ls--color=tty'aliasmv='mv-i'aliasrm='rm-i'Bash的标准输入输出交互式硬件设备标准输入:从该设备接收用户输入的数据标准输出:通过该设备向用户输出数据标准错误:通过该设备报告执行出错信息类型设备文件文件描述编号默认设备标准输入/dev/stdin0键盘标准输出/dev/stdout1显示器标准错误输出/dev/stderr2显示器Bash的重定向操作改变标准输入、标准输出、标准错误的方向类型操作符用途重定向标准输入<将命令中接收输入的途径由默认的键盘更改为指定的文件重定向标准输出>将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上>>将命令执行的结果追加输出到指定文件重定向标准错误2>清空指定文件的内容,并将标准错误信息保存到该文件中2>>将标准错误信息追加输出到指定的文件中重定向标准输出和标准错误&>将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上Bash的管道操作管道操作符号“|”连接左右两个命令,将左侧的命令输出的结果,作为右侧命令的输入(处理对象)格式:cmd1|cmd2[...|cmdn][root@localhost~]#free-m|head-2totalusedfreesharedbufferscachedMem:503339163087199[root@localhost~]#free-m|grep"Mem"|awk'{print$2,$4}'503163awk,以空格或制表位为分隔,输出指定第n列数据Shell变量的应用Shell变量为灵活管理Linux系统提供特定参数,有两层意思:1.变量名:使用固定的名称,由系统预设或用户定义2.变量值:能够根据用户设置、系统环境变化而变化Shell变量的种类用户自定义变量:由用户自己定义、修改和使用环境变量:由系统维护,用于设置用户的Shell工作环境,只有极少数的变量用户可以修改预定义变量:Bash预定义的特殊变量,不能直接修改位置变量:通过命令行给程序传递执行参数变量的赋值与引用定义新的变量变量名要以英文字母或下划线开头,区分大小写格式:变量名=变量值查看变量的值格式:echo$变量名[root@localhost~]#DAY=Sunday[root@localhost~]#echo$DAYSunday通过$符号引用指定名称的变量值变量的赋值与引用从键盘输入内容为变量赋值格式:read[-p"信息"]变量名结合不同的引号为变量赋值双引号“”:允许通过$符号引用其他变量值单引号‘’

:禁止引用其他变量值,$视为普通字符反撇号``:将命令执行的结果输出给变量变量的赋值与引用设置变量的作用范围格式:export

变量名...export变量名=变量值

[...变量名n=变量值n]清除用户定义的变量格式:unset变量名变量赋值、引用和删除[root@localhost~]#echo$FILESVR[root@localhost~]#exportFILESVR[root@localhost~]#zsh[root@localhost]~#echo$FILESVR[root@localhost]~#exit[root@localhostroot]#unsetFILESVR[root@localhostroot]#echo$FILESVR数值变量的运算计算整数表达式的运算结果格式:expr变量1运算符变量2...[运算符变量n]expr的常用运算符加法运算:+减法运算:-乘法运算:\*除法运算:/求模(取余)运算:%环境变量1.环境变量配置文件全局配置文件:/etc/profile用户配置文件:~/.bash_profile2.查看环境变量set命令可以查看所有的Shell变量,其中包括环境变量用set查看环境变量[root@localhostroot]#setSHELL=/bin/bashTERM=xtermUID=0USER=rootconsoletype=pty环境变量常见的环境变量:$USER、$LOGNAME$UID、$SHELL、$HOME$PWD、$PATH$PS1、$PS2查看环境变量[root@localhost~]#echo$PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost~]#PATH="/opt/bin:$PATH"[root@localhost~]#echo$PATH/opt/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost~]#./exam01onetwothreefourfivesix位置变量表示为$n,n为1~9之间的数字$1,第1个位置参数$2,第2个位置参数$6,第6个位置参数预定义变量表示形式如下$#:命令行中位置参数的个数$*:所有位置参数的内容$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错$$:当前所在进程的进程号$!:后台运行的最后一个进程号$0:当前执行的进程/程序名[root@localhost~]#bash[root@localhost~]#echo$0$$bash5887[root@localhost~]#exxitbash:exxit:commandnotfound[root@localhost~]#echo$?127[root@localhost~]#exitexit[root@localhost~]#echo$?0查看当前所执行进程的名称、PID号执行一条错误命令返回非0值,表示上一条命令异常返回0值,表示上一条命令正常Shell脚本的概念Shell脚本1.用途:完成特定的、较复杂的系统管理任务2.格式:集中保存多条Linux命令,普通文本文件3.执行方式:按照预设的顺序依次解释执行编写可执行的Shell脚本建立包含执行语句的脚本文件#脚本文件中包括的内容运行环境设置:#!/bin/bash注释信息:以#开始的说明性文字可执行的Linux命令行为脚本文件添加可执行权限给shell脚本增加执行权限[root@localhost~]#virepboot.sh#!/bin/bash#Toshowusageof/bootdirectoryandmodeofkernelfile.echo"Useageof/boot:"du-sh/bootecho"Themodeofkernelfile:"ls-lh/boot/vmlinuz-*[root@localhost~]#chmoda+xrepboot.sh

运行Shell脚本程序1.直接执行具有“x”权限的脚本文件例如:./repboot.sh2.使用指定的解释器程序执行脚本内容例如:bashrepboot.sh、shrepboot.sh3.通过source命令(或.)读取脚本内容执行

例如:souce

repboot.sh

或.hello.sh

Shell脚本应用示例示例1:每周五17:30清理FTP服务器的公共共享目录检查/var/ftp/pub/目录,将其中所有子目录及文件的详细列表、当时的时间信息追加保存到/var/log/pubdir.log日志文件中,然后清空该目录[root@localhost~]#vi/opt/ftpclean.sh#!/bin/bashdate>>/var/log/pubdir.logls-lhR/var/ftp/pub>>/var/log/pubdir.logrm-rf/var/ftp/pub/*[root@localhost~]#crontab-e3017**5/opt/ftpclean.shShell脚本应用示例示例2:每隔3天对数据库目录做一次完整备份统计/var/lib/mysql目录占用的空间大小、查看当前的日期,并记录到临时文件/tmp/dbinfo.txt中将/tmp/dbinfo.txt文件、/var/lib/mysql目录进行压缩归档,备份到/opt/dbbak/目录中备份后的包文件名中要包含当天的日期信息最后删除临时文件/tmp/dbinfo.txt[root@localhost~]#vi/opt/dbbak.sh#!/bin/bashDAY=`date+%Y%m%d`SIZE=`du-sh/var/lib/mysql`echo"Date:$DAY">>/tmp/dbinfo.txtecho"DataSize:$SIZE">>/tmp/dbinfo.txtcd/opt/dbbaktarzcvfmysqlbak-${DAY}.tar.gz/var/lib/mysql/tmp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论