Linux-Shell编程-程序员宅基地

技术标签: Linux  

Shell编程

1.为什么要学习 Shell 编程

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

2.Shell 是什么

画一个示意图:
在这里插入图片描述
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

3.shell 编程快速入门

1.脚本格式要求

1)脚本以#!/bin/bash开头
2)脚本需要有可执行权限

2.编写第一个 Shell 脚本

需求说明
创建一个 Shell 脚本,输出 hello world!。
看案例
在这里插入图片描述

3.脚本的常用执行方式

  • 方式 1(输入脚本的绝对路径或相对路径)
    1)首先要赋予 helloworld.sh 脚本的+x 权限
    2)执行脚本
    在这里插入图片描述
  • 方式 2(sh+脚本),不推荐
    说明:不用赋予脚本+x 权限,直接执行即可。
    在这里插入图片描述

4.Shell 的变量

1.Shell 的变量的介绍

1)Linux Shell 中的变量分为,系统变量用户自定义变量
2)系统变量:$HOME、$PWD、$SHELL、$USER 等等。
比如: echo $HOME 等等…
在这里插入图片描述
3)显示当前 shell 中所有变量:set

2.Shell 变量的定义

基本语法
1)定义变量:变量=值
2)撤销变量:unset 变量
3)声明静态变量:readonly 变量,注意:不能 unset。
快速入门
案例 1:定义变量 A
案例 2:撤销变量 A
在这里插入图片描述
案例 3:声明静态的变量 A=99,不能 unset。
在这里插入图片描述
案例 4:可把变量提升为全局环境变量,可供其他 shell 程序使用【一会举例。】

3.定义变量的规则

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

4.将命令的返回值赋给变量

1)A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量A。
2)A=$(ls -la) 等价于反引号。
在这里插入图片描述

5.设置环境变量

1.基本语法

1)export 变量名=变量值 (功能描述:将 shell 变量输出为环境变量)
2)source 配置文件 (功能描述:让修改后的配置信息立即生效)
3)echo $变量名 (功能描述:查询环境变量的值)
在这里插入图片描述

2.快速入门

1)在/etc/profile 文件中定义 TOMCAT_HOME 环境变量。
在这里插入图片描述
2)查看环境变量 TOMCAT_HOME 的值。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40332952/article/details/110478113

智能推荐

oracle基础命令总结(1)_oracle invoke是-程序员宅基地

文章浏览阅读429次。基于cmd窗口的oracle基础命令,不包含查询语句。(基础的虽然简单,但是由于不经常用,久而久之就忘记了,特此记录。)1.启动OracleServiceORCL服务a.使用服务进行启动win+r键入services.msc,找到OracleServiceORCL,点击运行。这边其他oracle相关的服务如果启动可以以提高电脑性能。b.cmd命令启动管理员身份打开cmd窗口启动服务:net start oracleserviceorcl关闭服务:net stop oracleservice_oracle invoke是

ES6入门—ES6 对象与类的定义_es6 撖寡情-程序员宅基地

文章浏览阅读1.6k次,点赞7次,收藏7次。本文介绍了 ES6 对象的属性简化写法、对象合并、字符串;ES6 类的定义及使用的 constructor() 方法、Class 表达式和 super 关键字。_es6 撖寡情

关于bootstrap中提示框和弹出框无法使用的问题_bootstrap 弹窗为什么调不出来-程序员宅基地

文章浏览阅读2.1k次。1.提示框(tooltip)问题<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</button>以上代码可能在页面中无法显示bootstrap特殊..._bootstrap 弹窗为什么调不出来

linux下流量监控统计软件,Linux服务器网卡流量统计监控软件vnStat-程序员宅基地

文章浏览阅读320次。服务器实际使用,我们需要根据我们的流量来购买合适带宽,毕竟现在的带宽和流量还是很贵的。有什么样的工具可以统计网络流量,并方便的查询呢?今天给大家介绍一款linux服务器网络流量统计工具vnstat。1、安装配置vnstatvnstat是一款开源的linux和BSD平台下的控制台的网络流量监控工具,官方网址:http://humdi.net/vnstat/安装非常简单,不需要configure,直接..._vnstat安装部署

2020年中国热交换器行业分类、发展历程、现状及主要生产厂商分析「图」_中国标准化研究院 换热器下游市场-程序员宅基地

文章浏览阅读608次。一、热交换器行业概况热交换器又称为换热器,是指具有不同温度的流体之间传递热量的中介设备。热交换器是实现化工生产环节热量交换、传递和储能不可或缺的设备。纵观热交换器行业的发展,可分为以下几个阶段:热交换器行业发展历程​编辑切换为居中添加图片注释,不超过 140 字(可选)资料来源:公开资料整理热交换器种类丰富,按作用原理、使用目的、结构材料、传热面的形状和结构、用途的不同,可分为以下几类:热交换器行业分类​编辑切换为居中添加图片注释,不..._中国标准化研究院 换热器下游市场

前端刀耕火种到模块化开发-程序员宅基地

文章浏览阅读252次。为什么要模块化开发:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。但是有个前提:标准的统一读懂这篇文章:https://blog.csdn.net/m_review/article/details/78643967前端模块化的诞生:CommonJS:2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用..._前端刀耕火种

随便推点

1269:【例9.13】庆功会-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏2次。【题目描述】为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力。【输入】第一行二个数n(n≤500),m(m≤6000),其中n代表希望购买的奖品的种数,m表示拨款金额。接下来n行,每行3个数,v、w、s,分别表示第I种奖品的价格、价值(价格与价值是不同的概念)和能购买的最大数量(买0件..._1269:【例9.13】庆功会

Flask 中关于‘蓝图’ 的使用-------------------_flask 蓝图 继承-程序员宅基地

文章浏览阅读180次。Blueprint是一个存储操作方法的容器,这些操作在这个Blueprint被注册到一个应用之后就可以被调用,Flask可以通过Blueprint来组织URL以及处理请求Blueprint使用时应先定义一个‘蓝图’文件,然后在主页面from调用该文件-- encoding: utf-8 --#使用蓝图需要依赖Blueprint库from flask import Flask,Bluepri..._flask 蓝图 继承

iOS 指南系列: 内存管理-程序员宅基地

文章浏览阅读810次。在审核其它人的代码的过程中,总能发现内存管理的问题,尤其是如果你是从java/c#转型过来的话,当然现在这个阶段你会发现ARC实际上也很有帮助的。When I review code from other developers, it seems that the most common mistakes are centered around memory management in

npm ERR! code ELIFECYCLE npm ERR! errno 134 npm ERR! [email protected] nativeBuild: `react-app-rewired bui-程序员宅基地

文章浏览阅读8.4k次。本地编译报错,报错信息如下npm ERR! code ELIFECYCLEnpm ERR! errno 134npm ERR! [email protected] nativeBuild: react-app-rewired buildnpm ERR! Exit status 134npm ERR!npm ERR! Failed at the [email protected] nativeBuild scr..._npm err! code elifecycle npm err! errno 134

RSA非对称加密解密的实现(公钥加密私钥解密、私钥加密公钥解密:签名)java_非对称加密能改公钥吗-程序员宅基地

文章浏览阅读1.4k次,点赞6次,收藏15次。本文是在参考文章的基础上修改的,对下面评论的问题进行一些测试和实现,同时对一些代码增加了相关的注释方便理解:需了解的知识:base64编码非对称加密原理问题:1、修改公私钥还可以成功解密? 通过修改密钥测试,我的是会报错的2、私钥加密公钥解密报错? 通过对代码的修改,进行测试成功了代码如下import javax.crypto.Cipher;import java.security.*;import java.security.interfaces.RSAPrivate_非对称加密能改公钥吗

pgsql客户端psql简介_psql 23514-程序员宅基地

文章浏览阅读1.3k次。psql使用:psql -hserver01 -p5432 [DBNAME [USERNAME]]? show help\q quit\l list databases\d list tables\c connect to new database_psql 23514