shell编程基础知识入门-编程语言及工具-飞外网

Shell脚本(英语:Shell script)是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell script之后,依序运行其中的shell命令,之后输出结果。利用Shell script可以进行系统管理,文件操作等。

在Unix及所有的类Unix系统中,如Linux、FreeBSD等操作系统,都存在Shell Script。依照Unix shell的各种不同类型,Shell script也有各种不同方言。在DOS、OS/2、Microsoft Windows中的批处理文件,跟shell script有类似的功能。

1)记录命令历史 我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令。这些命令保存在用户的家目录中的.bash_history文件中。有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。

与命令历史有关的有一个有意思的字符那就是”!”了。常用的有这么几个应用:(1)!! (连续两个”!”),表示执行上一条指令;(2)!n(这里的n是数字),表示执行命令历史中第n条指令,例如”!100”表示执行命令历史中第100个命令;(3)!字符串(字符串大于等于1),例如!ta,表示执行命令历史中最近一次以ta为开头的指令。

2)指令和文件名补全 在本教程最开始笔者就介绍过这个功能了,记得吗?对了就是按tab键,它可以帮你补全一个指令,也可以帮你补全一个路径或者一个文件名。连续按两次tab键,系统则会把所有的指令或者文件名都列出来。

3)别名 前面也出现过alias的介绍,这个就是bash所特有的功能之一了。我们可以通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias :

看到了吧,系统预设的alias指令也就这几个而已,你也可以自定义你想要的指令别名。alias语法很简单,alias [命令别名]=[’具体的命令’]。

4)通配符 在bash下,可以使用*来匹配零个或多个字符,而用?匹配一个字符。

5)输入输出从定向 输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是《,输出重定向的命令是》,另外还有错误重定向2》,以及追加重定向》》,稍后会详细介绍。

6)管道符 前面已经提过过管道符”|”,就是把前面的命令运行的结果丢给后面的命令。

7)作业控制。 当运行一个进程时,你可以使它暂停(按Ctrl+z),然后使用fg命令恢复它,利用bg命令使他到后台运行,你也可以使它终止(按Ctrl+c)。

【变量】

前面章节中笔者曾经介绍过环境变量PATH,这个环境变量就是shell预设的一个变量,通常shell预设的变量都是大写的。变量,说简单点就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。就拿PATH来讲,这个PATH就代替了所有常用命令的绝对路径的设定。因为有了PATH这个变量,所以我们运行某个命令时不再去输入全局路径,直接敲命令名即可。你可以使用echo命令显示变量的值。

除了PATH, HOME, LOGNAME外,系统预设的环境变量还有哪些呢?

使用env命令即可全部列出系统预设的全部系统变量了。不过登录的用户不一样这些环境变量的值也不一样。当前显示的就是root这个账户的环境变量了。下面笔者简单介绍一下常见的环境变量:

PATH 决定了shell将到哪些目录中寻找命令或程序

HOME 当前用户主目录

HISTSIZE 历史记录数

LOGNAME 当前用户的登录名

HOSTNAME 指主机的名称

SHELL 前用户Shell类型

LANG 语言相关的环境变量,多语言可以修改此环境变量

MAIL 当前用户的邮件存放目录

PWD 当前目录

env命令显示的变量只是环境变量,系统预设的变量其实还有很多,你可以使用set命令把系统预设的全部变量都显示出来。

限于篇幅,笔者在上例中并没有把所有显示结果都截图。set不仅可以显示系统预设的变量,也可以连同用户自定义的变量显示出来。用户自定义变量?是的,用户自己同样可以定义变量。


shell编程100个实用例子分享shell编程100个实用例子分享2022-01-25 12:26:500减速电机基础知识问答减速电机基础知识问答2022-01-07 14:12:2422伺服驱动的基础知识_pdf伺服驱动的基础知识_pdf2021-12-11 17:02:311C++核心编程基础知识大全免费C++核心编程基础知识大全免费2021-12-03 12:55:380Arduino入门必备基础知识(基础认证考前总结)Arduino入门必备基础知识(基础认证考前总结)2021-11-15 20:51:018单片机编程入门基础知识(新手必看)单片机不是一门技术,而是一个工具。对于工具,我们的目的是会熟练地使用它。如果你看懂这句话,会少走很多弯路。下面我来讲一下使用这个工具时,会涉及到的一些知识点。1.单片机是什么?2.单片机编程需要掌握2021-11-13 13:36:0310嵌入式Linux开发工具——shell编程shell(脚本:批处理)适合职业:Linux系统运维工程师1.命令解析器(将用户输入的命令解析,调用相应的命令的可执行文件)2.脚本语言我们需要了解的是shell编程的简单命令语句一个简单的shell编程实现的程序:记录100以内的素数,用for语句实现...2021-11-01 17:20:5210pcb设计入门基础知识介绍在做PCB设计之前,首先要理解PCB设计,那么pcb设计入门基础知识有哪些呢,下面小编带大家了解一下pcb设计入门基础知识。 绘制电路原理图步骤 建立项目文件-》创建原理图文件-》创建原理图库文件2021-09-18 18:18:542592开关电源基础知识开关电源基础知识(核达中远通电源技术有限公司上市)-介绍了开关电源、基础知识、分类与调制方式2021-09-29 11:00:0814直流电路基础知识直流电路基础知识(电源技术杂志小木虫)-直流电路基础知识,有需要的可以参考!2021-09-15 19:06:246Git基础知识综述Git基础知识综述2021-08-31 10:09:240示波器探头的基础知识本文主要介绍了关于示波器探头的基础知识。2021-06-19 09:40:2326天线基础知识与原理天线基础知识与原理免费。2021-06-15 17:05:3238射频、光纤基础知识射频、光纤基础知识免费。2021-06-15 17:01:5713微波电路及设计的基础知识微波电路及设计的基础知识免费。2021-06-08 11:33:3019射频电路预备基础知识射频电路预备基础知识免费。2021-06-07 14:41:5730EMC的原理基础知识讲解EMC的原理基础知识讲解免费。2021-05-28 17:24:4313C语言基础知识讲解C语言基础知识讲解2021-05-19 14:11:139LED基础知识教程LED基础知识教程免费。2021-05-12 14:57:3021微带天线基础知识微带天线基础知识免费。2021-04-26 11:40:311神经网络基础知识神经网络基础知识课件免费。2021-04-21 09:37:413线性系统基础知识线性系统基础知识免费。2021-04-15 15:13:233光功能晶体基础知识光功能晶体基础知识资料免费。2021-04-15 15:00:237静电放电基础知识讲解介绍静电放电的基础知识。2021-03-22 15:41:5317FPGA的入门基础知识详细说明本文档的主要内容详细介绍的是FPGA的入门基础知识详细说明。2020-12-20 10:28:152624PLC的原理和应用的基础知识入门学习课件本文档的主要内容详细介绍的是PLC的原理和应用的基础知识入门学习课件免费包括了:预备知识 继电器控制技术 ,第一部分 可编程控制器绪论,第二部分 可编程控制器基础知识,第三部分 三菱FX-2N可编程控制器,第四部分 PLC网络及通信,第五部分 PLC控制系统设计与应用,第六部分 其他可编程控制器简介2020-11-04 18:08:2991逻辑电路的基础知识FPGA (Field Programmable Gate Aray,现场可编程门阵列)是一种可通过重新编程来实现用户所需逻辑电路的半导体器件。为了便于大家理解FPGA的设计和结构,我们先来简要介绍一些逻辑电路的基础知识。2020-10-13 11:22:488228单片机编程入门基础知识学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;2020-09-03 15:14:4041503Linux下C语言编程入门教程详细说明本文是Linux 下C 语言编程入门教程。主要介绍了Linux 的发展与特点、C语言的基础知识、Linux 程序设计基础知识及其下C 语言编程环境、Linux 程序设计的特点及其下C 语言编程风格等。2020-08-25 18:13:1425plc的概念及编程基础知识现在国内技术人才是紧缺的,尤其像掌握PLC技术这人才,不仅就业容易薪资待遇也好。那么具体PLC是什么,PLC编程基础知识有哪些呢?本文就给大家具体介绍下PLC,有兴趣的朋友可以去了解更多关于PLC的市场行情。2020-05-18 11:32:481686Linux驱动编程基础知识讲解由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点。 这篇文章将会帮助读者打下Linux驱动编程的基础知识。2020-02-29 17:30:262432Verilog编程语言界面入门知识简介即使Verilog成功,许多经验丰富的Verilog用户仍然认为其编程语言界面( PLI)作为“软件任务”。一步一步的方法可以帮助您在编写PLI函数时“打破僵局”。通过学习PLI设计的基本知识而不会被太多细节困扰,您将获得可以立即使用的PLI基础知识。2019-08-03 19:36:043501数控车床编程入门知识数控车床的程序编制必须严格遵守相关的标准,数控编程是一项很严格的工作,首先必须掌握一些基础知识,才能学好编程的方法并编出正确的程序。2019-05-30 14:06:5212556Linux命令行和shell脚本编程宝典PDF版电子书免费的基础知识;第2部分介绍shell脚本;第3部分介绍shell脚本编程的高级内容;第4部分介绍如何使用Linux环境中的各种shell编写shell脚本;第5部分演示如何在实际情况中使用shell脚本2019-03-20 14:21:3133电子电路入门基础知识免费本文档的主要内容详细介绍的是电子电路入门基础知识免费主要内容包括了:1.半导体二极管及其基本电路,2.场效应管放大电路,3.功率放大电路2019-03-12 16:48:38199Linux教程之Linux命令、编程器、Shell编程、实例大全pdf免费的实用程序。全书分上、中、下3篇,共20章,内容涵盖了Linux简介、Red Hat Linux基础知识、系统管理与设置、用户和用户组管理、磁盘管理、文件和目录管理、备份与压缩、网络管理、正则表达式、vim编辑器、cmacs、grcp命令、awk与sed、常用的文本编辑命令、Shell 编程基础、Shel2019-01-08 15:41:3818MATLAB教程之MATLAB语言的基础知识及入门本文档的主要内容详细介绍的是MATLAB教程之MATLAB语言的基础知识及入门主要内容包括了:1.MATLAB的发展历程和影响,2.MATLAB系统的构成,3.MATLAB的工作环境2019-01-04 15:16:2281适合C语言小白看的基础知识梳理总结C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!2019-01-04 11:09:163014什么是DCS系统?DCS系统基础知识入门什么是DCS系统?DCS系统基础知识入门2018-12-02 11:15:4834444单片机学习入门之单片机基础知识详细资料概述本文档的主要内容详细介绍的是单片机学习入门之单片机基础知识详细资料概述主要内容包括了:1 MCS-51单片机内部结构2 构建单片机最小系统3 单片机指令系统4 单片机汇编程序设计应用举例2018-10-24 14:26:4545嵌入式和物联网的shell脚本学习指南之shell脚本入门免费本文档的主要内容详细技术的是嵌入式和物联网的shell脚本学习指南之shell脚本入门免费。2018-09-11 18:00:3810初学者AVR软件入门基础知识(3)初学者AVR软件入门基础知识(3)2018-07-02 10:51:001211初学者AVR软件入门基础知识(1)初学者AVR软件入门基础知识(1)2018-07-02 10:50:303065初学者AVR软件入门基础知识(2)初学者AVR软件入门基础知识(2)2018-07-02 10:50:301332MATLAB基础知识MATLAB的简介,编程环境和基本操作的详细概述MATLAB基础知识MATLAB的简介,编程环境和基本操作的详细概述2018-06-02 10:23:265190被动元件基础知识电容器的基础知识。2018-05-29 15:12:3813shell编程使用方法Shell编程的基本格式:Shell脚本的文件名后缀通常是.sh (当然你也可以使用其他后缀或者没有后缀,.sh是为了规范)。程序编写格式:[java] view plain copy#!/bin/bash2017-12-12 15:40:092148SQL相关知识解析及SQL完全手册的免费分享本文介绍了SQL的基础知识、SQL快速入门及SQL编程手册的分享。2017-11-22 11:36:4824PCB板基础知识PCB板基础知识入门资料,给大家分享一下2017-11-18 11:51:1922如何用Shell病毒技术感染Linux脚本程序主要的shell病毒技术 ------------------- 当然,本文需要你至少了解linux shell编程的基础知识和一星点的病毒知识。 ok!我们进入正题! 我们来看一个最原始2017-11-07 11:23:520电源管理基础知识电源管理基础知识电源管理基础知识电源管理基础知识电源管理基础知识电源管理基础知识2017-09-15 14:38:3658电能计量的基础知识电能计量的基础知识2017-09-08 17:40:0210电工培训基础知识PPT电工培训基础知识2017-04-06 23:17:4327基础知识[GPRS概念术语基础知识[GPRS概念术语2017-02-14 00:31:4014示波器基础知识大全示波器基础知识大全2017-01-16 21:29:4249基础知识-NVR基础知识-NVR2016-12-25 20:57:101光端机产品基础知识产品基础知识2016-12-22 23:26:300BGA布线的基础知识BGA布线的基础知识2016-11-23 16:37:155开关电源基础知识开关电源基础知识2016-10-25 11:20:5850电感资料--电感基础知识入门电子专业单片机相关知识学习教材资料——电感资料--电感基础知识入门2016-09-26 23:19:5225EMC基础知识---华为该文档是华为内部发行的EMC的基础知识,旨在普及EMC知识。2016-08-29 16:46:0573C语言编程开发入门基础教程电子专业单片机相关知识学习教材资料——C语言编程开发入门基础教程2016-08-19 21:09:0040PLC梯形图编程基础知识详解PLC梯形图编程基础知识详解,感兴趣的伙伴们可以看看。2016-08-04 11:17:416synplify基础知识说明synplify基础知识说明2016-06-16 16:09:5625labview基础知识labview软件的基础知识汇总,适合新手入门。。2016-05-09 15:30:044CAD软件基础知识CAD软件基础知识。2016-03-31 09:24:3614OpenCV_编程简介(入门必读)opencv编程简介,入门必读,适合新手简单了解opencv的相关知识。2016-03-15 17:43:0610ADC入门_基础知识ADC入门_基础知识对初学者有很好的帮助。希望大家会喜欢。2016-03-05 21:31:3842嵌入式系统基础知识关于嵌入式系统基础知识关于嵌入式系统基础知识关于嵌入式系统基础知识2016-03-03 14:57:283使用Eclipse基础知识使用Eclipse 基础知识 使用Eclipse 基础知识 适合初学者学习使用2016-02-25 19:24:534单片机编程基础知识单片机编程基础知识,喜欢的朋友可以来学习。2016-01-11 23:05:1812计算机基础知识介绍计算机基础知识计算机基础知识计算机基础知识2015-12-01 23:01:2521矢量(向量)运算的基础知识矢量(向量)运算的基础知识,其中包括简要介绍、基础知识、矢量的点乘、×乘、矢量的导数与微积分、以及一些练习题。2015-11-20 11:09:373常见电子元件基础知识(有彩图)常用电子元件基础知识,有图有讲解,电子爱好者入门基础资料2015-11-20 15:31:5121路由器常用基础知识总结路由器常用基础知识总结路由器常用基础知识总结路由器常用基础知识总结2015-10-30 17:05:3313红外基础知识关于红外基础知识的讲解2011-11-02 18:43:22258LED照明电气基础知识LED照明电气基础知识2010-12-23 17:24:2292STEP 7 PLC 编程入门STEP 7 PLC 编程入门:在本模块中,读者将会学习如何用STEP 7编程工具对可编程逻辑控制器(PLC)进行程序编制。此模块教授了基础知识,并通过一个详细的例子(快速访问)展示了流2010-07-03 15:28:19201QC基础知识QC基础知识阐述2010-06-02 10:01:17150DC-DC电源入门基础知识视频教程DC-DC电源入门基础知识视频教程本教程共上下2部分!2010-04-08 11:29:29232通信基础知识教程通信基础知识1、电信基础知识2、通信电源技术3、配线设备结构、原理与防护4、防雷基础知识5、EMC基础知识6、防腐蚀原理与技术7、产品安2010-03-04 16:48:3422数码摄影入门基础知识数码摄影入门基础知识 数码时代的来临,让个人拥有数码影像设备不在是梦,尤其是我们挎友们,大多都2010-02-23 13:43:15420HIFI耳机基础知识入门HIFI耳机基础知识入门一、耳机是如何分类的? 1、按换能原理(Transducer)分2010-02-02 11:48:392683直流微电机基础知识
PLC可编程序控制器基础知识PLC可编程序控制器:PLC英文全称Programmable Logic 2009-06-16 15:25:5612639电子制作入门知识百题电子制作入门知识百题一、电的基础知识1、电是什么?电有几种?电有何重要特性?电是最早从“摩擦起电”现象中表现出来实物2009-04-10 12:20:351562被动元件的基础知识被动元件的基础知识:电容,电感,电磁兼容性。2009-02-10 11:42:1795Linux操作系统-C语言编程入门-pdfLinux操作系统-C语言编程入门介绍在LINUX 下进行C 语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:􀂄 源程序编译􀂄 Makefile 的编写􀂄 程序库的链2008-12-08 09:55:20187电子电路基础知识电子电路基础知识电路基础知识(一)电路基础知识(12008-01-15 09:47:27136605负反馈基础知识负反馈基础知识2007-11-25 11:26:449软板基础知识