服务器的shell脚本

shell脚本语句可以执行linux的操作语句。

linux相当于网页,shell相当于java。可以解释编写执行逻辑。

shell的开头以:#!bin/sh

定义解析方式,不同的linuxe内核解释方式不同。大多数内核支持sh(bash)方式。

执行sh文件可以有多种方式:

            sh a.sh

        bash a.sh

                 a.sh

嵌套式执行,类似开辟一个线程,出现执行无效,子线程改变的东西,父线程未发生改变。

     source a.sh

               . a.sh

当前线程直接执行

你没看错,有这么多中方式。

linux中存在环境变量的说法,和win一样。

其中,子bash(一下为子、父线程)中,是无法使用父线程的局部环境变量的。

在子线程中修改父线程的环境变量,返回父线程,父线程的环境变量没有改变

env查看所有的全局环境变量。

使用win的cmd远程登录ssh:ssh -p 22 [email protected] 

shell中的变量定义:

直接a=12,a="123"

很简单,使用加$a, 直接定义的变量是局部的,使用: export quxiao提高成全局,所有bash都可以使用、但是更改无效,只能更改局部的(就近原则嘛)。

子线程创建的局部变量,父线程无法使用。

撤销变量:

 unset quxia

提高变量为全局:

readonly a

设置全局PQTH变量:

修改/etc/profile

加上需要添加的语句:

服务器的shell脚本_第1张图片

注意!一定要慎重修改,不要把已有的PATH路径覆盖了,不然所有命令都用不了了。

凡是能够直接在终端执行的命令,都在bin目录下能够找到。

运行文件时,也可以将参数传到文件中去,加上空格 参数。

其中 echo $1是将第一个参数拿出,以此类推。

echo $#是将参数的总个数

echo $* 是将全部参数当做字符串拿出。

echo $@  将参数拿出为数组。

需要进行数据运算时,方法有好几种,我就记录最方便的一种:

a=$[1+1]

使用$中括号进行赋值,然后我们可以使用调用时传入参数,做一个类似计算的方法(.sh文件)

#!bin/bash
sum=$[$1+$2]
echo sum=$sum

一旦使用的$n拿取参数,就必须传指定个数的参数,找不到参数会报错。 

还有一些奇奇怪怪的变量:

  • $$  //当前进程的进程号码(PID)
  • $!  //后台运行的最后一个进程的进程号
  • $?  //最后一次执行命令的返回状态,如果这个变量的值为0证明上一个命令正确执行,如果不是 0 上一个命令没有正确执行

进行逻辑判断是,无法直接使用><=这些,将这些逻辑弄成了sh方法:

-lt        小于        -le 小于等于

-gt        大于        -ge 大于等于 

-eq        等于        -ne 不等于

判断文件其权限:

-w 写

-r 读

-x 执行

case 选择语句:

服务器的shell脚本_第2张图片

 for循环就及比较独特:

服务器的shell脚本_第3张图片

经典1+n 

你可能感兴趣的:(服务器,linux,运维)