.sh文件是Linux中以Bash等Shell语言编写的可执行脚本,用于自动化执行命令序列,需赋予执行权限(chmod +x)后通过./script.sh运行,或直接用bash script.sh调用,其核心是提升重复操作效率。

“.sh结尾的文件”不是安装包,它只是可执行脚本——你不需要“安装”它,而是运行它。是否需要sudo、是否要改权限、用什么方式执行,全看脚本干啥事、怎么写的。
chmod +x 之后 ./script.sh 报 No such file or directory
这不是找不到脚本,是找不到 #!/bin/bash 里写的解释器路径。常见原因:
-
#!/bin/bash写成了#!/bin/sh,但脚本里用了[[或$(( )),而 Ubuntu 的/bin/sh实际是 dash,不支持这些语法 - 脚本在 Windows 下编辑保存,换行符是
\r\n,Linux 把末尾的\r当作解释器名一部分,去找/bin/bash\r——当然不存在 - shebang 行开头有空格或 BOM(比如 VS Code 默认 UTF-8 with BOM),内核直接跳过 shebang, fallback 到
/bin/sh,然后语法又崩了
修复方法:dos2unix script.sh 或 sed -i 's/\r$//' script.sh;用 file script.sh 看编码;用 head -n1 script.sh | cat -A 检查 shebang 是否干净。
下载下来的 install.sh 为啥必须加 sudo 才能跑
不是“必须”,而是脚本内部在写系统目录(如 /usr/local/bin、/opt)或修改全局配置(如 /etc/apt/sources.list)。普通用户没权限,自然失败。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先别急着
sudo ./install.sh——先用bash -x ./install.sh | head -50看它到底想干啥 - 如果只是复制文件到
/usr/local/bin,你可以手动sudo cp xxx /usr/local/bin/,比直接 sudo 运行整个脚本更可控 - 某些脚本会检测是否 root,非 root 直接退出,这时
sudo ./install.sh是唯一办法,但务必确认来源可信
脚本在 U 盘或 NFS 上 chmod +x 不生效
FAT32、exFAT、NFS 默认不存 Linux 权限位,chmod 看似成功,实际无效。这时不能用 ./script.sh。
- 改用
bash script.sh或sh script.sh,绕过权限检查和 shebang 解析 - 如果脚本依赖
#!/usr/bin/env zsh这类动态查找,bash script.sh就会失效——得先确认脚本真实需要哪个解释器 - 临时解法:把脚本拷到
/tmp或家目录再chmod +x,再运行
运行后没输出也没报错,脚本像“消失”了一样
常见于两种情况:
- 脚本第一行是
#!/bin/bash -e或含set -e,中间某条命令失败就静默退出——加bash -x script.sh看每步执行到哪停了 - 脚本末尾有
exit 0或exec调用其他程序,终端直接交出控制权,看起来像“卡住”或“没了”
真正麻烦的是那些带图形界面(比如用 zenity 或 dialog)却没检查 DISPLAY 环境变量的脚本——它可能失败但不提示,只在日志里留一行 Cannot open display。

















