- 博客(26)
- 收藏
- 关注
原创 SHELL基础知识-正则表达式
1. 正则表达式是什么?正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,是一种字符模式,用于在查找过程中==匹配指定的字符==。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。支持正则表达式的程序如:locate |find| vim| grep| sed |awk2. 正则能干
2021-11-12 17:48:58
556
原创 SHELL基础知识-补充扩展-函数
1. 什么是函数? shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数 给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能 2. 如何定义函数?方法1:函数名(){ 函数体(一堆命令的集合,来实现某个功能) }方法2:function 函数名(){ 函数体(一堆命令的集合,来实现某个功能) echo hello echo world}函数中==return==说明: return..
2021-11-12 17:35:07
211
原创 SHELL基础知识-补充扩展-case语句
case语句为多重匹配语句 如果匹配成功,执行相匹配的命令 1. 语法结构说明:pattern表示需要匹配的模式case var in 定义变量;var代表是变量名pattern 1) 模式1;用 | 分割多个模式,相当于or command1 需要执行的语句 ;; 两个分号代表命令结束pattern 2) command2 ;;pat..
2021-10-25 16:55:52
251
原创 SHELL基础知识-补充扩展-expect
expect 自动应答需求1:A远程登录到server上什么都不做#!/usr/bin/expect# 开启一个程序spawn ssh root@10.1.1.1# 捕获相关内容expect { "(yes/no)?" { send "yes\r";exp_continue } "password:" { send "123456\r" }}interact //交互脚本执行方式:# ./expect1.sh# /shell04/expect
2021-10-25 16:16:39
222
原创 SHELL基础知识-循环篇-嵌套循环
关键字:大圈套小圈 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。 每次外部循环都会触发内部循环,直至内部循环完成,才接着执行下一次的外部循环。 for循环、while循环和until循环可以相互嵌套。 1. 应用案例㈠ 打印指定图案112123123412345554543543254321㈡ 落地实现1X轴:for ((i=1;i<=5;i++));do echo -n $i;doneY轴:负责打印换行#!/b
2021-10-14 23:06:38
4042
原创 SHELL基础知识-循环篇-随机数
1. 如何生成随机数?系统变量:RANDOM,默认会产生0~32767的随机整数打印一个随机数echo $RANDOM查看系统上一次生成的随机数# set|grep RANDOMRANDOM=28325产生0~1之间的随机数echo $[$RANDOM%2]产生0~2之间的随机数echo $[$RANDOM%3]产生0~3之间的随机数echo $[$RANDOM%4]产生0~9内的随机数echo $[$RANDOM%10]产生0~100内的随机数echo $[
2021-10-14 22:52:02
1308
原创 SHELL基础知识-循环篇-until循环
特点:条件为假就进入循环;条件为真就退出循环1. until语法结构until expression [ 1 -eq 1 ] (( 1 >= 1 )) do command command ... done打印1-5数字i=1while [ $i -le 5 ]do echo $i let i++donei=1until [ $i -gt 5 ]do echo $i let i++done...
2021-10-13 22:52:05
161
原创 SHELL基础知识-循环篇-while循环
while循环语句特点:条件为真就进入循环;条件为假就退出循环1. while循环语法结构while 表达式 do command... done while [ 1 -eq 1 ] 或者 (( 1 > 2 )) do command command ... done循环打印1-5数字FOR循环打印:for ((i=1;i<=5;i++))do echo $idonewhile循环打印:i=1while [
2021-10-13 22:49:26
631
原创 SHELL基础知识-循环篇-for循环
for循环语法结构㈠ 列表循环列表for循环:用于将一组命令执行已知的次数 基本语法格式 for variable in {list} do command command … done或者for variable in a b c do command command done举例说明for var in {1..10};do ec
2021-10-13 22:23:43
1191
原创 SHELL基础知识-流程控制篇-应用案例
㈠ 判断两台主机是否ping通需求:判断当前主机是否和远程主机是否ping通① 思路 使用哪个命令实现 ping -c次数 根据命令的==执行结果状态==来判断是否通$? 根据逻辑和语法结构来编写脚本(条件判断或者流程控制) ② 落地实现#!/bin/env bash# 该脚本用于判断当前主机是否和远程指定主机互通# 交互式定义变量,让用户自己决定ping哪个主机read -p "请输入你要ping的主机的IP:" ip# 使用ping程序判断主机是否
2021-10-13 17:46:13
110
原创 SHELL基础知识-流程控制篇-流程控制
基本语法结构㈠ if结构箴言1:只要正确,就要一直向前冲✌️F:表示false,为假T:表示true,为真if [ condition ];then command commandfiif test 条件;then 命令fiif [[ 条件 ]];then 命令fi[ 条件 ] && command㈡ if...else结构箴言2:分叉路口,二选一if [ condition ];then command1 else
2021-10-13 16:07:38
80
原创 SHELL基础知识-流程控制篇-判断
条件判断相关参数㈠ 判断文件类型判断参数 含义 -e 判断文件是否存在(任何类型文件) -f 判断文件是否存在并且是一个普通文件 -d 判断文件是否存在并且是一个目录 -L 判断文件是否存在并且是一个软连接文件 -b 判断文件是否存在并且是一个块设备文件 -S 判断文件是否存在并且是一个套接字文件 -c 判断文件是否存在并且是一个字符设备文件 -p 判断文件是否存在并且是一个命名管道文件 -s 判断文件是
2021-10-13 11:48:28
92
原创 shell基础知识-扩展篇-其他变量定义
取出一个目录下的目录和文件:dirname和 basename # A=/root/Desktop/shell/mem.txt # echo $A/root/Desktop/shell/mem.txt# dirname $A 取出目录/root/Desktop/shell# basename $A 取出文件mem.txt变量"内容"的删除和替换一个“%”代表从右往左删除两个“%%”代表从右往左去掉最多一个“#”代表从左往右去掉删除两个“##”代表从左往右去掉最多..
2021-10-13 10:06:58
160
原创 shell基础知识-变量篇-变量的分类
㈠ 本地变量 ==本地变量==:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的子进程无效。 ㈡ 环境变量 环境变量:当前进程有效,并且能够被子进程调用。 env查看当前用户的环境变量 set==查询当前用户的所有变量(临时变量与环境变量)== export 变量名=变量值 或者 变量名=变量值;export 变量名 [root@MissHou ~]# export A=hello 临时将一个本地变量(临时变量)变成环境变量[r
2021-10-13 09:50:46
204
原创 shell基础知识-扩展篇-运算
简单四则运算算术运算:默认情况下,shell就只能支持简单的==整数==运算运算内容:加(+)、减(-)、乘(*)、除(/)、求余数(%)1. 四则运算符号 表达式 举例 $(( )) echo $((1+1)) $[ ] echo $[10-5] expr expr 10 / 5 let n=1;let n+=1 等价于 let n=n+1 了解i++和++i对变量的值的影响[root@MissHou ~]# i=1
2021-10-13 09:50:27
91
原创 shell基础知识-扩展篇-数组
1. 数组定义㈠ 数组分类 普通数组:只能使用整数作为数组索引(元素的下标) 关联数组:可以使用字符串作为数组索引(元素的下标) ㈡ 普通数组定义 一次赋予一个值 数组名[索引下标]=值array[0]=v1array[1]=v2array[2]=v3array[3]=v4一次赋予多个值数组名=(值1 值2 值3 ...)array=(var1 var2 var3 var4)array1=(`cat /etc/passwd`) 将文件中每一行赋
2021-10-13 09:50:19
175
原创 shell基础知识-变量篇-定义方式
(一)直接赋值给一个变量[root@MissHou ~]# A=1234567[root@MissHou ~]# echo $A1234567[root@MissHou ~]# echo ${A:2:4} 表示从A变量中第3个字符开始截取,截取4个字符3456说明:$变量名 和 ${变量名}的异同相同点:都可以调用变量不同点:${变量名}可以只截取变量的一部分,而$变量名不可以㈡ 命令执行结果赋值给变量[root@MissHou ~]# B=`date +%F`[roo
2021-10-12 16:29:48
215
原创 shell基础知识-变量篇-变量的定义
虽然可以给变量(变量名)赋予任何值;但是,对于变量名也是要求的!????㈠ 变量名区分大小写[root@MissHou ~]# A=hello[root@MissHou ~]# a=world[root@MissHou ~]# echo $Ahello[root@MissHou ~]# echo $aworld㈡ 变量名不能有特殊符号[root@MissHou ~]# *A=hello-bash: *A=hello: command not found[root@MissH
2021-10-12 16:12:06
74
原创 shell基础知识-变量篇-bash的特性
1、命令和文件自动补全Tab只能补全==命令和文件== (RHEL6/Centos6)2、常见的快捷键^c 终止前台运行的程序^z 将前台运行的程序挂起到后台^d 退出 等价exit^l 清屏 ^a |home 光标移到命令行的最前端^e |end 光标移到命令行的后端^u 删除光标前所有字符^k 删除光标后所有字符^r 搜索历史命令3 、常用的通配符(重点)*: 匹配0或多个
2021-10-12 16:02:50
74
原创 SHELL基础知识-工具篇-练习
使用小工具分别截取当前主机IP;截取NETMASK;截取广播地址;截取MAC地址# ifconfig eth0|grep 'Bcast'|tr -d '[a-zA-Z ]'|cut -d: -f2,3,410.1.1.1:10.1.1.255:255.255.255.0# ifconfig eth0|grep 'Bcast'|tr -d '[a-zA-Z ]'|cut -d: -f2,3,4|tr ':' '\n'10.1.1.110.1.1.255255.255.255.0# ifcon
2021-10-12 15:53:59
177
原创 SHELL基础知识-工具篇-paste、tr
1.paste工具paste工具用于合并文件行 常用选项:-d:自定义间隔符,默认是tab-s:串行处理,非并行2. tr工具 tr用于字符转换,替换和删除;主要用于删除文件中控制字符或进行字符转换语法和选项语法用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理 commands|tr 'string1' 'string2'用法2:tr处理的内容来自文件,记住要使用"<"标准输入 tr 'string1'
2021-10-12 15:46:05
202
原创 SHELL基础知识-工具篇-diff
diff工具用于逐行比较文件的不同注意:diff描述两个文件不同的方式是告诉我们怎样改变第一个文件之后与第二个文件匹配。语法和选项语法:diff [选项] 文件1 文件2常用选项:选项 含义 备注 -b 不检查空格 -B 不检查空白行 -i 不检查大小写 -w 忽略所有的空格 --normal 正常格式显示(默认) -c 上下文格式显示 -u 合并格式显
2021-10-12 15:33:59
602
原创 SHELL基础知识-工具篇-uniq、tee
一、uniquniq用于去除连续的重复行常见选项:-i: 忽略大小写-c: 统计重复行次数-d:只显示重复行举例说明:# uniq test.txt# uniq -d test.txt# uniq -dc test.txt二、teetee工具是从标准输入读取并写入到标准输出和文件,即:双向覆盖重定向(屏幕输出|文本输入)选项:-a 双向追加重定向# echo hello world# echo hello world|tee file1# c...
2021-10-12 11:58:15
97
原创 SHELL基础知识-工具篇-sort
sort工具用于排序;它将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出语法和选项:-u :去除重复行-r :降序排列,默认是升序-o : 将排序结果输出到文件中,类似重定向符号>-n :以数字排序,默认是按字符排序-t :分隔符-k :第N列-b :忽略前导空格。-R :随机排序,每次运行的结果均不同举例说明 # sort -n -t: -k3 passwd 按照用户的uid进行升序排列# sort -nr -
2021-10-12 11:53:30
288
原创 SHELL基础知识-工具篇-cut
cut工具cut是列截取工具语法和选项语法:cut 选项 文件名常见选项:-c: 以字符为单位进行分割,截取-d: 自定义分隔符,默认为制表符\t-f: 与-d一起使用,指定截取哪个区域举例说明:# cut -d: -f1 1.txt 以:冒号分割,截取第1列内容# cut -d: -f1,6,7 1.txt 以:冒号分割,截取第1,6,7列内容# cut -c4 1.txt 截取文件中每行第4个字符# cut -c1-4 1.txt
2021-10-12 11:33:52
415
原创 SHELL基础知识-工具篇-grep
一、文本处理工具1. grep工具语法和选项语法:# grep [选项] '关键字' 文件名常见选项:OPTIONS: -i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -o: 打印匹配关键字 -c: 统计匹配到的行数 -n: 显示行号 -r: 逐层遍历目录查找 -A: 显示匹配行及后面多少行 -B: 显示匹配行及前面多少行 -C: 显示匹配行前后多少行 -
2021-10-12 11:25:54
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人