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/ 目录下,方便系统全局调用(无需输入完整路径)。
相关推荐
Cosolar1 小时前
LlamaIndex索引类型全解析:原理与实战指南
运维·服务器
方便面不加香菜4 小时前
Linux--基础IO(一)
linux·运维·服务器
鼎讯信通6 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..7 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
跨境数据猎手7 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA8 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter6258 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
会Tk矩阵群控的小木8 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
赵渝强老师9 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
佛山个人技术开发9 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode