1.Linux目录结构  bin  (binaries)存放二进制可执行文件
  sbin  (super user binaries)存放二进制可执行文件,只有root才能访问
  etc (etcetera)存放系统配置文件
  usr  (unix shared resources)用于存放共享的系统资源
  home 存放用户文件的根目录
  root  超级用户目录
  dev (devices)用于存放设备文件
  lib  (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
  mnt  (mount)系统管理员安装临时文件系统的安装点
  boot 存放用于系统引导时使用的各种文件
  tmp  (temporary)用于存放各种临时文件
  var  (variable)用于存放运行时需要改变数据的文件


 2.常用命令

   hostname         
   // 查看当前用户

   ifconfig         
   //查看ip

    ls  -lat  /usr   
    //查看usr下的全部详细列表,并按时间排序
	命令格式:命令  -选项  参数
	如:ls  -la  /usr
	ls:显示文件和目录列表(list)
		常用参数:
		-l		(long)
		-a	    (all)    注意隐藏文件、特殊目录.和..   
		-t		(time)
	简化命令: ll
	ll /usr

	ll room-a
	//查看本目录下 room-a文件夹中详细信息,但还是在room-a 的父级目录下


	man ls    
	//查看ls命令的帮助文档

	help cd
	//查看cd命令的帮助文档

	查看帮助文档
	内部命令:help + 命令(help cd)
	外部命令:man + 命令(man ls)

	内部命令:属于Shell解析器的一部分
	cd 切换目录(change directory)
	pwd 显示当前工作目录(print working directory)
	help 帮助

	外部命令:独立于Shell解析器之外的文件程序
	ls 显示文件和目录列表(list)
	mkdir 创建目录(make directoriy)
	cp 复制文件或目录(copy)

	cd /usr
	//进入usr目录
	cd .
	//进入当前目录
	cd ..
	//进入上一级目录
	cd ~
    //进入/root目录
	cd
	//进入/root目录 
	cd /
	//进入/ 目录(根目录)


	pwd 显示当前工作目录(print working directory)
	touch 创建空文件				                    
	mkdir 创建目录(make directoriy)
		-p 父目录不存在情况下先生成父目录 (parents)            
	cp 复制文件或目录(copy)
		-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)     
	mv 移动文件或目录、文件或目录改名(move	mkdir family
	//创建文件夹
	mkdir room-a room-b roon-cd
	//同时创建三个文件夹

	mv roon-c room-c
	mv father mother room-a/
	//mv 命令可以把文件、文件夹 修改名字和移动位置
	//mv roon-c room-c 这里是把roon-c  修改成 room-c
	//mv father mother room-a/ 这里是把 father和mother 两个文件移动到room-a 文件夹中


	touch father
	//touch命令是创建文件

	> mother
	//>命令是创建文件
	/touch 和 > 两个命令是一个效果

	touch wawa
	//创建一个wawa文件
	cp wawa room-b/
	//拷贝wawa文件到 room-b
	mv wawa room-c
	//把wawa文件移动到room-c文件里面

	ll room-b/
	//查看 room-b 文件中全部文件和文件夹


	rm 删除文件(remove)
		-r 同时删除该目录下的所有文件(recursive)
		-f 强制删除文件或目录(force)
	rmdir 删除空目录(remove directoriy)
	cat显示文本文件内容 (catenate)
	more、less 分页显示文本文件内容
	head、tail查看文本中开头或结尾部分的内容
		haed  -n  5  a.log 查看a.log文件的前5行
		tail  -f  b.log 循环读取(fellow)	rm -rf room-c/
	//强制删除 room-c 文件以及room-c文件里面的子文件和子文件夹     cat install.log
     //查看 install.log 全部文件信息
     more install.log
	 //按照百分比,分页查看install.log  文件信息
	 head install.log
	 //查看install.log 文件的前10行
	 head -n 3 install.log
	 //查看install.log 文件的前3行
	 tail install.log
	 //查看install.lg 后10 行
     tail -n 3 install.log
	 //查看install.log 文件的后3行


	wc 统计文本的行数、字数、字符数(word count)
		-m 统计文本字符数
		-w 统计文本字数
		-l 统计文本行数
	find 在文件系统中查找指定的文件
		find /etc/ -name "aaa"
	grep 在指定的文本文件中查找指定的字符串
	ln 建立链接文件(link)
		-s 对源文件建立符号连接,而非硬连接(symbolic)

	wc install.log
	//查看install.log 的字符数 字数 行数

	find family/ -size +10
	find family/ -size -10
	//根据文件大小去查询

	find family/ -name wawa
	//查看wawa在family的url下的具体位置
	//查找后展示 family/room-b/wawa

	which ls
	//文件搜索命令



	ln -s family/room-b/ rb
	//给room-b创建一个快捷链接, 起名字叫rb
	//在family的同级别目录下就可以打开family的子目录文件夹
	cd rb/
	//进入family/room-b/ 目录下

	top 显示当前系统中耗费资源最多的进程 
	ps 显示瞬间的进程状态
		-e /-A 显示所有进程,环境变量
		-f 全格式
		-a 显示所有用户的所有进程(包括其它用户)
		-u 按用户名和启动时间的顺序来显示进程
		-x 显示无控制终端的进程
	kill 杀死一个进程
		kill -9 pid
	df 显示文件系统磁盘空间的使用情况

	top
	//显示当前系统中耗费资源最多的进程 
	ps 
	//显示瞬间的进程状态
	man ps
	//查看ps文档

	ps -ef
	//查看全部进程
	ps -ef | grep tomcat
	//查看tomcat进程,grep分组后,更方便查看进程
	ps -ef | more
	//分页查看进程 

	kill -9 1543
	//杀死1543进程
	kill -9 1624
	//杀死1624进程
	df 
	//显示文件系统磁盘空间的使用情况
	df -h
	//以人类能读懂的方式展示 磁盘空间


	du 显示指定的文件(目录)已使用的磁盘空间的总
		-h文件大小以K,M,G为单位显示(human-readable)
		-s只显示各档案大小的总合(summarize)
	free 显示当前内存和交换空间的使用情况 
	netstat 显示网络状态信息
		-a 显示所有连接和监听端口
		-t (tcp)仅显示tcp相关选项
		-u (udp)仅显示udp相关选项
		-n 拒绝显示别名,能显示数字的全部转化成数字。
		-p 显示建立相关链接的程序名
	ifconfig 网卡网络配置详解 
	ping 测试网络的连通性 	du /usr/
	//查看usr目录下的文件大小
	du -h /usr/
	//查看usr目录下的文件大小,以人类能读懂的方式展示
	free
	//展示内存总的多少,使用多少,还剩多少

	netstat
	//显示网络状态信息
	netstat -ant
	//显示tcp网络信息
	netstat -anu
	//显示udp网络信息

	netstat -an | grep 8080
	//查看8080 端口号是否被占用,模糊查询

	su root
	//切换到root用户下 但是Shell环境还是普通用户
	su -root
	//切换到root用户下 Shell环境也切换到root 

	init 3
	//CentOS linux 关闭图形化界面
	init 5 或  startx
	//启动图形化界面

	3. 开机时,不进入 X Window:
	vi /etc/inittab
	id:5:initdefault:
	改成
	id:3:initdefault:

	id:3:initdefault:
    #id:5:initdefault:

	java -jar hello.jar
	//在linux环境下运行 hello.jar

	sync
	//关机或重启前执行,把内存中的数据写入磁盘中
	sync 
	sync
	reboot

	vim /etc/sysconfig/i18n
	//修改centOS 系统默认语言 LANG="en_US.UTF-8"  改为 LANG="zh_CN.UTF-8"

	LANG="zh_CN.UTF-8"
    SYSFONT="latarcyrheb-sun16"
	LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"

	exit
	//下次登录需要输入用户名和密码

	Ctrl + Alt +F2
	//切换用户

	fdisk -l
	//查看分区

	scp -r hadoop-2.7.2.tar.gz atguigu@hadoop102:/opt/software
	//linux虚拟机之间传输资料,此命令是把hadoop-2.7.2.tar.gz 传输到 ip为hadoop102 用户atguigu  路径是/opt/software下
	yes
	//确定

	Alt + p 
	//ssh直接拖拽上传,在用户目录下
3.压缩及IP设置
	gzip 压缩(解压)文件或目录,压缩文件后缀为gz 
	bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2 
	tar 文件、目录打(解)包	gzip
	    命令格式:gzip [选项] 压缩(解压缩)的文件名
		-d将压缩文件解压(decompress)
		-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)
		-v显示文件名和压缩比(verbose)
		-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6    bzip2
		命令格式:bzip2 [-cdz] 文档名
		-c将压缩的过程产生的数据输出到屏幕上
		-d解压缩的参数(decompress)
		-z压缩的参数(compress)
		-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
    tar
		-c 建立一个压缩文件的参数指令(create)
		-x 解开一个压缩文件的参数指令(extract)
		-z 是否需要用 gzip 压缩
		-j 是否需要用 bzip2 压缩
		-v 压缩的过程中显示文件(verbose)
		-f 使用档名,在 f 之后要立即接档名(file)

	gzip方式解压压缩
			gzip install.log
			//以gzip格式压缩 install.log文件 默认6压缩比

			gzip -d install.log.gz 
			//用gzip格式解压install.log.gz 文件

			gzip -9 install.log
			//以gzip格式压缩 install.log文件 压缩比是9,最高压缩比

			gzip -d install.log.gz 
			//用gzip格式解压install.log.gz 文件


	bzip2方式解压压缩
			bzip2 install.log
			//以bzip2格式压缩install.log文件 默认压缩比是6

			bzip2 -d install.log.bz2
			//用bzip2格式解压install.log.gz 文件

			bzip2 -9 install.log
			//用bzip2格式压缩,压缩比是9

			bzip2 -d install.log.bz2
			//用bzip2格式解压install.log.gz 文件

	tar方式解压压缩
			tar -czvf ff.tar.gz family
			//family压缩,压缩后的文件叫ff.tar.gz
			mkdir demo
			//创建demo文件夹,一会便于存放解压后文件
			tar -xzvf ff.tar.gz -C demo/
			//解压ff.tar.gz,解压后的内后放到demo文件中

	shutdown系统关机 
		-r 关机后立即重启
		-h 关机后不重新启动
	halt 
	//关机后关闭电源 
	reboot 
	//重新启动

4.VIM文本编辑器   vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单。

   命令顺序
   vim filename → 进入编辑的一般模式 → i、a、o、I、A、O、 → 进入编辑模式或叫做插入模式 → Esc → 退出插入模式进入到一般模式 → :→ 底行模式 → wq → 保存退出
   //filename 文件名,要编辑的文件

   > book
   //创建 book 文件 同等于 touch book  命令
   echo 'hello java' > book
   //通过echo 把 hello java 文本 写入 book 文件
   cat book
   //查看book文件的内容
   vim book
   //进入book文件的一般模式

	i
	//在光标前插入
	I
	//在光标当前行开始插入
	a
	//在光标后插入
	A
	//在光标当前行末尾插入
	o
	//在光标当前行的下一行插入新行
	O
	//在光标当前行的上一行插入新行

	//随便按 i a o I A O ,中其中一个进入编辑模式

	:set nu 
	//显示行号
	:set nonu
    //取消行号
	gg
    //到文本的第一行
	G
	//到文本的最后一行
    :n
	//到文本的第n行

	x
	//删除光标所在处字符
	nx
	//删除光标所在处后的n个字符
    dd
	//删除光标所在行。ndd删除n行
	dG
	//删除光标所在行到末尾行的所以内容
    D
	//删除光标所在处到行尾的内容
	:n1,n2d
	//删除指定范围的行


	替换和取消命令
	u
	//undo,取消上一步操作,相当于window环境下的Ctrl+z
	Ctrl + r
	//redo,返回到undo之前 ,相当于window环境下的 Ctrl + y
	r
	//替换光标所在处的字符
	R
	//从光标所在处开始替换,按Esc键结束

	 Shift + zz
	 //保存退出,与“:wq”作用相同

	 v
	 //进入字符可视模式

	 Shift + v
	 //进入行可视模式

	 Ctrl + v
	 //进入块可视模式

	 Ctrl +v → 选中行后 → Shift+a → 编辑内容 → Esc → 多行完成编辑

	 hostname
	 //查看当前用户
	 hostname liufengji
	 //暂时性修改用户名,下次登录后就又回到默认模式的用户名
	 vim /etc/sysconfig/network
	 //进入修改永久性用户文件的一般模式,修改文件的HOSTNAME属性的值,就可以永久性更改用户名

	ifconfig
	//查看ip
	vim /etc/udev/rules.d/70-persistent-net.rules
	//查看eth0 ip 的物理地址
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
	//进入修改ip信息
	//把 BOOTPROTO="dhcp" 修改为 BOOTPROTO="static"
	//dhcp : 自动获取  static : 静态ip

	DEVICE="eth0"
	BOOTPROTO="static"
	HWADDR="00:0C:29:62:4C:2B"
	IPV6INIT="yes"
	NM_CONTROLLED="yes"
	ONBOOT="yes"
	TYPE="Ethernet"
	UUID="1acc3359-b1fd-4ac8-b044-58b5fe5a16ce"
	IPADDR="192.168.126.129"
	NETMASK="255.255.255.0"
	GATEWAY="192.168.126.1"
	DNS1="8.8.8.8"
	DNS2="8.8.4.4"

	//主要修改下边的几个属性值,没有就添加上
	//修改
	//BOOTPROTO="static"
	//ONBOOT="yes"
	//添加
	//IPADDR="192.168.126.129"
	//NETMASK="255.255.255.0"
	//GATEWAY="192.168.126.1"
	//DNS1="8.8.8.8"
	//DNS2="8.8.4.4"

IPADDR="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.2"
DNS1="192.168.1.2"
DNS2="114.114.114.114"

	//----------------------
	ONBOOT=yes
	BOOTPROTO=static 

	IPADDR=192.168.1.101
	GATEWAY=192.168.1.2
	DNS1=192.168.1.2	
	修改完ip后,服务器或主机或虚拟机需要重启
	reboot
	//电脑重启命令
	service network restart
	//重新加载ip文件,修改ip后需要重启虚拟机也可以重新加载ip文件,就不用重启了

	虚拟机网络模式设置为NAT
    克隆虚拟机
	修改为静态ip
		(1)[root@hadoop101 /]#vim /etc/udev/rules.d/70-persistent-net.rules
		删除eth0,升级eth1为eth0;
		复制物理ip地址。
		(2)[root@hadoop101 /]#vim /etc/sysconfig/network-scripts/ifcfg-eth0	
		粘贴复制的物理ip地址
		IPADDR=192.168.1.101
	修改主机名
		(1)#vi /etc/sysconfig/network
		修改主机名称
		(2)vim /etc/hosts
		192.168.1.100 hadoop100
		192.168.1.101 hadoop101
		192.168.1.102 hadoop102

192.168.1.101 hadoop101
192.168.126.130 hadoop130
192.168.126.131 hadoop131
192.168.126.132 hadoop132
192.168.126.133 hadoop133
192.168.126.134 hadoop134192.168.1.10 hadoop10
192.168.1.100 hadoop100
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104
192.168.1.105 hadoop105
192.168.1.106 hadoop106
192.168.1.107 hadoop107
192.168.1.108 hadoop108
192.168.1.109 hadoop109
	--------------------------------------
	重启:	sync  sync reboot
	2.5 关闭防火墙
		chkconfig iptables --list	su 
	//切换到root用户下
	init 3
	//CentOS linux 关闭图形化界面
	startx  
	//启动图形化界面

	vim的指令模式:
	              :wq
				  :wq!
				  : q!
				  /
				  // 搜索 n 向下搜索  Shift+n 向上搜索
				  ?  搜索 n 向上搜索  Shift+n 向下搜索5.更改操作权限
    三种基本权限 
	r 读权限(read)
	w 写权限(write)
	x 执行权限 (execute)	- rwx rw- r-- 
	d u   g   o  
	  a  
	第1位:文件类型(d 目录,- 普通文件,l 链接文件)
	第2-4位:所属用户权限,用u(user)表示
	第5-7位:所属组权限,用g(group)表示
	第8-10位:其他用户权限,用o(other)表示
	第2-10位:表示所有的权限,用a(all)表示	完整信息:一个文件,所属用户具有读写执行权限;所属组的用户
	有读写权限,没有执行权限;其他用户只有读权限	chmod修改文件权限命令(change mode)
		参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)
		例如:chmod  u+x  a.txt
	用数字来表示权限(r=4,w=2,x=1,-=0)
	例如:chmod  750  b.txt
	rwx用二进制表示是111,十进制4+2+1=7
	r-x用二进制表示是101,十进制4+0+1=5

	chmod  a+x install.log
	//使用户可以拥有 install.log 所有读写执行的权限
	chmod  g-x install.log
	//使用户减去拥有 install.log 的部分权限

	chmod
	//更改权限
	chown
	//更改所属用户

	chown -R atguigu:atguigu module

6.RPM软件包管理(软件安装...)    RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,
	现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便

	RPM命令使用:		rpm的常用参数 
			i:安装应用程序(install)
			e:卸载应用程序(erase)
			vh:显示安装进度;(verbose   hash) 
			U:升级软件包;(update) 
			qa: 显示所有已安装软件包(query all)
			结合grep命令使用
			例子:rmp  -ivh  gcc-c++-4.4.7-3.el6.x86_64.rpm

        rmp -ivh mysql-5.1.73.rpm
        //安装mysql-5.1.73.rmp

		uname -a
		//查看linux主机 的详细信息

		chown bingbing:bingbing mysql-5.1.7.rpm
		//把mysql-5.1.7.rpm 的所有者和所有组 都给bingbing

		chown -R bingbing:bingbing mysql-5.1.7.rpm
		//把mysql-5.1.7.rpm 的所有者和所有组 都给bingbing

		 rpm -qa|grep mysql
		 //查看mysql

		 rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
		 //卸载数据库

		安装jdk
			mkdir /usr/java/
			//在usr文件夹中创建java文件夹,作为jdk的安装地址
			tar -zxvf jdk-7u65-linux-i586.tar.gz -C /usr/java
			//解压jdk,解压完成后,java的jdk就算安装成功了,成功后要配置环境变量
			vim /etc/profile
			//进入配置环境变量
			JAVA_HOME=/usr/java/jdk1.7.0_65 
			export JAVA_HOME=/opt/module/jdk1.7.0_79
			//在profile文件最后行中编写JAVA_HOME=/usr/java/jdk1.7.0_65
			export PATH=$JAVA_HOME/bin:$PATH
			//把JAVA_HOME和PATH拼接
			source /etc/profile
			//重新加载指定文件 重载
			java -version
			//测试jdk是否安装成功

		安装tomcat
			tar -zxvf apache-tomcat-7.0.47.tar.gz -C /usr/local/src/
			//安装tomcat			sh startup.sh
			//启动tomcat  在tomcat/bin 目录下			./startup.sh
			//启动tomcat命令 和 (sh startup.sh) 一个效果  在tomcat/bin 目录下

			sh bin/startup.sh
			//启动tomcat命令 和上面两个命令一个效果,都能启动tomcat,只是命令路径不一样,此命令在tomcat目录下执行			tail -f logs/catalina.out
			//在tomcat文件目录下 执行,查看动态日志

		设置防火墙
		     service iptables status
			 //查看服务ip的状态
			 //通过8080端口 有2中方法,
			 //第一种让防火墙通过8080端口,
			 //第二种直接把防火墙关闭,也是最简洁的,通常选择第二种
			service iptables stop
			//暂时性 本次把防火墙关闭
			chkconfig iptables --list
			//查看防火墙级别
			chkconfig iptables off
			//永久性彻底关闭防火墙
			chkconfig iptables on
			//启动防火墙
			chkconfig iptables --list
			//查看防火墙是否全部关闭

		查看tomcat进程4种方法
		     1.
			   ps -ef | grep tomcat
			   //查看tomcat进程
			 2.
               jps
               //查看tomcat进程
             3.
			   netstat -an | grep 8080
               //查看tomcat进程	
             4.
			   ps -ef | grep java
               //查看tomcat进程		

        安装eclipse
             tar -zxvf eclipse -C /usr/local/src/
             //安装eclipse
             //安装成功后,要reboot 重启电脑

		安装hadoop
		    tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module
			 //安装hadoop
			 vim /etc/profile
			//进入配置环境变量文件
			#HADOOP_HOME
			export HADOOP_HOME=/opt/module/hadoop-2.7.2
			export PATH=$PATH:$HADOOP_HOME/bin
			export PATH=$PATH:$HADOOP_HOME/sbin
			//配置hadoop环境变量
			source /etc/profile
			//重新加载指定文件 重载
			echo $JAVA_HOME
			//查看jdk安装路径
			cd /opt/module/hadoop-2.7.2/etc/hadoop
			//进入到hadoop的配置文件夹中
			vim hadoop-env.sh
			//编辑hadoop-env.sh脚本文件
			#export JAVA_HOME=${JAVA_HOME}
            export JAVA_HOME=/opt/module/jdk1.7.0_79
			//把${JAVA_HOME} 修改成绝对路径,以免远程的时候获取不到${JAVA_HOME}的值

        rpm -qa
        //查询所有安装        rpm -qa | grep fire
        //查看安装的fire        rpm -e firefox
        //卸载安装的firefox		

		ll | grep fire
		//查看fire文件

		rpm -ivh fire
		//安装fire
		
7.Linux 网络配置
	DEVICE="eth0"
	BOOTPROTO=“static"
	HWADDR="00:0C:29:62:4C:2B"
	IPV6INIT="yes"
	NM_CONTROLLED="yes"
	ONBOOT="yes"
	TYPE="Ethernet"
	UUID="1acc3359-b1fd-4ac8-b044-58b5fe5a16ce“
	IPADDR="192.168.24.20"
	NETMASK="255.255.255.0"
	GATEWAY="192.168.24.1"
	DNS1="8.8.8.8"
	DNS2="8.8.4.4"

	vim /etc/udev/rules.d/70-persistent-net.rules
	vim /etc/sysconfig/network-scripts/ifcfg-eth0
	//进入修改ip信息
	//把 BOOTPROTO="dhcp" 修改为 BOOTPROTO="static"
	//dhcp : 自动获取  static : 静态ip8.YUM命令
    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。
	基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
	例子(需要上网,没有网络可以建本地源):
		yum  install  gcc-c++
		yum  remove  gcc-c++
		yum  update  gcc-c++	yum的常用命令

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

	案例实操
			yum install -y tree

	1.关联网络yum源
	     1)前期文件准备
			(1)前提条件linux系统必须可以联网  (访问一下www.baidu.com)
			(2)在Linux环境环境中访问该网络地址:http://mirrors.163.com/.help/centos.html,在使用说明中点击CentOS6->再点击保存
			(3)查看文件保存的位置
				 在打开的终端中输入如下命令,就可以找到文件的保存位置。
				 [atguigu@hadoop101 下载]$ pwd
				 /home/atguigu/下载

		2)替换本地yum文件
			(1)把下载的文件移动到/etc/yum.repos.d/目录
					[root@hadoop101 下载]# mv CentOS6-Base-163.repo /etc/yum.repos.d/	

			(2)进入到/etc/yum.repos.d/目录
					[root@hadoop101 yum.repos.d]# pwd
					/etc/yum.repos.d

			(3)用CentOS6-Base-163.repo替换CentOS-Base.rep  (注意:替换前先备份 .bak)
					[root@hadoop101 yum.repos.d]# mv CentOS6-Base-163.repo  CentOS-Base.rep
		3)安装命令
			(1)[root@hadoop101 yum.repos.d]#yum clean all
			(2)[root@hadoop101 yum.repos.d]#yum makecache

	2.制作本地yum源
	    1)为什么要制作本地YUM源
				YUM源虽然可以简化我们在Linux上安装软件的过程,但是生成环境通常无法上网,不能连接外网的YUM源,说以接就无法使用yum命令安装软件了。
				为了在内网中也可以使用yum安装相关的软件,就要配置yum源。
				YUM源其实就是一个保存了多个RPM包的服务器,可以通过http的方式来检索、下载并安装相关的RPM包

		2)制作本地YUM源
				(1)准备一台Linux服务器,版本CentOS-6.8-x86_64-bin-DVD1.iso

				(2)配置好这台服务器的IP地址

				(3)将CentOS-6.8-x86_64-bin-DVD1.iso镜像挂载到/mnt/cdrom目录
						[root@hadoop101 /]# mkdir /mnt/cdrom
						[root@hadoop101 /]# mount -t iso9660 /dev/cdrom /mnt/cdrom
						//挂载  mount是挂载命令  mount -t iso9660 -o rw  对于iso映射文件是固定的  /dev/cdrom/  挂载设备   /mnt/cdrom/ 挂载点
						//挂载设备 不一定是 /dev/cdrom/ 这个目录,如果不是需要自己查一下  df -h  或者 du -h 

				(4)修改本机上的YUM源配置文件,将源指向自己,备份原有的YUM源的配置文件
						[root@hadoop101 /]# cd /etc/yum.repos.d/
						[root@hadoop101 yum.repos.d]# cp CentOS-Base.repo  CentOS-Base.repo.bak

				(5)编辑CentOS-Base.repo文件
						[root@hadoop101 yum.repos.d]# vi CentOS-Base.repo
						[base]
						name=CentOS-Local
						baseurl=file:///var/iso 或者 //file:///mnt/cdrom  //baseurl=挂载点位置
						gpgcheck=1
						enabled=1   #增加改行,使能
						gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

						:wq
						//添加上面内容保存退出

				(6)清除YUM缓冲
						[root@hadoop101 yum.repos.d]# yum clean all

				(7)列出可用的YUM源
						[root@hadoop101 yum.repos.d]# yum repolist

				(8)安装相应的软件
						[root@hadoop101 yum.repos.d]#yum install -y httpd

				(9)开启httpd使用浏览器访问http://192.168.11.101:80(如果访问不通,检查防火墙是否开启了80端口或关闭防火墙)
						[root@hadoop101 yum.repos.d]#service httpd start

				(10)将YUM源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的YUM源了
						[root@hadoop101 yum.repos.d]#cp -r /mnt/cdrom/ /var/www/html/CentOS

				(11)取消先前挂载的镜像
						[root@hadoop101 yum.repos.d]#umount /mnt/cdrom

				(12)在浏览器中访问http://192.168.11.101/CentOS/

				(13)让其他需要安装RPM包的服务器指向这个YUM源,准备一台新的服务器,备份或删除原有的YUM源配置文件
						备份原有的YUM源的配置文件

								[root@hadoop102 /]#cd /etc/yum.repos.d/
								[root@hadoop102 yum.repos.d]# cp CentOS-Base.repo  CentOS-Base.repo.bak

						编辑CentOS-Base.repo文件

								[root@hadoop102 yum.repos.d]# vi CentOS-Base.repo
								[base]
								name=CentOS-hadoop101
								baseurl=http://192.168.11.101/CentOS    //本地YUM源,局域网中本地YUM源仓库 
								gpgcheck=1
								gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
								添加上面内容保存退出
								:wq

				(14)在这台新的服务器上执行YUM的命令
						[root@hadoop102 yum.repos.d]# yum clean all
						[root@hadoop102 yum.repos.d]# yum repolist 
9.用户和组账户管理   linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。
   系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

   配置文件:
			保存用户信息的文件:/etc/passwd
			保存密码的文件:/etc/shadow
			保存用户组的文件:/etc/group
			保存用户组密码的文件:/etc/gshadow
			用户配置文件:/etc/default/useradd

			sudoers配置
	        用root身份来操作一下命令:
			vim /etc/sudoers

			sudo mkdir module

	more /etc/passwd
	//分页查看用户信息的文件
	more /etc/shadow
	//分页查看保存密码的文件 

	操作用户命令
		添加用户命令:useradd
			-u 指定组ID(uid)
			-g 指定所属的组名(gid)
			-G 指定多个组,用逗号“,”分开(Groups)
			-c 用户描述(comment)
			-e 失效时间(expire date)
		例子:useradd -u 888 -g users -G sys,root -c "hr zhang" zhangsan passwd zhangsan

		useradd zhangsan
		//添加用户zhangsan
		ll /home/
		//查看家中都有什么用户
		passwd zhangsan
		//给zhangsan用户设置密码

10 date 时间

		date
		//时间显示

		date +%Y%m%d
		//显示时间的不同的格式

		date "+%Y-%m-%d %H:%M:%S"
		//显示时间的不同的格式

		date -d "next day"
		//显示下一天的时间

		date -d "yesterday"
		//显示昨天的时间

		date -d "next week"
		//显示下一周的时间

		date -d "next monday"
		//显示下周一的时间

		date -s "2017-06-30 11:45:45"
		//设置系统时间

		cal
		//查看日历

		cal -3
		//查看上下 一共3个月的日历

		cal 2017
		//查看全年的日历

11 分组
     mkdir xinxiu
	 //创建xinxiu文件
	 groupadd xinxiu
	 //新增组

	 cat /etc/group/
	 //查看所有组

	 groupdel xinxiu
	 //删除组

	 userdel -r dingchunqiu
	 //删除用户

	 groupmod -n faliwubian xinxiu
	 //把xinxiu组 改名为faliwubian组

	 useradd dingchunqiu
	 usermod -g faliwubian dingchunqiu
	 //创建用户dingchunqiu 移动到 faliwubian组12 挂载
    有前奏 
     cd /media/
     //查看挂载的内容	 
	  cd /media/cdrom
     //查看是否挂载

	 cd mnt
	 mkdir cdrom
	 mount -t iso9660 -o rw /dev/cdrom/ /mnt/cdrom/
	 //挂载  mount是挂载命令  mount -t iso9660 -o rw  对于iso映射文件是固定的  /dev/cdrom/  挂载设备   /mnt/cdrom/ 挂载点
	 //挂载设备 不一定是 /dev/cdrom/ 这个目录,如果不是需要自己查一下  df -h  或者 du -h 

	 umount /mnt/cdrom/
	 //卸载挂载的

13 crond定时 执行	

		1)基本语法
			crontab [选项]
				选项: 
				  -e:    编辑crontab定时任务 
				  -l:    查询crontab任务 
				  -r:    删除当前用户所有的crontab任务        crontab	-e	
		//编辑crontab定时任务

		*/1 * * * * echo "hello world" >> /home/bingbing/log.txt
		//每隔一分钟 我就把hello world 追加到 log.txt文件中

		tail -f log.txt
		//实时追踪

		 service crond restart 			
		 //(重新启动crond服务)
14.shell脚本

		echo -e "hello\tworld"
		//echo 加上-e 支持 反斜杠"\"

		touch helloworld.sh
		//创建一个脚本文件

		chmod 777 helloworld.sh
		//给helloworld.sh文件 赋予 执行权限

		vim helloworld.sh
		//开始编辑脚本

		#!/bin/bash
		echo "helloworld"
		//编辑脚本执行内容

		./helloworld.sh
		sh ./helloworld.sh
		sh /shuihu/helloworld.sh
		bash ./helloworld.sh
		//这些命令都能执行脚本

		shell中的变量 

			echo $HOME
			//控制台输出系统变量值

			set
			//显示当前shell中所有变量

			ss=100
			//定义变量
			echo $ss
			//打印变量

			unset ss
			//撤销变量
			echo $ss
			//查看是否撤销变量成功

			readonly ss=100
			//声明静态变量 不能被撤销

			#!/bin/bash 
			echo "$$" //当前进程的进程号
			./helloworld.sh & //脚本执行脚本 放到后台运行
			echo "$!" //后台运行的最后一个进程的进程号
			echo "$?" //最后一次执行命令的状态,0表示命令正确执行
15.1 运算
         基本语法 
		 注意:等于号两侧不能有空格
                 1.
					 $((运算式)) 或者 $[运算式]
					  列子
					  A=$((2+3))
					  //把(2+3)的值赋值给变量A
					  echo $A	
					  //控制台输出系统变量A的值
					  B=$[5+6]
					  echo $B
				2.  expr m + n 
				     注意这种写法要有空格

					 expr 3 + 2




快捷键	 tab
	 //补全代码

	 Ctrl + l
	 //代码清屏

	 Ctrl + c 
	 //结束当前进程,开始编辑命令

	 q
	 //退出

	 :wq
	 //保存退出

	 q!
	 //强制退出

	 u
	 //撤销 相当于window环境下的Ctrl+z

	 Ctrl+r
	 //撤销后再撤销 相当于window环境下的 Ctrl + y

	 space
	 //(空格键) 数据分页展示的时候,用于查看下一页

	 history
	 //查看历史输入过的命令

	 Shift + zz
	 //保存退出,与“:wq”作用相同

	 v
	 //进入字符可视模式

	 Shift + v
	 //进入行可视模式

	 Ctrl + v
	 //进入块可视模式

	 Ctrl +v → 选中行后 → Shift+a → 编辑内容 → Esc → 多行完成编辑

	 su root
	 //切换到root用户下 但是Shell环境还是普通用户
	 su -root
	 //切换到root用户下 Shell环境也切换到root 

	init 3
	//CentOS linux 关闭图形化界面
	init 5 或  startx
	//启动图形化界面

	3. 开机时,不进入 X Window:
	vi /etc/inittab
	id:5:initdefault:
	改成
	id:3:initdefault:

	id:3:initdefault:
    #id:5:initdefault:

	java -jar hello.jar
	//在linux环境下运行 hello.jar

	sync
	//关机或重启前执行,把内存中的数据写入磁盘中

	vim /etc/sysconfig/i18n
	//修改centOS 系统默认语言 LANG="en_US.UTF-8"  改为 LANG="zh_CN.UTF-8"  中文 英文 切换

	LANG="zh_CN.UTF-8"
    SYSFONT="latarcyrheb-sun16"
	LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"

	exit
	//下次登录需要输入用户名和密码

	Ctrl + Alt +F2
	//切换用户

	yyp
	//在vim 进入编辑模式的时候  yyp可以快速复制 和Ctrl + D 是一个效果 
切换java
sudo update-alternatives --install /usr/bin/java java /opt/module/jdk1.8.0_144/bin/java 3000sudo update-alternatives --install /usr/bin/javac javac /opt/module/jdk1.8.0_144/bin/javac 3000
sudo update-alternatives --config java