大数据技术之Linux基础

大数据技术之Linux基础

1、Linux入门概述
1.1概述
Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于我的爱好而编写的。
Linux是一套无偿使用和自由传播的类Unix操做系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操做系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操做系统。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE
1.2下载地址
由于本人用的是centos,因此这里只提供centsos
centos下载地址:
网易镜像:http://mirrors.163.com/centos/6/isos/
搜狐镜像:http://mirrors.sohu.com/centos/6/isos/
1.3Linux特色html

  1. Linux里面一切皆是文件
  2. Linux里面没有后缀名这一说
    1.4Linux和windows的区别
    目前国内Linux更多的是应用与服务器上,而桌面操做系统更多使用的是window。主要区别以下。
    在这里插入图片描述
    2、VM安装相关
    2.1安装VMWare虚拟机
    2.2 安装CentOS
    2.3 安装VMTools工具
    2.4 虚拟机屏幕保护设置
    2.5 IVT虚拟化支持
    3、Linux目录相关结构
    3.1 Linux概览
    3.2树状目录结构
    在这里插入图片描述
    在这里插入图片描述
    4、系统管理操做
    4.1查看网络IP和网关
    4.2配置网络ip地址
    4.3配置主机名
    4.4防火墙
  3. 查看防火墙状态------------service iptables status
  4. 临时关闭防火墙------------service iptables stop
  5. 查看防火墙开机启动状态------------chkconfig iptables --list
  6. 关闭防火墙开机启动------------------chkconfig iptables off
  7. 开启防火墙开机启动------------------chkconfig iptables on
    4.5关机重启
    (1)计算机将在10分钟后关机,而且会显示在登陆用户的当前屏幕中
    [root@hadoop102 /]#shutdown –h 10 ‘This server will shutdown after 10 mins’
    (2)马上关机
    [root@hadoop102 /]# shutdown –h now
    (3)系统马上重启
    [root@hadoop102 /]# shutdown –r now
    (4)重启(等同于 shutdown –r now)
    [root@hadoop102 /]# reboot
    (5)关机(等同于shutdown –h now 和 poweroff)
    [root@hadoop102 /]#halt
    4.6找回root密码
    5、远程登陆
    5.1 安装SecureCRT
    5.2 SecureCRT中文乱码解决方法
    6、用户和用户组管理命令
    7、经常使用命令
    7.1帮助命令
    7.2 经常使用命令
    cd /home 进入 ‘/ home’ 目录’
    cd … 返回上一级目录
    cd …/… 返回上两级目录
    cd 进入我的的主目录
    cd ~user1 进入我的的主目录
    cd - 返回上次所在的目录
    pwd 显示工做路径
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    ls [0-9] 显示包含数字的文件名和目录名
    tree 显示文件和目录由根目录开始的树形结构(1)
    lstree 显示文件和目录由根目录开始的树形结构(2)
    mkdir dir1 建立一个叫作 ‘dir1’ 的目录’
    mkdir dir1 dir2 同时建立两个目录
    mkdir -p /tmp/dir1/dir2 建立一个目录树
    rm -f file1 删除一个叫作 ‘file1’ 的文件’
    rmdir dir1 删除一个叫作 ‘dir1’ 的目录’
    rm -rf dir1 删除一个叫作 ‘dir1’ 的目录并同时删除其内容
    rm -rf dir1 dir2 同时删除两个目录及它们的内容
    mv dir1 new_dir 重命名/移动 一个目录
    cp file1 file2 复制一个文件
    cp dir/* . 复制一个目录下的全部文件到当前工做目录
    cp -a /tmp/dir1 . 复制一个目录到当前工做目录
    cp -a dir1 dir2 复制一个目录
    cat file1 从第一个字节开始正向查看文件的内容
    tac file1 从最后一行开始反向查看一个文件的内容
    more file1 查看一个长文件的内容
    less file1 相似于 ‘more’ 命令,可是它容许在文件中和正向操做同样的反向操做
    head -2 file1 查看一个文件的前两行
    tail -2 file1 查看一个文件的最后两行
    tail -f /var/log/messages 实时查看被添加到一个文件中的内容

http://www.noobyard.com/article/p-wmhexnqb-m.html前端

8、VI/VIM编辑器
在以前的一篇文章里有介绍过,这里就再也不介绍了,能够翻看以前的文章查看web

https://blog.csdn.net/AdamAaron/article/details/91358681shell

9、rpm
10、shell编程编程

  • Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户能够用Shell来启动、挂起、中止甚至是编写一些程序。
  • Shell仍是一个功能至关强大的编程语言,易编写、易调试、灵活性强。Shell是解释执行的脚本语言,在Shell中能够调用Linux系统命令。
  • Linux对于用户权限的管理是很是严格的,当咱们有多人须要对Linux服务器进行操做时,咱们须要给每一个人注册相应的用户名及密码,当人数较多时,工做比较复杂,因此咱们须要编写Shell脚本进行管理,减缓某一些工做
  • 文件流和重定向
    重定向:不是命令,程序自身都有I/O
    0:标准输入
    1:标准输出
    2:错误输出
    控制程序I/O位置,一切皆文件
    /proc/$$/fd
    程序是否处理I/O?
    绑定顺序:从左到右
    输入重定向:
    <
    << read aaa<<AABB
    <<< read aaa <<< “hello world"
    输出重定向:
    修改程序的1或2
    > ls /tmp 1> aaa
    >> ls /tmp 1>>aaa
    &>,>&
    ls / /aabb 1>ls06.out 2>&1
    ls / /aabb >& ls07.out 和ls / /aabb >& ls07.out

10.1shell脚本的执行方式windows

1)echo输出命令centos

(1)基本语法:
	echo [选项] [输出内容]

选项:
-e: 支持反斜线控制的字符转换
\ :输出\自己
\a: 输出警告音
\b: 退格键,也就是想作删除键
\f: 换页符
\n: 换行符bash

(2)案例
	[root@root]$ echo "helloworld"
	输出:helloworld

2)第一个Shell脚本
(1)需求:建立一个Shell脚本,输出helloworld
(2)实操:服务器

[root@root]$ touch helloworld.sh
[root@root]$ vi helloworld.sh
在helloworld.sh中输入以下内容
#!/bin/bash   
echo "helloworld"

3)脚本的经常使用执行方式
第一种:输入脚本的绝对路径或相对路径
(1)首先要赋予helloworld.sh脚本的+x权限
[root@root]$ chmod 777 helloworld.sh
(2)执行脚本
/root/helloWorld.sh
./helloWorld.sh
第二种:bash或sh+脚本(不用赋予脚本+x权限)
sh /root/helloWorld.sh
sh helloWorld.sh
10.2shell中的变量
1)Linux Shell中的变量分为“系统变量”和“用户自定义变量”,能够经过set命令查看系统变量。
2)系统变量:$HOME、$PWD、$SHELL、$USER等等
3)显示当前shell中全部变量:set
10.2.1 定义变量网络

本地		name=god
局部		local-----只能应用于函数
环境		export
特殊			$$
			$#----获取参数
			$*----获取某一个位置的参数(例:$一、$2)
			$@--等同于$*
			$?---输出上一条指令的执行状态  **0为正确执行,其余的全为错误**
			$BASHPID-----打印当前进程的实际的id
位置
案例(1)计算输入的参数1和参数2的两个数的和,并输出到控制台
#!/bin/bash 
num1=$1 
num2=$2 
sum=$(( $num1 + $num2)) 
#变量sum的和是num1加num2 
echo $sum
(2)打印输入的参数总数、全部参数
#!/bin/bash 
echo "A total of $# parameters" 
#使用$#表明全部参数的个数 
echo "The parameters is: $*" 
#使用$*表明全部的参数 
echo "The parameters is: $@" 
#使用$@也表明全部参数
(3)$*与$@的区别
#!/bin/bash 
for i in "$*" 
#$*中的全部参数当作是一个总体,因此这个for循环只会循环一次 
        do 
                echo "The parameters is: $i" 
        done 
x=1 
for y in "$@" 
#$@中的每一个参数都当作是独立的,因此“$@”中有几个参数,就会循环几回 
        do 
                echo "The parameter$x is: $y" 
                x=$(( $x +1 )) 
        done

10.3运算符
1)基本语法:
(1)“$((运算式))”或“$[运算式]”
(2)expr m + n *注意expr运算符间要有空格
2)案例:计算(2+3)X4的值

(1)采用\$[运算式]方式
[root@root]# S=\$[(2+3)*4]
[root@root]# echo $S
(2)   expr分布计算
		S=`expr 2 + 3`
		expr $S \* 4
(3)   expr一步完成计算
		expr `expr 2 + 3` \* 4
		echo `expr \`expr 2 + 3\`\*4`

10.4 条件判断
10.4.1 判断语句
1)基本语法:
[ condition ](注意condition先后要有空格)
#非空返回true,可以使用$?验证(0为true,>1为false)
2)案例:
[atguigu] 返回true
[] 返回false
[condition] && echo OK || echo notok 条件知足,执行后面的语句
10.5.2 经常使用判断条件
1)两个整数之间比较
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
2)按照文件权限进行判断
-r 有读的权限
-w 有写的权限
-x 有执行的权限
3)按照文件类型进行判断
-f 文件存在而且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录
4)案例

[root@localhost ~]# [ 23 -ge 22 ]
[root@localhost ~]# [ -w student.txt ]
[root@localhost ~]# [ -e /root/install.log ]

10.5 流程控制
10.5.1 if判断
1)基本语法:

if [ 条件判断 ]
	then 
	  	程序 
	elif [条件判断]
	then
		程序
	else
		程序
	fi
或者 
	if [ 条件判断式 ] 
	then 
	    程序 
	fi			
注意事项:(1)[ 条件判断 ],中括号和条件判断式之间必须有空格

2)案例

#!/bin/bash
read –p “please input your name:” NAME
#printf ‘%s\n’ $NAME
if[ $NAME = root ]
then 
    echo “hello ${NAME}, welcome !”
elif [ $NAME = atguigu]
    then
        echo “hello ${NAME}, welcome !”
else
    echo “sorry ”
fi

10.5.2 case语句
1)基本语法:

case $变量名 in 
  "值1") 
    若是变量的值等于值1,则执行程序1 
    ;; 
  "值2") 
    若是变量的值等于值2,则执行程序2 
    ;; 
    …省略其余分支… 
  *) 
    若是变量的值都不是以上的值,则执行此程序 
    ;; 
esac

2)案例

case $1 in
start)
	echo “starting”
	;;
stop)
	echo “stoping”
	;;
*)
	echo “Usage:{start|stop}”
esac

10.5.3 for循环
1)基本语法1:

for 变量 in 值1 值2 值3… 
  do 
    程序 
  done

案例:
打印时间

#!/bin/bash 
for time in morning noon afternoon evening 
do 
         echo "This time is $time!" 
done

基本语法2:

for (( 初始值;循环控制条件;变量变化 )) 
do 
    程序 
done

案例:
从1加到100

#!/bin/bash 
#从1加到100 
s=0 
for (( i=1;i<=100;i=i+1 )) 
        do 
                s=$(( $s+$i )) 
        done 
echo "The sum is : $s"

10.5.4 while循环
1)基本语法:

while [ 条件判断式 ] 
  do 
    程序 
  done

2)案例
(1)从1加到100

#!/bin/bash 
#从1加到100 
i=1 
s=0 
while [ $i -le 100 ] 
#若是变量i的值小于等于100,则执行循环 
        do 
                s=$(( $s+$i )) 
                i=$(( $i+1 )) 
        done 
echo "The sum is: $s"

10.6 read读取控制台输入
1)基本语法:

read(选项)(参数)

选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)。
参数
变量:指定读取值的变量名
2)案例

[root@root etc]$ read -p "please input your name:" NAME
please input your name:lilei
[root@root etc]$ echo $NAME

11、yum网络版仓库配置

11.1 概述

  1. YUM(全称为 Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软件包,无须繁琐地一次次下载、安装。
    在Linux上使用源码的方式安装软件很是满分,使用yum能够简化安装的过程

11.2 yum的经常使用命令

1)基本语法:
yum install -y httpd (功能描述:安装httpd并确认安装)
yum list (功能描述:列出全部可用的package和package组)
yum clean all (功能描述:清除全部缓冲数据)
yum deplist httpd (功能描述:列出一个包全部依赖的包)
yum remove httpd (功能描述:删除httpd)
2)案例实操
yum install -y tree

因为时间问题,本次文章就写到这里。