开发工具:
文件大小: 645kb
下载次数: 0
上传时间: 2019-03-16
详细说明:详细的介绍了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最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.