专栏首页运维技术迷Shell系列-编写及执行脚本

Shell系列-编写及执行脚本

一、第一个Shell脚本

1.什么是shell脚本? 提前写好可执行的语句,能够完成特定任务的文件(顺序执行,批量化处理;解释型程序)

2.shell版HelloWorld的诞生 脚本创建”三步走” -新建文本文件 -添加可执行的脚本语句(命令行) -添加x执行权限

[root@centos67-x64 /]# vim first.sh   //创建文件
#!/bin/bash
echo "Hello World"    //编写脚本语句
[root@centos67-x64 /]# chmod +x first.sh    //添加x权限
[root@centos67-x64 /]# ./first.sh     //运行脚本,查看运行结果
Hello World

二、脚本构成及执行

1.规范的脚本构成 #! :脚本声明(使用哪种解释器) # :注释信息(步骤、思路、用途、变量含义等) 可执行的语句

#!/bin/bash   //sha-bang调用标记
#A test program for shell-script  //注释信息
echo "Hello World"      //可执行的脚本语句或命令行

2.脚本的执行方式 2.1 方法一(作为”命令字”) -指定脚本文件的路径,前提是有x权限 2.2 方法二(作为”参数”)-不需要有x权限 -sh 脚本文件路径 -source 脚本文件路径 -.脚本文件路径

[root@centos67-x64 /]# sh first.sh 
Hello World
[root@centos67-x64 /]# ./first.sh 
Hello World

3.调试shell脚本 主要途径: -直接观察执行中的输出、报错信息 -通过sh -x 开启调试模式 -在可能出错的地方设置echo断点

[root@centos67-x64 /]# sh -x first.sh 
+ echo 'Hello World'
Hello World

三、简单脚本应用

1.例-1:快速配置YUM 目的:为新装的客户机配置好YUM仓库 条件:软件源位于file:///misc/cd;通过脚本建立/etc/yum.repos.d/rhel6.repo文件

[root@centos67-x64 shell]# ls /etc/yum.repos.d/
repo
[root@centos67-x64 shell]# vim rhel6.sh
#!/bin/bash
rm -rf /etc/yum.repos.d/*.repo
echo '[repo]
name=rhel6 repo
baseurl=file:///misc/cd
enable=1
gpgcheck=0
gpgkey='> /etc/yum.repos.d/rhel6.repo
[root@centos67-x64 shell]# chmod +x rhel6.sh 
[root@centos67-x64 shell]# ./rhel6.sh 
[root@centos67-x64 shell]# ls /etc/yum.repos.d/
repo  rhel6.repo
[root@centos67-x64 shell]# cat /etc/yum.repos.d/rhel6.repo 
[repo]
name=rhel6 repo
baseurl=file:///misc/cd
enable=1
gpgcheck=0
gpgkey=

2.例-2:快速搭建FTP服务器 目的:为新装的客户机搭建好vsftpd服务 条件:安装vsftpd;开启服务;开机自启

[root@centos67-x64 shell]# vim ftpon.sh
#!/bin/bash
yum -y install vsftpd &> /dev/null
/etc/init.d/vsftpd restart
chkconfig vsftpd on

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 限制用户使用su切换身份

    如果不想任何人都可以用su命令成为root或只让某些用户有权使用su命令,那么只需要修改/etc/pam.d/su文件中配置即可实现.建议尽量限制用户通过su命...

    行 者
  • PHP-循环

    php中,一共提供了以下循环语句: while:只要指定的条件成立,则循环执行代码块(在不确定循环次数的情况下使用) do….while:首先执行一次代码块,然...

    行 者
  • prometheus之监控mysql

    mysqld_exporter启动的时候需要读取mysql授权用户的一个配置文件,所以我们要先创建一下这个配置文件。

    行 者
  • MySQL用户权限的手册

    挨踢小子部落阁
  • 不借助第三方软件,Mac电脑如何将多个文件批量重命名?

    不借助第三方软件,Mac电脑如何将多个文件批量重命名?在 Finder 窗口内就可以直接批量重命名了,你知道吗?

    MAC先森
  • apache(wamp) 添加pytho

    以前搞PHP,在windows下装的是wamp极为方便,但现在要弄python,所以要下个功夫了,网上的帖子没几个有用的

    py3study
  • ubuntu环境下安装python3,配置文件正常导入自定义模块

    Ubuntu自带python,但是一般自带的python版本都比较低,我安装16.4的Ubuntu自带的python2.7,后自行安装了python 3.5

    张凝可
  • python3、ipython3、set

    安装python3及ipython整体环境,非常麻烦,不注意会经常报错,安装不成功,折腾了一天才搞定,流程记录如下:

    py3study
  • 基于.Net + SqlServer的分库分表设计方案

    在说分库分表之前,先简单介绍下网站架构,这样有助于理解为何需要分库分表这种技术。因为所有的技术,大多都是因为业务的需要而产生的.

    郑小超.
  • MD5算法,看这篇就够了

    这篇文章主要描述了MD5消息摘要算法。算法输入为任意长度的消息,输出为一个128位的消息摘要。假定两个不同的文件产生相同的报文摘要或由给定的报文摘要产生原始信息...

    IT大咖说

扫码关注云+社区

领取腾讯云代金券