一、 什么是shell

脚本时一种解释性语言;

shell脚本保存执行动作;

脚本判定命令的执行条件

脚本来实现动作的批量执行。
二、如何创建

vim  test.sh     ##shell脚本一般都是以.sh结尾
三、执行方法
  1.sh  test.sh              ##不执行开头的的命令
  2.chmod +x  test.sh
    /mnt/test.sh             ##执行的时候会先执行以#开头的第一句

四、脚本的调示
  sh  -x  test.sh            ##适用于所有脚本
  vim  test.sh               ##脚本必须有X权限

示例一、执行脚本编写的时候自动添加头部
   vim /etc/vimrc
   "map <F4> ms:call Xniu()<cr>'s                            ##按快捷键添加
   autocmd  BufNewFile *.sh,*.script  exec ":call Xniu()"    ##新建的文件会自动添加
   func  Xniu()
        call  append(0,"########################")
        call  append(1,"# Author   :           #")
        call  append(2,"# Date     :".strftime("%Y-%m-%d").(" #"))
        call  append(3,"# Mail     :           #")
        call  append(4,"# Version  :           #")
        call  append(5,"#                      #")
        call  append(6,"########################")
        call  append(8,"#!bin/bash")
   endfunc

示例二:编写脚本显示主机名,ip和可用用户

vim  /mnt/show_massage.sh

#!bin/bash
   echo "your hostname:    "$(hostname)
   echo "ip:               "$(ifconfig eth0 | grep  inet| head -n 1| cut -d " " -f 10) 
    echo "user for login :  "$(grep -E "bash$|tcsh$|sh$|csh$" /etc/passwd |out -d : -f 1)
 
示例三:编写脚本清空日志

vim  /mnt/clear_log.sh                ##代码编写如下

#!bin/bash
   user=`whoami`
   [ "$user" = "root" ]||{
        echo -e "\033[31mplease run this script with root!\033[0m"
        exit
    }&&{
        rm -rf /var/log/message /var/log/maillog /var/log/boot.log /var/log/secure
        touch /var/log/message /var/log/maillog /var/log/boot.log /var/log/secure
        echo  clear all
    }
示例四:颜色的控制格式

echo  -e  "\033[40,32m内容\033[0m"      
示例五: 对http的端口的修改

vim /mnt/apache_test.sh                 ##进行脚本的编写

    #!bin/bash
    [ -e "/etc/httpd/conf/httpd.conf" ]||{
        echo  Error:Apache is not installed
        exit
    }
    sed "/^Listen/cListen $1"  -i /etc/httpd/conf/httpd.conf
    systemctl  restart httpd

测试:sh  /mnt/apache_test.sh 11

netstat -antlupe  |  grep http    ##查看到端口

示例六:用户的创建和删除   

   #!bin/bash  

mass=`getent passwd $1`
   [ -z "$mass" ]&&{
        read -p "$1 is not exist,you can  do this:
        [C]reate   [S]kip
        wha  do  you  what:"  choose
        [ "$choose" = "C" -o "$choose" = "c" ]&&{
                useradd $1
                read -p "input passwd:" pas
                echo $pas|passwd --stdin  $1 &> /dev/null
                echo  "$1  is  create!!"
                exit
        }
        [ "$choose" = "S" -o "$choose" = "s" ]&&{
                echo  bye!!
                exit
        }

shell脚本实例一的更多相关文章

  1. 分享7个shell脚本实例--shell脚本练习必备

    概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...

  2. shell脚本实例,通向shell脚本大师的必经之路

    概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...

  3. shell脚本实例-系统监控

    shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...

  4. shell脚本实例

    备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个 ...

  5. shell脚本实例一,移动文件夹中大于2000B的文件到另一个文件夹

    shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` d ...

  6. shell脚本实例-mysql多机部署

    今天我给大家分享shell 安装mysql 多机部署的实例,本次实验是基于各个主机的公钥已经配置好了,如果还不会推送公钥的同学,可以看看我以前写的文章,那里面有写推公钥的实例,mysql 多机部署一般 ...

  7. shell脚本实例-菜单样例

    1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...

  8. shell脚本实例(2)

    1.传给脚本一个参数:目录,输出该目录中文件最大的,文件名和文件大小 #!/bin/bash if [ $# -ne 1 -o ! -d $1 ];then echo "Args is er ...

  9. 【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程

    我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次 ...

随机推荐

  1. Elasticsearch+Kibana+Logstash安装

    安装环境: [root@node- src]# cat /etc/redhat-release CentOS Linux release (Core) 安装之前关闭防火墙 firewalld 和 se ...

  2. [Linux 006]——grep和正则表达式

    在使用系统时,我们或多或少的有一些搜索.查找的需求,必须要在文本中搜索某个关键字,或者过滤出文本中某些特定的行.grep 命令就为我们提供了这样一个功能,同时,grep 还可以使用正则表达式进行匹配, ...

  3. 《Java程序设计》实验3

    20145318 <Java程序设计>实验3 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 PSP 队友链接 http://www.cnblogs.com/ ...

  4. 20145321 《Java程序设计》第7周学习总结

    20145321 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1 认识时间与日期 1.格林威治时间(GMT) 观察太阳得来 2.世界时(UT) 3.国 ...

  5. KALI LINUX系统初始化配置

    1.Kali Linux安装VirtualBox增强功能 VirtualBox增强功能介绍:物理机与虚拟机之间的文件共享.物理机与虚拟机之间的剪切板共享.虚拟机的direct3D支持,这样虚拟机窗口就 ...

  6. minSdk(API 21) > deviceSdk(API 17)解决

    运行一个开源的项目出现“minSdk(API 21) > deviceSdk(API 17)”的提示,因为我用的是手机是sdk(API17)的,而项目要求是最低版本是minSdk(API 21) ...

  7. java并发容器之 SynchronousQueue [转]

    SynchronousQueue 这个队列实现了 BlockingQueue接口 该队列的特点 1.容量为0,无论何时 size方法总是返回0 2. put操作阻塞,jquery插件库  直到另外一个 ...

  8. C#实现日历样式的下拉式计算器

    C#实现日历样式的下拉式计算器 原文地址:http://developer.51cto.com/art/201508/487486.htm 如果我们正在做一个类似于库存控制和计费系统的项目,有些部分可 ...

  9. Gift for GS5

    // // main.cpp // 生日快乐 // // Created by wasdns on 16/11/21. // Copyright © 2016年 wasdns. All rights ...

  10. Gym - 100712H Bridges(边—双连通分量)

    https://vjudge.net/problem/Gym-100712H 题意: 给出一个图,求添加一条边后最少的桥数量. 思路: 参考了ZSQ大神的题解http://blog.csdn.net/ ...