centos shell编程(shell脚本运行)
centos 7 shell 脚本怎样运行
一、root权限编辑/etc/rc.d/rc.local
Shell代码
su
cd/etc/rc.d/
vi rc.local
二、在这个文件加上你要执行的脚本,全部内容如下:
Shell代码
#!/bin/sh
#
# This script will be executed*after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch/var/lock/subsys/local
mount//192.168.0.3/data2-1/mnt/data2-1-o username=un,password=123
mount//192.168.0.3/data2-2/mnt/data2-2-o username=un,password=123
mount//192.168.0.3/data2-3/mnt/data2-3-o username=un,password=123
mount//192.168.0.3/data2-4/mnt/data2-4-o username=un,password=123
mount//192.168.0.3/data2-5/mnt/data2-4-o username=un,password=123
提示:这里的做法很不成熟,希望不要这样,最好自己写个脚本文件在这里来调用,结构更清晰,但是要注意到是把要执行的命令作为一个参数传递给su。
另外复习一个VI编辑命令-拷贝
yy
p
关于Linux ,Bash ,Shell的概念问题
1.是
2.区别大,你会写bash shell不代表你会写c shell,不过我觉得你会写一个shell脚本
另一种你上手也很快,起码读懂应该问题不大。你可以先学bash shell因为用的比较多
而且可移植性强,bash是shell的一种。
3.属于shell,只安装了bash shell就可以运行bash shell脚本,并不是针对某个系统或者发行版本。
shell这种东西可以随意安装的。你用习惯哪个shell,就算初装系统里没有,你也可以单独安装一个
4.给你推荐两本书
《Bash shell高级脚本指南》
《实战LINUX+SHELL编程与服务器管》
shell编程,可以说直接反应出你对linux命令掌握的熟练度问题,什么情况下用哪种命令更符合
你的工作需求,怎么简化脚本运行过程,优化脚本让它更有效率。
你在学习过程中必然会接触到sed,awk这种流编辑器。然后你还得学习sed,awk。
渐渐地估计你就该选择一门更强大的编程语言,而不仅限于写shell脚本,比如选perl.python,php.
C,或者什么语言...基本上都是这个过程。
为什么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
请点击输入图片描述