《Shell 脚本学习指南 》 -- 背景知识与入门 [第一、二章]

2023-10-09 20:33

本文主要是介绍《Shell 脚本学习指南 》 -- 背景知识与入门 [第一、二章],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《shell 脚本学习指南》 -- 
《UNIX in a Nutshell》UNIX工具集,UNIX的中心思想与软件工具设计的原则。
各章介绍
第1章,背景知识 : 许多软件工具设计上的哲学。  POSIX 可移植的OS接口将设备视为文件,以及特意不将命令解释器或shell整合到OS中。软件设计的原则 『(1) 一次做好一件事(2) 处理文本行,不要处理二进制数据(3) 使用正则表达式(4) 默认使用标准输入输出避免喋喋不休(5) 输出格式必须与可接受的输入格式一致(6) 让工具去做困难的部分(7) 构建特定工具前,先想想
第2章,入门: 编译语言与脚本语言间的取舍开始讨论。编译型语言 : 的好处是高效,缺点则是:它们多半运作于底层,所处理的是字节,整数,浮点数或是其他机器层级的对象C++里,就很难将一个目录里所有的文件复制到另一个目录中。脚本语言 : 解释器读入代码,并将其转换成内部的形式,再执行。但是 : 解释器本身是一般的编译型程序。(1) 简单性 : Shell 是高级语言(2) 可移植性 : POSIX标准!(3) 开发容易
第3章,查找与替换
第4章,文本处理工具
第5章,管道的神奇魔力
第6章,变量,判断,重复动作
第7章,输入/输出,文件与命令执行
第8章,产生脚本
第9章,awk的惊人表现
第10章,文件处理
第11章,扩展实例:合并用户数据库
第12章,拼写检查
第13章,进程
第14章,Shell 可移植性议题与扩展
第15章,安全的shell脚本,起点
第2章,入门-----------------------------: 编译语言与脚本语言间的取舍开始讨论。编译型语言 : 的好处是高效,缺点则是:它们多半运作于底层,所处理的是字节,整数,浮点数或是其他机器层级的对象C++里,就很难将一个目录里所有的文件复制到另一个目录中。脚本语言 : 解释器读入代码,并将其转换成内部的形式,再执行。但是 : 解释器本身是一般的编译型程序。(1) 简单性 : Shell 是高级语言(2) 可移植性 : POSIX标准!(3) 开发容易2.4 自给自足的脚本 : 位于第一行的 #! : 内核会扫描该行其余的部分,看是否存在可用来执行程序的解释器的完整路径初级陷阱 #!后 -> 1,长度限制。2,是否有完整路径名称...
#! /bin/sh -  "安全性的考虑
who | wc -l
*2.5 Shell 的基本元素
2.5.1 命令与参数分号 (;) 可以分隔同一行里的多条命令。(&) Shell 将执行其前面的命令,这意味着Shell不必等到该命令完成,就可以继续执行下一个命令。Shell识别三种基本命令 : 内建命令、Shell函数以及外部命令。(1) 内建命令 : 是由shell本身所执行的命令。必 要 性 : cd、read为了效率 : testI/O命令  : echo、printf(2) Shell函数: 它们可以引用。(3) 外部命令
2.5.2 variable 变量
hp@ubuntu:~$ myvar=hehehahahheihei
hp@ubuntu:~$ echo $myvar
hehehahahheihei
hp@ubuntu:~$ fullname="lilei hanmei lucy"
hp@ubuntu:~$ echo $fullname
lilei hanmei lucy
2.5.3 echo 输出echo : 参数打印到屏幕,newline结尾。
2.5.4 printf 输出
hp@ubuntu:~$ printf "hello world\n"
hello world
hp@ubuntu:~$ printf "Hi, prints '%s %s'\n" Hello World
Hi, prints 'Hello World'
2.5.5 基本的IO重定向。2.5.5.1 重定向与管道以 < 改变标准输入program < filetr -d '\r' < dos-file.txt ...以 > 改变标准输出program > filetr -d '\r' < dos-file.txt > UNIX-file.txt以 >> 附加到文件for f in dos-file*.txtdotr -d '\r' < $f >> big-UNIX-file.txtdone以 | 建立管道program1 | program2 ...tr -d '\r' < dos-file.txt | sort > UNIX-file.txt总结 : tr 是个重要的命令! -c, -C, -d, -s.UNIX工具处理程序,不妨将数据想象成水管里的水!2.5.5.2 特殊文件  /dev/null 与 /dev/tty/dev/null - bit bucket./dev/tty - 当程序打开此文件,unix会自动将它重定向到一个终端。
2.5.6 基本命令查找如果要编写自己的脚本,最好准备自己的bin目录来存放它们。       $PATH=$PATH:$HOME/bin    要让修改永久生效,在.profile文件中把你的bin目录加入$PATH,每次登录时Shell都会读取.profile文件。
2.6 访问Shell脚本的参数
Shell脚本的命令行参数,同时也是函数的参数。各参数都由整数来命名,超过9就应该用大括号。echo first arg is $1echo tenth arg is {$10}
2.7 简单的执行跟踪  打开执行跟踪功能会使得Shell显示每个被执行到的命令,并在前面加上“+”和一个空格。也可以在脚本里,用set -x命令打开执行跟踪,然后再用set +x命令关闭。


这篇关于《Shell 脚本学习指南 》 -- 背景知识与入门 [第一、二章]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/175398

相关文章

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定