当前位置: 首页 > wzjs >正文

湖北长城建设实业有限公司网站网站模板搭建

湖北长城建设实业有限公司网站,网站模板搭建,天津百度做网站多少钱,开发小程序需要多久文章目录 1. 修改vim配置文件自动添加注释2. 故障案例:Windows上写的Shell脚本上传到Linux系统上运行报错3. 脚本运行方法4. 变量4.1 普通变量4.2 环境变量4.3 特殊变量4.4 案例:书写ping检查脚本,检查脚本传入的第一个参数4.5 面试题&#x…

文章目录

  • 1. 修改vim配置文件自动添加注释
  • 2. 故障案例:Windows上写的Shell脚本上传到Linux系统上运行报错
  • 3. 脚本运行方法
  • 4. 变量
    • 4.1 普通变量
    • 4.2 环境变量
    • 4.3 特殊变量
    • 4.4 案例:书写ping检查脚本,检查脚本传入的第一个参数
    • 4.5 面试题:$n,n大于9后会有什么问题?
  • 5. if判断
    • 5.1 比较大小
    • 5.2 案例:书写ping检查域名/ip的脚本
    • 5.3 案例:检查指定用户是否存在
    • 5.4 案例:书写回收站脚本,执行rm的时候调用mv命令移动指定文件或目录到/recycle目录下
  • 6. for循环
    • 6.1 案例:批量添加用户
    • 6.2 案例:检查系统中可登录用户的uid、gid信息
    • 6.3 批量检查ip/domain是否可以访问
  • 7. 思维导图

1. 修改vim配置文件自动添加注释

  • vim的配置文件:/etc/vimrc(Kylin),/etc/vim/vimrc(ubuntu)
  • 添加下面配置:
autocmd BufNewFile *.py,*.cc,*.sh,*.java,*.bash,Dockerfile,docker-compose.yml exec ":call SetTitle()"func SetTitle()  if expand("%:e") =~ 'sh\|bash'  call setline(1,"#!/bin/bash")call setline(2, "##############################################################")  call setline(3, "# File Name: ".expand("%"))call setline(4, "# Version: V1.0")call setline(5, "# Author: SunKexu")call setline(6, "# Organization: www.oldboyedu.com")call setline(7, "# Description:")call setline(8, "##############################################################")call setline(9, "")endif  if expand("%") == 'Dockerfile'  call setline(1, "#####################Dockerfile###############################")call setline(2, "##############################################################")  call setline(3, "# File Name: ".expand("%"))call setline(4, "# Version: V1.0")call setline(5, "# Author: SunKexu")call setline(6, "# Organization: www.oldboyedu.com")call setline(7, "# Description:")call setline(8, "##############################################################")call setline(9, "")call setline(10, "FROM")call setline(11, "LABEL maintaniner='oldboy  lidao@oldboyedu.com' author=lidao996")call setline(12, "CMD []")endif  if expand("%") == 'docker-compose.yml'  call setline(1, "#####################docker-compose###########################")call setline(2, "##############################################################")  call setline(3, "# File Name: ".expand("%"))call setline(4, "# Version: V1.0")call setline(5, "# Author: SunKexu")call setline(6, "# Organization: www.oldboyedu.com")call setline(7, "# Description:")call setline(8, "##############################################################")call setline(9, "")call setline(10, "version: '3.3'")call setline(11, "services:")call setline(12, "volumes:")endif  
endfunc

2. 故障案例:Windows上写的Shell脚本上传到Linux系统上运行报错

  • 原因:Windows下的回车符是\r\n,Linux下的回车符是\n,因此报错。可以用 cat -n查看详细内容
  • 解决方法:dos2unix,使用该命令将脚本格式转换为Linux的格式

3. 脚本运行方法

方法使用场景
bash/sh最常用的方法,ubuntu中不能用sh
路径运行不推荐使用,因为可能有权限问题导致失败,需要给脚本执行权限
source/.运行脚本/加载带有变量、自定义函数库;
1.加载全局变量配置文件时使用
2.实现include功能,,加载子脚本

4. 变量

4.1 普通变量

变量命令规则:

  • 不能以数字开头
  • 变量名应有具体含义

4.2 环境变量

  • 全局变量,查看全局变量的命令:env
  • export:创建或修改全局变量

4.3 特殊变量

  • 在脚本中使用
特殊变量说明
$nn是数字,表示第n个脚本参数
$0脚本名字
$#脚本参数个数
$*/$@取出所有脚本参数
$?上一个命令的返回值;0表示正确,非0表示错误

4.4 案例:书写ping检查脚本,检查脚本传入的第一个参数

[root@oldboy99-Kylin /server/scripts]# cat ping.sh 
#!/bin/bash
##############################################################
# File Name: ping.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
##############################################################ip=$1ping -c 1 $ip
[root@oldboy99-Kylin /server/scripts]# bash ping.sh jd.com
PING jd.com (211.144.27.126) 56(84) bytes of data.
64 bytes from 211.144.27.126 (211.144.27.126): icmp_seq=1 ttl=128 time=136 ms--- jd.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 136.231/136.231/136.231/0.000 ms

4.5 面试题:$n,n大于9后会有什么问题?

问题现象:

  • $n不能作为整体被解析,需要用大括号使n作为一个整体
[root@oldboy99-Kylin /server/scripts]# cat test.sh 
#!/bin/bash
##############################################################
# File Name: test.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
##############################################################echo $9 $10 $11
[root@oldboy99-Kylin /server/scripts]# bash test.sh {a..z}
i a0 a1

修改后:

[root@oldboy99-Kylin /server/scripts]# cat test.sh
#!/bin/bash
##############################################################
# File Name: test.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
##############################################################echo $9 ${10} ${11}
[root@oldboy99-Kylin /server/scripts]# bash test.sh {a..z}
i j k

5. if判断

5.1 比较大小

判断if符号
等于-eq
不等于-ne
大于-gt
大于等于-ge
小于-lt
小于等于-le

5.2 案例:书写ping检查域名/ip的脚本

[root@oldboy99-Kylin /server/scripts]# cat ping.sh 
#!/bin/bash
##############################################################
# File Name: ping.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
ip=$1# ping
ping -c2 $ip >/dev/null 2>&1# if
if [ $? -eq 0 ];thenecho "${ip} 可以访问"
elseecho "${ip} 不能访问"
fi[root@oldboy99-Kylin /server/scripts]# bash ping.sh jd.com
jd.com 可以访问

修改版:

[root@oldboy99-Kylin /server/scripts]# cat ping.sh 
#!/bin/bash
##############################################################
# File Name: ping.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
ip=$1# 检查是否有参数
if [ $# -ne 1 ];thenecho "Usage:$0 ip/domain"exit 1 #退出脚本,返回值是1
fi# ping
ping -c2 $ip >/dev/null 2>&1# if
if [ $? -eq 0 ];thenecho "${ip} 可以访问"
elseecho "${ip} 不能访问"
fi[root@oldboy99-Kylin /server/scripts]# bash ping.sh www.qq.com
www.qq.com 可以访问

5.3 案例:检查指定用户是否存在

[root@oldboy99-Kylin /server/scripts]# cat check_user.sh 
#!/bin/bash
##############################################################
# File Name: check_user.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
user=$1# command
# 检查参数个数
if [ $# -ne 1 ];thenecho "usage: $0 username"exit 1
fiid ${user} >/dev/null 2>&1
if [ $? -eq 0 ];thenecho "${user}用户存在"
elseecho "${user}用户不存在"fi[root@oldboy99-Kylin /server/scripts]# bash check_user.sh mysql
mysql用户不存在

5.4 案例:书写回收站脚本,执行rm的时候调用mv命令移动指定文件或目录到/recycle目录下

  • mktemp:创建临时文件或目录
  • -d:创建目录
  • -p 路径:指定临时文件或目录存放位置
[root@oldboy99-Kylin /server/scripts]# cat recycle.sh 
#!/bin/bash
##############################################################
# File Name: recycle.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
files="$*"
recy_dir="/recycle"# command
# 检查参数个数
if [ $# -eq 0 ];thenecho "usage: $0 filename"exit 1
fi
# 检查用户是否为root
if [ $UID -ne 0 ];thenecho "请使用root删除,普通用户请使用mv自行操作"exit 2
fimv ${files} ${recy_dir} >>/dev/null 2>&1if [ $? -eq 0 ];thenecho "删除成功!"
elseecho "删除失败"
fi
[root@oldboy99-Kylin /server/scripts]# mktemp -dp ./
./tmp.KKJkrjumyK
[root@oldboy99-Kylin /server/scripts]# alias |grep rm
alias rm='bash /server/scripts/recycle.sh'
[root@oldboy99-Kylin /server/scripts]# rm ./tmp.KKJkrjumyK/
删除成功!

6. for循环

6.1 案例:批量添加用户

[root@oldboy99-Kylin /server/scripts]# for name in oldboy{01..10}; do useradd $name;done
[root@oldboy99-Kylin /server/scripts]# tail /etc/passwd
oldboy01:x:1003:1003::/home/oldboy01:/bin/bash
oldboy02:x:1004:1004::/home/oldboy02:/bin/bash
oldboy03:x:1005:1005::/home/oldboy03:/bin/bash
oldboy04:x:1006:1006::/home/oldboy04:/bin/bash
oldboy05:x:1007:1007::/home/oldboy05:/bin/bash
oldboy06:x:1008:1008::/home/oldboy06:/bin/bash
oldboy07:x:1009:1009::/home/oldboy07:/bin/bash
oldboy08:x:1010:1010::/home/oldboy08:/bin/bash
oldboy09:x:1011:1011::/home/oldboy09:/bin/bash
oldboy10:x:1012:1012::/home/oldboy10:/bin/bash

6.2 案例:检查系统中可登录用户的uid、gid信息

[root@oldboy99-Kylin /server/scripts]# cat check_login.sh
#!/bin/bash
##############################################################
# File Name: check_login.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
export LANG=en_US.UTF-8users=`grep '/bin/bash' /etc/passwd |awk -F ':' '{print $1}'`# for
for name in $users
douid=`id $name |awk -F '[ =]' '{print $2}'`gid=`id $name |awk -F '[ =]' '{print $4}'`group=`id $name |awk -F '[ =]' '{print $6}'`echo "用户名:$name,用户id:$uid,用户组:$gid,用户组信息:$group"
done
[root@oldboy99-Kylin /server/scripts]# bash check_login.sh
用户名:root,用户id:0(root),用户组:0(root),用户组信息:0(root)
用户名:oldboy,用户id:1000(oldboy),用户组:1000(oldboy),用户组信息:1000(oldboy)
用户名:oldboy01,用户id:1003(oldboy01),用户组:1003(oldboy01),用户组信息:1003(oldboy01)
用户名:oldboy02,用户id:1004(oldboy02),用户组:1004(oldboy02),用户组信息:1004(oldboy02)
用户名:oldboy03,用户id:1005(oldboy03),用户组:1005(oldboy03),用户组信息:1005(oldboy03)
用户名:oldboy04,用户id:1006(oldboy04),用户组:1006(oldboy04),用户组信息:1006(oldboy04)
用户名:oldboy05,用户id:1007(oldboy05),用户组:1007(oldboy05),用户组信息:1007(oldboy05)
用户名:oldboy06,用户id:1008(oldboy06),用户组:1008(oldboy06),用户组信息:1008(oldboy06)
用户名:oldboy07,用户id:1009(oldboy07),用户组:1009(oldboy07),用户组信息:1009(oldboy07)
用户名:oldboy08,用户id:1010(oldboy08),用户组:1010(oldboy08),用户组信息:1010(oldboy08)
用户名:oldboy09,用户id:1011(oldboy09),用户组:1011(oldboy09),用户组信息:1011(oldboy09)
用户名:oldboy10,用户id:1012(oldboy10),用户组:1012(oldboy10),用户组信息:1012(oldboy10)

6.3 批量检查ip/domain是否可以访问

[root@oldboy99-Kylin /server/scripts]# cat ping.sh 
#!/bin/bash
##############################################################
# File Name: ping.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:
############################################################### vars
ips=$*# 检查是否有参数
if [ $# -eq 0 ];thenecho "Usage:$0 ip/domain"exit 1 #退出脚本,返回值是1
fi# ping
for ip in $ips
doping -c2 $ip >/dev/null 2>&1# ifif [ $? -eq 0 ];thenecho "${ip} 可以访问"elseecho "${ip} 不能访问"
fi
done
[root@oldboy99-Kylin /server/scripts]# bash ping.sh qq.com baidu.com
qq.com 可以访问
baidu.com 可以访问

7. 思维导图

【金山文档 | WPS云文档】 思维导图 https://kdocs.cn/l/co3I7PtpTYQX

http://www.dtcms.com/wzjs/67972.html

相关文章:

  • 注册网站代码全网营销是什么意思
  • 网站页脚信息seo关键词找29火星软件
  • 深圳网站建设外贸公司排名b2b电商平台
  • 个人网站可以做百度推广吗全国疫情最新信息
  • 郴州网站建设企业常德网站seo
  • 网站建设 服饰鞋帽惠州seo计费
  • 怎样学好网站开发今日热点新闻事件及评论
  • wamp做网站seo视频教程百度云
  • 哪些网站开业做简单海报品牌全网推广
  • 一级a做爰片免费网站今日最新足球推荐
  • 网站策划报告书怎么做百度引流怎么推广
  • 在网上做网站百度客服在线咨询人工服务
  • wordpress调用图标搜索引擎seo如何赚钱
  • 惠州个人做网站联系人哈尔滨网站优化流程
  • 广州网站建设优化电商网站开发平台有哪些
  • 建设网站的目标客户群武汉新闻最新消息
  • 坊网站建设宁波seo免费优化软件
  • 嘉兴外贸网站建设环球贸易网
  • 做网站还 淘宝网络运营seo是什么
  • 设计网站behance市场调研方案范文
  • wordpress专业站内优化主要从哪些方面进行
  • 什么叫网站定位天津网站排名提升多少钱
  • 动态网站开发课程设计怎样在百度做广告宣传
  • b2c网站技术架构怎么开展网络营销推广
  • 兰州做网站公司有哪些网络营销比较成功的企业
  • 建设彩票网站需要多少投资营销策划方案公司
  • 网站的百度地图怎么做的百度手机助手app安卓版官方下载
  • wordpress删除重装谷歌网站优化推广
  • 做网站建设的网站郴州网站seo
  • 郑州哪有做网站的seo网页优化培训