SHELL学习-1

1、新建shell——多行命令执行:在/home/work/study-shell目录下新建helloworld.txt 文件,并且向其添加内容:

在这里插入图片描述
在这里插入图片描述

2、shell系统变量:

在这里插入图片描述

3、自定义变量

在这里插入图片描述
注意:环境变量建议大写。

4、默认的值都是字符串类型,是无法进行计算的:

在这里插入图片描述

5、若有空格,请添加单\双引号:

在这里插入图片描述

6、变量提升为全局变量,在哪里都可以使用:

在这里插入图片描述

7、特殊变量:$n $# $* $@ $?

7.1、$n —— $0: 脚本名称 ——$1~$9代表1到9这9个参数的值
编写脚本:
在这里插入图片描述
在这里插入图片描述
7.2、&# 代表获取输入参数的个数,常用于循环:
在这里插入图片描述
在这里插入图片描述
7.3、&* $@ 代表 命令行所有参数
在这里插入图片描述
在这里插入图片描述

7.4、&? 代表上一次执行的命令是否成功
在这里插入图片描述
注意:上一次执行正确输出0,否则输出非0数字;

8、运算符

$[运算式]
$((运算式))
expr 运算式   注意:运算符之间必须有空格

在这里插入图片描述
在这里插入图片描述

9、条件判断

[ condition ] 注意 condition前后都必须有空格
[ zs ] 非空为true 否则为false

= -eq
> -gt
>= -ge
< -lt
<= -le
!= -ne

-r (read)
-w (write)
-x (可执行)

-f (存在且是一个文件格式)
-e (存在)
-d (存在且是一个目录格式)

&&前一个条件为true才会执行下一个条件判断
||前一个条件为false才会执行下一个条件判断

在这里插入图片描述

10、if

if [ condition ];then
程序
fi

在这里插入图片描述
在这里插入图片描述

11、case

case $变量名 in:
	"值1"...
		;;
	"值2"...
		;;
	*)
		...
		;;
esac

在这里插入图片描述
在这里插入图片描述

12、for

for((初始值;循环条件;变量变化))
	do
		...
	done

在这里插入图片描述
在这里插入图片描述

for 变量 in 值1 值2 值3 值4 ...
	do
		...
	done

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13、while

while [ condition ]
	do
		...
	done

在这里插入图片描述
在这里插入图片描述

14、Read读取控制台输入

read(选项)(参数)
选项 -p 指定指令读取时的提示符
参数 -t 指定读取值时的等待时间(单位:s)

在这里插入图片描述

在这里插入图片描述

15、系统函数

在这里插入图片描述

[function] function[()]
{
	Action;
	[return int;]
}
function
函数返回值只能通过$?系统变量获得,
如果没有return,则最后一条命令运行结果作为最后的返回值。

计算两个入参的和:
在这里插入图片描述
在这里插入图片描述

16、cut在文件中负责剪切数据

cut [选项参数] filename
选项参数:
-f 列号,提取第几列
-d 分隔符,默认制表符

在这里插入图片描述
切割 guan
在这里插入图片描述
选取PATH第二个:开始后的所有路径
在这里插入图片描述
切割ifconfig后,打印IP地址
在这里插入图片描述

17、sed流编辑器

它一次处理一行内容,处理时,把当前处理的行数据存储在临时缓冲区,称为模式空间,接着用sed命令处理缓冲区的内容,处理后,把缓冲区的内容发送到屏幕,接着处理下一行数据。这样不断重复,直到文件末尾,文件内容并没有改变,除非你重定向输出。

sed [选项参数] 'command' filename
选项参数:
-e 多命令
a 新增
d 删除
s 替换

将"mei nv"添加到para.sh第二行下,打印
在这里插入图片描述
删除para.sh文件中所有包含wo的行
在这里插入图片描述
将wo替换为ni
在这里插入图片描述
将para.sh文件中第二行删除,并将wo替换为ni
在这里插入图片描述

18、awk强大的文本分析工具

awk [选项参数] 'pattern{action1} pattern{action2} pattern{action3} pattern{action4}' filename
选项参数
-F 指定输入文件的分隔符
-v 赋值一个用户定义变量

查找para.sh 文件以root开头的所有行,并且输出该行的第一列
在这里插入图片描述

查找para.sh 文件以root开头的所有行,并且输出该行的第1和2列
在这里插入图片描述
显示para.sh 文件第1和2列,且在所有行的前面添加列 user.shell 在最后一行添加 hello,world
在这里插入图片描述
para.sh文件中,用户id增加数值1并输出
在这里插入图片描述

内置变量
FILENAME 文件名
NR 已读记录数
NF 切割后的 列的个数

统计para.sh文件名,每行 行号 行数
在这里插入图片描述
切割IP
在这里插入图片描述
查空行所在的行号
在这里插入图片描述

19、sort

sort(选项参数)(参数)
选项参数
-n 依照数值大小排序
-r 以相反的顺序排序
-t 设置排序时用到的分隔符
-k 指定需要排序的列

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值