ps axjf 输出的第一列是 PPID(父进程 ID),第二列是 PID(子进程 ID)当SSH 连接 Shell 时,当前终端 PPID(-bash)是 sshd 守护程序的 PID(root@pts...语法格式3为扩展的test命令。推荐使用语法格式2. # 2.在[[]]中可以使用通配符进行模式匹配。&&、||、>、<等操作可以应用于[[]]中,但不能应用于[]中....,如:[ -z “$myvar” ] # 特别注意 # 对于以上表格中的字符串测试操作符号,如[ -n “$myvar” ],要把字符串用“”引起来。...# 命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。 # in列表是可选的,如果不用它,for循环使用命令行的位置参数。...取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。
例如,两个数相加: 注意: 表达式和运算符之间要有空格 ,例如 2+2 是不对的,必须写成 2 + 2 。...取值后面必须为单词 in ,每一模式必须以右括号结束。取值可以为变量或常 数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;; 。 取值将检测匹配的每一个模式。...下面的脚本提示输入 1 到 4 ,与每一种模式进行匹配: 输入不同的内容,会有不同的结果,例如: 6 跳出循环 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环, Shell 使用两个命令来实现该功能...加载其它文件的变量 1 简介 和其他语言一样, Shell 也可以包含外部脚本。...Shell 文件包含的语法格式如下: 2 练习 定义两个文件 test1.sh 和 test2.sh ,在 test1 中定义一个变量 arr=(java c++ shell), 在 test2
ls ch0[012].doc命令,如果当前目录下有ch00.doc和ch02.doc,则传给ls命令的参数实际上是这两个文件名,而不是一个匹配字符串。...和[命令一样,要注意命令和各参数之间必须用空格隔开。...&&和||用于连接两个命令,而上面讲的-a和-o仅用于在测试表达式中连接两个测试条件,要注意它们的区别,例如, test "$VAR" -gt 1 -a "$VAR" -lt 3 和以下写法是等价的 test...从这两个简单的例子可以看出,要表示一个模式至少应该包含以下信息: 字符类(Character Class):如上例的x和y,它们在模式中表示一个字符,但是取值范围是一类字符中的任意一个。...awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义,比如/etc/passwd文件的每一行有若干个字段,字段之间以:分隔,就可以重新定义awk的列分隔符为
概述 和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): if (isset($_GET["q"])) { search(q); } else {...命令可为任何有效的shell命令和语句。 in列表可以包含替换、字符串和文件名。 in列表是可选的,如果不用它,for循环使用命令行的位置参数。...case Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。...取值后面必须为单词in,每一模式必须以右括号结束。 取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。...,Shell使用两个命令来实现该功能:break和continue。
/bin/bash 输出重定向 符号 说明 命令 > 文件 以覆盖的方式把命令的正确输出结果保存在文件中 命令 >> 文件 以追加的方式把命令的正确输出结果保存在文件中 命令 2> 文件 以覆盖的方式把命令输出的错误信息保存在文件中...命令 2>> 文件 以追加的方式把命令输出的错误信息保存在文件中 命令 &> 文件 以覆盖的方式把所有的信息保存在同一个文件中 命令 &>> 文件 以追加的方式把所有的信息保存在同一个文件中 命令...匹配一个任意字符 * 匹配任意内容 [] 匹配括号中的任意一个字符 例如:[a,b],匹配a或b其中一个字符 [-] 匹配一个范围内的一个字符 例如:[a-z],匹配a到z其中一个字符 [^] 匹配一个非括号内的字符...read命令从键盘读取变量的值然后保存在指定变量,通常用在shell脚本中与用户进行交互的场合。...选项 说明 -p 指定读取值时的提示文字 -t 指定读取值时等待的时间(秒) -n 设定输入的字符数 -s 隐藏输入信息 #!
,"端口号”}’ test.txt BEGIN模式 awk会首先指定BEGIN模式指定的命令,打印两个字符串,并不会操作test.txt文件。...AWK通过管道命令处理终端的输出流 在上面的命令中,使用$3=="root" 表达式实现字符的匹配。 ==实现字段完全匹配 ~ /匹配字符/ 的比较操作,来模糊匹配第9列中存在sh字符串的行。...完成一个带有if-else判断的脚本: 带判断的AWK脚本 使用 Shell 引用: 让我们用一个示例来演示如何在一条 awk 命令中使用 shell 引用来替代一个 shell 变量。...*AWK统计文件中某关键词出现次数 1、统计文件test.txt中第2列不同值出现的次数 awk '{sum[$2]+=1}END{for(i in sum)print i"\t"sum[i]}' test.txt...如文件test.txt第2列的值为"00""01"或"02",执行结果如下: [root@localhost cc]# cat test.txt a 00 b 01 c 00 d 02 [root@localhost
,十以上的参数需要用大括号包含,如${10} 案例 输出该脚本的文件名称、输入参数1和输入参数2的值 [shaofei@upuptop-pc sh]$ touch param.sh [shaofei@upuptop-pc...return后跟数值n(0-255) 3.案例实操 (1)计算两个输入参数的和 [shaofei@upuptop-pc sh]$ vim fun.sh #!...[shaofei@upuptop-pc sh]$ sh fun.sh 3 shell工具(重点) cut cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。...1列和第7列,中间以“,”号分割。...action (3)只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"。
15.shell变量 定义变量:variableName(变量名)=“value(变量值)” 注释:变量名和等号之间不能有空格,变量名的命名须遵循如下规则: 1.首个字符必须为字母(...第3行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a、b值之间有一个空格。...Shell case esac语句 case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。...取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。...;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。
/中所有以.sh结尾的文件);然后按顺序搜索用户家目录下的~/.bash_profile、~/.bash_login和~/.profile,并执行找到的第一个可读文件(在centos7系统中是文件~/....非交互式shell启动时(如脚本中),会继承派生出此shell的父shell的环境变量并执行环境变量BASH_ENV的值中所指代的文件。...在命令的执行过程中,变量被其值所替换,在替换的过程中能够对应于各种变换。bash称对变量进行取值的过程为变量替换或变量扩展。 直接取值 #如果值中包含空白字符,赋值时需要用引号引起来表示一个整体。...,变量替换的结果就是两个位置之间的值。...只影响此函数及嵌套调用的函数和命令。 5、当前shell中某个命令中的临时变量。只影响此命令。 bash变量作用域涉及到子shell和函数的用法,这里暂时不作举例说明,后续文章中会详细叙述。
这章我们来学习下流程控制,简单来说就是逻辑判断和循环的写法。并不复杂,我们来简单地看下。 1、if语句 shell的if语句有两种写法,一种是shell脚本式的,一种是命令式的。...commandN done 写成一行和if语句是一样的,或者说,shell中写成一行的语法都是类似的: for var in item1 item2 ... itemN; do command1; command2...命令可为任何有效的 shell 命令和语句。in 列表可以包含替换、字符串和文件名。另外,in列表是可选的,如果不用它,for循环使用命令行的位置参数。 我们来看个例子: #!...取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。...8、跳出循环 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。
说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。...1、1 Shell常见通配符: 通配符 含义 实例 * 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。 ?...[list] 匹配 list 中的任意单一字符 a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。 [!...list]或[^list] 匹配 除list 中的任意单一字符 a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。...[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b… a9b。 [!
shell变量 1 简介 在shell脚本中, 定义变量时,变量名不加美元符号($),如: your_name=“runoob.com” 注意 : 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样...例如,两个数相加: val=`expr 2 + 2` echo $val 注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2。...取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。...,Shell使用两个命令来实现该功能:break和continue。...Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空格 或 source filename 2 练习 定义两个文件 test1.sh和test2
case:流程控制语句 循环语句for…done 使用(())扩展shell中算数运算使用方法 循环语句嵌套 跳出循环:break和continue Shift参数左移指令 shell中函数使用方法...取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。...' ;; esac 输入不同的内容,会有不同的结果,例如: 输入 1 到 4 之间的数字: 你输入的数字为: 3 你选择了 3 循环语句 for 循环 与其他编程语言类似,Shell支持for循环...命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。 in列表是可选的,如果不用它,for循环使用命令行的位置参数。...,Shell使用两个命令来实现该功能:break和continue。
,十以上的参数需要用大括号包含,如${10}) 2.案例实操 (1)输出该脚本文件名称、输入参数1和输入参数2 的值 [root@xxx-test2 test_shell]$ touch parameter.sh...return后跟数值n(0-255) 3.案例实操 (1)计算两个输入参数的和 [root@xxx-test2 test_shell]$ touch fun.sh [root@xxx-test2...cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。...1列和第7列,中间以“,”号分割。...(3)只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"。
commandN else command fi 这里要注意的是,加入else没有语句执行,在shell中的语法层面上,是不允许写else,但是在java或php中,语法层面上是允许空else逻辑的...commandN done 写成一行和if语句是一样的,或者说,shell中写成一行的语法都是类似的: for var in item1 item2 ... itemN; do command1; command2...命令可为任何有效的 shell 命令和语句。in 列表可以包含替换、字符串和文件名。另外,in列表是可选的,如果不用它,for循环使用命令行的位置参数。 我们来看个例子: #!...取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。...8、跳出循环 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。
一、内置变量 属 性 说 明 $0 当前记录行,代表一行记录 $1~$n 当前记录的第n个字段,字段间由FS分隔 FS 输入字段分隔符,默认是空格 NF 当前记录中的字段个数,就是有多少列,一般取最后一列字段...FILENAME 当前输入文件的名字 IGNORECASE 如果为真,则进行忽略大小写的匹配 ARGIND 当前被处理文件的ARGV标志符 CONVFMT 数字转换格式 %.6g ENVIRON UNIX...注: RSTART 被匹配正则表达式首位置,RLENGTH 匹配字符长度,没有找到为-1 三、外部变量 1) 基本用法 awk 中两个特别的表达式,BEGIN和END 这两者都可用于pattern中...,提供BEGIN和END的作用是给程序赋予 初始状态 和 程序结束 之后执行一些扫尾的工作。...a) 任何在BEGIN之后列出的操作(在{}内),将在awk开始扫描输入之前执行 b) 任何在END之后列出的操作,将在扫描完全部的输入之后执行 因此,通常使用BEGIN来显示变量和初始化变量,使用END
#rand() 返回0和1之间的一个随机数 读写文件 #load_file()读取本地文件 #into outfile()写文件 #注意secure_file_priv的值 SELECT 'mysql'...#new_value,String格式,替换查找到的符合条件的数据 #作用:从目标XML中返回包含所查询的字符串 #这两个函数功能类似,一个是查询,一个是更新。...,Header头中,body中) 如果数据太多,导致无法返回结果:使用limit限定返回的数量和位置,依次查询,或使用concat连接多个数据成为一条返回结果 某些场景下,想要快速获得数据,借助工具,如...构造查询使前面语句结果为空,使用union查询判断列在页面中对应的位置。 ? 在相应的位置替换语句,读库查数据或者写shell。 ?...最后这里提权有点草草结束的意味,事实也是如此,当我实验提权部分的时候,整个过程记录下来足以写另一篇5000字了。所以后续的文章中我会介绍更多的提权方法。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。...2.1 Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样...取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。...,Shell使用两个命令来实现该功能:break和continue。...这里的 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出。 2.12 Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本。
正确输出和错误输出同时保存 命令 >> 文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中。...$() 和反引号作用一样,用来引用系统命令。(推荐使用) () 用于一串命令执行时,()中的命令会在子Shell中运行 {} 用于一串命令执行时,{ }中的命令会在当前Shell中执行。...,将特殊字符进行转义,忽略其特殊意义 a.b匹配a.b,但不能匹配ajb,.被转义为特殊意义 ^ 匹配行首,awk中,^则是匹配字符串的开始 ^tux匹配以tux开头的行 $ 匹配行尾,awk中,$则是匹配字符串的结尾...| [0-9]{2,}匹配任意一个两位数或更多位数不支持{n,}{n,}{n,} {n,m}| 指定之前的项至少匹配n次,最多匹配m次,n<=m | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字...用于判断两个值是否相等,如果是给变量赋值,请使用“”号 关系运算符 != 不等于 关系运算符 A~B 判断字符串A中是否包含能匹配B表达式的子字符串 关系运算符 A!
Shell 变量 变量默认都是字符串类型 变量名和等号之间不能有空格 命名:只能使用英文字母,数字和下划线,首个字符不能以数字开头 查看变量 set 命令,删除变量 unset variable_name..." 其中双引号中可以出现变量和转义符。...数组 Shell 中只支持一维数组 names=('leo' 'jack' 'tim') names[3]='petter' # 可以不使用连续的下标,而且下标的范围没有限制 echo ${names...取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。...Shell 函数 funWithReturn(){ echo "输入的两个数字进行相加运算..."
领取专属 10元无门槛券
手把手带您无忧上云