shell脚本实用小技巧(不断更新)

1. openssl实现加解密、哈希

1.1 openssl实现AES加解密

  • 老大说,不能在shell脚本放明文密码

  • 自己的第一反应:我先在本地AES加密得到密文,然后将密文写入shell脚本

  • 网上搜索了一下,openssl可以满足需求

  • 直接基于字符串加解密(AES-256)

    # 直接基于字符串加密
    echo "明文" | openssl enc -aes-256-cbc -a -salt -pass pass:密码
    
    # 直接基础字符串解密, -d表示解密
    echo "密文" | openssl enc -aes-256-cbc -a -d -salt -pass pass:密码
    
  • 示例

    echo "hello, world" | openssl enc -aes-256-cbc -a -salt -pass pass:12345678
    
    echo "U2FsdGVkX1+8LczdI2MWVt4rW7VLxCYgCcQcftPwvqg=" | openssl enc -aes-256-cbc -a -d -salt -pass pass:12345678
    
  • 对文件进行AES加解密

    # 文件加密
    openssl enc -aes-256-cbc -a -salt -pass pass:123456 -in source_file_name -out target_file_name
    
    # 文件解密
    openssl enc -aes-256-cbc -a -d -salt -pass pass:123456 -in source_file_name -out target_file_name
    
  • 示例

    # 文件加密
    openssl enc -aes-256-cbc -a -salt -pass pass:123456 -in hello.txt -out hello.txt.enc
    
    # 文件解密
    openssl enc -aes-256-cbc -a -d -salt -pass pass:123456 -in hello.txt.enc -out hello
    

1.2 openssl实现SHA-256计算

  • 计算SHA-256

    # 基于文件计算SHA-256
    openssl dgst -sha256 file_name
    # 基于字符串计算SHA-256
    echo "明文" | openssl dgst -sha256
    
  • 示例

    # 基于文件计算SHA-256
    openssl dgst -sha256 hello.txt 
    # 基于字符串计算SHA-256
    echo "hello" | openssl dgst -sha256
    

参考链接

2. 安装软件

  • centos中,安装一个软件的命令如下

    yum install xxx
    
  • 手动安装,我们发现可能需要输入一个y,去确认安装
    在这里插入图片描述

  • 新需求:通过shell脚本去安装某些软件,如何避免交互输入?

  • 添加-y,表示对后续所有问题,都回答yes

    yum install xxx -y
    
  • -y的作用:在这里插入图片描述

  • 参考文档:利用shell脚本自动安装软件

3. 去除字符串中的空格

  • 最近处理输出结果时,输出的数据格式有点混乱,|前后的空格不确定

    /dev/sda1   | 1.8T | 356GB >> 12
    
  • 我希望获取第二列的1.8T,为了简单自己直接awk -F '|'做切割

    echo "/dev/sda1   | 1.8T | 356GB >> 12" | awk -F '|' '{print $2}'
    
  • 截取出来的数据带有空格
    在这里插入图片描述

  • 需求:去除字符串中的空格

  • 感谢stackoverflow:How to trim whitespace from a Bash variable?,在命令的最后在添加如下命令便可以去除字符串中的空格(任意位置)

    sed -r 's/( )+//g'
    
  • 执行效果示例
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014454538/article/details/120415805