一起来学Shell脚本编程(一)

简介: 一起来学Shell脚本编程(一)

前言

目前正在出一个Shell脚本编程系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~

前面我们学习了Linux的一些基本命令,需要我们在终端手动去执行,但在处理一些复杂的操作就显得有点乏力,需要不停的执行,还很容易出错。有没有一种办法,可以帮助我们执行这一些列操作,方法当然有,那就是通过脚本去解决。

作为服务端开发,shell脚本编程还是要掌握一下的,可以做做基础性的运维,提高工作效率。

本系列主要以Linux Bash为主 ,好了, 废话不多说直接开整吧~

什么是 Shell

Shell是计算机操作系统中的一种用户界面,用于与操作系统内核进行交互。它是用户与计算机之间的一个命令行界面或图形界面,用户可以通过Shell执行各种操作,例如运行程序、管理文件和目录、设置系统参数等。

Shell的主要功能包括:

  1. 命令解释和执行:用户可以在Shell中输入各种命令,Shell会解释这些命令并将它们传递给操作系统内核执行。这些命令可以是系统命令、应用程序命令或脚本文件。
  2. 文件和目录管理:用户可以使用Shell来创建、删除、移动、复制和查看文件和目录。这些操作可以通过命令行或图形用户界面来执行,具体取决于Shell的类型。
  3. 环境设置:用户可以在Shell中设置环境变量、别名和其他系统参数,以影响其后续命令的执行方式。
  4. 管道和重定向:Shell支持管道操作,允许将一个命令的输出传递给另一个命令作为输入。还可以使用重定向来将命令的输入和输出从标准输入和标准输出中定向到文件或其他设备。
  5. 脚本编写:用户可以编写Shell脚本,将一系列命令组合在一起,以便自动化任务、批处理处理或创建自定义工作流程。

在不同的操作系统中,有不同类型的Shell可供选择,其中一些常见的包括:

  • BashBash(Bourne Again Shell)是一种广泛使用的Unix/Linux Shell,它是许多Linux发行版的默认Shell
  • CmdCmdWindows操作系统中的命令提示符Shell,也称为命令行界面。
  • PowerShellPowerShellWindows上一种强大的Shell,它提供了更丰富的脚本编写和自动化功能。
  • ZshZsh是一种功能强大的Shell,它在Bash基础上提供了额外的功能和自定义选项。
  • FishFish是一种用户友好的Shell,具有智能自动补全和语法高亮等特性。

每种Shell都有其自己的语法和功能,用户可以根据需要选择合适的Shell来完成任务。Shell在计算机操作中发挥着重要的作用,它是与计算机系统交互的桥梁之一。

Shell脚本入门

这里给大家讲的例子主要以Bash为主,重点给大家介绍脚本的语法,下面我们通过一个例子快速的入门

新建一个文件test.sh,扩展名为.sh(sh代表shell)

#!/bin/bash
echo "Hello World !"

语法:

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shellecho命令用于向窗口输出文本。

执行脚本:

chmod +x test.sh
./test.sh

输出:

Hello World !

如果运行成功,那么你已经入门了~

注释语法

#开头的行就是注释,会被解释器忽略。因为没有多行注释,只能每一行加一个#号。

# --------
# 这是注释块
# --------

echo

内部指令,用于在屏幕上打印出指定的字符串

echo "hello\n";
echo -e "Hello,\n\tWorld!";  # `-e` 执行转义字符

输出:

hello\n
Hello,
  World!

将结果输出到文件:

echo "hello" >> hello.txt

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ls
hello.txt  test.sh
[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

printf

格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版

printf "hello \n world"

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
hello
 world

printf也可以不用转义字符,进行格式化输出:

printf "hello 
    world";

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
hello 
    world[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

参数格式化输出:

printf "\n hello %s" "world" # world作为字符串参数
printf "\n 1+1= %d" 2 # 2作为数字参数 
printf "\n%s and %d \n" # 无参数时 数参默认为0
printf "\n%d"  1 2 3 4 5 # 1 2 3 4 5 都为参 循环输出

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
 hello world
 1+1= 
 2 and 0 
 1
 2
 3
 4
 5
[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

结束语

大家平时在工作的时候就可以灵活运用起来了,多用用就熟悉了,大部分项目中都会用到脚本帮助我们去做一些自动化的工作,从而提高效率,还不容易出错~

本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注鼓励一下呗~

相关文章
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
77 1
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
21天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
45 2
6种方法打造出色的Shell脚本
|
8天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
29 1
|
12天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
34 2
|
26天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
45 6
|
23天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
Shell
Shell编程(下)
Shell编程(下)
90 1
|
1月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
40 1