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

在学习大数据开发时,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, . 表示当前目录 .. 表示上一级目录,正则表达式中作为单个字符匹配

8.相当于bash内建命令source

例子:

#!/bin/bash;

. data-file#包含data-file;

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

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

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

9.:冒号

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

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

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

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

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

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

10. ''单引号

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

11."" 双引号

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

12./正斜杠

文件名分隔符,除法操作

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

13.\反斜杠

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

14.!惊叹号

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

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

ok

15.$ 美元符号

例子:取变量的值

# a=10

# echo $a

10

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

egrep ':$' /etc/inittab

egrep ‘^hello$' file

16.$0 当前脚本的名称

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

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

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

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

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

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

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

24.~ 波浪号

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

25.- 减号

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

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

26.- - 双减号

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

27.~ 波浪号

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

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

28.+ 加法

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

29.~+

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

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

30.~-

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

31.! 感叹号

取反操作符 != 不等于

32.*乘法

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

33.** 双星号

算术运算中表示求幂运算

34.% 取余

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

35.= 赋值

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

36.() 小括号。

主要有两种用法:

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

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

37. {} 大括号

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

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

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

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

38..> 输出重定向

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

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

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

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

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

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

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

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

42..< 输入重定向

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

43..<<

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

 

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

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值