善用工具(2)--Shell脚本

1、Shell脚本的基本功能及使用php

一、Shell 是什么?
  Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
  Shell 是指一种应用程序,这个应用程序提供了一个界面,用户经过这个界面访问操做系统内核的服务。
  Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。html

  

二、Shell 如何运行的?
  Shell 编程跟 java、php 编程同样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就能够了。
  Linux 的 Shell 种类众多,本教程关注的是 Bash(Bourne Again Shell),Bash 是大多数Linux 系统默认的 Shell。java

  

3 、编写一个shell脚本linux

  打开文本编辑器(可使用 vi/vim 命令来建立文件),新建一个文件 test.sh,扩展名为 sh(sh表明shell),扩展名并不影响脚本执行,见名知意就好,若是你用 php 写 shell 脚本,扩展名就用 php 好了。
  输入一些代码,内容以下:nginx

#!/bin/bash                  
echo "Hello World !" 
注释:
第一行: #! 是一个约定的标记,它告诉系统这个脚本须要什么解释器来执行,即便用哪种 Shell。
第二行: echo 命令用于向窗口输出文本。

 

四、运行 Shell 脚本有两种方法:docker

  (1)test.sh 做为可执行文件直接执行(注意给test.sh文件增长“执行”权限)
    将上面的代码保存为 test.sh,并 cd 到相应的目录,直接执行脚本"./test.sh"命令shell

./test.sh         #执行脚本文件tesh.sh

  注意,必定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也同样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录一般不在 PATH 里,因此写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。编程


  (2)执行解释器,将test.sh做为解释器参数运行
    这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名。
    注:这种方式运行的脚本,不须要在第一行指定解释器信息,写了也没用。vim

/bin/sh test.sh
/bin/bash test.sh

 

5、菜鸟教程--Shell教程数组

  Shell既然是一种编程语言,那么理所固然地支持定义变量、定义数组、接受参数传递、进行流程控制等等功能。而shell之因此说强大,是因为你能够在shell脚本中编写Linux系统支持的全部命令(包括Linux自带的命令,以及用户安装的命令,如:java、nginx、docker等),所以,你可使用shell脚原本编写“本身的指令集”,能大大简化重复性操做指令的输入。

  对于Shell编程语言的基本语法,网络上有不少教程,小六在此再也不赘述,在此仅留下菜鸟网站的Shell教程,供小白参考学习。

      推荐阅读菜鸟教程--Shell教程

 

2、小六使用Shell脚本的一些实践

  一、执行脚本,登陆个人远程服务器

  近期,小六在学习分布式技术,因而将本身的两台旧电脑作成了服务器,因为常常要经过“ssh”来远程访问服务器,因而所幸编写了两个脚本"a-server.sh"、"b-server.sh",只须要执行对应的shell脚步,就能够自动登陆到对应的远程服务器,节省了重复性的"ssh -l *** -o ServerAliveInterval=30 ***"的输入,一时令小六暗暗的小知足了一把(没办法,小六是一个很容易知足的人好吧!)。

  

  二、编写my-docker.sh脚步,接收外部的参数,根据参数动态执行"docker"命令

  近期,小六在学习docker自动化部署,因为要常常性的“启动docker容器”、“进入docker容器”、“查看docker容器的状态”等等。刚开始时,小六都是手输一个个“docker”命令,所以输入命令的动做实在是耗费了很多时间。后来想起Shell脚步,因而尝试经过shell脚原本简化命令的输入动做,具体步骤以下:

  • 首先,将"docker"命令集成到"my-docker.sh"文件中。
  • 而后,将"my-docker.sh"的父目录,添加到PATH变量中。
  • 最后,在须要执行命令时,输入"my-docker.sh 参数1 参数2"来执行对应的命令
$ my-docker.sh ps                    #执行命令:docker ps,显示docker运行的容器列表信息
$ my-docker.sh exec-n                #进入run-nginx容器
$ my-docker.sh exec run-nginx        #进入run-nginx容器

 

转载说明:本篇博客的“第一节”转载自“菜鸟教程”网站。
原文标题:Shell教程|菜鸟教程 原文地址:https:
//www.runoob.com/linux/linux-shell.html
相关文章
相关标签/搜索