Linux怎么创建Shell脚本.sh文件

在 Linux 系统中如何创建 Shell 脚本文件,下面跟着博主一起来创建试试:

文章目录

一、创建 Shell 文件的三种常用方法

在 Linux 中创建 Shell 文件主要有两种方式,核心是用文本编辑器新建文件并写入内容,下面以我们上一步的 test.sh 为例演示:

方法1:用 vim 编辑器创建(最常用,适合编辑复杂脚本)

vim 是 Linux 自带的文本编辑器,操作步骤如下:

bash 复制代码
# 1. 新建并打开 Shell 文件(如果文件不存在则创建,存在则打开)
vim /usr/local/bin/test.sh

# 2. 进入编辑模式:按下键盘上的 i 键(左下角会显示 INSERT)
# 3. 粘贴/输入上一步给你的备份脚本内容(直接复制粘贴即可)
# 4. 保存并退出:
#    先按 Esc 键退出编辑模式 → 输入 :wq → 按回车键(:w 是保存,:q 是退出,:wq 是保存并退出)

方法2:用 nano 编辑器创建(新手友好,操作简单)

如果觉得 vim 操作复杂,nano 是更易上手的编辑器,步骤如下:

bash 复制代码
# 1. 新建并打开 Shell 文件
nano /usr/local/bin/test.sh

# 2. 直接输入/粘贴脚本内容(无需切换模式,打开就能编辑)
# 3. 保存并退出:
#    按 Ctrl+O → 按回车键确认保存 → 按 Ctrl+X 退出编辑器

方法3:快速创建空文件(先建空文件再编辑)

如果只是先创建空文件,后续再补充内容,可用以下命令:

bash 复制代码
# 方式A:touch 命令(仅创建空文件,不打开编辑)
touch /usr/local/bin/test.sh

# 方式B:重定向创建(echo 空内容到文件,同样创建空文件)
echo "" > /usr/local/bin/test.sh

# 创建空文件后,再用 vim/nano 编辑内容
vim /usr/local/bin/test.sh

二、创建后必做的关键步骤

  1. 赋予执行权限(否则脚本无法运行):
bash 复制代码
chmod +x /usr/local/bin/test.sh
  • chmod +x 表示给文件添加「可执行」权限,这是 Shell 脚本能运行的前提。
  1. 验证文件是否创建成功
bash 复制代码
# 查看文件是否存在
ls -l /usr/local/bin/test.sh

# 输出示例(有 x 表示有执行权限):
# -rwxr-xr-x 1 root root 1234 Jan  6 10:00 /usr/local/bin/test.sh

三、新手注意事项

  1. Shell 文件的后缀 .sh 不是必须的,但加上后更易识别,建议保留;
  2. 脚本第一行建议写 #!/bin/bash(指定解释器),否则可能因系统默认解释器不同导致运行异常;
  3. 编辑时注意路径正确性 :比如 /usr/local/bin/ 目录需要确保存在(不存在则用 mkdir -p /usr/local/bin 创建);
  4. 粘贴内容时如果格式乱了,可先在本地编辑器(如记事本)整理好,再复制到 Linux 终端。

四、快速测试脚本是否能运行

创建并赋予权限后,可直接执行脚本验证:

bash 复制代码
# 执行脚本
/usr/local/bin/test.sh

# 如果脚本有输出(比如「开始备份数据库」),说明文件创建和权限都没问题

五、总结

  1. 创建 Shell 文件核心是用 vim/nano 编辑器新建文件并写入内容,新手优先用 nano,熟悉后用 vim
  2. 创建后必须执行 chmod +x 文件名 赋予执行权限,否则脚本无法运行;
  3. 建议将脚本放在 /usr/local/bin/ 目录下,方便系统全局调用(无需输入完整路径)。
相关推荐
济6171 小时前
I.MX6U 开发板网络环境搭建---- NFS环境搭建-- Ubuntu20.04
linux
FIT2CLOUD飞致云2 小时前
支持OpenClaw智能体管理,新增企业微信、钉钉和飞书告警通知,1Panel v2.1.0版本发布
服务器·ai·开源·1panel
天空属于哈夫克32 小时前
企微API自动化:高效安全的群运营方案
linux·运维·服务器
dcmfxvr2 小时前
【无标题】
java·linux·前端
dust_and_stars2 小时前
Windows 11 RDP Wrapper 配置教程与常见问题解决方法
运维·windows
灰子学技术2 小时前
istio从0到1:如何解决同一个应用不同功能的路由聚合问题
运维·服务器·网络·云原生·istio
步步为营DotNet2 小时前
深入剖析.NET中Span:零拷贝内存操作的基石
服务器·php·.net
敲上瘾2 小时前
磁盘到 inode:深入理解 Linux ext 文件系统底层原理
android·linux·运维·文件系统
Mr.小海2 小时前
Docker Swarm 集群实战指南:从搭建到生产落地的完整攻略
运维·docker·容器