学好大数据开发的基础是什么?

2021-04-13 14:14:02 浏览数 (1)

在学习大数据开发时,shell的特殊符号也是基础的重要组成部分。把特殊符号牢记在心,对我们的工作效率提升有很大的帮助,内容较多,建议收藏后观看。(另外小声问一下,大家是怎么记这些特殊符号的)

一、特殊符号

1. ;分号

连续运行命令

例子:# ifdown eth0;ifup eth0

2. | 管道

正则表达式中表示或者

例子:# echo "ooooee" |egrep '(oo|ee)'{2}   表示匹配 oooo 或者 eeee 的字符

前面命令的标准输出作为后面命令的标准输入

例子:# ifconfig|grep eth0     表示ifconfig查出来的信息然后过滤出eth0的这一行

3. ||逻辑或

前面命令返回值为非0才执行后面的命令

例子:p1 || p2 ;若p1执行成功后,不执行p2,反之,才执行p2

4. # 井号

注释符号。在shell文件的行首,作为include标记,#!/bin/bash;其他地方作为注释使用

5. ;分号

语句的分隔符。在shell文件一行写多条语句时,使用分号分割。

6. ;; 双分号。

在使用case选项的时候,作为每个选项的终结符。在Bash version 4 的时候,还可以使用[;;&], [;&]

7. .英文句点号

命令等价于source, . 表示当前目录 .. 表示上一级目录,正则表达式中作为单个字符匹配

(1)相当于bash内建命令source

例子:

#!/bin/bash;

. data-file#包含data-file;

(2)作为文件名的一部分,在文件名的开头,表示该文件为隐藏文件,ls一般不显示出来(ls -a 可以显示);

(3)作为目录名,一个点代表当前目录,两个点号代表上层目录(当前目录的父目录)。注意,两个以上的点不出现,除非你用引号(单/双)包围作为点号字符本身;

(4)正则表达式中,点号表示任意一个字符。

8. :冒号

是shell的空命令(null command),什么也不做,但是返回true。用法比较多,主要有:

(1)可做while死循环的条件;

(2)占位符,if某一分支什么都不做的时候;

(3)域分隔符,比如环境变量$PATH中,或者passwd中,都有冒号的作为域分隔符的存在;

(4)清空文件。因为冒号不向标准输出任何内容,所以可以用来清空文件,示例::>file

(5)配合${:=}给未定义或为空的变量赋值,示例:: ${abc:=1234};echo $abc,输出1234

9.  ''单引号

硬转义,其内部所有的shell元字符、通配符都会被关掉。注意,硬转义中不允许出现'(单引号)

10. "" 双引号

软转义,其内部只允许出现特定的shell元字符($,`,):$用于变量值替换、`用于命令替换、用于转义单个字符

11. /正斜杠

文件名分隔符,除法操作

例子:例如:echo $((10/2)) 结果就是5

12. 反斜杠

转义,去除其后紧跟的元字符或通配符的特殊意义

13. !惊叹号

将命令或者条件表达式的返回值取反

例子:# if ! [ 1<2 ]; then echo 'ok'; else echo 'no'; fi

ok

14. $ 美元符号

例子:取变量的值

# a=10

# echo $a

10

例子:正则表达式表示行尾

egrep ':$' /etc/inittab

egrep ‘^hello$' file

15. $0 当前脚本的名称

16. $# 传递给脚本或函数的参数个数

17. $* 传递给脚本或函数的所有参数

18. $@ 传递给脚本或函数的所有参数。

19. $? 上个命令的退出状态,或函数的返回值。

20. $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

21. $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。

22. * 作为匹配文件名扩展的一个通配符,能自动匹配给定目录下的每一个文件。

23. ~ 波浪号

这个和shell环境变量$HOME是一样的。默认表示当前用户的家目录(主目录)

24. - 减号

和~-一样,表示前一个工作目录。

例子:cd -,回到前一个工作目录,不能echo - 来查看。

25. - - 双减号

与~相同,表示当前用户的家目录(主目录) cd - -,回到家目录。不能echo - - 来打印输出。

26. ~ 波浪号

这个和shell环境变量$HOME是一样的。默认表示当前用户的家目录(主目录)

例子:echo ~,查看家目录。

27. 加法

例子:a=10;b=20;expr $a $b结果为 30。注意空格

28. ~

当前的工作目录(current working directory)。这个和shell环境变量$PWD一样。

例子:echo ~ 可以查看当前目录。

29. ~-

前一个工作目录(previous working directory)。这个和内部变量$OLDPWD一致,和减号-一样。例子:echo ~-可以查看前一个工作目录。

30. ! 感叹号

取反操作符 != 不等于

31. *乘法

万能匹配符, 正则表达式中数学乘法** 幂运算

32. ** 双星号

算术运算中表示求幂运算

33. % 取余

例子:expr $b % $a 结果为 0

34. = 赋值

例子:a=$b,将把变量 b 的值赋给 a

35. () 小括号。

主要有两种用法:

(1)命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。

(2)用于初始化数组。如:array=(a b c d)

36. {} 大括号

代码块标识符,一般用于函数定义时表明函数体。

例子:a{3} 匹配3个 a

for i in {1...10} 循环指定范围

匿名函数{ cmd1;cmd2;cmd3;} &> /dev/null

37.> 输出重定向

例子:echo lvlv>file,将标准输出重定向文件file中去,如果文件存在则覆盖,不能存在则创建。不指定输出的内容,>file,则清空文件。

38.>> 输出重定向追加符

例子:echo lvlv 1>>file,将标准输出重定向文件file的最后面,不会覆盖file原有内容

39.>& 输出重定向等同符

作用于文件描述符,即左右两边的操作数是文件描述符

例子:echo lvlv>file 2>&1,标准输出重定向到文件file中,标准错误输出与标准输出重定向一致

40.&> 标准输出和标准错误输出重定向符

例子:echo lvlv &>file,标准输出和标准错误输出都重定向到文件file中,与echo lvlv 1>file 2>&1 功能相同

41.< 输入重定向

例子:test.sh < file,脚本test.sh需要read的地方会从文件file读取

42.<<

用法格式:cmd << text。从命令行读取输入,直到一个与text相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。如果使用<<- ,则会忽略接下来输入行首的tab,结束行也可以是一堆tab再加上一个与text相同的内容。

以上就是本期的所有内容了,每一种语言的特殊符号是最为基础常见,但又非常重要。是我们基础学习的重要部分,无论在哪种工作中基础都是根,即使是在大数据开发的学习中,这特殊符号的基础也得牢记于心。

0 人点赞