liunx - 麒麟系统v10 SP1 执行脚本文件

一、在麒麟系统中,如果脚本中使用 docker 命令需要输入密码,通常是因为当前用户没有足够的权限。

推荐方案:将用户加入 docker 用户组(永久解决)
bash 复制代码
# 1. 创建 docker 用户组(如果不存在)
sudo groupadd docker

# 2. 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 3. 更新用户组(立即生效)
newgrp docker

# 4. 重启电脑  验证(无需 sudo 直接运行)
docker ps

#******************
# 查看当前用户所属组
groups

# 确认 docker 组是否存在
getent group docker

# 检查用户是否在 docker 组中
id -nG | grep docker

原理 :Docker 安装时创建 docker 用户组,组成员可直接操作 Docker 守护进程。

临时方案:配置 sudoers 免密码(特定命令)

没有验证过

bash 复制代码
# 1. 安全编辑 sudoers 文件
sudo visudo

# 2. 添加以下内容(替换 your_username)
your_username ALL=(ALL) NOPASSWD: /usr/bin/docker

# 3. 脚本中这样使用
sudo docker ps

二、在liunx 中执行 脚本.sh文件方法

右键--打开终端

bash 复制代码
 # 添加可执行权限
 chmod +x 脚本.sh 
 ./脚本.sh

在麒麟系统中执行 .sh 脚本时提示 ‌**"未找到命令"**‌,通常由以下原因导致

1. 文件编码或换行符问题‌
‌现象‌:

脚本在Windows编辑后换行符为 CRLF,导致Linux无法识别。

‌解决‌:
bash 复制代码
sed -i 's/\r$//' 脚本.sh # 清除Windows换行符

三、 linux/麒麟系统中执行脚本报错 $'\r':未找到命令

这个错误通常是因为你的 ‌Shell脚本(.sh文件)是在Windows环境下编辑的 ‌,导致换行符是 \r\n(CRLF),而Linux/麒麟系统只识别 \n(LF)。因此,\r 被当作命令的一部分,导致 $'\r':未找到命令 错误。

‌解决方法‌

‌**1. 使用 dos2unix 转换文件格式(推荐)**‌

bashCopy Code

sudo apt install dos2unix # 银河麒麟(Debian系) 或 sudo yum install dos2unix # 中标麒麟(RedHat系) dos2unix 脚本.sh # 转换文件格式 chmod +x 脚本.sh # 确保脚本可执行 ./脚本.sh # 重新运行

‌2. 手动删除 \r 换行符‌
bash 复制代码
sed -i 's/\r$//' 脚本.sh   # 删除所有CRLF换行符 chmod +x 脚本.sh ./脚本.sh
‌3. 用 vim 或 nano 重新保存文件‌
bash 复制代码
vim 脚本.sh
  • 在 vim 里输入 :set ff=unix,然后 :wq 保存退出。
‌**预防措施(未来避免问题)**‌
‌1. 在 Windows 上使用合适的编辑器‌
  • ‌VS Code ‌:右下角切换 CRLF → LF:
    • 点击状态栏的 CRLF → 选择 LF。
  • ‌Notepad++: 编辑 → 文档格式转换 → 转为 Unix (LF)。
相关推荐
一条破秋裤2 小时前
【1112】Linux中断【整理】
linux·运维·服务器
wz97542 小时前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
CodeYp20193 小时前
第14讲:传输层协议 UDP
linux·udp
北京迅为3 小时前
案例分享 | RK182X算力卡:多路视频VLM监控,四路画面AI同时看懂,一句人话说清现场
linux·人工智能·嵌入式·rk3588·算力卡·rk182x
新*3 小时前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路4 小时前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao4 小时前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
lzx_00215 小时前
Linux 进程(三) 从进程状态到僵尸进程、孤儿进程
linux·服务器
FlightYe16 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
刘马想放假18 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket