• Linux常用的一些shell脚本操作记录


    1.获取当前文件的绝对路径
    DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )
    
    • 1

    这个语句是一个用于获取当前脚本所在目录的Bash命令
    dirname “${BASH_SOURCE[0]}”:这个命令使用dirname函数来获取BASH_SOURCE[0]所在的目录路径。
    “>/dev/null”:这个重定向操作符将标准输出(stdout)重定向到/dev/null,即丢弃所有输出。这样做的目的是避免在执行cd命令时产生不必要的输出。

    整个语句相当于通过cd进入当前文件所在的路径, 然后使用pwd显示当前位置的绝对路径并保存到DIR

    2. 测试变量是否为空
    if test -z "$REMOTE"
    then
      echo "请设置云服务器登录IP地址和账户"
      exit 1
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5

    test -z 命令接受一个参数,可以是变量名、字符串或其他表达式。如果该参数为空,则返回真(true),否则返回假(false)

    3.复制文件到远程服务器
    # 请设置云服务器的IP地址和账户
    # 例如 ubuntu@122.51.199.160
    REMOTE=
    # 请设置本地SSH私钥文件id_rsa路径
    # 例如 /home/litemall/id_rsa
    ID_RSA=
    scp -i $ID_RSA -r  ./deploy $REMOTE:/home/ubuntu/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    4. 删除文档中的回车键

    deploy.sh的换行格式是CRLF,而LINUX环境应该是LF,需要做处理。

    cat deploy.sh | tr -d '\r' > deploy2.sh
    mv deploy2.sh deploy.sh
    
    • 1
    • 2

    | tr -d ‘\r’:将上一步读取的文件内容通过管道(pipe)传递给tr命令。tr命令用于对文本进行转换和替换操作。在这里,它的作用是删除文件中的回车符(‘\r’)。
    cat deploy.sh | tr -d ‘\r’ > deploy2.sh这条命令的作用是将deploy.sh文件中的内容进行处理,删除其中的回车符,并将处理后的结果保存到deploy2.sh文件中。

    5.ssh登录远程Linux服务器
    # 请设置云服务器的IP地址和账户
    # 例如 ubuntu@122.51.199.160
    REMOTE=
    # 请设置本地SSH私钥文件id_rsa路径
    # 例如 /home/litemall/id_rsa
    ID_RSA=
    ssh $REMOTE -i $ID_RSA << eeooff
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    异步编程概述
    如何快速识别图片中的文字?建议使用者两种方法
    自定义prometheus exporter实现监控阿里云RDS
    MySQL学习系列(1)-每天学习10个知识
    深度学习与总结JVM专辑(二):垃圾回收基础(图文+代码)
    使用NATS及其nats.c客户端简单示例用法(nats.c的API接口)
    ardupilot 卡尔曼滤波器学习
    C# iText 7 切分PDF,处理PDF页面大小
    CSS 两栏布局
    Java四大引用详解:强引用、软引用、弱引用、虚引用
  • 原文地址:https://blog.csdn.net/weixin_42844704/article/details/134280165