- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux shell编程快速入门
——李朝征——
一、上半部分:理论
Shell简介
常见的shell版本有Bourne Shell(简称sh)、C-Shell(简称csh)、Korn Shell
(简称ksh)和Bourne Agine Shell(简称bash).
我们通常用的shell是bash ,它在如图的位置:
我们的Ubuntu下的功能:历史记忆功能、命令行补全功能、支持通配符功能、Shell内置命令以及执行用户自己编写的Shell脚本等都是bash的功劳;
我们的“终端”本身就是一个shell,简称shell终端。我们的shell命令诸如ls、sudo、rm等多达5000多条,在shell中都是以“C 语言”的形式存在的,命令本身只不过是个运行那段相应的C语言代码的标记符号。
Shell常用的命令(这个自己学)。
我们编程有三种基本的说法:C编程、Makefile编程和Shell编程,其中shell编程又叫做“shell脚本编程”,编出来的程序叫“脚本”。
Linux默认的Shell即为bash,当用户进入终端时,Linux系统会自动启动shell程序,与用户交互式进行操作,解析用户输入的命令,Shell提供一种高级编程语言,它有变量、关键字及控制语句,并且有自己的语法结构。
用户可以根据自己的需要方便地使用shell编程语言自己编写shell脚本。使用shell脚本能大大地提高编程的效率。
Shell程序是解释执行的,不需要编译加载目标代码;shell脚本的建立同普通的文件建立方式是相同的,利用编辑器(vi、emacs、gedit均可)进行程序编写、录入和编辑。
Shell脚本有3种执行的方法:
直接执行法:
重定向执行法:
可执行文件法:
刚建立的wifi.sh文件显示为白色,即没有可执行权限。我们可以先修改它的权限,使得所有用户都可执行。如图:
或者改成最高权限:
这样就可以执行了:
shell的变量
shell有两类变量:环境变量和临时定义变量。环境变量时永久性的变量,其值不会随shell脚本的结束而消失,而临时变量时shell内部变量,其使用范围仅限于它的程序,当程序执行完毕时,临时变量消失。大小写表示的变量的意义是不同的,即严格区分大小写。
如何定义临时变量?
变量赋值的一般形式为:
变量名=字符串 如:mypath=/home/wth/就是把/home/wth/赋给变量mypath。
但是要使用这个变量的时候就要在变量前面加一个“$”符号,如:
打印的效果如下:
与普通程序不同,bash程序第一行一般为“#!/bin/bash”,其中#表示注释,!表示shell运行感叹号之后的程序,即bash程序,让bash程序去运行我们写的脚本程序。
Shell的主要环境变量:HOME变量和PATH变量,当然还有其他的。
HOME变量时用户保存用户主目录的位置,在/etc/pasmd文件中定义,用户登录终端时的起始路径就为主目录的位置。在编写shell脚本的时候经常会用到HOME变量。例如:当前HOME变量设置为/usr/local/games/qq/games,当用户编程要使用这个目录的时候,输入“cat /usr/local/games/qq/games/qq.txt”这样一行长的命令可能比较麻烦,但是,如果用户直接输入“cat $HOME/qq.txt”,这样就会省时省力。PATH变量是一样的道理。
shell的特殊字符
shell中除了可以使用普通字符外,还可以使用一些特殊的字符,如通配符、引号、注释、管道等,它们各自有自己特定的含义,使用这些特殊的符号可以大大提高编程的效率,提高文件的可执行性。
通配符:
通配符用于模式匹配,如文件名匹配、路径搜索、字符串查找等。
常用的通配符有:* ? []
* 匹配任意字符
? 匹配 一个或多个在它前面的字符
[] 匹配括号中的任意一个字符,可用短画线表示范围,如:[a-z]
双引号
除$、反斜杠\及倒引号(`)外,由双引号引起来的字符均作为普通字符对待。
练习:
建立一个名为wifi.sh的shell文件如下:
运行一下,看效果。
原因自己归纳!
单引号
单引号引起来的一切东西均当做普通字符来对待,一切特殊字符在单引号里面都失去其本来的意义,包括环境变量、转义字符、倒引号、反斜杠等所有。
倒引号
倒引号引起来的字符串被shell解释为命令行,在执行时shell会先执行该命令,并以它的标准输出结果代替整个倒引号的部分。
如:
结果:
行结束符号“;”
在命令行中的命令通常在命令尾
您可能关注的文档
- REACH最新161项物质清单.docx
- Leax LON总线智能家居系统介绍-2014.ppt
- redis快速入门详解.ppt
- Lec05_MATLAB第五讲:编程基础Ⅰ:脚本.ppt
- java学习笔记(全).doc
- SMT与DIP工艺流程.ppt
- LEC危险源评价清单.doc
- Java语言的Calendar和Date类.docx
- RF_connector (高频电子连接器简介).ppt
- IGCT培训_陈天锦.ppt
- KubeBlocks:以抽象与扩展API实现多数据库的统一管理-2024年全球软件研发技术大会.pdf
- 分布式数据库OceanBase技术架构升级之路-2024年全球软件研发技术大会.pdf
- Infinity Instruct 合成指令技术的探索-2024全球机器学习技术大会.pdf
- 基于生成流网络的用户留存建模-2024大数据大模型峰会.pdf
- 策略性推理与AI多智能体系统-2024全球机器学习技术大会.pdf
- 多模态大模型LMM与细粒度开放世界目标检测-2024全球机器学习技术大会.pdf
- Transformer效率优化-2024全球机器学习技术大会.pdf
- 大模型机理分析-2024全球机器学习技术大会.pdf
- 企业大数据实时湖仓智能优化实践-2024大数据大模型峰会.pdf
- 仓颉:一款全场景智慧化应用编程语言-2024年全球软件研发技术大会.pdf
文档评论(0)