Hadoop第一天

这篇博客介绍了Hadoop的基础命令,包括基本格式、语法,如打印变量值、使用反引号赋值,以及特殊变量的运用。还涉及到算数表达式的运算,如权限设置,以及if语法、case和for语法的使用。

Hadoop基础命令

基本格式

代码写在普通文本文件中,通常以 .sh为后缀名

vi hello.sh
#!/bin/bash    ## 表示用哪一种shell解析器来解析执行我们的这个脚本程序
echo "hello world"   ##  注释也可以写在这里
## 这是一行注释
执行脚本
sh hello.sh

或给脚本添加x权限,直接执行
chmod 755 hello.sh
./hello.sh

基本语法

[root@hdp01 ~]# a=1
[root@hdp01 ~]# set

BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.1.2(2)-release'
COLORS=/etc/DIR_COLORS
COLUMNS=103
CVS_RSH=ssh
DIRSTACK=()
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HADOOP_HOME=/home/hadoop/apps/hadoop-2.8.0
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=hadoop01
HOSTTYPE=x86_64
ID=0
IFS=$' \t\n'
JAVA_HOME=/home/hadoop/apps/jdk1.8.0_181
LANG=en_US.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LINES=38
LOGNAME=root
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OLDPWD=/root
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/home/hadoop/apps/jdk1.8.0_181/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/hadoop/apps/hadoop-2.8.0/bin:/home/hadoop/apps/hadoop-2.8.0/sbin:/root/bin
PIPESTATUS=([0]="0")
PPID=30556
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
PWD=/home
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
SELINUX_USE_CURRENT_RANGE=
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_CLIENT='192.168.72.120 53596 22'
SSH_CONNECTION='192.168.72.120 53596 192.168.72.110 22'
SSH_TTY=/dev/pts/1
TERM=xterm
UID=0
USER=root
_=
a=1
colors=/etc/DIR_COLORS

打印变量的值

[root@hadoop01 home]# echo $a
1

[root@hadoop01 home]# a=helloworld
[root@hadoop01 home]# echo $a

helloworld

在变量a的输出hello world后边+s
[root@hdp01 ~]# echo $a+"s"
hello world+s
[root@hdp01 ~]# echo $a"s"
hello worlds
[root@hdp01 ~]# echo $as
或者
[root@hdp01 ~]# echo ${a}s
hello worlds

在world 后面添加s

[root@hadoop01 ~]# echo $"s"
s
[root@hadoop01 ~]# a="hello world"
[root@hadoop01 ~]# echo $a"s"
hello worlds

3、反引号赋值
A=ls -la ## 反引号,运行里面的命令,并把结果返回给变量A
A=$(ls -la) ## 等价于反引号
4、特殊变量
$? 表示上一个命令退出的状态码(0-255)
$$ 表示当前进程编号
$0 表示当前脚本名称
$n 表示n位置的输入参数(n代表数字,n>=1)
$# 表示参数的个数,常用于循环
∗和*和@ 都表示参数列表

[root@hdp01 ~]# sh canshu.sh b c m s f
11940
0
b
c
m
s
b c m s f
b c m s f
5
b.sh

算数表达式运算

[root@hadoop2 home]# S=`expr 2 + 3`
	[root@hadoop2 home]# B=`expr $S \* 4`       ##   *号需要转义
[root@hadoop2 home]# echo $B

先添加权限,可读可写可执行
在这里插入图片描述
if语法
在这里插入图片描述

[root@hadoop01 home]# vi ss.sh
[root@hadoop01 home]# chmod 755 ss.sh
[root@hadoop01 home]# sh ss.sh
please your name:wxj
你妹
[root@hadoop01 home]# xj
-bash: xj: command not found
[root@hadoop01 home]# sh ss.sh
please your name:xj
hello xj,welcome

判断条件

[root@hadoop01 home]# vi ss.sh
[root@hadoop01 home]# a=1
[root@hadoop01 home]# b=2
-bash: b: readonly variable
[root@hadoop01 home]# if [ a= b ];then echo ok;else echo notok
> ^C
[root@hadoop01 home]# if [ a= b ];then echo ok;else echo notok;fi
-bash: [: a=: unary operator expected
notok
[root@hadoop01 home]# a=1
[root@hadoop01 home]# b=1
-bash: b: readonly variable
[root@hadoop01 home]# a=1
[root@hadoop01 home]# c=1
[root@hadoop01 home]# if [ a=c ];then echo ok;else echo notok;fi
ok

条件判断组合

[root@hadoop01 home]# if [ a=b -a b=b ];then echo ok;else echo not;fi
ok
[root@hadoop01 home]# if [ a=b -a b=b ];then echo ok;else echo not;fi
ok
[root@hadoop01 home]# if [ a=b -a b=c ];then echo ok;else echo not;fi
ok
[root@hadoop01 home]# if [ a=a -a b=c ];then echo ok;else echo not;fi
ok
[root@hadoop01 home]# if [ a = a -a b = c ];then echo ok;else echo not;fi
not

case语法
在这里插入图片描述
for语法
在这里插入图片描述
函数使用

#!/bin/sh
# func1.sh
#hello
hello()    ## 函数定义
{
        echo "Hello there today's date is `date +%Y-%m-%d`"
        return  2      ###返回值其实是状态码,只能在[0-255]范围内
}  
echo "now going to the function hello"
hello
echo $?  #获取函数的return值(即:返回上一条命令执行的后的值。true返回0,false返回1)  
echo "back from the function"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值