Shell-基础篇
文章平均质量分 58
Shell语言的简单介绍
Alan0517
...
展开
-
shell语言-29-正则表达式
【代码】shell语言-29-正则表达式。原创 2021-01-29 20:31:47 · 130 阅读 · 0 评论 -
Shell语言-30-通配符
1.介绍字符含义实例*匹配0个或多个任意字符 a*b a与b之间可以存在0或多个字符ab aabb azsb …?匹配一个任意字符 a?b,a与b之间必须但也只能存在一个字符,该字符可以是任意字符。例如:aab,abb,acb…[list]匹配list中的任意单个字符 a[xyz]b,a与b之间必须但也只能存在一个字符,该字符只能是x或y或z。例如:axb,ayb,azb[!list]匹配除list中的任意单个字符 a[!a-z]b,a与b之间必须原创 2021-01-30 10:13:24 · 214 阅读 · 0 评论 -
Shell语言-28-tee管道
tee程序将cat程序的输出显示在屏幕上,并且在hello.txt文件中保留了副本,需要注意的是,如果tee命令中指定的文件已经存在,那么它将会被覆盖,使用 -a选项在文件末尾追加内容(而不是覆盖)在Shell中,管道将一个程序的标准输出作为另外一个程序的标准输入,就像用一根管子将一个程序的输入连接到另外一个程序的输入一样;管道的符号是|,下面的程序将man的标准输出作为less的标准输入,以实现翻页的功能。tee程序的输出和它的输入一样,但是会将输入内容额外的保存到文件中;原创 2021-01-28 23:00:07 · 687 阅读 · 0 评论 -
Shell脚本-27-处理工具之sort
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort(选项)(参数)原创 2021-01-28 22:40:01 · 457 阅读 · 0 评论 -
Shell脚本-26-处理工具之cut
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut [选项参数] filename。说明:默认分隔符是制表符。原创 2021-01-28 22:24:36 · 374 阅读 · 0 评论 -
Shell语言-25-处理工具之awk
对于每一个输入的行都会执行一次主体部分的命令,默认情况下,对于输入的每一行,awk都会执行命令,但是我们可以将其限定在指定的模式中。#逐行读取awk.txt文件内容,每行结束后打印一个hello,文件awk.txt有多少行就打印多少个hello**一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。#打印awk.txt的第一列内容,在不指定分割符的情况下,awk默认使用空白做分割符**它是是程序结束的时候执行的代码部分,是awk的关键字,原创 2021-01-28 22:11:39 · 218 阅读 · 0 评论 -
Shell语言-24-处理工具之sed流编辑器
sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。可以使用 / / / 也可以使用!也可以使用 # # #正则匹配 匹配以Hello开头的将它替换成HHello。将替换之后的内容写入指定文件中 w file。Linux sed 命令是利用脚本来处理文本文件。原创 2021-01-28 21:52:07 · 128 阅读 · 0 评论 -
Shell语言-23-处理工具之grep
2.扩展的(Extend)正则表达式(注意要使用扩展的正则表达式要加-E选项,或者直接使用egrep)1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度.输出 abc.log文件中 含有从abcd.log文件中读取出的关键词的内容并高亮显示。grep [选项] ”模式“ [文件1] [文件2]grep -f 等价于 fgrep。grep -E 等价于 egrep。原创 2021-01-28 21:42:13 · 106 阅读 · 0 评论 -
Shell语言-22-内容替换与删除
文章目录1. 消除2. 索引以及切片3. 替换1. 消除2. 索引以及切片3. 替换原创 2021-01-28 21:19:49 · 167 阅读 · 0 评论 -
Shell语言-21-数组
方法一: 用小括号将变量括起来赋值给数组变量,每个变量之间要用空格分隔方法二: 用小括号将变量值括起来,同时采用键值对的形式赋值方法三: 通过分别定义数组变量的方法来定义方法四: 动态地定义数组变量,并使用命令的输出结果作为数组的内容ps:因为是系统命令,所以要使用转义符号 反斜杠ps:如果下标存在,会被覆盖原来的值。原创 2021-01-28 21:18:32 · 161 阅读 · 1 评论 -
Shell语言-20-遍历数组
【代码】Shell语言-20-遍历数组。原创 2021-01-28 21:15:25 · 507 阅读 · 0 评论 -
Shell语言-19-表达式
命令替换 shell会执行括号的cmd,然后将结果作为变量进行替换,替换只能替换标准输出,错误输出不能替换。test测试表达式,利用test命令进行条件测试表达式,test命令与测试表达式之间至少有一个空格。通过[[]]双括号进行条件测试表达式,[[]]双括号与测试表达式之间至少有一个空格。#()里第一个命令和左边括号不必有空格,而{}第一个命令和左括号之间必须有一个空格。通过[]中括号进行条件测试表达式,[]中括号边界与测试表达式之间至少有一个空格。=可用于判断两个字符串是否相同。原创 2021-01-28 21:11:08 · 440 阅读 · 0 评论 -
Shell语言-18-函数
Linux Shell 中的函数其实和java当中的类型,将相似的任务或代码封装到函数中,供其他地方调用;echo "执行start_one的方法";echo "执行 start_two的方法";} main() {echo "执行main方法" start_one } main echo "执行结束" [ root@Centos-root473791 ~ ] # sh mainD.sh 执行main方法执行start_one的方法。原创 2021-01-27 23:11:29 · 130 阅读 · 0 评论 -
Shell语言-17-作业脱机管理nohup
nohup将作业(进程)切换到后台可以避免由于误操作如[ctrl]+c等导致的job被异常中断的情形,而脱机管理主要是针对终端异常断开的情形。通常使用nohup命令来使得脱机或注销之后,Job依旧可以继续运行。也就是说nohup忽略所有挂断(SIGHUP)信号。如果该方式命令之后未指定&符号,则job位于前台,指定&符号,则job位于后台。下面是使用nohup方式且将Job放入后台处理,同时指定了日志文件,则nohup使用指定的日志文件,而不会输出到缺省的nohup.outeg原创 2021-01-27 21:28:40 · 182 阅读 · 0 评论 -
Shell语言-16-Shell脚本调试 -n -v -x -c
是调试shell脚本的强有力工具。”-x"选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个"+"号。"+"号后面显示的是经过了变量替换之后的命令行的内容,有助于分析实际执行的是什么命令。"-x"选项使用起来简单方便,可以轻松对付大多数的shell调试任务,应把其当作首选的调试手段。常用于写完脚本之后,测试一下脚本是否能用从而避免直接使用带来的可能出现的问题。Shell脚本的语法调试,使用bash的相关参数进行调试。将使用的脚本的内容输出到屏幕,该参数经常被使用。原创 2021-01-27 21:09:13 · 3900 阅读 · 0 评论 -
Shell语言-15-脚本命令排序 || && ;
如果命令1成功就直接打印出来,如果命令1失败了才会执行命令2。原创 2021-01-27 07:19:52 · 246 阅读 · 0 评论 -
Shell语言-14-Shell特性
这种定义方式一个很常见的用途,最典型的应用就是,当我们本地安装了很多java版本时,我们可能需要指定一个java来用。那么这时我们就会在脚本开头重新定义JAVA_HOME以及PATH变量来进行控制。同时,一段好的代码通常是不会有很多硬编码在代码里的“魔数”的。如果一定要有,通常是用一个变量的形式定义在开头,然后调用的时候直接调用这个变量,这样方便日后的修改。原创 2021-01-27 00:02:49 · 592 阅读 · 0 评论 -
Shell语言-13-流程控制( if 判断,case 语句,for 循环,while 循环,until循环)以及循环控制
说明:当变量的值等于1时,那么就会相应的执行指令1的相关命令输出,值等于2时就执行指令2的命令,以此类推,如果都不符合的话,则执行*后面的指令,要注意内容的缩进距离。#说明:<条件表达式> 可以是test、[]、[[]]、(())等条件表达式,每一个if条件语句都是以if开头,并带有then,最后以fi结尾。while语法说明,while首先进行条件测试,如果传回值为0(条件测试为真),满足while测试条件,执行命令区域,直到while的测试条件不满足结束执行。(2) 双分号“;原创 2021-01-27 00:00:40 · 336 阅读 · 0 评论 -
Shell语言-12-read读取控制台输入
1.基本语法read(选项)(参数)选项:-p:指定读取值时的提示符;-t:指定读取值时等待的时间(秒;参数:变量:指定读取值的变量名案列[root@Centos-root473791 ~]# cat readme.sh #!/bin/bashread -t 7 -p "Enter your name in 7 seconds " NAMEecho $NAME[root@Centos-root473791 ~]# sh readme.sh #7秒内输入Enter your n原创 2021-01-26 23:28:29 · 183 阅读 · 0 评论 -
Shell语言-11-Shell变量以及变量运算
(1)自定义变量: 变量名=变量值(2)撤销变量:unset 变量(3)声明静态变量:readonly变量,注意:不能unset查看变量 echo $变量名取消变量 unset 变量名作用范围 仅在当前窗口shell中有效(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。(2)等号两侧不能有空格(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。(4)变量的值如果有空格,需要使用双引号或单引号括起来。$#表示参数个数。原创 2021-01-26 23:17:15 · 1245 阅读 · 0 评论 -
Shell语言-09-输入输出重定向
如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。输出重定向是指命令的结果不再输出到显示屏上,而是输出到其他地方,一般是文件中,这样做的最大好处就是,把命令的结果保存起来,当我们需要的时候可以随时查询;就是你登陆linux服务器 你想将某个文件,事先准备好的,里面有内容的,导入到系统里面去,最常见的,将sql文件导入到数据库 就是输入重定向。举个最简单的列子,就是你在控制台输出的日志,你想放到文件里面去,就是输出重定向。原创 2021-01-26 22:10:59 · 1243 阅读 · 0 评论 -
Shell语言-08-前后作业命令
job编号的使用样式为[n],后面可能会跟有”+“号或者”-"号,或者什么也不跟。每一个job会有一个对应的job编号,编号从当前的终端从1开始分配。注: "+“号与”-"号会随着作业的完成或添加而动态的发生变化。直接让作业进入后台运行 比如 sl & 就是让小火车后台运行。通过jobs方式来管理作业,当前终端的作业在其他终端不可见。"为jobs命令查看到的jobs编号,不是进程Id。让后台运行的作业n切换到前台来。让指定的作业n在后台运行。将当前作业切换到后台。原创 2021-01-26 22:09:41 · 160 阅读 · 0 评论 -
Shell语言-07-快捷键ctrl+A,E,C,L,U,K,Y,R,D,Z,S,Q
在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。删除或剪切光标之前的命令;我输入了一行很长的命令,不用使用退格健一个一个字符的删除,把光标移动到命令行开头,如果我们输入的命令过长,想要把光标移动到命令行开头时使用;暂停,并放入后台,这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。安装 yum -y install sl 输入sl就可以看到了。粘贴 ctrl+U或ctrl+K剪贴的内容。清屏,相当于clear命令。删除或剪贴光标之后的内容。原创 2021-01-26 22:07:07 · 2221 阅读 · 0 评论 -
Shell语言-06-bash的初始化
只有bash是以login形式执行时,才会读取此文件,通常该配置会取读~/.bashrc。当bash是以non-login 形式执行时,读取此文件,若是以login形式执行,则不会读取此文件;全局,使用脚本时会读取该配置,这个只是在centos系统中才有,在Ubuntu就没有。全局(公有)配置,不管是哪个用户,登录时都会读取该配置文件。bash执行时,不管是何种方式,都会读取此文件。图像模式登陆时,此文件将会被读取,即使存在。/.bash_login,若它不存在,则。图形化界面后,打开终端时: 2 6。原创 2021-01-26 22:02:17 · 273 阅读 · 0 评论 -
Shell语言-05-bash一些基础特性(自动补全,历史记忆,别名)
!如果想要文件永久生效,只需将上述别名命令写到对应用户或者系统bashrc文件中注意,不管修改了什么系统配置文件,记得 source 刷新以下这里是 source ~/.bashrc如果想要真实命令可以在命令前面添加反斜杠,使别名失效。原创 2021-01-26 21:54:34 · 1044 阅读 · 0 评论 -
Shell语言-04-Shell分类以及解释器
Korn Shell的语法与Bourne Shell相同,同时具备了C Shell的易用特点,许多安装脚本都使用Ksh,ksh有42条内部命令,与bash相比有一定的限制性。c Shell 使用的是类"c"语法,是具有c语言风格的一种Shell,其内部命令有52个,较为庞大,目前使用的并不多,已经被/bin/tcsh所取代。目前Linux里面最庞大的一种 zsh. 它有84个内部命令,使用起来也比较复杂,一般情况下,不会使用该Shell。centos默认的是/bin/bash 常用的 /bin/sh。原创 2021-01-26 21:48:27 · 242 阅读 · 0 评论 -
Shell语言-03-如何执行用户的指令?
Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。原创 2021-01-26 21:39:32 · 522 阅读 · 0 评论 -
Shell语言-10-删除命令
删除多行防火墙查看防火墙 service iptables status查看规则列表 iptables --list-rules文档内跳转ps:shift+g 跳转到底部 gg跳转到顶部原创 2021-01-16 21:31:51 · 1546 阅读 · 0 评论 -
Shell语言-02-四种执行方式
1.绝对路径和相对路径没有什么区别,两种方式都需要提前赋予脚本以执行权限。2.sh或者bash方式是把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。3.前三种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。4.source或者.方式是使脚本内容在当前shell里执行,而不是单独开子shell执行。开子shell与不开子shell的区别。原创 2021-01-25 22:51:47 · 573 阅读 · 0 评论 -
Shell语言-01-入门介绍
c java shell phy 等都是高级语言。原创 2021-01-17 21:47:58 · 471 阅读 · 1 评论