centos编写sh,centos执行sh脚本

大家好,关于centos编写sh很多朋友都还不太明白,今天小编就来为大家分享关于centos执行sh脚本的知识,希望对各位有所帮助!

为什么centos应用程序有编程

1.为什么要学习 shell编程

Linux运维工程师在进行服务器集群管理时,需要编写 Shell程序来进行服务器管理。

对于 JavaEE和 Python程序员来说,工作的需要,你的老大会要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。

对于大数据程序员来说,需要编写 Shell程序来管理集群。

2. shell是什么

示意图:

图1

请点击输入图片描述

Shell是一个命令行解释器,它为用户提供了一个向 Linux内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell来启动、挂起、停止甚至是编写一些程序.

3. shell编程快速入门- shell脚本的执行方式

3.1脚本格式要求

脚本以#!/bin/bash开头

脚本需要有可执行权限

图2

请点击输入图片描述

3.2脚本的常用执行方式

方式 1(输入脚本的绝对路径或相对路径)

首先要赋予 helloworld.sh脚本的+x权限

执行脚本

图3

请点击输入图片描述

方式2(sh+脚本),不推荐(了解即可)

说明:不用赋予脚本+x权限,直接执行即可

图4

请点击输入图片描述

4. shell的变量

4.1 shell的变量的介绍

Linux Shell中的变量分为,系统变量和用户自定义变量。

系统变量:HOME、HOME、PWD、SHELL、SHELL、USER等等

比如: echo$HOME

等等..

图5

请点击输入图片描述

请点击输入图片描述

显示当前 shell中所有变量:set

4.2 shell变量的定义

基本语法

注意:=两侧不能有空格

1)定义变量:变量=值

2)撤销变量:unset变量

3)声明静态变量:readonly变量,注意:不能 unset

快速入门

案例 1:定义变量 A

案例 2:撤销变量 A

图6

请点击输入图片描述

案例 3:声明静态的变量 B=2,不能 unset

图7

请点击输入图片描述

案例 4:可把变量提升为全局环境变量,可供其他 shell程序使用【一会举例。】

4.3定义变量的规则

1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。2)等号两侧不能有空格3)变量名称一般习惯为大写

4.4将命令的返回值赋给变量(重点)

A=`ls-la`反引号,运行里面的命令,并把结果返回给变量 A

A=$(ls-la)等价于反引号

图8

请点击输入图片描述

5.设置环境变量

5.1基本语法

1) export变量名=变量值(功能描述:将 shell变量输出为环境变量)

2) source配置文件(功能描述:让修改后的配置信息立即生效)

3) echo$变量名(功能描述:查询环境变量的值)

图9

请点击输入图片描述

5.2快速入门

在/etc/profile文件中定义 TOMCAT_HOME环境变量

图10

请点击输入图片描述

请点击输入图片描述

查看环境变量 TOMCAT_HOME的值

echo$TOMCAT_HOME

在另外一个 shell程序中使用 TOMCAT_HOME

图11

请点击输入图片描述

请点击输入图片描述

注意:在输出 TOMCAT_HOME环境变量前,需要让其生效

source/etc/profile

6.位置参数变量

6.1介绍

当我们执行一个 shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变

量,比如:./myshell.sh 100 200,这个就是一个执行 shell的命令行,可以在 myshell

脚本中获取到参数信息

6.2基本语法

$n(功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十

以上的参数需要用大括号包含,如${10})

$*(功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

$#(功能描述:这个变量代表命令行中所有参数的个数)

6.3位置参数变量应用实例

案例:编写一个 shell脚本 positionPara.sh,在脚本中获取到命令行的各个参数信息

图12

请点击输入图片描述

7.预定义变量

7.1基本介绍

就是 shell设计者事先已经定义好的变量,可以直接在 shell脚本中使用

7.2基本语法

$$(功能描述:当前进程的进程号(PID))$!(功能描述:后台运行的最后一个进程的进程号(PID))$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令

正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令

执行不正确了。)

7.3应用实例

在一个 shell脚本中简单使用一下预定义变量

图13

请点击输入图片描述

centos7如何永久删除默认路由

在Linux CentOS 7中,要永久删除默认路由,可以通过在特定目录下创建一个脚本来实现。首先,需要在目录/etc/network/if-up.d/下新建一个名为remove_default_gateway.sh的脚本。

在这个脚本中,我们将编写如下内容:

ip route del default

这个命令的作用是删除默认路由。当网络接口状态变为UP时,系统会自动执行这个脚本中的命令,从而永久地删除默认路由。确保脚本具有执行权限,可以使用如下命令进行赋予:

chmod+x/etc/network/if-up.d/remove_default_gateway.sh

通过上述步骤,当网络接口状态改变为UP时,系统会自动执行脚本中的命令,从而永久地删除默认路由。此方法为在CentOS 7中永久删除默认路由提供了一个简单且可靠的方法。确保在对系统进行此类修改时,了解并确认其潜在影响,并在必要时备份重要数据。

Linux centos下安装svn服务器就这么难么

Centos下安装SVN服务器详细步骤

在保证联网的条件下,执行以下一、二操作,否则请先下载apache、svn的安装包并解压缩

1.安装apache

yum install httpd

2.安装svn

yum install subversion

yum install mod_dav_svn

3.创建SVN仓库

mkdir/home/svn

4.在SVN仓库目录下创建你要的版本库

svnadmin create/home/svn/xyz(版本库名:xyz)

5.创建用户及密码

在/home/svn/xyz/conf目录下,输入:htpasswd-c passwd xiao

第一次在创建用户密码,需加上“- c”参数

6.设置权限

编辑authz文件,设置组别人员读写权限

7.修改svnserver.conf

8.启动SVN服务

svnserve-d--listen-port 3690-r/home/svn/xyz

9.防火墙打开3690端口

进入/etc/sysconfig,修改iptables文件

加入如下:

-A RH-Firewall-1-INPUT-m state--state NEW-m tcp-p tcp--dport 3690-j ACCEPT

10.修改apache,目的是保证http能够访问

修改/etc/httpd/conf.d/subversion.conf文件

加入如下:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_modulemodules/mod_authz_svn.so

<Location/>

DAV svn

SVNParentPath/home/svn/xyz

AuthType Basic

AuthName"Authorization Realm"

AuthUserFile/home/svn/xyz/conf/passwd

AuthzSVNAccessFile/home/svn/xyz/conf/authz

Require valid-user

</Location>

11.配置SVN下目录被apache拥有

chown–R apache:apache/home/svn/xyz

12.设置apache开机启动

chkconfig httpd on

13.设置svn开机启动

(1)编写/usr/local/customshell/svn.sh,内容为svnserve–d--listen-port 3690–r/ home/svn/xyz

(2). vim/etc/rc.d/rc.local增加一句:/usr/local/customshell/svn.sh

阅读剩余
THE END