专栏名称: Linux就该这么学
专注于Linux运维技术培训,让您学习的每节课都有所收获,订阅本号后可每天获得最新Linux运维行业资讯、最实用的Linux免费教程以及独家Linux考证资料,三十多万技术小伙伴的选择,Linux就该这么学!
目录
相关文章推荐
Linux爱好者  ·  突发!49.8K Star 开源神器 ... ·  昨天  
Linux就该这么学  ·  自己工资14K,找到月薪28K工作后,开心地 ... ·  昨天  
Linux就该这么学  ·  Linux 运维频繁使用的 10 ... ·  昨天  
Linux就该这么学  ·  平替 Navicat ?开源 12 ... ·  2 天前  
Linux就该这么学  ·  【JumpServer】堡垒机如何低成本搭建 ... ·  2 天前  
51好读  ›  专栏  ›  Linux就该这么学

Shell 脚本黑科技:5 分钟学会自动化运维,效率翻倍

Linux就该这么学  · 公众号  · linux  · 2025-06-05 08:02

正文

请到「今天看啥」查看全文


Shell 脚本里定义多条 Linux 命令以及循环控制语句,然后将这些 Linux 命令一次性执行完毕,执行脚本文件的方式称之为,非交互式方式,

  • • windows 中存在 *.bat 批处理脚本
  • • Linux 中常用 *.sh 脚本文件

Shell ==脚本语言属于一种弱类型语言==,无需声明变量类型,直接定义使用强类型语言,必须先定义变量类型,确定是数字、字符串等,之后再赋予同类型的值 centos7 系统中支持的 Shell 情况,有如下种类

# cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen


Linux 默认 Shell

# echo $SHELL
/bin/bash

🦋 Shell 脚本 规则

在 Linux 系统中, Shell 脚本或者称之为 (bash shell程序) 通常都是 vim 编辑,由 Linux 命令、bash shell 指令、逻辑控制语句和注释信息组成。

🦋 第一个 Shell 脚本

# vim test1.sh 
# cat test1.sh 

# 第一个 shell 脚本 这是注释
#!/bin/bash

echo "hello world!"

运行 Shell 脚本

# bash test1.sh 
hello world!

🦋 Shebang

🐳 计算机程序中 Shebang 指的是出现在文本文件的第一行前两个字符 #!

  • • 就是指明这个代码文件用哪个解释器去读

在 Unix 系统中,程序会分析 Shebang 后面的内容,作为解释器的指令,例如

  • • 以 #!/bin/bash 开头的文件,程序在执行的时候会调用 /bin/bash ,也就是 bash 解释器
  • • 以 #!/usr/bin/python 开头的文件,代表指定python解释器去执行
  • • 以 #!/usr/bin/env 解释器名称 ,是一种在不同平台上都能正确找到解释器的办法

注意事项:

  • • 如果脚本未指定 Shebang ,脚本执行的时候,默认用当前 shell 去解释脚本,即 $SHELL。
  • • 如果 Shebang 指定了可执行的解释器,如 /bin/bash /usr/bin/python ,脚本在执行时,文件名会作为参数传递给解释器
  • • 如果 #! 指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”。
  • • 如果 #! 指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的 SHELL 去执行这个脚本。
  • • 如果 #! 指定的解释程序不存在,那么会报错 “bad interpreter: No such file or directory”。
  • • #! 之后的解释程序,需要写其绝对路径 (如:#!/bin/bash),它是不会自动到 $PATH 中寻找解释器的。。
  • • 如果你使用 “bash test.sh” 这样的命令来执行脚本,那么 #! 这一行将会被忽略掉,解释器当然是用命令行中显式指定的 bash。

🦋 脚本的常用执行方式

🦈 第一种:采用 bash sh + 脚本的相对路径或绝对路径 (不用赋予脚本 +x 权限)

sh + 脚本的相对路径

$ sh helloworld.sh 
Helloworld

sh + 脚本的绝对路径

$ sh /home/zfox/datas/helloworld.sh 
helloworld

bash+脚本的相对路径

$ bash helloworld.sh 
Helloworld

bash + 脚本的绝对路径

$ bash /home/zfox/datas/helloworld.sh 
Helloworld

第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限 + x)

(a) 首先要赋予 helloworld.sh 脚本的 + x权限

$ chmod 777 helloworld.sh

(b)执行脚本

相对路径(推荐使用)

$ ./helloworld.sh 
Helloworld

绝对路径

$ /home/zfox/datas/helloworld.sh 
Helloworld

注意:第一种执行方法,本质是 bash解析器 帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限

🦋 第二个 Shell 脚本:多命令处理

(1)需求: 在 /home/zfox/ 目录下创建一个 ljw.txt , 在 ljw.txt 文件中增加 I love ljw

(2)案例实操:







请到「今天看啥」查看全文