shell脚本和bash脚本(shell中bash)

1.什么是Bash?
Bash(Bourne Again shell)是目前Linux上最流行的shell。
命令语言解释程序(命令语言解释程序)
Bash相当于DOS系统的Command.exe。
Linux上也有一些流行的Shell,比如tcsh和pdksh。
Echo $BASH_VERSION可以检查当前使用的Shell版本。
如果返回一条错误消息,则表明当前Shell不是Bash,因此可以执行它:
Exec /bin/Bash让系统使用Bash。
(/etc/shell文件注册了当前系统可以使用的shell列表。)
第二,在一行上顺序执行多个命令。
您可以用分号连接几个命令,例如:
mkdir mydir进入目录
注意:(1)用分号串联的命令数量没有固定限制;
命令按顺序执行,而不是同时执行;
(3)不管前一条命令成功与否,都会执行下一条命令。
三。引用和转义
Linux系统中需要转义的例子:
(1) $用于表示系统环境变量,但我们需要$的原始字面意义;
显示*,文件名(如*)不应被解释为通配符。
这时要用转义符“\”来获取特殊字符的字面意思,例如:mkdir a \ \ *;lsl a \ \ *创建一个*目录并显示其内容。
(思考:如何显示一个*目录本身的属性)
单引号中的字符或字符串只有字面意义;
双引号中的字符或字符串允许特殊字符保持其特殊含义。
示例:
echo $ PATH将显示当前搜索路径。
回显“$PATH”也将显示当前搜索路径
回显“$PATH”将显示“$ path”
Echo \$PATH也会显示“$PATH”
(什么时候需要用单引号或者双引号?比如包含空格的字符串!)
四。设备转向(或输入/输出重定向)
Linux文件系统的标准设备包括标准输入、标准输出和标准错误。
设备名称缩写序列号用法
默认连接
输入标准的stdin 0。
读出数据
键盘
标准输出stdout 1
显示程序输出
班长
错误标准错误2
发生异常时显示错误和警告。
班长
设备的转向就是改变其输入/输出设备的方向,比如敲键盘。
切换到文件输入,将输出显示从显示切换到文件,等等。
输出转向
输出运算符是和,分别用于创建和追加文件。
示例:lsl/dev/HD * result . txt
将最初输出到屏幕上的结果转移到一个新文件result . txt lsl kkkresult . txt中
将kkk目录中的文件列表追加到result.txt中
但是,如果kkk目录不存在,错误信息仍然会出现在屏幕上,因为它没有被打开。标准重定向运算符是“2”或“2”
(实际上,标准输出重定向操作符“”是“1”的省略形式)
要将输出传输到新文件result.txt,并在发生错误时将其记录在error.txt文件中,您应该:
lsl kkkresult . txt 2 error . txt
要将标准输出和标准误差转移到同一个文件,您应该:
lsl kkkresult . txt 21
21语法告诉Bash,最初输出到文件描述符2(标准错误)的内容被转移到文件描述符1(标准输出)。因为文件描述符1已经被传送到文件,所以标准错误也被发送到同一个文件。鉴于这种操作如此常见,Bash有一种特殊的简化用法:
lsl kkk result . txt
输入转向
转向的输入运算符是“”。
转到input,将本应通过键盘输入的数据更改到文件或其他输入设备。比如我之前学过的广播命令墙,格式是:
墙[广播信息]
如果你只是输入wall和enter,程序会等待键盘输入,直到你输入然后按EOF(ctrl d)。但是为了简化常规的信息发布,我们可以创建一个包含信息的文本文件mes.txt并执行:
墙壁描述
(1)其他教材一般用cat、wc等命令来讲解标准输入转向。这些命令实际上是在没有执行参数时从标准输入设备输入的(这可以使它成为一个过滤器),但当有一个文件名的参数时,它们是直接从文件输入的,而不必添加一个转向字符。即在cat a.txt和cat DOS中,标准输入输出设备为CON,标准打印输出为PRN。执行copy con a.txt会接受后续的键盘输入,当按下F6或ctrl z时,会生成一个. txt文件的内容。与DOS用法类似,Linux也可以使用cp /dev/stdin a.txt命令创建文本文件,或者使用cp a.txt /dev/stdout命令显示文本文件的内容。不同的是Linux系统的文件终止符是ctrl d而不是DOS中的crtl z。
动词(verb的缩写)命令管道
使用管道运算符“|”连接多个命令或程序,将前者的输出作为后者的输入,从而形成一个管道。
示例:lsl/dev | more以页为单位显示目录列表(在more命令后描述)
(注意:管道中的每个命令或程序同时运行。)
不及物动词历史表文件。bash _历史
每个用户的主目录都有一个名为。bash_history,记录用户操作的历史。
Bash为每个用户维护一个历史表。
当用户登录时,该文件的内容被加载到历史表中,当用户注销时,该文件被更新。
history命令可以列出用户的操作记录,即历史表。
历史表中的每一行称为一个事件,行首的数字表示事件编号。
使用“!”添加事件编号作为命令可以简单地重复历史事件,例如:
!385
特别接线员!用于重复上一个命令。
比较常用的技巧:可以直接用光标键追溯bash下的操作历史。
七。外壳函数
Bash允许用户以下列格式定制命令函数:
name(){ command _ list;}即:函数名(){命令列表;}
注意:(1)左花括号后面要有一个空格,可能没有意义;
命令列表可以是多个命令,不要忘了每个命令后面都有分号;
可以在函数中使用$ *来提取函数的参数。
示例:dir(){ ls-LD $ * *;}
您可以稍后使用dir命令列出指定目录中的文件名和目录名,
例如,dir /etc显示/etc目录中的文件和目录列表。
八、命令完成功能
Tab键可以用来完成命令,这是Linux操作中最常用的技术之一。
例如:在安装一章中,我们遇到了一个文件安装命令:
mount-t ISO9660 o loop/opt/red hat Linux 9.0文档光盘。国际标准化组织/蒙古国/国际标准化组织
文件名中包含汉字的如此长的命令很难输入。
当然,可以先用mv命令将文件重命名为一个简单的文件名,但是使用补全bash的功能更容易:
输入“mount -t iso9660 -o loop /opt/R”时按tab键,系统会根据搜索结果自动补全文件名,简化了很多操作。
如果系统没有完全完成,还有类似的文件可供选择,例如:
假设/opt目录下还有一个Redflag.iso,光标会停在Red后面,这时你需要按H或者F进行下一个选择。
九。操作控制器
过程可以简单地理解为时间表中的程序,
一个作业可能有多个进程(如管道)。
ps查看过程状态命令
执行ps命令可以报告系统中进程的运行状态。比如:
TTY时间指令
2565 tty1 00:00:00 bash
2597 tty1 00:00:00 ps
也就是系统在运行两个进程,bash和ps本身。
作业显示当前未完成的作业。
显示如下:
[2]完成查找/-姓名fox.jpg
[1]-被阻止的人
[]是工号;加号表示它是当前的默认作业;跑步、完成、
停止分别表示运行、完成和暂停。
后台执行命令的方法。
在命令行的末尾添加一个。
在后台运行长时间运行的程序可以释放前台继续其他操作。例如,寻找fox.jpg档案是一个漫长的过程。您可以使用以下命令:
查找/-name fox.jpg使其在后台运行,系统会显示:[1] 2551。
[1]是任务的后台作业号,2551是进程标识PID。
(注意:应使用第13章中的示例程序beep1来演示后台操作)。
在作业的前景和背景之间切换。
Fg将作业切换到前台
将背景作业切换到后台
ctrl+z暂停当前作业
默认情况下,Fg和bg用于当前作业。您可以使用参数来指定其他作业,例如bg %1将1号作业置于后台。
后台作业不能接收键盘输入,如果它需要接收键盘输入,它将被挂起。
实际上,你不能直接使用fg命令将当前的前台作业转为后台操作,因为此时的键盘输入被视为对作业的输入而不是对shell的输入。解决方案是:
Ctrl z在执行bg命令之前暂停当前作业。
睡眠会暂时中止这个过程。
格式:睡眠时间值(秒)
该命令主要在shell编程中使用,用于在两个命令执行之间暂停指定的时间。
例子:睡眠100;谁|grep ‘z3 ‘
在检查z3是否正在使用系统之前,停止该过程100秒。杀死信号的过程。
信号的概念:信号是一种机制,进程通过它知道系统是正的。
如果发生这种情况,进程可以随时接收信号。信号通常用来要求一个进程中断它的正常操作并做一些事情。当大多数进程接收到信号时,默认操作是结束接收信号的进程或其他操作。
kill命令用于向进程发送信号,通常用于终止进程。
按ctrl+c终止前台进程,但终止后台进程需要kill。
kill的命令格式:
终止[信号名称或信号值]过程PID
例如,kill 999发送-15信号来终止PID=999的进程
如果不成功,kill -9 999可以杀死PID=999的进程。
使用killall命令而不是kill命令直接指定程序名:
示例:killall -9 find
取消所有与find命令相关的流程实例,尽管这些实例已经
不同的PID。
Kill 0可以撤消所有后台作业。
十、监控系统负载
top命令用于动态显示系统的运行状态。
按Q结束监控并返回shell。
外壳编程
首先,编写和执行Shell脚本
脚本的作用类似于DOS的批处理文件,但是没有文件名规定。
脚本是一个文本文件,可以由vi、gedit或其他文本编辑器创建。
脚本的第一行应该是#!/bin/sh,指示应该使用什么程序来解释脚本。
使用chmod x命令向脚本文件添加可执行属性。
执行:/script文件名(除非。主目录中的bash_profile文件被修改)
第二,示例指南的一些要点
命令的连接:||和
例如:cd hhh | | mkdir hhhcd hhh
(2)命令,即在当前系统环境下执行以下命令。
清空device /dev/null无底洞而不是废纸篓。
系统变量
eval评估,例如:eval chmod 777 ~$1
$()将命令的结果赋给变量,例如:result=$(lsl/boot)
$(())数学计算,例如:echo $((2 ^ 3))
三。条件表达式和过程控制
对于熟悉编程概念的专业人士来说,这只是另一套规则。需要
自学不难,下面简单介绍一下。

其他教程

时间转移科技的力量,让经典再度绽放。

2022-9-11 13:54:40

其他教程

推荐几款叮咚叮咚智能音箱(我想看叮咚音箱)

2022-9-11 13:56:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索