shell脚本

环境变量&文件查找

会有一股神秘感。 提交于 2020-01-23 07:27:00
6. 环境变量&文件查找 |命令名称 | 功能 | 备注 | | --- | --- | --- | | set |显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。| | | env |显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。| | | export | 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。| | [环境变量] 按变量的生存周期来划分,Linux 变量可分为两类: 永久的:需要修改配置文件,变量永久生效; 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。 这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件: .profile 可以用 ls -a 查看 cd /home/shiyanlou ls -a 这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。 命令的查找路径与顺序 你可能很早之前就有疑问,我们在 Shell

java创建shell脚本

拥有回忆 提交于 2020-01-23 00:32:35
package com.xxl.job.core.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; /** * <p> * <code>GenerateShellScript</code> * </p> * Description: * * @author Jalen * @date 2020-01-17 03:31 PM */ public class GenerateShellScript { private static void createShell(String path, String... strings) throws Exception { if (strings == null) { System.out.println("strings is null"); return; } File sh = new File(path); boolean createResult = sh.createNewFile(); if (!createResult){ System.out.println("create failed"); } boolean executeResult = sh.setExecutable(true); if (

Linux shell中if [ $? -eq 0 ] 语句作用:判断命令是否执行成功

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-22 17:35:42
shell脚本中$?是指上一次命令执行的成功或者失败的状态。如果成功就是0,失败为1.。语句if [ $? -eq 0 ] 是判断if语句的上一个命令执行如果失败就执行if中的语句,否则就执行else中的内容。 note:使用时要注意,if后面的中括号[ $? -eq 0 ],括号的两边需要有一个空格。 cd u-boot && ./make.sh $RK_UBOOT_DEFCONFIG && cd - if [ $? -eq 0 ]; then echo "====Build uboot ok!====" else echo "====Build uboot failed!====" exit 1 fi 来源: CSDN 作者: 小叔叔乎 链接: https://blog.csdn.net/w892824196/article/details/103985328

shell编程之if语句

本小妞迷上赌 提交于 2020-01-22 16:19:07
目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other shell编程之if判断 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a" -lt "$b" ] -le 小于等于,如:if [ "$a" -le "$b" ] < 小于(需要双括号),如:(("$a" < "$b")) <= 小于等于(需要双括号),如:(("$a" <= "$b")) > 大于(需要双括号),如:(("$a" > "$b")) >= 大于等于(需要双括号),如:(("$a" >= "$b")) 2.字符串比较 = 等于,如:if [ "$a" = "$b" ] == 等于,如:if [ "$a" == "$b" ],与=等价 3.举例 1.数字比较 #!/bin/bash i=6 a=10 if [ $a -eq 10 ] then echo "a = 10" fi if [ $a -ne $i ] then echo "a != $i" fi if [ $a -gt $i ] then echo "a

shell--创建函数

百般思念 提交于 2020-01-22 15:55:37
shell--创建函数 知识体系: #创建函数 #使用参数 #共享函数 shell脚本代码可以封装在函数内,而函数可以在脚本任意处使用,由此减少大段代码的重复编写。 1、基本脚本函数 函数是被赋予名称的脚本代码块,可以在代码的任意位置使用。当需要调用代码块的时候,只需引用代码块被赋予的函数名即可。 1.1、创建函数 在bash shell脚本中创建函数可以使用两种方式: *关键字function,基本格式为: function name{ commands } *()方式: name() { commands } 下面就对这两种方式举例创建. 1.2、使用函数 如下采用上面创建函数的两种方式举例: [root@wzp ~]# chmod u+x 7.1test [root@wzp ~]# cat 7.1test #!/bin/bash function fun1 { echo "this is the first function" } fun1 fun2() { echo "this is the second function" } fun2 [root@wzp ~]# ./7.1test this is the first function this is the second function 这里头有两个函数名:fun1和fun2,对应两个函数执行后显示不同结果。

CVE-2014-6271“破壳”漏洞

北慕城南 提交于 2020-01-22 13:13:07
文章目录 简介 检测 解决办法 简介 CVE-2014-6271(即“破壳”漏洞)广泛存在与GNU Bash 版本小于等于4.3的*inux的系统之中,只要目标服务器开放着与Bash相交互的应用与服务,就有可能成功触发漏洞,获取目标系统当前Bash运行用户相同权限的shell接口。 该漏洞可以通过构造环境变量的值来执行想要执行的攻击代码脚本,会影响到与Bash交互的多种应用,包括HTTP、OpenSSH、DHCP等。 检测 有漏洞 [scutech@localhost ~]$ bash --version GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> [scutech@localhost ~]$ env x='() { :;}; echo vulnerable' bash -c "echo This is a test" vulnerable This is a test 无漏洞 scutech@Yao:~$ bash --version GNU bash

Linux 用户组 用户 以及 管理用户用户组的命令和文件详解

怎甘沉沦 提交于 2020-01-22 09:20:38
groups 查看当前登录用户的组内成员 groups gliethttp 查看gliethttp用户所在的组,以及组内成员 whoami 查看当前登录用户名 /etc/group文件包含所有组 /etc/shadow和/etc/passwd系统存在的所有用户名 1、/etc/group 解说; /etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用 户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件 的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的; 用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去, 2、/etc/group 内容具体分析 /etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下: group_name:passwd

mysql 数据库备份shell脚本

回眸只為那壹抹淺笑 提交于 2020-01-22 08:29:44
今天大样做了个简单的数据库备份脚本 #!/bin/bash # Database info bakupmysql TANK 2009/11/04 DB_USER="user" #用户名 DB_PASS="password" #密码 DATE=`date '+%Y%m%d-%H%M'` #要备份的日期 BIN_DIR="/usr/bin" BCK_DIR="/usr/local/database/database_bak/$DATE" #备份路径 LogFile="/usr/local/database/data_backup.log" #日志路劲    if [ ! -d $BCK_DIR ]; then mkdir -p "$BCK_DIR" fi echo "=================================== $DATE backup"===============================>>$LogFile cd $BCK_DIR #需要备份的库DB_NAMES=("db1" "db2") for dbName in ${DB_NAMES[@]}; do echo "begin backup $dbName...">>$LogFile #备份 ${BIN_DIR}/mysqldump --opt -h 192.168.1.104 -u${DB

从头开始学Shell------数字计算

試著忘記壹切 提交于 2020-01-22 02:55:32
一、数字计算 (1)整数:使用let的话,变量就不再需要$了。 再写一个简单的 shell脚本,上传到/opt目录下,取名为test.sh。 #!/bin/bash no1=3 no2=4 let result=no1+no2 echo $result let result-- #自减,需要加上let! echo $result (2)整数:另外一种是用 【】 与 (()) (3)浮点数 浮点数的赋值比较奇葩。 ` echo “计算” | bc ` 。 这个符号在键盘的Esc键下面。 保留小位数,在计算的表达式里增加 scale=X; 的前缀。但是好像有变量的时候,就不能成功保留小数。 综上,写一个shell。注意的点: 表达式两边不能有空格。let后面的不能是浮点数。单引号不做任何解析,用双引号加${varName} #!/bin/bash echo 'price=3' echo 'count=2' let price=3 count=$[1+1] money=`echo "$price * $count * 0.982" |bc` echo "price * count * 0.982=${money}" 来源: CSDN 作者: 小大宇 链接: https://blog.csdn.net/yanluandai1985/article/details/104062163

shell基础之变量及表达式

柔情痞子 提交于 2020-01-22 01:49:32
本节内容 1. shell 变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 10. 退出状态 11. shell 表达式与运算符 11.1 条件表达式 11.2 整数比较符 11.3 字符串比较符 11.4 文件测试 11.5 布尔运算符 11.6 逻辑判断符 11.7 整数运算 11.8 其他运算工具 11.9 shell 括号用途总结 一、 shell 变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以, Shell 变量也遵循这个规则。 在 Bash shell 中,每一个变量的值都是字符串, 无论你给变量赋值时有没有使用引号,值都会以 字符串 的形式存储 。这意味着, Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。 二、定义变量 Shell 支持以下三种定义变量的方式: variable= value variable= 'value' variable= "value" variable 是变量名, value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、 Tab