剑指数据仓库-Shell命令二

一、上次课程回顾

二、Linux基础命令二

三、作业

一、上次课程回顾

  • 博文连接:https://blog.csdn.net/SparkOnYarn/article/details/104778851
  • 回顾:pwd、cd、相对路径/绝对路径、回退家目录的三种方式、查看文件/隐藏文件/文件修改先后进行排序、创建空文件/把文件内容置为空、常见文件查看方式(cat/more/less)、tail -f和tail -F的区别、定位ERROR的几种方式。

二、Linux基础命令二

2.1、echo命令

1、查看命令所属的路径在哪,会去$PATH环境变量中去找,找到第一个就返回:

[root@hadoop ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

//ls是查看当前目录下文件,ls是在/usr/bin/ls目录下,当我们使用ls的时候就会在/usr/bin目录下执行ls命令,
[root@hadoop ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

//测试把当前PATH置为空,再次which ls查看,这个只对当前session生效,不对全局生效:
[root@hadoop001 ~]# PATH=''
[root@hadoop001 ~]# which ls
alias ls='ls --color=auto'
//我们新开一个session,测试还是能找到路径的
[root@hadoop001 ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

echo打印一般分为两种场景使用,打印环境变量$PATH,which ls找的其实是path路径,

小结:如果我们输入命令提示command not found,那么问题就是没有配置环境变量

2.2、个人环境变量(.bashrc和.bash_profile的选择)和全局环境变量(/etc/profile)、别名使用

1、全局环境变量

1、全局环境变量:所有人都使用:
/etc/profile

个人环境变量:
~/.bash_profile
~/.bashrc

2、创建/usr/java目录,解压jdk文件放到此目录下:
[root@hadoop001 java]# tar -xzvf /home/hadoop/software/jdk-7u80-linux-x64.tar.gz -C ./
[root@hadoop001 java]# tar -xzvf /home/hadoop/software/jdk-8u45-linux-x64.gz -C ./
[root@hadoop001 java]# ll
total 8
drwxr-xr-x 8 root root 4096 Apr 11  2015 jdk1.7.0_80
drwxr-xr-x 8 root root 4096 Apr 11  2015 jdk1.8.0_45

//养成习惯,jdk解压之后需要查看所属用户和用户组是否准确

3、编辑全局环境变量:vi /etc/profile
#environment
export JAVA_HOME=/usr/java/jdk1.8.0_45
#ecport JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
"/etc/profile" 81L, 1921C written

//生效全局环境变量,查看java版本号
[root@hadoop001 java]# source /etc/profile
[root@hadoop001 java]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

//查看java所在路径
[root@hadoop001 java]# which java
/usr/java/jdk1.8.0_45/bin/java
  • 编辑全局文件主要操作流程:a.上下键,移动光标 b.按i键进入insert模式,进入编辑模式 c.开始编辑 d.按esc退出编辑模式,进入命令行模式, e.按shift+:键,进入尾行模式 f.输入wq保存退出.

  • /usr/java这个路径会影响到以后部署CDH,java只要记住两件事情:一个是修正用户和用户组,还有一个就是jdk目录放在/usr/java目录。

  • 环境变量k=v前后不能有空格,使用时$k

总结:

1、command not found:没有部署安装包,部署了安装包没有配置环境变量

2、习惯:当我们以后部署一个软件,bin目录下的可执行文件,比如java,要养成习惯,当我们生效环境变量文件,习惯做which java,以防我们配置的时候出现问题,不对。

3、个人环境变量(使用别名测试)

1、查看系统中已经存在的别名:
[hadoop@hadoop001 ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

2、在生产上我们精简操作,直接在把别名放在系统文件中,以供访问,如下这个命令只能在当前session上使用生效,新开session是不生效的。
[hadoop@hadoop001 ~]$ alias test='cd /home/hadoop/software'
[hadoop@hadoop001 ~]$ test
[hadoop@hadoop001 software]$

3、vi .bashrc的时候在末尾添加一行:
alias j = 'cd /home/hadoop/software'

重要:更新知识点,.bashrc 作为我们以后的个人环境变量文件。
原因:在我们执行ssh的时候在执行.bashrc是会生效的,而加载.bash_profile的时候是不生效的。

2.3、history命令的使用

1、 hdfs上PB级别的数据被删除,如何进行排查?

  • 使用root用户一个个切换到普通用户上,使用history命令查看谁使用了rm命令。

2、如何把history命令的痕迹进行抹除:清空.bash_history文件,再使用history -c命令

  • [root@hadoop001 ~]# cat /dev/null > .bash_history
    [root@hadoop001 ~]# cat .bash_history
    [root@hadoop001 ~]# history -c

注意:如果公司机器是通过跳板机登录的话,这种方式可以进行删除;但是如果是使用堡垒机登录的话,这些记录都会存在于log文件中,那就歇菜。

3、假设我们曾经敲过的某个命令特别长,我们不想再次敲,输入history,输入!2(感叹号+history命令中的序号),我们进入新公司拿到机器的第一件事情就是使用history命令上去进行查看。

2.4、删除命令的使用

1、回想创建文件的几种方式:
touch 空文件(之前文件一定是不存在的)、cat /dev/null > xxx.log(文件不存在创建、文件存在进行清空)、vi xxx.log(不存在创建新文件、存在直接进行编辑);这三种方式都会生成新文件。

2、文件夹的方式:
rm -f rz.log 直接删除文件
rm -rf test 直接删除文件夹

面临的风险:rm -rf /,从根目录开始直接进行删除,存在某种场景会进行从根目录删除。
什么场景会发生,在编写shell脚本的时候:

//在赋值的时候,k=''赋值就是为空
k='/home/hadoop/software'
k=''
rm -rf $k/*

//在linux上进行测试:
[hadoop@hadoop001 ~]$ k=''
[hadoop@hadoop001 ~]$ echo $k/
/

小结:在shell脚本中写的时候要注意,删除的时候要判断目录是否存在,存在进行删除,不存在的话不能执行rm -rf,这是一个高危命令。

扩充:
直连:使用SecureCRT直连
跳板机:是通过A机器跳到B机器,没有可视化界面
堡垒机:也是从A机器跳到B机器,带web界面可以可视化,多的一个功能是可以审计

三、作业

1、整理个人、全局环境变量

2、整理别名

3、对which的理解、history命令

yum install -y unzip
useradd hadoop
su - hadoop
vi 编辑文件

发布了3 篇原创文章 · 获赞 0 · 访问量 49

猜你喜欢

转载自blog.csdn.net/SparkOnYarn/article/details/104793896
今日推荐