Linux18 Shell编程

本文详细介绍了Linux Shell编程,包括Shell脚本的执行方式、变量、环境变量、位置参数、预定义变量、运算符、条件判断、流程控制、read命令、函数以及综合案例。讲解了如何通过Shell脚本来进行服务器管理和程序维护,适合运维工程师、JavaEE和Python程序员以及大数据程序员学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一 为什么要学习shell编程

二 shell是什么

三 shell脚本的执行方式

1 shell脚本格式要求

2 编写第一个shell脚本

3 脚本的常用执行方式

四 shell变量

1 shell变量介绍

2 shell变量的定义---实际编程中自定义变量用的更多

基本语法

快速入门

3 shell变量的定义

定义变量的规则

将命令的返回值付给变量

五 配置环境变量

1 基本语法

2 快速入门

六 位置参数变量--和位置有关

1 介绍

2 基本语法

3 位置参数变量

七 预定义变量--了解

1 基本介绍

2 基本语法

3 应用实例

八 运算符

1 基本介绍

2 基本语法

3 应用实例

九 条件判断

1 基本语法

2 应用实例

3 判断语句

= 字符串比较

两个整数的比较

按照文件权限进行判断

按照文件类型进行判断

4 应用实例

案例1:“ok”是否等于“ok”

案例2:23是否大于等于22

案例3:目录中的文件是否存在

十 流程控制

1 if判断

基本语法

注意事项: [ 条件判断式 ]中括号和条件判断式之间必须有空格

应用实例 ifCase.sh

2 case语句

基本语法

应用实例 testCase.sh

基本语法---遍历的是一些具体的值,类似于数组

应用实例 testFor1.sh

基本语法---遍历在具体范围内,不是具体的值了

应用案例 testFor2.sh

4 while循环

基本语法

应用实例testWhile.sh

十一 read读取控制台输入

1 基本语法

2 应用实例

十二 函数

1 函数介绍

2 系统函数

basename 基本语法

应用实例

dirname 基本语法

应用实例

3 自定义函数--常用

基本语法

应用案例

十三 shell编程综合案例

1 需求分析

每天凌晨2:30备份数据库yyds到

备份开始和备份结束能够给出相应的提示信息

备份后的文件要气以备份时间为文件名,并打包成.tar.gz的形式

在备份的同时,检查是否有10天前备份的数据库文件,如果有就删掉

2 整体步骤说明

3 具体步骤


一 为什么要学习shell编程

1 linux运维工程师在进行服务器集群管理的时候,需要编写shell程序来进行服务器管理

2 对于javaee和python程序员来说,会被要求编写一些shell脚本进行程序或者服务器的维护,比如编写一个定时备份数据库的脚本

3 对于大数据的程序员来说,需要编写shell程序来管理集群

二 shell是什么

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

三 shell脚本的执行方式

1 shell脚本格式要求

(1)脚本以#!/bin/bash开头,因为linux不止一种shell,国内常用bash

(2)脚本需要有可执行权限

2 编写第一个shell脚本

需求说明:创建一个shell脚本输出hello world

先创建一个目录用于存放sh文件

 echo就是显示的意思

然后查看root对hello.sh的权限发现没有x权限,使用指令chmod u+x hello.sh给root添加x权限,然后使用指令./hello.sh(因为目前处于/root/shcode目录下,可以使用相对路径)执行这个脚本,可以看见成功显示hello,world!

3 脚本的常用执行方式

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

说明:首先要赋予helloworld.sh脚本+X权限,再执行脚本

./hello.sh 相对路径的方法

/root/shcode/hello.sh  绝对路径的方法

方式2:sh+脚本

说明:不用赋予脚本+X权限,直接执行就可以了

比如 sh hellp.sh,也可以使用绝对路径,演示如下

先去掉u的x权限,chmod u-x hello.sh  然后直接  sh hello.sh 就可以执行,之前的./不能执行了

四 shell变量

1 shell变量介绍

(1)linux shell 中的变量分为,系统变量用户自定义变量

(2)系统变量PATH  HOME  PWD  USER等等

比如 显示当前用户的家目录   echo $HOME    显示环境变量PATH   echo $PATH   显示当前目录echo $PWD

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

2 shell变量的定义---实际编程中自定义变量用的更多

基本语法

(1)定义变量:变量名=值     注意中间没有空格

(2)撤销变量:unset变量

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

快速入门

案例1:定义变量A 

案例2:撤销变量A

vim var.sh

 unset A     撤销之后变量A就没有了,直接不显示

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

vim var.sh

readonly B=1

静态变量不能unset,会报错,vim会到编程界面输入:nu会显示报错行号

3 shell变量的定义

定义变量的规则

(1)变量名称可以由字母、数字和_组成,但是不能以数字开头

(2)=两侧不能有空格

(3)变量名称一般习惯为大写,这是一个规范,遵守即可

将命令的返回值付给变量

(1)反引号,运行里面的命令,并把结果返回给变量A,没有反引号会被当做一个单词,有反引号会被当做指令,并将指令执行的结果给A

注意,反引号是tab键上面那个键,英文输入模式

(2)$()等价于反引号

五 配置环境变量

1 基本语法

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

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

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

2 快速入门

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

要先找到tomcat的位置 /opt/tomcat

然后vim /etc/profile  在文件最后面输入export TOMCAT_HOME=/opt/tomcat  退出保存,这样TOMCAT_HOME环境变量就配置好了

 然后还需要source /etc/profile使其立即生效 

(2)查看环境变量TOMCAT_HOME的值

注意 一定要加$符号,这样才会显示变量TOMCAT_HOME的值

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

切换到之前的shcode目录下,vim var.sh编辑语句使用刚刚设置好的环境变量TOMCAT_HOME

 ./var.sh执行

注意:在 输出TOMCAT_HOME环境变量前,需要让其生效,执行source /etc/profile

shell脚本的多行注释    :<<!  内容    !

:set nu   显示所有行号

注释之后如下

 ./var.sh再执行一下

六 位置参数变量--和位置有关

1 介绍

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

比如:./myshell.sh 100 200
./表示在当前目录执行     myshell.sh脚本     100 200表示参数信息

这个就是一个执行shell脚本的命令,行可以在myshell脚本中获取到参数信息,也就是获取到100 和200

本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 ... ...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值