linux编程语言shell,Linux shell入门学习_岐黄医士的博客-程序员宅基地

技术标签: linux编程语言shell  

从程序员的角度来看,shell本身是一种用C语言编写的程序,从用户的角度来看,shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用shell了脚本编程完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,shell编程仍然起着不可忽视的作用。深入地了解和熟练shell编程,是每一个Linux用户的必修课之一。

linux系统管理员对于Linux shell并不陌生,或许每天都要使用。今天我们就对Linuxshell基础进行学习,希望能对像学习Linux shell脚本编程的初学者有一个明确的帮助,水平得到提高。

本文就来给大家介绍shell的语法基础,开头、注释、变量等,虽然只是一些简单的介绍,但对以后的学习打下基础极为重要。

3a8051b49164050c9211eae5465633a5.png

1、什么是shell?

Linux系统的shell了作为操作系统的外壳,为用户提供给使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。

Shell是用户和内核之间的接口程序,如果吧Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。

Shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传入Linux核心。

2、shell语法基本介绍

2.1 开头

程序必须以下面的行开始(必须放在文件的第一行):

#!/bin/sh

符号#!用来告诉系统后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。

当编辑好脚本时,如果要执行该脚本,还必须使其可执行。

要使脚本可执行:

编译 chmod +x filename 这样才能用./filename 来运行

2.2注释

在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。

如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。

2.3变量

在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:

#!/bin/sh

#对变量赋值:

a="hello world"

# 现在打印变量a的内容:

echo "A is:"

echo $a

有时候变量名很容易与其他文字混淆,比如:

num=2

echo "this is the $numnd"

这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:

num=2

echo "this is the ${num}nd"

这将打印: this is the 2nd

2.4环境变量

由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。

Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种就足够了。

Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。

C shell是一种比Bourne shell更适于编程的shell,它的语法与C语言很相似。 Linux为喜欢使用C shell的人提供了Tcsh。Tcsh是C shell的一个扩展版本。Tcsh包括命令行编辑、可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法,它不仅和Bash shell是提示符兼容,而且还提供比Bash shell更多的提示符参数。

Korn shell集合了C shell和Bourne shell的优点并且和Bourne shell完全兼容。Linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。

Linux并没有冷落其他shell用户,还包括了一些流行的shell如ash、zsh等。每个shell都有它的用途,有些shell是有专利的,有些能从Internet网上或其他来源获得。要决定使用哪个shell,只需读一下各种shell的联机帮助,并试用一下。

本文的内容就到这里结束,感兴趣的朋友可以深入学习哦!喜欢我们的分享,可以关注课课家哦!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34142735/article/details/116867997

智能推荐

ruby和php比较,对比Php和Ruby的getter/setter实现方式_ExShepherd的博客-程序员宅基地

作者:老王Getter/Setter的用法在Java社区里很常见,比如说在Entity Bean或者DTO中,这东西有的时候很必要,有的时候则乏味得很。Php社区一般都是跟着Java社区的步伐匍匐前进,所以很多人在思想上继承了这样的做法。先看看PHP中最一般的做法:class Demo {private $name;private $age;public function getName() {...

oss分片上传(thinkphp+layui)-前端上传_zwl夏木子的博客-程序员宅基地_前端分片上传oss

效果:准备:1.npm install ali-oss2.composer require alibabacloud/sdk前端html代码:<div class="layui-form-item"> <label class="layui-form-label">视频/音频</label> <div class="layui-input-block"> ..

计算机中桌面位置更改,电脑桌面上图标怎么办?教你任意更改位置_老徐说的博客-程序员宅基地

由于XP系统停止提供服务,以前的win7系统已成为经典的计算机系统,并且在过去几年中出现的win8系统逐渐成为主流系统,但是有很习惯了XP系统。换句话说,新的计算机界面将有些不适合。一个非常简单的方面是计算机桌面上的图标问题。图标由系统自动排列。但是,有时候我们更喜欢在其中放置一些常用软件。如果您不知道自己的位置,今天我将教您如何随意更改图标的位置以及如何缩小图标。如何随意放置图标:首先,我们在空...

Control Panel Items_AZ09WY的博客-程序员宅基地

控制面板项目是注册的可执行文件(.exe) 或控制面板(.cpl) 文件,CPL实际上是重命名的动态链接库(.dlI) 文件,可导出CPIApplet函数。控制面板项可以直接从命令行执行,也可以通过Control_RunDLL (API)调用或者直接双击文件。攻击者可以使用控制面板项目来执行任意命令。恶意控制面板项目可以通过钓鱼邮件投递,也可以作为多阶段恶意软件的一个执行方法。控制面板项目,尤其是CPL文件,也可能会绕过应用程序或文件扩展名白名单。命令执行vs编写DLL:https://blog.c

java circle cy_用java做Triangle类,Trapezium类,Circle类_内卷之父的博客-程序员宅基地

*做Triangle类,Trapezium类,Circle类,实现相应功能。1.Triangle类有返回周长和面积属性,并且有Boolean属性可以根据用户输入判断该三边是否可以构成三角形,如不能则重新输入。2.Trapezium类可以返回面积。3.Circle类可以返回周长及面积*Triangle类public class Triangle {private double length1;pri...

H5页面制作通讯录_不是屹耳的_1998的博客-程序员宅基地_h5手机通讯录

H5通讯录,功能为可通过拼音查询,按字母排序。

随便推点

python os.walk如何不遍历隐藏文件_Python os.walk 在遍历目录中的实际应用步骤_weixin_39963053的博客-程序员宅基地

如果你在文件遍历中,你在递归写的过程中调试了好久。也弄不出相关的结果,你是否希望找到相关的方案对其有一个解答,以下就是对Python os.walk 遍历目录的介绍,通过此方案你就可以对前文中所说的问题迎刃而解。先看下代码:importosforiinos.walk('c:'+os.sep+'ant'):printi[1]下面是输出:c:\antc:\ant\binc:\ant\docs...

css抄页面,如何照抄别人家的网页_邵老师说的博客-程序员宅基地

开发中会遇到领导指着一个网页说,这个不错,咱们页面也按这个布局和风格做吧。直接用html+css+js生写还是挺费工的。最快的方法是直接照抄网页。本文例子不需要其它工具,只用浏览器的“另存页面为”和“查看页面源代码”两个功能来照抄网页,结果证明,不考虑js功能,仅看网页外观,是完全可以做出一模一样的网页的。以下面网页为例,布局简单,但是要自己从头开始写,肯定要调试很久。网页上鼠标右键,查看页面源代...

java打不开tomcat_Tomcat 打不开,startup闪退_活鸭肉的博客-程序员宅基地

如果是Tomcat闪退问题可以试一下以下方法:win10系统:重点:1。在JAVA_HOME变量里添加jdk\bin地址和jre\bin地址2.创建Tomcat的环境变量:TOMCAT_HOME=E:\tomcat-6.0.35 (解压后的tomcat文件目录)3.在Path里添加%JAVA_HOME%和%TOMCAT%(注意,在Home里包含了bin文件夹,此处不用再添加\bin)然后:1.在已...

lambda管中窥豹_weixin_34218579的博客-程序员宅基地

可以吧lamdba表达式理解为简洁得表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能该有一个可以抛出的异常列表。这个定义够大的让我们慢慢道来。匿名——我们说的匿名,是因为它不像普通方法那样有一个明确的名称:写得少而想得多!函数——我们说它是函数,是因为lamdba函数不像方法那样属于某个特定的类。但和方法一样,lambda有参数列表、函数主体、返...

python 学习指南_python 学习指南_weixin_39759995的博客-程序员宅基地

Python 学习指南“人生苦短,我用Python”,Python 是一门编程语言,是一门工具,我们要用它实现功能、完成任务。作为一个高级语言,它几乎能实现在计算机上我们能想到的任何功能,曾经有人说过,“只要你在电脑上做一件事超过15分钟,你就可以写个脚本去实现它”,Python也不例外。下面,我将对Python的学习,提一些个人的建议,希望能有所帮助。学习路线说明关于python 的学习路线,和...

我的世界服务器修改速度,我的世界运算变速 TickrateChanger mod_兔纸周嬷嬷的博客-程序员宅基地

我的世界运算变速 TickrateChanger mod,这款模组可以控制游戏内的时间流动的,让一切都变快,就像上帝拨动了时间的时钟一样,当时间加速的时候,你可以看见游戏内的各种生物都在快速的生长和移动,时间变慢时,则所有的物体都在变慢。我的世界运算变速 TickrateChanger mod介绍我的世界运算变速 TickrateChanger mod这款模组使你有可能改变游戏的速度。你可以使用这...

推荐文章

热门文章

相关标签