怎样在Linux执行脚本文件

在Linux中执行脚本需先赋予可执行权限:chmod +x 脚本名,然后可通过路径执行:./脚本名,或用解释器直接运行:bash 脚本名

脚本执行前的准备工作

  1. 创建脚本文件
    使用文本编辑器(如 nanovim)创建脚本文件,扩展名通常为 .sh(非强制)。
    示例:创建一个输出 “Hello World” 的脚本

    怎样在Linux执行脚本文件

    nano hello.sh
    #!/bin/bash
    echo "Hello World"
    • #!/bin/bash 称为 Shebang,指定脚本用Bash解释器执行(其他解释器如 #!/usr/bin/python3 用于Python脚本)。
  2. 赋予执行权限
    Linux文件默认无执行权限,需通过 chmod 命令授权:

    chmod +x hello.sh  # 为所有用户添加执行权限
    • 权限检查:ls -l hello.sh 显示 -rwxr-xr-x 表示权限已生效。

执行脚本的4种方法

方法1:直接路径执行(推荐)

./hello.sh
  • 要求
    • 必须在脚本所在目录执行( 表示当前目录)。
    • 需提前用 chmod 赋予执行权限。
  • 适用场景:日常执行自定义脚本。

方法2:指定解释器执行(无需权限)

bash hello.sh   # 使用Bash解释器
sh hello.sh     # 使用系统默认Shell
python3 script.py  # 执行Python脚本
  • 优点:跳过权限设置,直接调用解释器运行。
  • 注意:脚本内Shebang行会被忽略,以命令指定的解释器为准。

方法3:source 或 . 命令(当前Shell环境执行)

source hello.sh  # 或简写为 . hello.sh
  • 特点
    • 脚本在当前Shell会话中运行,可修改当前环境变量(如 export VAR=value)。
    • 无需执行权限。
  • 典型用途:加载环境配置(如 source ~/.bashrc)。

方法4:全局路径执行(任意目录调用)

  1. 将脚本移动到系统PATH包含的目录(如 /usr/local/bin):
    sudo cp hello.sh /usr/local/bin/hello
  2. 直接执行:
    hello  # 在任何目录输入脚本名即可
  • 验证PATHecho $PATH 查看路径列表。

常见错误与解决方案

错误提示 原因 解决方法
-bash: ./hello.sh: Permission denied 缺少执行权限 chmod +x hello.sh
-bash: ./hello.sh: No such file or directory 文件路径错误或编码问题 检查路径,用 file hello.sh 确认文件类型
-bash: ./hello.sh: /bin/bash^M: bad interpreter 脚本含Windows换行符(rn) 运行 dos2unix hello.sh 转换格式
命令未找到(command not found Shebang路径错误或PATH未配置 检查Shebang行(如 #!/bin/bash),确认解释器路径存在

安全注意事项

  1. 禁止随意执行来源不明的脚本

    恶意脚本可能删除文件或窃取数据,始终审查代码后再运行。

    怎样在Linux执行脚本文件

  2. 最小权限原则
    • 用普通用户执行脚本,必要时通过 sudo 提权(避免直接以root运行)。
  3. 敏感信息保护
    • 不要在脚本中硬编码密码,使用环境变量或加密存储(如 AWS Secrets Manager)。

最佳实践

  1. 脚本调试
    • 使用 -x 参数打印执行过程:bash -x hello.sh
  2. 日志记录
    • 重定向输出到文件:./hello.sh > log.txt 2>&1
  3. 添加注释

    用 说明代码功能,便于维护。


Linux脚本执行依赖权限设置(chmod)和正确调用方式(路径执行、解释器调用等),关键步骤:

怎样在Linux执行脚本文件

  1. 编写脚本并添加Shebang行;
  2. chmod +x 赋予权限;
  3. 通过 ./script.shbash script.sh 或全局路径执行。
    掌握这些方法可大幅提升运维效率,同时注意安全风险控制。

引用说明参考Linux官方文档(The Linux Documentation Project)及Bash手册(GNU Bash Manual),遵循POSIX标准,安全建议基于CIS Linux安全基准指南。

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月22日 05:44
下一篇 2025年6月22日 05:53

相关推荐

  • 如何快速打开Linux终端

    在Linux系统中,打开命令窗口(终端)的常用方法:使用快捷键Ctrl+Alt+T,或在应用程序菜单中搜索并点击“终端”选项,适用于Ubuntu等常见发行版。

    2025年6月10日
    000
  • Linux怎样打开gz文件查看内容?

    在Linux中查看gz压缩文件,常用两种方法:,1. **直接查看**:使用 zcat 文件名.gz 或 gunzip -c 文件名.gz 将内容输出到终端。,2. **解压后查看**:先用 gunzip 文件名.gz 解压(生成同名无后缀文件),再用 cat、less 或编辑器查看解压后的文件。

    2025年6月10日
    000
  • 如何上传文件到Linux服务器

    使用scp命令或sftp工具可实现本地文件上传至Linux服务器,scp通过命令行直接复制文件;sftp提供交互式操作,支持图形化工具(如FileZilla)进行拖拽上传。

    2025年6月12日
    000
  • Linux服务器如何快速重启?

    要重启Linux服务器,请以root身份或使用sudo执行reboot或shutdown -r now命令,务必先保存所有工作并关闭应用程序,以防止数据丢失,完成后系统将自动重启。

    2025年6月21日
    100
  • Linux如何查看指定时段CPU负载?

    使用top或htop实时监控,或通过sar -u查看历史数据(需安装sysstat),执行sar -u 5 3可每5秒采样一次、共3次显示CPU使用率,包含用户态、内核态及空闲百分比。

    2025年6月18日
    100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN