Linux编写和执行脚本详细教程

张开发
2026/4/7 16:10:36 15 分钟阅读

分享文章

Linux编写和执行脚本详细教程
一、登录与切换用户bash运行[roottest01 ~]# su - lcysu - lcy切换到 lcy 这个普通用户并加载 lcy 的环境变量-表示完整切换环境后面显示的登录时间、系统信息都是系统自动欢迎信息不是你输入的命令。二、编辑并创建脚本bash运行[lcytest01 ~]$ vim first.shvim first.sh用vim 编辑器创建并编辑一个叫first.sh的 shell 脚本文件。三、查看文件bash运行[lcytest01 ~]$ ls first.shls列出当前目录下的文件看到刚创建的first.shbash运行[lcytest01 ~]$ ls -l 总用量 4 -rw-r--r--. 1 lcy lcy 35 3月 25 00:12 first.shls -l详细查看文件权限、大小、修改时间这里权限是rw-r--r--说明还没有执行权限。四、给脚本加执行权限bash运行[lcytest01 ~]$ chmod ux first.shchmod ux first.sh给文件所有者uuser添加执行权限xexecutebash运行[lcytest01 ~]$ ls -l -rwxr--r--. 1 lcy lcy 35 3月 25 00:12 first.sh现在权限变成rwx说明可以执行了。五、本地运行脚本bash运行[lcytest01 ~]$ ./first.sh./first.sh在当前机器test01上执行这个脚本报错ifconfig未找到命令原因openEuler 最小化安装默认没有 net-tools 工具包ifconfig不存在但脚本里后面的df命令正常执行了所以显示了磁盘信息。六、手动查看磁盘验证bash运行[lcytest01 ~]$ df -hTdf -hT查看磁盘挂载、容量、使用率-h人类易读格式G、M-T显示文件系统类型ext4、tmpfs 等七、用 Ansible 远程执行脚本核心操作bash运行[lcytest01 ~]$ ansible test02 -m script -a first.sh这条是重点拆开讲ansible自动化运维工具用来批量管理远程 Linux 机器。test02要操作的目标主机名在 Ansible 清单里配置好的。-m script-m指定使用的 Ansible 模块script模块把本地脚本传到远程机器再在远程执行并返回结果。-a first.sh传给模块的参数要执行的本地脚本是first.sh执行结果说明plaintexttest02 | CHANGED { rc: 0, stderr: ...ifconfig未找到命令..., stdout: 磁盘信息... }CHANGEDAnsible 在远程执行了操作rc: 0脚本整体执行成功退出码 0 代表正常ifconfig未找到命令远程机器 test02 也没装 ifconfig和本机一样的问题后面输出磁盘信息说明脚本里df命令在 test02 上正常跑了简单总结这一整套操作从 root 切到普通用户lcy写了一个 shell 脚本first.sh加执行权限本地运行报 ifconfig 不存在但 df 正常用df -hT手动看磁盘用Ansible 的 script 模块把脚本推到test02远程执行远程同样报 ifconfig 不存在但 df 正常输出小补充解决 ifconfig 找不到openEuler 里想使用 ifconfig安装工具包即可bash运行sudo dnf install net-tools -y或者直接用替代命令bash运行ip addr

更多文章