首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Shell编程学习路线]——编制第一个shell脚本入门篇

[Shell编程学习路线]——编制第一个shell脚本入门篇

作者头像
神秘泣男子
发布于 2024-06-13 05:45:09
发布于 2024-06-13 05:45:09
28100
代码可运行
举报
文章被收录于专栏:运维知识运维知识
运行总次数:0
代码可运行
目录

——前言——

💥常用的几种shell

Bash

Sh

nologin

💗默认的Shell

💯趣站💯

What是Shell脚本呢❓️❓️❓️

🌐Shell脚本注释规范

单行注释

多行注释

®️注意事项

——前言——

欢迎进入Shell编程的世界!无论你是初学者还是经验丰富的开发者,掌握Shell脚本编写技巧都能极大地提高你的工作效率和系统管理能力。Shell脚本不仅是操作系统交互的重要工具,也是自动化任务、批处理操作和系统维护的强大助手。在本篇入门指南中,我们将带你一步步编制第一个Shell脚本,从基础语法到实际应用,帮助你打下坚实的编程基础。让我们一起开启这段充满探索与学习的旅程吧!

Linux中的shell脚本是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个‘命令解释器的角色’ ,负责接收用户输入的操作指令(命令),并且进行解释,讲需要执行的操作传递给内核执行,并输出执行结果,

常见的sheel解释器有很多种

💥常用的几种shell

Bash
  • 最常用的 Shell 解释器之一,尤其是在 Linux 系统中。
  • 兼容 Bourne Shell (sh) 的同时,增加了许多功能,如命令行编辑、命令历史记录等。
  • 支持丰富的脚本编写功能。
Sh
  • 最早的 Unix Shell 之一,由 Stephen Bourne 开发。
  • 简单且高效,适用于基本的脚本编写和系统管理任务。
nologin

是一种特殊的 shell,它用于禁止某个用户登录系统。当某个用户的 shell 被设置为 nologin 时,用户将无法通过常规方法登录到系统。这通常用于系统用户账户,这些账户不需要交互式登录权限。

等等~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc /shells

通过上述路径可以看到当前系统所支持的shell脚本种类

💗默认的Shell

Linux中默认的shell是Bash(Bourne Again Shell),由GNU开发,是目前大多数Linux系统默认使用的shell。路径在/bin/bash

What是Shell脚本呢❓️❓️❓️

简单的来说就是将你想要执行的命令,放进文本文档中,添加可执行权限,这个文件就成了shell脚本

例如:执行以下操作可以创建第一个脚本 first.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim first.sh
写入以下内容
#/bin/bash
#第一个shell脚本
cd /mnt
pwd
ls
touch test.txt
echo "我的第一个shell脚本" > test.txt
ls
cat test.txt
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

给脚本添加可执行权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod +x first.sh
代码语言:javascript
代码运行次数:0
运行
复制

运行脚本

在脚本当前路径下执行以下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./first.sh 

输出结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /] ./first.sh 
/mnt
1.txt  2.txt  2.txt.10904.2024-04-23@17:17:22~	3.txt  hgfs
1.txt  2.txt  2.txt.10904.2024-04-23@17:17:22~	3.txt  hgfs  test.txt
我的第一个shell脚本

可以看出创建一个test.txt的文件然后cat查看文件内容

🌐Shell脚本注释规范

一个合格的Shell脚本程序应该遵守标准的脚本结构,而且能够更好输入友好的提示信息,更加容易读懂,对于比较多的代码,结果复杂的脚本,应添加必要的注释文字

注释是用于解释或说明代码的文本,可以提高代码的可读性和维护性。shell脚本中常用的注释方法有两种:

单行注释
  • 单行注释:以#开头,注释内容紧跟在#之后。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash#第一个shell脚本
多行注释
  • 多行注释:使用<<EOF#!开头,注释内容写在两个标记之间。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<<EOF
!/bin/bash
这是我的第一个shell
EOF
®️注意事项

上述执行shell中直接通过 "./first.sh"的方式执行脚本,要求文件本身具有X权限在某些安全系统中可能无法满足条件。鉴于此,Linux内部还有很多调用Shell的方式,指定某个Shell来解释脚本语句,或者通过内部命令 source(或者点号 '.') 来价值文件中可以用来参考但,使用sh,"."也可以执行shell脚本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod +x first.sh
./first.sh
​
. first.sh 
sh first.sh 
bash first.sh 
source first.sh
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
hive基础总结(面试常用)
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 Metastore (hive元数据) Hive将元数据存储在数据库中,比如mysql ,derby.Hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录 Hive数据存储在HDFS,大部分的查询、计算由mapreduce完成 Hive数据仓库于数据库的异同 (1)由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言, 再无类似之处。 (2)数据存储位置。 hdfs raw local fs (3)数据格式。 分隔符 (4)数据更新。hive读多写少。Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。 INSERT INTO … VALUES添加数据,使用UPDATE … SET修改数据 不支持的 HDFS 一次写入多次读取 (5) 执行。hive通过MapReduce来实现的 而数据库通常有自己的执行引擎。 (6)执行延迟。由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致Hive执行延迟高的因素是MapReduce框架 (7)可扩展性 (8)数据规模。 hive几种基本表类型:内部表、外部表、分区表、桶表 内部表(管理表)和外部表的区别: 创建表 外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径 内部表会把数据复制或剪切到表的目录下 删除表 外部表在删除表的时候只会删除表的元数据信息不会删除表数据 内部表删除时会将元数据信息和表数据同时删除 表类型一、管理表或内部表Table Type: MANAGED_TABLE
用户1217611
2019/05/25
8980
一文学完所有的Hive Sql(两万字最全详解)
lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。
五分钟学大数据
2021/04/02
3.4K0
【Hive】hive 数据倾斜、优化策略、hive执行过程、垃圾回收
group by和聚合函数(sum count max min)一起使用 group by和以上的聚合函数一起使用的时候会默认在map端执行一次combiner(局部聚合:减少reducetask的数据量,这个时候reduce端接受的数据就会大大减少 一般不会出现数据倾斜 select id,count(*) from course group by id;
从大数据到人工智能
2022/09/16
1.9K0
【Hive】hive 数据倾斜、优化策略、hive执行过程、垃圾回收
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
该文介绍了关于数据库连接池的知识点,包括概念、特点、配置方式、调优参数和常见问题。同时,文章还提供了如何正确配置和优化数据库连接池的相关建议,以帮助开发人员更好地掌握和应用该技术。
别先生
2018/01/02
3.7K0
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
硬刚Hive | 4万字基础调优面试小总结
Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hive将HQL语句转换成MR任务进行执行。
王知无-import_bigdata
2021/06/01
2.2K0
硬刚Hive | 4万字基础调优面试小总结
数据科学|Hive SQL语法总结
Hive是一个数据仓库基础的应用工具,在Hadoop中用来处理结构化数据,它架构在Hadoop之上,通过SQL来对数据进行操作,了解SQL的人,学起来毫不费力。
陆勤_数据人网
2019/12/31
2K0
五万字 | Hive知识体系保姆级教程
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
数据社
2021/08/27
2.3K0
五万字 | Hive知识体系保姆级教程
Hive知识归纳——详解 hive 各个知识点
CREATE FUNCTION [db_name.] function_name AS class_name [USING JAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] ];
solve
2019/10/30
2.3K0
Hive知识归纳——详解 hive 各个知识点
hive的partition的作用和使用方法
一、背景 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 分区表指的是在创建表时指定的partition的分区空间。 如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。 二、技术细节 一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。 表和列名不区分大小写。 分区是以字段的形式在表结构中存在,通过des
Albert陈凯
2018/04/08
6.1K0
HIVE中的表以及语法
HIVE中的表以及语法 一、HIVE的表     HIVE使用的功能性的表格分为四种:内部表、外部表、分区表、分桶表。 1、内部表、外部表 1.特点     创建hive表,经过检查发现TBLS表中,hive表的类型为MANAGED_TABLE,即所谓的内部表。     内部表的特点是,先有表后有数据,数据被上传到表对应的hdfs目录下进行管理。     其实内部表的流程和sql数据库的表流程是几乎一样的。     但是在真实开发中,很可能在hdfs中已经有了数据,希望通过hive直接使用这些数据作为表内容
云飞扬
2018/05/11
2.2K0
2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
1、CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXISTS 选项来忽略这个异常。
Lansonli
2021/10/11
2K0
最强最全面的Hive SQL开发指南,超四万字全面解析!
hive -S -e 'select table_cloum from table' -S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。
五分钟学大数据
2021/12/02
8.4K0
最强最全面的Hive SQL开发指南,超四万字全面解析!
Hive-1.2.1_03_DDL操作 1.1. Create Database1.2. Drop Database1.3. Use Database2.1. Cre
  注意:各个语句的版本时间,有的是在 hive-1.2.1 之后才有的,这些语句我们在hive-1.2.1中是不能使用的。
踏歌行
2020/10/15
8090
Hive-1.2.1_03_DDL操作
    




        1.1. Create Database1.2. Drop Database1.3. Use Database2.1. Cre
Hive SQL 语法大全,宇宙最强整理,建议收藏
LOCATION 是指定外部表的存储路径,MANAGEDLOCATION 是指定管理表的存储路径(hive 4.0.0 才支持),官方建议默认就行,让所有的表都在一个根目录下。
kk大数据
2020/11/03
8K0
《hive编程指南》读书笔记:模式设计
按天划分表就是一种模式,每天一张表的方式在数据库领域是反模式的一种方式,按天划分的表建议使用分区表,hive通过where子句中的表达式来选择查询所需要的指定的分区,这样查询执行效率高。
木野归郎
2023/02/25
4090
《hive编程指南》读书笔记:模式设计
Hive基础操作
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
CBeann
2023/12/25
7160
hive基本使用
由于最近项目需要和大数据对接,需要了解一下数仓的基本知识,所以记录一下hive的基础原理和使用
leobhao
2022/06/28
9660
hive基本使用
Hive 高频考点讲解
Hive 是 FaceBook 开源的一款基于 Hadoop 数据仓库工具,它可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
sowhat1412
2022/09/20
1.2K0
Hive 高频考点讲解
【Hive】SQL语句大全
继承 org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
全栈程序员站长
2022/08/30
2.7K0
大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试
一、Hive 基本面试1、什么是 metastore2、metastore 安装方式有什么区别3、什么是 Managed Table 跟 External Table?4、什么时候使用 Managed Table 跟 External Table?5、hive 有哪些复合数据类型?6、hive 分区有什么好处?7、hive 分区跟分桶的区别8、hive 如何动态分区9、map join 优化手段10、如何创建 bucket 表?11、hive 有哪些 file formats12、hive 最优的 file formats 是什么?13、hive 传参14、order by 和 sort by 的区别15、hive 跟 hbase 的区别二、Hive 数据分析面试1、分组 TopN,选出今年每个学校、每个年级、分数前三的科目2、今年,北航,每个班级,每科的分数,及分数上下浮动 2 分的总和3、where 与 having:今年,清华 1 年级,总成绩大于 200 分的学生以及学生数三、Flume + Kafka 面试1、flume 如何保证数据的可靠性?2、kafka 数据丢失问题,及如何保证?3、kafka 工作流程原理4、kafka 保证消息顺序5、zero copy 原理及如何使用?6、spark Join 常见分类以及基本实现机制
黑泽君
2019/06/19
1.9K0
大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试
相关推荐
hive基础总结(面试常用)
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验