大数据学习第四天

大数据学习第四天

pstree 查看当前进程结构

source 加载文件 在当前bash

. 在当前bash运行脚本

bash 相当于浏览器加cmd

chomd +x 把文件变为可执行文件

#! /路径 在文件首行指定运行编译/解释器 不写时默认bash

#! 注释的行会在第一次读取时直接运行

yum serch 查询yum情况

文件输出类型

0 标准输入

1 标准输出

2 错误输出

可以用于多种结果的不同输出 正常结果 1>/路径

错误结果 2>/路径

配置service服务文件

/etc/init.d/

chkconfig nn 运行模式 1-6 nn 运行优先级 nn 关机级别

vi 模式下 末行 set ts设置缩进距离

在脚本中‘命令行‘ 变量名=‘cat 文件名‘赋值 获取文件内容赋值变量

bash -x debug运行

ps -aux 查看所有进程

chkconfig 所有服务的配置情况

--list 查看所有服务的配置启用情况

$(变量名)字符串 变量字符串拼接

子bash执行指令时直接继承父bash环境(变量 运行环境...)

子bash执行文件时不会继承父bash的值

& 后台运行

| 管道创建子进程时会全部继承父bash的值

‘ ‘ 强引用 完全引用

"" 弱引用

while 后面必须跟一个命令 比如test

du -h 查看文件夹下文件大小

$IFS 输出默认换行符

IFS=$‘\n‘ 强制写法

改值之后需要回滚值

IFS = oldIFS(自定义变量)

bash的变量类型:

环境变量 :export

本地变量:shell脚本在运行时启动一个子bash来解释的。

局部变量

位置变量

特殊变量:bash内置的用来保存某些特殊数据的变量。(也叫系统变量)

本地变量:只属于某一个shellscript的变量。

var_name=值

作用域:整个bash进程

局部变量:

local var_name =值,

作用域:当前代码段。

环境变量:

export 名字=值

作用域:当前的shell和其子shell。

注意:脚本在执行时都会启动一个子shell进程:

命令行中启动的脚本会继承当前shell环境变量。

系统自动启动脚本(非命令行启动):则需要自我定义环境变量。

位置变量: 用于 脚本执行的参数,$1 表示第一个参数,以此类推

$0,$1,$2….

$0:表示脚本本身的文件名

特殊变量:

$? :上一个命令的执行状态返回值。

$# 传递到脚本的参数个数

$* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个

$$ 脚本运行时当前进程的ID号,常用作临时变量的后缀,如 haison.$$

$! 后台运行的(&)最后一个进程的ID号

[email protected] 与$#相同,使用时加引号,并在引号中返回参数个数

$- 上一个命令的最后一个参数

$? 最后命令的退出状态,0表示没有错误,其他任何值表明有错误

程序有两类返回值:

1、 执行结果 :标准,错误 :标准输出,错误输出

2、 执行状态,$? : 0:表示正确,1-255:错误

输出重定向:

>覆盖重定向

>> 追加重定向

2> 错误覆盖重定向

2>>错误追加重定向

&> 全部重定向

&>> 全部信息追加重定向

撤销变量:

unset 变量名

查看shell中变量:

set 命令

查看shell中的环境变量

printenv

env

export

引用变量:${变量名},一般可以省略{}?

单引号:强引用,不作变量替换

双引号:弱引用,做变量替换

反引号:``命令替换

脚本:命令的堆砌。

练习:写一个脚本,完成以下任务。

1、 添加5个用户,user1,,,,user5

2、 每个用户的密码同用户名,要求:添加密码完成后不显示passwd执行结果。

3、 显示添加成功信息

练习2:写一个脚本,完成以下任务。

1、 使用一个变量保存一个用户名

2、 删除此变量中的用户,且一并删除其家目录

3、 显示“用户删除成功”信息。

条件判断:

条件表达式:

1、 [ expression ]

2、 test expression

3、 任何一个命令都可以作为条件表达式

整数比较:

-eq : 比如:[ $A –eq $B ]

-ne , -gt ,-lt,-ge,-le

命令的逻辑关系:

在linux 中 命令执行状态:0 为真,其他为假

逻辑与: &&

第一个条件为假时,第二条件不用再判断,最终结果已经有;

第一个条件为真时,第二条件必须得判断;

逻辑或: ||

逻辑非: !

命令执行的状态 的逻辑关系

1、如果用户user6不存在则添加用户6

! id user6 && useradd user6

Id user6 || useradd user6

2、如果用户不存在,添加用户并显示添加成功,否则显示其已存在

3、如果/etc/inittab文件的行数大于50,就显示好大的文件;

练习:

1、 添加3个用户user1.user3,并且设置密码和用户名相同,如果用户已经存在,显示:已存在

2、 添加完成之后计算系统一共有多个用户。

练习:给定一个用户,

1、 如果其UID=0,就显示其为管理员,否则显示其为普通用户

备注:

passwd默认是要用终端作为标准输入,加上--stdin表示可以用任意文件做标准输入 于是这里用管道作为标准输入

条件判断,控制结构:

If 条件 ;then

语句

elif 条件 ; then

语句

else

语句

fi

-a : 逻辑与,并且 : if [ $# -gt 1 –a $# -lt 3 –o $# -eq 2 ] ; then

-o :或者 比如:

练习:判断命令历史中历史命令的总条目大于500,如果大于,则显示“Some command is done.”,否则显示:“OR”。

练习:给定三个整数,判断其中的最大值和最小数。并显示出来

bash -n shell文件 :检查文件是否有语法错误。

bash –x shell 文件 :debug 执行文件

Shell 中如何算术运算

1、 let 算术运算表达式

let C=$A + $B

2、$[算术表达式]

C = $[$A+$B]

3、$((算术表达式))

C=$(($A+$B))

3、 expr 算术表达式 ,注意:表达式中各操作数及运算符之间要有空格。而且要使用命令引用

C=expr $A + $B

练习:给定一个用户,获取其密码警告期限,然后判断用户密码使用期限是否已经小于警告期限,如果小于,则是显示“WARN” ,否则显示密码还有多少天到期。

提示:date +%s :今天的秒数

Cat /etc/shadow 密码时间。

exit : 退出脚本

退出脚本可以指定脚本执行的状态:exit 0 。

复习:

测试方法:

[ 表达式 ]

[[ 表达式 ]]

test 表达式

INT1=33

INT2=32

[ $INT1 -eq $INT2 ]

[[ $INT1 -eq $INT2 ]]

test $INT1 -eq $INT2

文件测试: [ ] 需要中括号

-e FILE :测试文件是否存在

-f FILE :测试文件是否为普通文件

-d FILE :测试文件是否为目录

-r 权限

-w

-x

特殊变量:

$# [email protected]

字符串测试:

== 等号两端需要空格

!=

-n string : 判断字符串是否为空

-s string : 判断字符串是否不空

练习:指定一个用户名,判断此用户的用户名和它的基本组 组名是否相同.

#!/bin/bash

if ! id $1 &>/dev/null ; then

echo “No such user.”

exit 12

fi

if [ $1 == id –n –g $1 ] ;then

echo “xiangtong”

else

echo “bu xiangtong”

fi

练习: 判断当前主机的CPU生产商,(其信息保存在/proc/cupinfo文件中)。

如果是:AuthemticAMD ,就显示其为AMD公司

GenuineIntel ,就显示其为 Intel公司

否则,就显示其为非主流公司。

练习:将那些可以登录的用户查询出来,并且将用户的帐号信息提取出来,后放入/tmp/test.txt文件中,并给定行号。在行首。

循环:进入条件,退出条件

for 变量 in 列表 ; do

语句

done

比如: for I in 1 2 3 4 5 ;do

语句

done、

如何生成列表:

1、{1..100}

2、seq 起始数 结束数

3、ls /etc 文件列表

练习:依次向/etc/passwd中的每个用户问好:hello 用户名,并显示用户的shell:

Hello ,root ,your shell :/bin/bash。

2、 只向默认shell为bash的用户问好。

While 循环

格式一

while 条件;do

语句

[break]

done

格式二 死循环

while true

do

语句

done

格式三 死循环

while :

do

语句

done

格式四 死循环

while [ 1 ]

do

语句

done

格式五 死循环

while [ 0 ]

do

语句

done

练习:计算100以内所有能被3整除的整数的和

练习:使用echo输出10个随机数,并且一行显示。提示:$RANDOM

练习:传给脚本一个参数:目录,找到该目录中文件最大的,文件名和文件大小:

比如:1.txt 100KB

ls -l | awk ‘{print $5,$9}‘ | sort -nr

2、查看该目录下是否有大小为0的文件,如果有则删除。同时显示删除信息。

练习:查询当前192.168.10.x网段内,那些IP被使用了,输出这些IP到一个文件中。

练习:请根据一个关键字,杀掉系统进程中包含此关键字的进程。

echo –n $RANDOM

函数:

Function 名字()

case 语句

case 变量 in

value1)

语句

;;

value2)

语句

;;

*)

语句

;;

esac

原文地址:https://www.cnblogs.com/lkoooox/p/10994174.html

时间: 2024-10-11 03:47:25

大数据学习第四天的相关文章

学习大数据需要具备四种条件?你具备几种?

现在学习大数据的越来越多了,可是你知道学习大数据需要什么条件吗?我来说说四个必备条件. 大数据现已成为年×××展的趋势,很多人纷纷挑选学习大数据,想要进入大数据职业.大数据技术体系巨大,包含的常识较多,体系的学习大数据能够让你全面把握大数据技术.学习大数据需求把握哪些常识? 1.学习大数据首先要学习Java根底 怎样进行大数据学习的快速入门?学大数据课程之前要先学习一种核算机编程言语.Java是大数据学习需求的编程言语根底,由于大数据的开发根据常用的高档言语.而且不论是学习hadoop,仍是数据

大数据学习的流程方案

大数据成为了当下发展的一种趋势,很多人去追求大数据的学习,但是苦于无从下手,今天编者根据自己的经验系统总结一下大数据学习的方略: 第一步:感性认识,找准思路 (1)看一些大数据发展及应用,了解市场形势 (2)阅读大数据相关书籍,了解知识架构 对上面基本知识有一个了解过程之后,明确自己的思路,就可以进入下一步学习; 第二步:理论学习,扎实基础 大数据平台学习路径:   预备课程 1. 大数据平台Linux基础 2. 大数据平台Java基础 3. 大数据平台Python基础   基础课程 1.  大

揭秘java大数据学习路线图

很多的同学在学习JavaEE的路上都过得的是坎坷,可以说是夜以继日的敲代码在学习,却发现自己是事倍功半,有的时候遇到一个bug真的很难受,无限互联java大数据培训专家为大家整理了一篇很值得大家去借鉴的学习路线图文章,希望大家在学习的路上一能帆风顺! 一.Java的核心 这就是学习Java的基础,掌握程度的深与浅甚至直接影响后面的整个学习进程. Java的核心主要包括了几个部分: 一. java大数据学习路线图 1.初级的有语法基础.面向对象思想. 学习任何一门语言语法都是必须的,因为Java的

大数据学习线路图

近期开始大数据的学习,在学习之前给给自己定义了一个大数据学习路线 大数据技术学习路线指南 一.Hadoop入门,了解什么是Hadoop 1.Hadoop产生背景2.Hadoop在大数据.云计算中的位置和关系3.国内外Hadoop应用案例介绍4.国内Hadoop的就业情况分析及课程大纲介绍5.分布式系统概述6.Hadoop生态圈以及各组成部分的简介7.Hadoop核心MapReduce例子说明二.分布式文件系统HDFS,是数据库管理员的基础课程1.分布式文件系统HDFS简介2.HDFS的系统组成介

大数据学习路线

偶遇大数据学习路线,赶上一次科技革命不容易,追求下,要有所作为! 一.Hadoop入门,了解什么是Hadoop 1.Hadoop产生背景2.Hadoop在大数据.云计算中的位置和关系3.国内外Hadoop应用案例介绍4.国内Hadoop的就业情况分析及课程大纲介绍5.分布式系统概述6.Hadoop生态圈以及各组成部分的简介7.Hadoop核心MapReduce例子说明 二.分布式文件系统HDFS,是数据库管理员的基础课程 1.分布式文件系统HDFS简介2.HDFS的系统组成介绍3.HDFS的组成

大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用介绍.本文主要讲解如何搭建Hadoop+Hive的环境. 一.环境准备 1,服务器选择 本地虚拟机 操作系统:linux CentOS 7 Cpu:2核 内存:2G 硬盘:40G 说明:因为使用阿里云服务器每次都要重新配置,而且还要考虑网络传输问题,于是自己在本地便搭建了一个虚拟机,方便文件的传输以

大数据学习系列之五 ----- Hive整合HBase图文详解

引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环境,并进行了相应的测试.本文主要讲的是如何将Hive和HBase进行整合. Hive和HBase的通信意图 Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现,通信原理如下图

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

如何制定一份可实施的2018年大数据学习计划?

我们习惯了"间歇性踌躇满志.持续性混吃等死", 那么2018年快过了一半了,又该做点什么呢? 其实,要想做出改变并非难事,你缺少的只是一个计划(去做).学习大数据分析更是如此,因为大数据是一门综合性的学科,复杂且具有一定系统性,所以大数据的学习更加需要有一个明确的目标和计划,然后按部就班的执行. 那么如何才能制定出一份可行性强的大数据学习计划呢? 我们可以从以下几个方面去制定. 一.目标 首先你需要制定一个明确的你想要实现的长远的目标.比如,半年内学习相关课程,初步掌握大数据基础知识: