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

相关推荐

  • vi退出困扰?

    在vi/vim中,先按Esc键确保处于命令模式,然后输入:q退出(无修改时),:q!强制退出不保存修改,:wq或ZZ保存并退出,遇到卡住时,可尝试Ctrl+C再退出。

    2025年7月25日
    4000
  • 如何访问linux系统文件

    Linux中,通过文件路径访问文件,如cd /home/user进入目录,ls查看文件,

    2025年8月16日
    3200
  • Linux 20G硬盘如何分区?

    在Linux系统中,硬盘分区是系统安装与管理的核心环节,合理的分区方案不仅能提升系统性能,还能增强数据安全性和管理灵活性,对于20GB容量的硬盘,虽然空间有限,但通过科学规划,仍能满足日常办公、开发或轻量级服务器的需求,本文将详细介绍20GB Linux硬盘分区的完整流程,包括分区方案设计、工具选择、操作步骤及……

    2025年8月24日
    3200
  • 如何查看Linux系统架构?

    使用 uname 命令(最常用)uname 是Linux核心工具,直接显示系统硬件和内核信息:uname -m结果解读:x86_64:64位Intel/AMD处理器(主流架构),i386 或 i686:32位Intel处理器,aarch64:64位ARM处理器(常见于树莓派、手机),armv7l:32位ARM处……

    2025年7月30日
    3900
  • 如何在Linux系统中搭建C语言开发环境并编写代码?

    Linux环境下进行C语言开发是许多开发者的首选,其强大的命令行工具链和开源生态为C语言提供了高效、灵活的编程环境,本文将详细介绍从环境搭建到代码编写、编译运行、调试及项目管理的完整流程,帮助读者快速上手Linux下的C语言开发,开发环境的准备是基础,Linux系统通常默认安装了GCC(GNU Compiler……

    2025年9月23日
    1900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信