bash shell
文章平均质量分 92
一直不懂
笔记
展开
-
bash正则表达式
Linux中的不同应用程序可能会用不同类型的正则表达式。这其中包括编程语言(Java、 Perl和Python)、 Linux实用工具(比如sed编辑器、 gawk程序和grep工具)以及主流应用(比如MySQL和PostgreSQL数据库服务器)。正则表达式是通过正则表达式引擎(regular expression engine)实现的。正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用这些模式进行文本匹配。在Linux中,有两种流行的正则表达式引擎: POSIX基础正则表达式( basi转载 2022-07-03 22:05:19 · 1479 阅读 · 0 评论 -
初识sed和gawk
Linux系统提供了两个常见的具备上述功能的工具。本节将会介绍Linux世界中最广泛使用的两个命令行编辑器: sed和gawk。sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 sed编辑器会执行下列操转载 2022-07-03 21:29:22 · 261 阅读 · 0 评论 -
图形化桌面环境中的脚本编程
创建交互式shell脚本最常用的方法是使用菜单。提供各种选项可以帮助脚本用户了解脚本能做什么和不能做什么。通常菜单脚本会清空显示区域,然后显示可用的选项列表。用户可以按下与每个选项关联的字母或数字来选择选项。shell脚本菜单的核心是case命令。 case命令会根据用户在菜单上的选择来执行特定命令。后面几节将会带你逐步了解创建基于菜单的shell脚本的步骤。创建菜单的第一步显然是决定在菜单上显示哪些元素以及想要显示的布局方式。在创建菜单前,通常要先清空显示器上已有的内容。这样就能在干净的、没有干扰转载 2022-06-23 23:43:55 · 789 阅读 · 0 评论 -
创建Bash函数
有两种格式可以用来在bash shell脚本中创建函数。第一种格式采用关键字function,后跟分配给该代码块的函数名。name属性定义了赋予函数的唯一名称。脚本中定义的每个函数都必须有一个唯一的名称。commands是构成函数的一条或多条bash shell命令。在调用该函数时, bash shell会按命令在函数中出现的顺序依次执行,就像在普通脚本中一样。在bash shell脚本中定义函数的第二种格式更接近于其他编程语言中定义函数的方式。函数名后的空括号表明正在定义的是一个函数。这种格式的命转载 2022-06-16 00:05:40 · 1142 阅读 · 0 评论 -
控制bash脚本
处理信号Linux利用信号与运行在系统中的进程进行通信。可以通过对脚本进行编程,使其在收到特定信号时执行某些命令,从而控制shell脚本的操作。重温 Linux 信号Linux系统和应用程序可以生成超过30个信号。表16-1列出了在Linux编程时会遇到的最常见的Linux系统信号。表16-1 Linux信号信 号值描 述1SIGHUP挂起进程2SIGINT终止进程3SIGQUIT停止进程9SIGKILL无条件终止进程15SIGTER转载 2021-09-12 16:10:56 · 1453 阅读 · 0 评论 -
使用Bash呈现数据
理解输入和输出至此你已经知道了两种显示脚本输出的方法: 在显示器屏幕上显示输出 将输出重定向到文件中这两种方法要么将数据输出全部显示,要么什么都不显示。但有时将一部分数据在显示器上显示,另一部分数据保存到文件中也是不错的。对此,了解Linux如何处理输入输出能够帮助你就能将脚本输出放到正确位置。标准文件描述符Linux系统将每个对象当作文件处理。这包括输入和输出进程。 Linux用文件描述符(file descriptor) 来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打转载 2021-08-22 18:36:27 · 433 阅读 · 0 评论 -
处理用户输入
命令行参数向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向命令行添加数据。$ ./addem 10 30本例向脚本addem传递了两个命令行参数(10和30)。脚本会通过特殊的变量来处理命令行参数。读取参数bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第一个参数, $2是第二个参数,依次类推,直到第九个转载 2021-08-19 00:06:25 · 285 阅读 · 0 评论 -
循环嵌套命令
for 命令bash shell提供了for命令,允许你创建一个遍历一系列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令。下面是bash shell中for命令的基本格式。for var in listdo commandsdone在list参数中,你需要提供迭代中要用到的一系列值。可以通过几种不同的方法指定列表中的值。在每次迭代中,变量var会包含列表中的当前值。第一次迭代会使用列表中的第一个值,第二次迭代使用第二个值,以此类推,直到列表中的所有值都过一遍。在do和done语转载 2021-08-15 17:32:09 · 1638 阅读 · 0 评论 -
使用结构化命令
使用 if-then 语句最基本的结构化命令就是if-then语句。 if-then语句有如下格式。if commandthencommandsfi如果你在用其他编程语言的if-then语句,这种形式可能会让你有点困惑。在其他编程语言中, if语句之后的对象是一个等式,这个等式的求值结果为TRUE或FALSE。但bash shell的if语句并不是这么做的。bash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码是0(该命令成功运行),位于then部分的命令就会被执行。转载 2021-08-13 00:09:29 · 222 阅读 · 0 评论 -
构建基本脚本
使用多个命令shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另一个命令。 shell可以让你将多个命令串起来,一次执行完成。如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开。$ date ; who使用这种办法就能将任意多个命令串连在一起使用了,只要不超过最大命令行字符数255就行。创建 shell 脚本文件在创建shell脚本文件时,必须在文件的第一行指定要使用的shell。其格式为:#!/bin/bash在通常的shell脚本中,井转载 2021-08-12 00:52:02 · 406 阅读 · 0 评论 -
安装软件程序
包管理基础在深入了解Linux软件包管理之前,本章将先介绍一些基础知识。各种主流Linux发行版都采用了某种形式的包管理系统来控制软件和库的安装。 PMS利用一个数据库来记录各种相关内容: Linux系统上已安装了什么软件包; 每个包安装了什么文件; 每个已安装软件包的版本。软件包存储在服务器上,可以利用本地Linux系统上的PMS工具通过互联网访问。这些服务器称为仓库( repository)。可以用PMS工具来搜索新的软件包,或者是更新系统上已安装软件包。软件包通常会依赖其他的包,为了转载 2021-08-09 00:00:33 · 1134 阅读 · 0 评论 -
管理文件系统
Linux 文件系统Linux的文件系统为我们在硬盘中存储的0和1和应用中使用的文件与目录之间搭建起了一座桥梁。Linux支持多种类型的文件系统管理文件和目录。每种文件系统都在存储设备上实现了虚拟目录结构,仅特性略有不同。基本的 Linux 文件系统Linux最初采用的是一种简单的文件系统,它模仿了Unix文件系统的功能。ext文件系统Linux操作系统中引入的最早的文件系统叫作扩展文件系统( extended filesystem,简记为ext)。它为Linux提供了一个基本的类Unix文件系转载 2021-08-08 22:54:55 · 526 阅读 · 0 评论 -
Linux文件权限
Linux 的安全性每个能进入Linux系统的用户都会被分配唯一的用户账户。用户对系统中各种对象的访问权限取决于他们登录系统时用的账户。用户权限是通过创建用户时分配的用户ID( User ID,通常缩写为UID)来跟踪的。 UID是数值,每个用户都有唯一的UID,但在登录系统时用的不是UID,而是登录名。登录名是用户用来登录系统的最长八字符的字符串(字符可以是数字或字母),同时会关联一个对应的密码。/etc/passwd 文件Linux系统使用一个专门的文件来将用户的登录名匹配到对应的UID值。这个文转载 2021-08-08 17:03:41 · 1314 阅读 · 0 评论 -
理解shell
shell 的父子关系用于登录某个虚拟控制器终端或在GUI中运行终端仿真器时所启动的默认的交互shell,是一个父shell。在CLI提示符后输入/bin/bash命令或其他等效的bash命令时,会创建一个新的shell程序。这个shell程序被称为子shell(child shell)。子shell也拥有CLI提示符,同样会等待命令输入。当输入bash、生成子shell的时候,你是看不到任何相关的信息的,因此需要另一条命令帮助我们理清这一切。ps命令能够派上用场,在生成子shell的前后配合选项-转载 2021-07-31 23:13:12 · 187 阅读 · 0 评论 -
基本的bash shell命令
bash手册man命令用来访问存储在Linux系统上的手册页面。在想要查找的工具的名称前面输入man命令就可以找到那个工具相应的手册条目。当使用man命令查看手册时,手册是由分页程序来显示的,使用空格键翻页或使用回车键逐行查看,q建退出。输入man man来查看与手册也相关的手册页。手册页将与命令相关的信息分成了不同的节。每一节惯用的命名标准如表3-1所示。节描 述Name显示命令名和一段简短的描述Synopsis命令的语法Configuration命令配置信息转载 2021-07-31 20:57:08 · 969 阅读 · 0 评论