Linux执行.sh文件必学技巧?,或,Shell脚本如何提升Linux效率?,或,如何安全运行.sh脚本?

基础执行方法

添加执行权限(关键步骤)

   chmod +x your_script.sh  # 赋予脚本可执行权限
  • 原理:Linux文件默认无执行权限,chmod +x修改权限位。
  • 验证权限:ls -l your_script.sh 查看是否包含 -rwxr-xr-x

直接执行脚本

   ./your_script.sh        # 当前目录下执行
   /home/user/script.sh    # 绝对路径执行
  • 注意:若提示 Permission denied,返回步骤1检查权限。

通过解释器调用(无需权限)

   bash your_script.sh     # 使用Bash解释器
   sh your_script.sh       # 使用系统默认Shell(可能是Bash或Dash)
  • 适用场景:临时执行或调试未授权脚本。

进阶场景与技巧

脚本调试模式

   bash -x your_script.sh  # 打印每条命令及结果
  • 输出示例:+ echo 'Hello World' → 定位错误行号。

后台执行与日志

   nohup ./script.sh > output.log 2>&1 &  # 后台运行,输出重定向到日志
  • 查看进程:jobs -lps aux | grep script.sh

传递参数

   ./sum.sh 10 20          # 脚本内通过 $1=10, $2=20 获取参数
   ```示例:
   ```bash
   #!/bin/bash
   result=$(( $1 + $2 ))
   echo "Sum: $result"

常见问题解决

错误:/bin/bash^M: bad interpreter

  • 原因:脚本在Windows创建,含\r\n换行符。
  • 修复
    dos2unix your_script.sh  # 转换换行符
    # 或手动处理:
    sed -i 's/\r$//' your_script.sh

错误:command not found

  • 检查项
    • 脚本首行声明解释器:#!/bin/bash(或 #!/usr/bin/env bash)。
    • 命令路径是否正确(如 ./lib/ 需写为绝对路径)。

权限继承问题

  • 以其他用户身份执行:
    sudo -u username ./script.sh  # 指定用户
    sudo ./admin_script.sh        # root权限执行

安全注意事项

  1. 来源可信原则

    • 禁止执行未知来源脚本(可能含 rm -rf / 等恶意命令)。
    • 下载脚本后先审计:cat script.shless script.sh
  2. 最小权限原则

    • 非必要不使用 sudo 执行,避免提权攻击。
    • chown 限制脚本归属:chown root:admin script.sh
  3. 沙箱测试

    • 在虚拟机或容器中测试新脚本:docker run -it --rm alpine ./test.sh

  • 核心步骤chmod +x./script.shbash script.sh
  • 安全第一:始终验证脚本内容,避免直接运行网络来源脚本。
  • 灵活运用:参数传递、后台执行、调试模式可应对复杂需求。

引用说明基于Linux内核文档(kernel.org)、GNU Bash手册(gnu.org)及Linux权限管理标准(IEEE Std 1003.1),操作建议通过Ubuntu 22.04、CentOS 7及更高版本验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4495.html

(0)
酷番叔酷番叔
上一篇 2025年6月14日 19:48
下一篇 2025年6月14日 20:07

相关推荐

  • 如何关闭SELinux?操作步骤与配置方法详解

    SELinux(Security-Enhanced Linux)是Linux内核中一个重要的安全模块,通过强制访问控制(MAC)机制为系统提供细粒度的安全策略,防止未授权的访问和操作,但在某些场景下,如软件安装、服务调试或兼容性问题,可能需要临时或永久关闭SELinux,以下是详细的关闭步骤及注意事项,涵盖不同……

    2025年10月3日
    5100
  • Linux网络访问慢是什么原因?有哪些实用解决方法?

    Linux网络慢是一个常见但复杂的问题,可能涉及硬件、系统配置、服务、网络协议等多个层面,解决这类问题需要系统性地排查,从基础到进阶逐步定位并优化,以下从多个维度详细说明排查和解决方法,硬件层面基础检查硬件问题是网络慢的根源之一,需优先排查,首先检查物理连接:网线是否老化、接口是否松动,建议更换质量合格的Cat……

    2025年9月16日
    6800
  • linux 如何看ip

    在Linux系统中查看IP地址是网络管理的基础操作,无论是排查网络问题、配置服务还是监控连接状态,都需要掌握多种查看IP的方法,根据不同的需求(如查看本机IP、公网IP、网络连接状态等),Linux提供了丰富的命令工具,下面将详细介绍这些方法及其使用场景,查看本机网络接口与IP地址本机IP地址通常指网络接口(如……

    2025年8月27日
    8900
  • Linux编译为何离不开强大工具链?

    编译的核心步骤代码编译分为四个阶段,以C语言为例(使用GCC编译器):预处理(Preprocessing)处理宏定义、头文件包含和条件编译,命令:gcc -E source.c -o source.i生成:.i 文件(展开后的纯代码),编译(Compilation)将预处理后的代码转换为汇编语言,命令:gcc……

    2025年7月27日
    10000
  • 工资不够花?三招教你多赚五千

    在Linux系统中,SELinux(安全增强型Linux)作为强制访问控制机制,能有效提升系统安全性,但有时合法应用会被SELinux策略阻止运行,此时需添加”白名单”(即自定义规则),以下是三种主流方法,操作前请确认问题确由SELinux引起(通过sudo ausearch -m avc -ts recent……

    2025年7月26日
    10800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信