linux shell 博客,【博客侠】Linux Shell脚本系列:开始上手(1)

看标题大家应该知道,这是一个关于 Linux Shell 脚本的系列文章。通过本系列文章希望帮助 Linux 初学用户快速开始上手编写 Shell 脚本,能够利索的对脚本进行测试和使用。

在接下来的首篇文章中,我们将介绍什么是 Shell,有哪些 Linux Shell 类型,什么是 Shell 脚本以及如何编开始写自己的 Shell 脚本等内容。

什么是(Unix) Shell

Unix Shell 即大家俗称的 Shell 是源于 Unix/Linux 的命令行解释器,用户在 Shell 中执行的一系列命令都会被 Shell 命令行解释器直接执行。现代流行的命令行解释功能都已被内置到 Linux Shell 中进行支持,例如:通配符、 管道、 变量、条件操作、 命令及帮助文件等。简单来说,我们可以把 Linux 理解为用户与 Linux 操作系统进行交互的一个接口。

常见Shell类型

Linux 中的各种 Shell 类型有很多,但 Bourne Shell 和 C shell 应用最为广泛,事实上 Bourne Shell 已经成为 Shell 附加功能及一些衍生功能的编码基础。

Bourne Shell:Bourne shell 又名 sh,在 Linux 中的标准路径为 /bin/sh,它由 Stephen Bourne 编写创建,其之所以如此出名是因为 sh 作为其它 Shell 的大量符号/硬链接而存在。(Bourne Shell 的 License 仍在讨论中。)

C Shell:C Shell 又名 csh,由 Billy Joy 编写创建并被 BSD Unix 广泛使用。C Shell 引入许多功能来完善交互,如:别名,历史操作,任务控制等。它完全由 C 语言写成,并使用 BSD license。

Fish:Fish 是友好人机交互的代表,它改变了用户与 Linux Shell 在通用变量、友好错误信息、Tab 补全、语法高亮、智能终端和剪贴板处理等方面的交互方式。(Fish 基于 GPL v2)

Bourne-Again Shell:作为 GNU 项目的一部分,Bourne-Again Shell 是目前大多数 Linux 发行版和 Mac OS X 默认使用的 Shell。(它主要由 C 语言写成并基于 GPLv3 发布)

其它不太常用的 Linux Shell 还包括:

Debian Almquist shell 别名 dash

Korn Shell 别名 ksh

Z shell 别名 zh

Busybox

……

什么是Shell脚本

Shell 脚本主要由 Linux Shell 解释执行,可被用于自动化的程序执行、文件操作、环境配置等任务,Linux 管理员通常使用 Shell 脚本来执行一些重复性的体力劳动。

Shell 脚本可将多个要执行的命令和任务提交到 Linux Shell 自动执行,而无需用户手动触发。你还可以在单个脚本中将一个命令的输出定义为另一个命令的输入。

总的来说,Shell 脚本编写是 Linux 管理员节省时间和资源的必备技能。

如何编写Shell脚本

在新手阶段,我们比较建议大家使用 gedit、vi/vim、nano 或 Emacs 来编写 Shell 脚本,而不要使用其它 IDE 编辑器。Bash 脚本必需以如下代码作为首行:

#!/bin/bash

上述字符中的 #! 被称为 shebang,后面跟的 /bin/bash 表明要使用 /bin/bash 来执行。除首行(意义特殊)用于指定脚本类型外,其余以 # 打头的内容会被当作注释被 Shell 忽略执行。

脚本写成后,你可将该文件保存成任意扩展名甚至无扩展名,但业界公认惯例以 .sh 作为 Linux Shell 脚本的扩展名,建议大家也别搞特殊。而且要在赋予脚本执行权限之后才能被执行,建议大家采用 775 权限,千万不要 777:

chmod755sysgeekdemo.sh

编写首个Shell脚本

打开你使用的文本编辑器,粘贴如下内容:

#!/bin/bash

echo"Hello World!"

将其保存成 1st.sh 再执行看看效果:

chmod7551st.sh

./1st.sh

0818b9ca8b590ca3270a3433284dd417.png

执行成功了,是不是非常简单。

下面我们再建立一个 2nd.sh 并粘入如下内容:

#!/bin/bash

echo"What is your name?"

read a;

echo"Hey $a! what is your Favorite Website?"

read b;

echo-e"That's Nice to know @$a that $b is your favorite Website"

0818b9ca8b590ca3270a3433284dd417.png

echo 后的「What is your name?」进行了正确输出,随后你输入的名字被存到了变量 a 当中,让命令可以从文件描述符中进行读取。

echo 后跟的 「Hey $a! what is your Favorite Website?」中的 $a 变量进行了赋值输出,并将输入的网址存入了变量 b,在第三行进行输出。

如此简单!开始上手的感觉非常良好?在 Linux Shell 脚本系列的后续文章中,我们将逐步深入,希望大家玩得开心。

稍后还会为大家推送后续相关内容,请记得要关注哦

如果想联系博客侠付林,可以点击“阅读原文”勾搭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql server linux性能,详细了解SQL Server 2008性能和性能优化

在SQL Server 2005或更早的版本中的中,表变量是不能作为存储过程的参数的。当多行数据到SQL Server需要发送多行数据到SQL Server ,开发者要么每次发送一列记录,或想出其他的变通方法,以满足需求。虽然在.net 2.0中提供了个SQLBul…

开发linux显卡驱动,显卡驱动开发DRM入门--Apple的学习笔记

由于之前的blog提及kmscube的源码我没有找到,所以只能在网上搜索了。DRM简介DRM是Linux目前主流的图形显示框架,同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护。而且drm是集成在linux kernel中的。DR…

android mvc使用方法,详细学习android mvc设计模式教程

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式。其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易…

android l 电池,DIY新技能--M1L换电池

DIY新技能--M1L换电池2019-10-23 16:48:526点赞6收藏10评论更换理由M1L是好几年前买的了,具体几年前我都懒得购买记录了。前前后后买了4台锤子手机了,这是我支持老罗的第二款手机,前一款是坚果手机,买了两台早先给妈妈用一台后来给…

android版本10好不好,一加正式推送Android 10系统 流畅性怎么样

近日,一加正式推送Android 10系统,不知道流畅性如何呢?一加官方推特正式宣布Android 10系统已进行阶段性推送,从今天开始一加7和一加7 Pro手机用户将会陆续收到氧OS系统的更新,国内基于Android 10的氢OS将于下月推送。…

android屏幕适配流程,Android屏幕适配姿势

GitHub地址为什么要屏幕适配?device_framentation.png统计碎片化品牌机型碎片化屏幕尺寸碎片化操作系统碎片化为了保证用户获得一致的用户体验效果,使得某一元素在Android不同尺寸、不同分辨率的手机上具备相同的显示效果,则需要我们进行屏幕…

在html中写js提示错误,页面HTML标签优化

真正需要SEOer掌握并经常使用的HTML标签也就那么几个,本小节错误君带来的是页面HTML标签优化。title标签 – 标题标签1)title标签用法2.13 TF-IDF加权方法 – 错误教程2)标题标签的作用文章标题有着关键词的作用,文章标题引点击流量。3)页面标题标签优化…

在线聊天室html5源码,HTML5WebSocket实现聊天室的代码示例

本篇文章主要介绍了HTML5-WebSocket实现聊天室示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。在传统的网页实现聊天室的方法是通过每隔一段时间请求服务器获取相关聊天信息来实现,然而html5带来的websocket功能改变这了这种方式&am…

列表页时间日期标签靠显示html,帝国CMS列表页面list.var分别调用年月日,显示个性时间日期...

在帝国CMS中列表页个性时间显示的实现方式,首先我们要知道用什么方法来实现,这里我们使用PHP代码来做。要在模板代码中使用PHP代码,就必须勾选此模板代码页面的-使用程序代码.位置就在添加模板页面的列表内容模板(list.var) (*)上边。然后我们在list.var…

html鼠标响应事件吗,学习JavaScript鼠标响应事件

本文为大家分享了一个简单的鼠标模拟案例,供大家参考,具体实现内容如下如何实现捕抓鼠标事件,当鼠标滑动时,获取当前鼠标的坐标,接着在一个透明区域里绑定捕抓的位移,这样就能在模拟的透明区域里实现鼠标滑…

html5边框闪烁,HTML – CSS框阴影动画像素艺术闪烁

部分用于测试,部分用于我的设计理念,我试图将动画gif转换为纯动画CSS.它几乎正常工作,但我遇到了障碍,我不确定是什么导致了我的问题,或者我如何解决它.我不幸地怀疑我只是限制了技术.至于实际的CSS,我一直在尝试实现这里的方法(动画框阴影属性),因为它看起来最可行&#xff1a…

如把联想电脑计算机图标放在桌面上,thinkpad电脑图标没了怎么恢复

正常情况下,在电脑的桌面上都会有系统自带的程序图标,以及用户自己创建的一些图标。可是最近有网友却跟小编反映说,自己thinkpad电脑出现了图标都没了的情况,不知道怎么回事,更加不清楚怎么恢复。那么对此今天本文就来…

未来计算机领域最急缺的人,未来十年最紧缺职业 没人愿意干的高薪职业

未来十年最紧缺职业 没人愿意干的高薪职业2019-03-19 09:25:56文/刘美娟未来十年中国最紧缺的高薪职业类型有:金融分析师、理财规划师以及动漫设计师等。未来最紧缺的高薪职业金融分析师金融分析师是证券投资和管理界的高级人才,目前我国能够真正拿到特许…

口琴膜片什么作用_思域发动机舱里的这个东西是什么东东,它究竟有什么作用呢?...

​今天的文章我们主要来讲讲图中的这个东西究竟是什么?你们知道他是干什么的吗,这个东西究竟有什么作用?这是前几天的一个微信网友添加我微信问我的问题,今天对这个问题整理了一下,顺来来科普一下关于这个系统的具体应…

椭圆形中间一个大写的v_静安区椭圆形桥梁空心板橡胶气囊,方形桥梁板橡胶气囊_冠桥橡胶...

首页 > 新闻中心发布时间:2020-12-11 07:22:18 导读:冠桥橡胶为您提供静安区椭圆形桥梁空心板橡胶气囊,方形桥梁板橡胶气囊的相关知识与详情: 分集水器上,由于主要功能是调节,般选截止阀或闸阀。后来又出现了一种新…

计算机专业独显好还是集显好,笔记本选购指南:笔记本电脑核显好还是独显好?...

暑期装机热潮来了,而大部分大学生会选择入手一台笔记本而不是笨重的台式机,今天这里主要讲下笔记本选购指南,笔记本电脑核显好还是独显好?可能这个问题提出来,大家就要说很外行。不过既然是写给不太懂电脑的人看&#…

oracle查同比增长_天眼查:目前我国今年新增2.3万家充电桩相关企业,同比增长16.94%...

天眼查专业版数据显示,目前我国有近10万家经营范围含“充电桩、新能源智能充电、电动汽车充电”,且状态为在业、存续、迁入、迁出的充电桩相关企业。从地域分布来看,我国充电桩相关企业较多集中在广东、山东和江苏这三个省份,其中…

速卖通手机端怎样加入html,如何正确使用速卖通手机版的关联营销模板

如何正确使用速卖通手机版的关联营销模板旺销王发表于:2018年11月15日 17:47:22更新于:2019年08月07日 15:19:13很多速卖通卖家都在群里跟小编反应一个问题,为什么没有单独生成手机速卖通详情的速卖通产品的速卖通关联营销在速卖通店铺是可以…

能用来写安卓吗_iPad能代替笔记本吗,除了看剧还能用来做什么?

今天想和大家分享一下我手里的这台iPad Pro。关于它主要是两个方面:● 我自己用它会做哪些事情?● 分享几款我觉得好用的的iPad app(最后会附上我个人关于iPad的选购建议)首先,它不是我的第一款iPad产品。在我大二的时候,我非常幸…

c语言辗转相除法求最大公约数_趣味探究:妙法求“最大公因数”,比书上难一点,你敢挑战吗?(适合56年级)...

【题记】宝石虽落在泥土里,仍是宝石,砂粒虽被吹到天空中,还是砂粒。——莎士比亚不是有水的地方就有青蛙,但是青蛙叫的地方必定有水。——歌德【配合教材】本探究配合“因数与倍数”。通过本探究能够帮助学生巩固所学知识&#xf…