shell脚本-了解shell

shell解释

shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。

shell脚本(shell script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如Windows Explorer扩展开发)。

脚本解释器

sh

即Bourne shell,POSIX(Portable Operating System Interface)标准的shell解释器,它的二进制文件路径通常是/bin/sh,由Bell Labs开发。

bash

Bash是Bourne shell的替代品,属GNU Project,二进制文件路径通常是/bin/bash。
在centos里面,/bin/sh 是 一个指向 /bin/bash 的软链接

高级编程语言

理论上讲,只要一门语言提供了解释器,那么这门语言就有了胜任脚本语言的能力

shell 脚本的编写与运行

编写

新建一个文件,扩展名为.sh(这个是为了方便使用者能够一眼看出这个是脚本文件,没有其他的功能)。脚本文件的第一行:
#!/bin/bash
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行。

运行

运行有两种方式:
– 第一种方式:作为可执行程序

chmod +x test.sh
./test.sh

注意,一定要写成./test.sh,而不是test.sh,运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
– 第二种方式:作为解释器参数

/bin/sh test.sh

shell脚本语言的简单使用

获取内网地址
  • hostname -I
提取公网ip
  • curl -s http://ipecho.net/plain
获取DNS
  • cat /etc/resolv.conf
  • cat /etc/resolv.conf | grep -E “\<nameserver[ ]+”|awk ‘{print $NF}’  // 获取dns
检查网络是否 connected
  • ping -c 2 www.baidu.com &> /dev/null && echo “Intern et:Connect” || echo “Internet: Disconnected”
检查有多少用户
  • who > /tmp/who
    rm -f /tmp/who

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部