您好,欢迎光临本网站![请登录][注册会员]  
文件名称: shell脚本的介绍与教学
  所属分类: Linux
  开发工具:
  文件大小: 645kb
  下载次数: 0
  上传时间: 2019-03-16
  提 供 者: hf***
 详细说明:详细的介绍了shell脚本的发展与使用以及相关的语法匹配任意一个字符 touch love loove live;‖?ve 匹配括号中任意一个字符[abc][az][09][aAz09] [io]ve [^]匹配不在范围内的字符 在子she中执行( umask000; touch file10) 仆集合 touch file{1.9} mkdir/home/[111, 222 mkdir -p/home/333 aaa, bbb, 444] cp-v/etc/hosts. bak 转义符,让元字符回归本意 mkdir echo -e atb echo -e atb echo -e anb" echo -e anb 创建文件的几种方法: 1 [root localhost N]* touch file1 2. [rootlocalhost n]# vim file2 3. [ root localhost w]# cat >file3 4, [root localhost N]# >file4 四、She‖基础 1、she脚本的写法 脚本的名字:sh为结尾 作用:使用对应的后缀名,为了不给他人造成麻烦hn02sh 仅调试 syntax error 脚本内容第一行:#!/bin/bash 作用:声明命合解释器,如果当前环境和脚本的环境一致,可以不用声明 脚本内容的第二行:说明脚本的内容,以及版本信息 2、She脚本的执行方法 root (xiaochen she]# cat 01. sh #I bin/bash #check our system #time date #free space #memory free -m 执行脚本 # Source01sh不需要执行权限 在当前she中执行 #,01.sh 不需要执行权限 在当前she中执行 bash 01, sh 不需要执行权限 在子she中执行 #,/01.sh 需要执行权限在子She中执行,对当前的she环境没有 任何的影响 #/root/01.sh 需要执行权限在子she中执行 注意:最后两种方法执行脚本时,对于管理员来说只需要由x权限,但是对于普通用户来说需要r和ⅹ的 3/64 权限 在当前she和子she|中运行的区别 root xiaochen scripts vim kkk . sh # bin /bash cd/tmp pwd [rootxiaochen script s]# sh kkk. sh /tmp rootxiaochen scripts]#. kkk. sh /tmp [rootxiaochen tmp]# 子she的原理 root localhost N]# bash /打开一个新的shel [rootlocalhost N]# cd tmp, rootlocalhost tmp]# pwd /tmp root localhost tmp]# exit exit 调试脚本 sh -n02. sh 仅调试 syntax error f sh - 01. sh 以调试的方式执行 cat o1.sh 仅调试脚本的某一部分 cd/boot set -x pwd s vm k set +X pwd d she变量 四、she‖变量 什么是she疫变量? 变量的类型 变量的定义方式 变量的运算 4/64 变量"内容"的删除和替换 she变量?用一个特定的字符串去表示不固定的内容 变量的类型 1.自定义变量 定义变量 变量名=变量值变量名必须以字母或下划线开头,区分大小 写ip1=192.168.2.115 引用变量 $变量名或${变量名} 查看变量 echo$变量名set(所有变量:包括自定义变量和环境变量) 取消变量 unse变量名 作用范围 仅在当前she中有效 2.环境变量 定义环境变量:方法-eⅫ port back_dir2=/home/ backup 方法二 export back_d1将自定义变量转换成 环境变量 引用环境变量:$变量名或${变量名} 查看环境变量:echo$变量名en例如en| grep back _d2 取消环境变量: unset变量名 变量作用范围:在当前she和子she‖效 二三二三三三三三二二二二二三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三二 C语言局部变量 全局变量 SHELL自定义变量 环境变量 三三三三三三二三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三二三三二 set 查看所有变量(包括自定变量和环境变量) env( environment)查看环境变量 案例:让 crontab等工具它们使用的编辑器是vm,而不是默认的v crontab -e 012米*米l /由于默认使用的是ⅵ,所有没有颜色 vim /etc/profile export EDItoR=vim /设置默认的编辑器为vm source /etc/profile crontab -e /有颜色 系统环境变量: 留意的一些环境变量:(系统定义的)/etc/ profile/etc/ bashrc/, bashrc~/ bash_profile rootxiaochen N]# echo $PS1 ∥/当前she提示符 Tuh Wi$ rootxiaochen N]# echo $HOSTNAME ∥/当前主机名 xiaochen. uplooking. com [rootxiaochen n] echo $ USER /当前用户 root [root xiaochen N]# echo UID /当前用户的UID [rootxiaochen n]# echo SHELL 当前使用的she /bin/bash [rootxiaochen M]# echo HISTSIZE //历史命合保存条数 5/64 1000 [rootxiaochen n]# echo $MAIL ∥/当前用户邮件路径 /var/spool mail/root [rootxiaochen M ] echo $PATH ∥会影响命合搜索路径 /usr/kerberos/sbin /usr/kerberos/bin /usr/local/sbin /usr/locay bin /sbin /bin /usr/sbin; /usr/bin /usr/ X11R6/bin: /root/bin [root baochen scripts]#echo$ RANDOM/产生0-32767的随机值 8018 [root xiaochen~]#echo$($ RANDOM%100+1)/产生1-100的随机数99/100+1 [root xiaochen N]# echo $((sRANDOM%10)) ∥)产生0-9的随机数 [root localhost N]# echo $LANG zh cn, utf8 [root localhost N]# yum grouplist grep -i chinese [root localhost~]# yum grouplist|grep-"中文" 中文支持[zh] [rootxiaochen N]# date 2016年02月20日星期大00:24:45CST rootlocalhost N]# LANG=C [root localhost N]# echo $LANG C Rootlocalhost n ]# yum grouplist i -i chinese Chinese Support [zhi root(xiaochen n]# date Sat feb2000:24:24CsT2016 示例1 Root alice bash]# cat varl. sh #test自定义变量和环境变量的作用范围 echo $url echo $USER echO $UID echo $SHELL echo"这个脚本的名字是: basename$0`" root xiaochen/]# basename/etc/ hosts/ basename:用来取出文件名 hosts 测试: [rootalicebash]#url=www.baidu.com [rootalice bash]# echo $url www.baidu.com [root alice bash]# sh var1. sh root 0 /bin/bash 这个脚本的名字是:var1sh 示例2 rootxiaochen scripts]# vim a sh # bin/bash 6/64 export x=1 echo in a, sh echo $x 凸b echo in a, sh echo sy root xiaochen scripts]# vim bsh /bin/ bash echo in b. sh echo sx 测试1: [root xiaochen scripts]# sh a sh in a sh ash:line5:/b.sh:权限不够 root(xiaochen scripts]# chmod +x bsh 测试2: 将ash中的expo去掉,重新执行ash脚本 测试3 在测试2的基础上,去掉bsh的的ⅹ权限,但是还想要达到想要的显示结果 3.位置变量 s1$2$3$4$5$6$7$8$9${10} 4.预定义变量 $0脚本名 所有的参数 所有的参数 $#参数的个数 当前进程的PID !上一个进程的PID 上一个命合的返回值 root xiaochen~]#echo$$/查看当前she的进程号 8898 示例1: vim test sh echo"第2个位置参数是$2 echo"第1个位置参数是$1 echo"第4个位置参数是$4" echo"所有参数是:$米 echo"所有参数是:$" echo"参数的个数是:$# echo"当前进程的PID是:$$" echo\$1=$1 echo\$2=$2 echo\$3=$3 echo$*=$ 7/64 eCho\$=$ echo\$#=$# eCho\$$=$$ echo $ 示例2 root xiaochen day 1]# vim jisuansh #U bin/bash echo$(($*)) [rootxiaochen day 1]# sh jisuan 1 sh 4*6-3 21 Rootxiaochen day 1]# sh jisuan sh 4*(6-3V 12 示例3 rootalice Desktop]# vim 2.sh bin/bash sleep 3 echo $s /2.sh 参考:影响 bash shel的其它文件 baSh登录和欢迎信息 letc/issue 登录前显示的信息(本地登录)Ct+At+F2 letc/issue. net 登录前显示的信息(网络登录) letc/motd 登录后显示的信息 示例1: [root directory1 N]# vim /etc/ssh/sshd_config Banner /etc/issue. net rootdirectory1v]#cat/etc/issue.net Red Hat Enterprise Linux server release 6. 4( santiago) #Kernel \r on an \m fei root yonghe jinzhi denglu root directory2 N]# ssh 172.16.130 132 Red Hat Enterprise Linux Server release 6.4 ( Santiago) #Kernel \r on an m fei root yonghe jinzhi denglu root172. 16.130. 132s password 示例2 [root station 103 N]# cat / etc/motd 你当前登录的是网站服务器!! 小心您的操作!! root(xiaochen N]# ssh 192. 168.2.3 root192. 168.2.3s password Last login Sun Mar 17 16: 18: 50 2013 from 192.. 80 8/64 你当前登录的是网站服务器 心您的操作 变量的定义方式: 1.显式赋值 变量名=变量值 示例 ip1=192168.1251 school="Beiing uplooking today 1= date +%F /`和$()叫做命合替换 echo $today 1 today 2=$(date +%F 2.read从键盘读入变量值 read-p"提示信息:"t5-n6变量名 t:时间 -n:输入的字符数 弱引用 强引用 [root xiaochen n]# school=uplooking [root xiaochen N]# echo$ischool is good uplooking is good root xiaochen N]# echo $(school is good ischool is good 示例3 #t vim first sh # bin/bash read-p"请输入要创建的目录名:" back d1 mkdir/tmp/$back_dir1 Is -ld/tmp/$back dirl eCho"创建目录成功 sh first sh 示例4:使用read截获银行卡的帐号和密码 Root localhost scripts]# cat bank.sh bin/bash read -p please input your bank card account:account stty-echo/隐藏显示,不显示输入的密码 read-p please input your bank card passwd: " -t 5 passwd stty echo/7复正常 echo echo account $account passw ord; s passwd">>/tmp/bank. txt echo "account: faccount passw ord: passwd"Imail-s hello success"alice localhost stty-echo:隐藏显示,但是不影响命合执行之后的结果显示 作业: 9/64 1、使用read读入目录名,在此目录下创建aatx文件,然后查看文件的详细信息,同时查看目录的详细信 息 变量的运算: 1.整数运算 方法-:expr expr 1+2 expr num1 +snum2 /% 方法二:$()) echo $((num1+num2)) 十-米 /% echo $((num1 +num2 echo$((5-3*2) echo$((5-3)*2) sum=$((1+2)); echo $sum 方法三:$[] echo$[5+2] eCho中5*2] 方法四:let let sum=2+3; echo ssum 2.小数运算 echo 2*4bc echo 4"bc echo" scale=2, 6/ 4bc awk BEGINprint 1/21 3开方运算 echo "sqrt(100)" bc echo sqrt(10000)"bc 4进制之间的转换 [root localhost N]# echo ibase=2; 11111111 bc //|二进制转换成十进制 255 [root localhost~]#echo" ibase=10; abase=16;11"bc/|十进制转换成16进制 [root localhost~]#echo" ibase=10; abase=2;255"bc/|+进制转换成二进制 11111111 变量内容“的删除和替换: =="内容"的删除= rootxiaochenN]#ur=www.sina.com.cn [rootxiaochen N]#echo $i#url] 获取变量值的长度 15 [root xiaochen N]# echo [url 标准查看 WWwSIna.com.ch root xiaochen N]# echo url#*. 从前往后,最短匹配 sina. com. cn rootxiaochen n]# echo furl##*] 从前往后,最长匹配 贪婪匹配(找到最靠后 的一个.) 1064
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: