精华内容
下载资源
问答
  • Linux的Shell脚本加密

    千次阅读 2020-02-08 19:13:11
    Linux Shell脚本简单,易用,功能强大。但是,由于其基于类似文本编写方式,导致其容易泄露敏感信息。因此,对于Shell脚本的加密也是一个重要需求。 本文将介绍一款Shell加密工具Shc。它可以用来对shell脚本...

    Linux的Shell脚本加密


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    相关问题:
    1.linux脚本加密
    2.脚本二进制化
    3.同架构跨操作系统二进制脚本

    相关文章:
    glibc-static安装
    Linux Shell


    前言

    Linux Shell脚本简单,易用,功能强大。但是,由于其基于类似文本的编写方式,导致其容易泄露敏感信息。因此,对于Shell脚本的加密也是一个重要的需求。

    本文将介绍一款Shell加密工具Shc。它可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。

    1.Shc的安装

    官网 : https://neurobin.org/projects/softwares/unix/shc/

    Github : https://github.com/neurobin/shc

    源码编译:

    ./configure
    make
    sudo make install
    

    2.Shc参数简介

    2.1 常用参数

    • -f %s 需要编译的脚本文件名称
    • -o %s 输出文件名称
    • -r 宽松的安全性,可以制作可发行的二进制。同架构不同操作系统运行需要使用该参数
    • -e %s dd/mm/yyyy格式的脚本过期日期
    • -m %s 过期之后显示的信息
    • -v 显示编译详细过程

    2.2 详细参数

    $ shc -h
    
    shc Version 4.0.3, Generic Shell Script Compiler
    shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
    shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDSUHCABh] -f script
    
        -e %s  Expiration date in dd/mm/yyyy format [none]
        -m %s  Message to display upon expiration ["Please contact your provider"]
        -f %s  File name of the script to compile
        -i %s  Inline option for the shell interpreter i.e: -e
        -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);
        -l %s  Last shell option i.e: --
        -o %s  output filename
        -r     Relax security. Make a redistributable binary
        -v     Verbose compilation
        -S     Switch ON setuid for root callable programs [OFF]
        -D     Switch ON debug exec calls [OFF]
        -U     Make binary untraceable [no]
        -H     Hardening : extra security protection [no]
               Require bourne shell (sh) and parameters are not supported
        -C     Display license and exit
        -A     Display abstract and exit
        -B     Compile for busybox
        -h     Display help and exit
    
        Environment variables used:
        Name    Default  Usage
        CC      cc       C compiler command
        CFLAGS  <none>   C compiler flags
        LDFLAGS <none>   Linker flags
    
        Please consult the shc man page.
    

    3.Shc的使用

    示例文件 a.sh

    #!/bin/bash
    
    echo 'hello'
    

    3.1 编译为二进制

    shc -f a.sh
    

    3.2 编译为二进制,并重命名输出文件

    shc -f a.sh  -o a.bin
    

    3.3 设置时间限制

    shc -f a.sh -e 04/02/2020 -m '过期了'
    

    3.4 跨操作系统静态编译,并重命名输出文件

    CFLAGS=-static shc -r -f a.sh -o a.bin
    

    注意: -r参数对于同架构不同操作系统的运行很重要

    查看静态二进制信息

    $ file a.bin 
    
    a.bin: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=4064d60d8ae7a4ab39daa93fc62cf4f8f17d55da, stripped
    
    $ ldd a.bin 
    	不是动态可执行文件
    

    4.其他

    4.1 cannot find -lc

    /usr/bin/ld: cannot find -lc
    collect2: error: ld returned 1 exit status
    shc: Success
    

    安装glic-static(libc.a)即可

    4.2 反编译为Shell脚本

    https://github.com/yanncam/UnSHc


    License

    License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎


    Reference:
    NULL

    展开全文
  • 基于Linux的Shell脚本合集链接(github链接)前言本篇主要是将我这一段时间编写的脚本,在这里整理列出,便于需要的朋友查阅。部分github项目相关的内容我也有对应的博客,会在后面列出的。 欢迎各路大神批评指教。...

    基于Linux的Shell脚本合集链接(github链接)

    前言

    本篇主要是将我这一段时间编写的脚本,在这里整理列出,便于需要的朋友查阅。部分github项目相关的内容我也有对应的博客,会在后面列出的。
    欢迎各路大神批评指教。

    基于Linux的nginx相关shell脚本项目

    基于Linux的nginx相关shell脚本项目
    nginx –> 服务启动脚本,可直接复制到 /etc/init.d/
    nginx_server.sh –> 和nginx是同一文件
    nginx_install.sh –> nginx源码安装脚本,若修改内部模块功能,请进入脚本修改,修改时注意对应是否有对应的依赖包

    Linux_nginx_sh
    https://github.com/Liuhaiyuan/Linux_nginx_sh.git

    基于Linux的MySQL相关操作脚本(源码安装,rpm安装等)

    基于Linux的MySQL相关操作脚本(源码安装,rpm安装等)
    mysql-5.6.25.tar.gz —源码安装包
    MySQL-*.rpm 安装包

    Linux_MySQL_sh
    https://github.com/Liuhaiyuan/Linux_MySQL_sh.git

    基于Linux的php开发环境即php服务搭建脚本

    基于Linux的php开发环境即php服务搭建脚本
    Linux_php_sh
    https://github.com/Liuhaiyuan/Linux_php_sh.git

    基于Linux安装memcache服务,并将memcache库配置到php

    基于Linux安装memcache服务,并将memcache库配置到php 在使用与php连接时,需要注意两点:

    • 请确保当前环境已经安装php
    • 脚本使用的php版本是php5,请根据环境修改变量即可。

    Linux_memcache_php
    https://github.com/Liuhaiyuan/Linux_memcache_php.git

    基于Linux平台下tomcat和jdk的安装配置脚本

    本项目是在Linux平台下,安装jdk和源码安装tomcat的脚本,jdk由于是rpm包,容量大于github的允许范围了。所以这里jdk包是没有的。
    Linux_tomcat_jdk_sh
    https://github.com/Liuhaiyuan/Linux_tomcat_jdk_sh.git

    基于Linux的Varnish的安装脚本

    Varnish_Install
    https://github.com/Liuhaiyuan/Varnish_Install.git

    基础shell脚本练习合集

    这是一个shell编程的基本练习合集,都是一些最基本的练习,初学者可以借鉴观看。
    tests_sh
    https://github.com/Liuhaiyuan/tests_sh.git

    展开全文
  • Linux的shell脚本里激活conda 虚拟环境 之前突发其想,既然在命令行可以通过conda activate tf激活tf的虚拟环境,那么能不能写个脚本实现呢? 费了好大劲,发现并不行,比如,新建一个con.sh脚本,里面只写一句: ...

    在Linux的shell脚本里激活conda 虚拟环境

    之前突发其想,既然在命令行可以通过conda activate tf激活tf的虚拟环境,那么能不能写个脚本实现呢?
    费了好大劲,发现并不行,比如,新建一个con.sh脚本,里面只写一句:
    conda activate tf 保存并退出,然后在命令行执行sh con.sh
    会报以下的错:

    CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.
    To initialize your shell, run

    $ conda init <SHELL_NAME>

    Currently supported shells are:

    • bash
    • fish
    • tcsh
    • xonsh
    • zsh
    • powershell

    See ‘conda init --help’ for more information and options.

    IMPORTANT: You may need to close and restart your shell after running ‘conda init’.

    以上的问题有个解决方案:打开~/.bashrc文件,去里面找到如下的文字:

    # !! Contents within this block are managed by ‘conda init’ !!
    __conda_setup="$(’/home/research/anaconda3/bin/conda’ ‘shell.zsh’ ‘hook’ 2> /dev/null)"
    if [ ?eq0];theneval&quot;? -eq 0 ]; then eval &quot;__conda_setup"
    else
    if [ -f “/home/research/anaconda3/etc/profile.d/conda.sh” ]; then
    . “/home/research/anaconda3/etc/profile.d/conda.sh”
    else
    export PATH="/home/research/anaconda3/bin:$PATH"
    fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<

    将上述文字复制粘贴在con.sh脚本的开头,再执行con.sh。就不会报错,但是仍旧无法激活tf环境。这是为什么呢?其实你可以类比python中执行一个函数的操作,函数执行结束就啥也没了,一般对外部不会造成影响,所以刚才的操作只是在con.sh的“脚本空间”里激活了tf环境,对外部并不会有影响,脚本执行结束就一切归零。

    但是正如上段文字所说,虽然无法对外部产生影响,但“脚本空间”内部是激活了tf环境的,所以在con.sh脚本里的“conda activate tf” 语句后面,你仍旧可以写一些依赖于tf环境的语句或者执行依赖tf环境的其他什么脚本(比如py)

    展开全文
  • 文章来源:使用linux 的shell脚本进行sftp文件上传与下载 批量上传: #!/bin/bash #SFTP配置信息 #用户名 USER=root #密码 PASSWORD=5EYS40T04BMF #待上传文件根目录 SRCDIR=/u02/dab/sftpFiles #FTP目录 DESDIR...

    文章来源:使用linux 的shell脚本进行sftp文件上传与下载


    登录

    sftp -oPort=22 rlacct@10.9.1.24
    sftp -oPort=22 rlacct@10.9.1.24:/OB



    批量上传:

    #!/bin/bash
    
    #SFTP配置信息
    #用户名
    USER=root
    #密码
    PASSWORD=5EYS40T04BMF
    #待上传文件根目录
    SRCDIR=/u02/dab/sftpFiles
    #FTP目录
    DESDIR=/u01/sftpFiles
    #IP
    IP=192.168.10.11
    #端口
    PORT=22022
    
    #获取文件
    cd ${SRCDIR} ;
    #目录下的所有文件
    #FILES=`ls` 
    #修改时间在执行时间五分钟之前的xml文件
    FILES=`find ${SRCDIR} -mmin -50 -name '*.xml'`
    
    for FILE in ${FILES}
    do
        echo ${FILE}
    #发送文件 (关键部分)  复制出来,如有结尾有空格,请自行去掉
    lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
    cd ${DESDIR}/
    lcd ${SRCDIR}
    put ${FILE}
    by
    EOF
    
    done

    单文件下载:

    #!/bin/bash
    
    USER=root
    #密码
    PASSWORD=5EYS40T04BMF
    #下载文件目录
    SRCDIR=/u02/dab
    #FTP目录(待下载文件目录)
    DESDIR=/u01/sftpFiles
    #银联IP
    IP=192.168.1.10
    #端口
    PORT=22022
    
    lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT}<<EOF
    cd ${DESDIR}
    lcd ${SRCDIR}
    #需要下载的文件为text.xml
    get text.xml
    by
    EOF




    展开全文
  • 首先php可以写linux的shell脚本,是非常快捷方便的,也展现了php的强大。 (1)讲解头部的一些开头文件代表什么意思。 eg #!/usr/bin/env php #!/usr/bin/php 哎,看了网上的一些说法,说只要平常写#!/usr/...
  • Qt下编码调用Linux的Shell脚本命令

    千次阅读 2019-03-21 17:20:55
    Linux下编写Qt程序,常会碰到需要执行Shell脚本命令时候。因为简单调用一个脚本命令,可以大大简化功能实现复杂度。 调用Shell脚本命令,Qt环境下常用两种方式: 1)使用QProcess开启一个进程,把脚本命令作为...
  • 我们可以通过shell命令来操作和控制操作系统,比如Linux的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。 ...
  • 通过一台Linux服务器,编写shell脚本,模拟Telnet至各台交换机,让一切变很容易 1首先Linux服务器安装Telnet客户端即可 2将交换机地址和账号密码录入至一个可达文档中即可 3通过shell脚本进行循环处理 一下...
  • linux的shell脚本的通配符使用方法

    千次阅读 2016-01-07 23:49:56
    #!/bin/bash ...# [ ] 匹配方括号中任意一个字符,如[abc] 则匹配abc中一个 # [ - ] "-"代表范围,例如:[a-z] 则匹配任意一个小写字母; [0-9] 则匹配任意一个0-9之间数据,但是注意[0-10]不可
  • 我知道重定向一条命令可以用>> file 2>&1 来重定向到某文件 如果我想重定向shell脚本的一块内容怎么重定向呢,一定要把每条命令都用>>吗?
  • linux脚本中如果要连接ORACLE数据库进行操作,方式如下: sqlplus $user/$password@$instance > $LOGFILE 2>&1 set sqlp "" set sqln off set timing on  prompt "!*@#&@!(#@*!(&#" --用来添加输出 insert ...
  • 表示:各命令执行果,不会影响其它命令执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。 第二种命令之间&&隔开 表示:若前面命令执行成功,才会去执行后面命令。这样可以保证所有...
  • 原来写过一个获取内网ip命令出现了问题,现在重新写了一个测试是ok分享出来 ip=$(ip addr |grep inet |grep -v inet6 |grep eth1|awk '{print $2}' |awk -F "/" '{print $1}')
  • 我们刚开始编写shell脚本,会遇到写一个非常简单的shell脚本总是报错,明明写的没问题,最经典的报错就是标题那个,什么也看不出来,就告诉你是哪行报错,给你个 ‘做提示。 其实这种错误很多是由于换行符造成的,...
  • nohup 执行linux 的shell脚本启动服务

    千次阅读 2012-08-01 17:05:07
    http://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html ...nohup Execute Commands After You Exit From a Shell Prompt by Vivek Gite on January 4, 2006 · 30 commen
  • 微服务发布时候,一次更新需要替换好几个jar包,然后再... 当该shell脚本所在目录中放入了文件,并且是text.txt或者text2.txt时,该脚本就会将文件放入/fileinstall/..目录了,后面可以再写一个重启命令,这样就可以实...
  • root标识 whoami(显示当前用户用户名) if [ `whoami` = "root" ];...id -u (显示当前用户uid) if [ `id -u` -eq 0 ];then echo "root用户!" else echo "非root用户!" fi 后记 今天在
  • 的shell脚本里面有一条去其他服务器上pull代码的命令,但是因为各种原因可能pull不到 我怎么才能让这条命令执行了几分钟之后还没有执行完的话就exit退出整个脚本呢?
  • 在实际应用开发中,由于shell缺少许多函数库,所以判断字符串是否为整数就不是一件容易事儿,那么这里介绍一般用于判断一个字符串是否为整数方法。 原理: 利用expr做计算时变量或字符串必须是整数规则...
  • 本来打算做是 1 用moviNAND_Fusing_Tool.exe工具,把镜像烧写到SD卡指定位置。 2 启动到uboot命令行,用movi命令从SD卡指定位置读取。 但是moviNAND_Fusing_Tool.exe报错,linux内核zImage...上网找了个脚本,烧b
  • ###在Suse11 运行验证过,...===================shell start=========================== #!/bin/sh usrname=(username1 username2 username3 username4) ii=0 maxuser=4 while (($ii do useradd ${usrname[i
  • Linux中编写Shell脚本

    万次阅读 多人点赞 2018-10-08 11:22:35
    Shell脚本的执行 Shell脚本编写规范 Shell 中变量 变量算术运算 双小括号 (()) 数值运算命令用法 let 运算命令用法 expr 命令用法 br 命令用法 $[]符号运算示例 Shell脚本的条件测试 几种...
  • ###本脚本在Suse11sp2当中验证正确   #!/bin/sh  while ((1))  do  echo -ne "\r$(date)"  sleep 0.3  done ###关键在 echo "-ne" 参数 ### "-n" 表示不另起新行 ### "-e" 表示格式化字符串里...
  • LinuxShell脚本的调试

    千次阅读 2017-01-18 23:35:56
    这篇博文是对Debugging Shell Scripts in Linux的翻译,希望能帮助到在Linux下写Shell脚本的童鞋。大多数编程语言都有可用的调试工具,调试工具可用在执行程序或脚本的时候让你检查其内部是如何进行的。对于Shell...
  • Linuxshell脚本概述

    千次阅读 热门讨论 2020-08-05 11:40:18
    本系列为循序渐进学运维系列的shell脚本实战部分,从零带你学脚本。 shell脚本的概念 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell是一个...
  • Linuxshell脚本

    千次阅读 2020-10-17 08:18:01
    但是shell脚本拥有更强功能,那就是它可以进行类似程序编写,并且不需要经过编译就能够执行。 shell脚本是利用shell功能所写一个程序。这个程序是使用纯文本文件,将一些shell语法与命令(含外部命令)写...
  • Linux创建shell脚本文件

    万次阅读 2019-06-10 20:47:33
    Linux创建shell脚本文件 **1. **使用vim xxx.sh创建后缀为.sh文件; 2. 开头先写shell脚本的声明; 3. 多条命令语句之间用&连接,并且最后一条命令结尾&符不能省略。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,123
精华内容 12,849
关键字:

linux的shell脚本

linux 订阅