一、Linux目录结构

wKioL1nl6ViBdLYkAAGdD2tHTE0433.jpg

二、Linux命令的分类

wKiom1nl7qCwdtZfAADME4CAhYI137.jpg

三、Linux常用命令

1、日常操作命令

**查看当前所在的工作目录

pwd

wKiom1nl9MqzH_vmAAAZ2O537Lg394.jpg

**查看当前系统的时间

date

wKiom1nl9QmxulVNAAAfaYpT-_4882.jpg

date +%Y-%m-%d

730bdfc569fa6f0b0f0042b58f2d90f1.jpg

date +%T

c95e6db57909708194aaadb4324930fe.jpg

date +%T-%m-%d" "%T

a5e0ca2cc9e63a10e1de382f3a7c513e.jpg

**查看日历

cal 2012

8e0063316cb97bd4e1efd145e68082ce.jpg

**查看有谁在线(哪些人登录到了服务器)

who    查看当前在线

last   查看最近的登录历史记录

lastlog 查信息系统中所有用户最近一次登录信息

wKioL1nl8ufAUm89AAFHcRmgssM561.jpg

758c6fa6eed4933a9331143e17b40c3c.jpg

**查找可执行的命令

which ls 

ca239d7568f5d39bd2d9397b8585d999.jpg

**查找可执行的命令和帮助的位置

732093b60fc4daab47553b4ac453cbc8.jpg

**快捷键

ctrl+c:停止进程

ctrl+l:清屏

ctrl+r:搜索历史命令

ctrl+q:退出

2、文件系统命令

**

ls /      查看根目录下的子节点(文件夹和文件)信息

ls -al    -a是显示隐藏文件   -l是以更详细的列表形式显示

wKioL1nl84KDH_IIAALrTolj2I4212.jpg

**查看文件信息

file a.txt

e349be599ca5f1279bd91557bd495526.jpg

**切换目录

cd     进入目录; 

cd ~    进入用户主目录; 

cd -     返回进入此目录之前所在的目录; 

cd ..     返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思); 

cd ../..     返回上两级目录; 

cd !$     把上个命令的参数作为cd参数使用。

cd /home

wKioL1nl8-CibgY-AAAr284EmAM950.jpg


**创建文件夹

mkdir aaa      这是相对路径的写法

mkdir -p bbb/ccc    递归创建

mkdir /date    这是绝对路径的写法

wKiom1nmEqPyieJ9AACz9s0PuUs562.jpg

例子:

①在根目录下创建一个itcast的文件夹

在/itcast目录下创建src和WebRoot两个文件夹

分别创建:mkdir /itcast/src

          mkdir /itcast/WebRoot

同时创建:mkdir /itcast/{src,WebRoot}

996e1491d07581b926d4621723d00c15.png


②进入到/itcast目录,在该目录下创建.classpath和README文件

分别创建:touch .classpath

          touch README

同时创建:touch {.classpath,README}

95c5fd743c3b35a62b3cf1a8f254a7a2.png

**删除文件夹

rmdir    可以删除空目录

rm -r bbb    可以把bbb整个文件夹及其中的所有子节点全部删除

rm -rf aaa    强制删除aaa

71c959cdead6d8fea43d2fdbd432e77d.png

删除当前目录下扩展名是java的文件

rm -f *.java

c3ae6268a997dcbc6271dec932e57b7f.jpg

**修改文件夹名称

mv aaa angelababy

8c7dd878e4f485d446ddd6da9c6f73ba.png

**移动文件

mv test.txt src/Student.java    将test.txt移动到src目录下,并修改文件名为Student.java

242e995a85b51857d3aa0076adfc36f2.png


**创建文件

touch somefile.1    创建一个空文件

echo "i miss you,my baby">somefile.2    利用重定向">"的功能,将一条指令的输出结果写入到一个                                         文件中,会覆盖原文件的内容

echo "hugximing,gun dan">>somefile.2    将一条指令的输出结果追加到一个文件中,不会覆盖原文                                         件内容

bbc6ba1033a3c0a3f1ae19268cce7529.png

例子:

①在/itcast目录下面创建一个test.txt文件,同时写入内容"this is test"

echo "this is test">test.txt

查看一下test.txt的内容

cat test.txt

more test.txt

less test.txt

向README文件追加写入"please read me first"

echo "please read me first">>README

a7b1987055f95d9838431c57ac63c8e3.png

②将test.txt的内容追加到README文件中

cat test.txt>>README

6ab01f8d6d357fbcd49d325560caa1d9.png

**复制文件

cp a.txt /etc/b.txt

de2cf2b4b77b1a11f6b8a440ce6d7309.jpg

cp -r /itcast /itcast-bak    拷贝/itcast目录下的所有文件到/itcast-bak

1467efb77d9c700a6612ad73b51a3db2.png

**查看单词

wc -w README    查看README文件中多少个单词

wc -l README    查看README文件中有多少行

d66a48868cfc95b90d5cc75e7eb0a99c.png

**查看文件详情

stat a.txt

0db97a9e668a54921a211f07dcd7415e.jpg

**命令设置别名(重启后无效)

alias ll="ls -l"    设置别名

unalias ll    取消设置

906e2223a6a5cd37bc53c2be98843b82.jpg

如果想让别名重启后仍然有效,需要修改

vi ~/.bashrc

393091b4aec2adcd84951fc6e01cef41.jpg

**查找文件(需要更新库:updatedb)

locate b.txt

f8af674065dee9b34ef8284d314776fd.jpg

**查找命令

查找当前目录下及其子目录下扩展名是java的文件

find -name *.java

855a87fe4d63e6bd600637cc7bcb3084.jpg

从根目录开始找

find / -name "hadoop*"

find / -name "hadoop*" -ls

f513e18989b09acb538bdeb853f5071a.jpg

查找并删除

find / -name "hadoop*" -ok rm {} \;

b6c563b8b4627610167cd3e2f7d7de36.jpg

find / -name "hadoop*" -exec rm {} \;

a0452e737bcd76108fa008ce6dfaefbe.jpg

查找用户为hadoop的文件

find /usr -user hadoop -ls

4e766c2b42423ba4730989087cbb954f.jpg

查找用户为hadoop并且(-a)拥有组为root的文件

find /usr -user hadoop -a -group root -ls

c6a70d790bc9137670ed26c06eae92a4.jpg

查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件

find /usr -user hadoop -o -group root -a -type d

2e945b4f4911af84224417191f165b72.jpg

386fafabf4595101eb3c2977b695d47e.jpg

查找权限为777的文件

find / -perm -777 -type d -ls

424a82d169d1a5cfd2ec19dff916f8fb.jpg

在/etc下查找hadoop文件

grep hadoop /etc

2100728703264ba36d67a88b16b297cf.jpg


用vi文本编辑器来编辑生成的文件

******最基本用法
vi somefile.4

1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容

2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容

3、编辑完成之后,按Esc键退出编辑模式,回到一般模式

4、再按:,进入“底行命令模式”,输入wq命令,回车即可

*****一些常用的快捷键(在一般模式下使用):

a    在光标后一位开始插入

A    在该行的最后插入

l    在该行的最前面插入

0(零)    光标跳到文件当前行的开头

$    光标跳到文件当前的行的末尾

gg    直接跳到文件的首行

G    直接跳到文件的末行

dd    删除行,如果5dd,则一次性删除光标后的5行

yy    复制当前行,负责多行,3yy表示复制当前行附近的3行

p    粘贴

v    进入字符选择模式,选择完成后,按y复制,按p粘贴

crtl+v    进入块选择模式,选择完成后,按y复制,按p粘贴

shift+v    进入行选择模式,选择完成后,按y复制,按p粘贴

查找并替换    (在底行命令模式中输入)%s/sad/88888888%    效果:查找文件中所有sad,替换为                                                                   888888

/you    效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置                (按N定位到上一个)

:1,$s/hadoop/root/g 将第一行到最后一行的hadoop替换为root

:1,$s/hadoop/root/c 将第一行到最后一行的hadoop替换为root(有提示)

:w b.txt 文件另存为b.txt

:w >> b.txt 将内容追加到b.txt

:e! 恢复到最初的状态

ctrl+u (undo) 撤销修改

ctrl+r (redo) 恢复 



3、文件权限的操作

****linux文件权限的描述格式解读

drwxr-xr-x    (也可以用二进制表示111 101 101 -->755)

d:标识节点类型(d:文件夹    -:文件    |:链接)

r:可读

w:可写

x:可执行

第一组rwx:表示这个文件的拥有者对它的权限:可读可写可执行

第二组r-x:表示这个文件的所属组对它的权限:可读,不可写,可执行

第三组r-x:表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行


****修改文件权限

chmod g-rw haha.dat    表示将haha.dat对所属组的rw权限取消

chmod o-rw haha.dat    表示将haha.dat对其他人的rw权限取消

chmod u+x haha.dat    表示将haha.dat对所属用户的权限增加x

也可以用数字的方式来修改权限

chmod 664 haha.dat    就会修改成rw-rw-r--

32b8b3d09955aa128a2aa42e0dc22b88.png

如果要将一个文件夹的所有内容权限统一修改,则可以用-R参数

chmod -R 770 aaa/

646f30115223d2a2d4a964c428242e91.jpg

将当前目录下的所有文件与子目录皆设为任何人可读取

chmod -R a+r *

d0f91d6b7262090f33f3624702ba36f3.jpg

目录没有执行权限的时候普通用户不能进入

文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父级目录),只要父级目录有执行和修改的权限


**修改用户组

将a.txt的用户者设为hadoop,组的拥有者设为angela

chown hadoop:angela a.txt

14a25581dbf3be87bdaa84c52785940b.jpg

将当前目录下的所有文件与子目录的用户的使用者都设为hadoop,组拥有者皆设为angela

e3c8feb5ddcddeb93346a0346df197c3.jpg


4、基本的用户管理

****添加用户

useradd angela

要修改密码才能登录

passwd angela    按提示输入密码即可

d36c2d5603b1a69413947f7efbf22a47.jpg

添加一个tom用户,设置它属于hadoop组,并添加注释信息

分步完成:useradd tom

          usermod -g hadoop tom

          usermod -c "hr tom" tom

一步完成:useradd -g hadoop -c "hr tom" tom

32c940354914be0d8c77876853ba12eb.jpg

设置tom用户的密码

passwd tom

2708a844777148ea91fcae15be59bef3.jpg

修改tom用户的登录名为tomcat

usermod -l tomcat tom

e7b375485931ea58f511e72c5c6bcd3f.jpg

b628dd31d75455fac2588e831fd36215.jpg

将tomcat添加到hadoop和root组中

usermod -G hadoop,root tomcat

查看tomcat的组信息

groups tomcat

dd2f1e809cd443f73c0dca3eb694ba0e.jpg


添加一个jerry用户并设置密码

useradd jerry

passwd jerry

9e5cba7f627d27f7df76efdc3fcc110c.jpg

添加一个america的组

groupadd america

将jerry添加到america组中

b4764d7379ee641ce56411a86e180d03.jpg

将tomcat用户从root组和hadoop组删除

gpasswd -d tomcat root

gpasswd -d tomcat hadoop

2f95ec0c0e7a6e836c9982b39e0740f2.jpg

将america组名修改为am

groupmod -n am america

df1d40b206f930993571b50c87a95295.jpg

**为用户配置sudo权限

用root编辑vi /etc/sudoers

在文件的如下位置:为hadoop添加一行即可

root    ALL=(ALL)    ALL

hadoop  ALL=(ALL)    ALL


然后,hadoop用户就可以用sudo来执行系统级别的指令

df96e72b1a6148f857eab5682cd3571c.jpg

ef1a2dfd11113173af9f5b9c1547f760.jpg

c1e2c8d9df9266410219b2d6f7db1bc2.jpg

5、传输文件

***使用sftp工具传输文件

alt+p    调出后,用put命令上传

上传(如果不cd指定目录,则上传到当前用户的主目录):

sftp>cd /home/

sftp>put -r C;\User\Administrator\Desktop\day02\soft\jdk-7u45-linux-x64.tar.gz

c2d095676c35fb9541a18ad7fb4e5c16.jpg

60d56a3a54ae5f26659f70d1c17fb9c7.jpg

下载(lcd指定下载到本地的目标路径)

sftp>lcd d:/

sftp>get /home/jdk-7u45-linux-x64.tar.gz

416def5e8e3828b4d5d9c4d52edf852b.jpg

0bf1fd3ca4a14db05297f6126c98fd2b.jpg


***文件传输rz,sz,是Linux/Unix同Windows进行ZModem文件传输的命令行工具

优点是不用再开一个sftp工具登录上去上传下载文件

sz:将选定的文件发送(send)到本地机器

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器

安装命令:

yum install lrzsz

3e3e601002e9996bbf3ed87ccd1e77bc.jpg

SecureCRT设置默认路径:

Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

Xshell设置默认路径

右键会话 -> 属性 -> ZMODEM -> 接收文件夹

从服务端发送文件到客户端:

sz a.txt

bf3168ca46d3af6173f56d68303a7e67.jpg

445176f086f2b6c388d2a23faf667907.jpg

从客户端上传文件到服务端:

rz

17a5b2d122433f4b1632b2d8f35dc85e.jpg

a82326e7216ce57c0501159c7ba3ec91.jpg

c436ccb0c8fb4ca33165d6b21e83e800.jpg

c53388774097c5843c2219a413d5e965.jpg


6、安装软件

***RPM软件包管理命令

常用参数:

i:安装应用程序

e:卸载应用程序

vh:显示安装进度

u:升级软件包

qa:显示所有已经安装软件包


rpm -qa

5f2db9f0a8ca13392e467dfdfe63a893.jpg

rpm -ivh MySQL-server-5.5.51-1.linux2.6.x86_64.rpm

ddbcdee1ed4beea04a5aa8917e2ddce5.jpg

c2aa961383a65fb5b5b33f7f9dc35028.jpg

***yum软件安装命令

yum install gcc-c++

e89014328e6775f7a896929ed13bbb66.jpg

yum update gcc-c++

0b7279f48bebcd523fa69a66add5a741.jpg

yum remove gcc-c++

f901fea18fc6ca899e685b1d7dd2e934.jpg

***安装JDK

<1>上传jdk-7u45-linux-x64.tar.gz到Linux上

92f31402bb3bb3fe74fb73d81c02f033.jpg

<2>解压jdk到/usr/local目录

    tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/

9b572051aa0cc4d53b81599a53357efb.jpg

06e1b08a864d05a7bda0594c5ecfc53f.jpg

<3>设置环境变量,在/etc/profile文件最后追加相关内容

    vi /etc/profile

15f77f21f331a052554e232ea5a1d95c.jpg

ef828b8b788fddc71ab1fffac0c488a4.jpg

2ee37b3706f6cb68d3843d78339d336f.jpg



<4>刷新环境变量

    source /etc/profile

6917aaad9c2495fdefb16d94a6222427.jpg

<5>测试java命令是否可用

    java -version

eb4c4d093ea8aa2cd83e82eb1f1c7378.jpg


***安装Tomcat

<1>上传apache-tomcat-7.0.68.tar.gz到Linux上

9d96ef98d18201a24b5aa082c9ace3a4.jpg

6f1d1b80eb8351c4508de3e7924618fa.jpg

<2>解压tomcat

 tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local

90f9570eb85e6576eb5c9f3e8f585904.jpg

686a1190f1cf1c5d4c370f45d012cc1c.jpg

<3>启动tomcat

    /usr/local/apache-tomcat-7.0.68/bin/startup.sh

cf43631d6a84fb047673ceb9f44a2da8.jpg

<4>查看tomcat进程是否启动

    jps

5724bc5df0e9eb35d3441d7922735dd9.jpg

<5>查看tomcat进程端口

    netstat -anpt | grep 11939

903d1b68273b001d792ceebc324562b0.jpg

<6>通过浏览器访问tomcat

    http://192.168.0.101:8080/

b87cd88da08209a865c1ce9cfec3c718.png



***安装MySQL

<1>上传MySQL-server-5.5.48-1.linuxx2.6.x86_64rpm、MySQL-client-5.5.48-1.linux2.6.x86_64.rpm

到Linux上

6cf4fdb0035e85c6f81164322348cd0a.jpg

156f80d88b585fc5a6e9dc4d3c96168e.jpg

<2>使用rpm命令安装MySQL-server-5.5.48-1.linuxx2.6.x86_64rpm,缺少perl依赖

    rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm

2b5a05c4d3dcf5241e01c6b95b49c0fa.png

ddbcdee1ed4beea04a5aa8917e2ddce5.jpg

c2aa961383a65fb5b5b33f7f9dc35028.jpg

<3>安装perl依赖,上传6个相关的rpm包

0a65c38db81010a5a1e155fa531e0285.png

<4>再安装MySQL-server,rpm包冲突

    rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm

<5>卸载冲突的rpm包

    rpm -e MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm

<6>再安装MySQL-client和MySQL-server

    rpm -ivh MySQL-client-5.5.48-1.linuxx2.6.x86_64.rpm

    rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm

<7>|启动MySQL服务,然后初始化MySQL

    service mysql start

    /usr/bin/mysql_secure_installation


<8>测试MySQL

    mysql -u root -p


7、正则表达式

规则:

.:任意一个字符

a*:任意多个a(零个或多个a)

a?:零个或一个a

a+:一个或多个a

.*:任意多个任意字符

\.:转义

\<h.*p>:以h开头,p结尾的一个单词

o\{2\}:o重复两次


**查找以h或r开头的

a0e40193ad9d225150356adf0e8eb88e.jpg

**查找不是以h和r开头的

grep '^[^hr]' /etc/passwd

6bceafccec138f90a163783f4e3b17cc.jpg

**查找不是以h到r开头的

grep '^[^h-r]' /etc/passwd

0a9728d03f25aefd849212d8897e45af.jpg


**cut截取以:分割,保留第七段

grep hadoop /etc/passwd | cut -d: -f7

e1bd80adf8f0581e82824fd5eba49292.jpg

**排序

du | sort -n

779a24b420bac3395cb6c0c316961b37.jpg

**查询不包含hadoop的

grep -v hadoop /etc/passwd

cd3f221340d0b48cd1ef5160083a7758.jpg

**查询包含hadoop

grep 'hadoop' /etc/passwd

59d5f917d864253905419b5fcd618586.jpg

.(点代表任意一个字符)

grep 'h.*p' /etc/passwd

e1bd3ef69758d7269da267251d1ee90b.jpg

**查找以hadoop开头的

grep '^hadoop' /etc/passwd

d1e095929f3c5eff5f97d3934d9faa95.jpg

**查找以hadoop结尾的

d7893ed03c2041ed9d005ef3cfab2d37.jpg

8、系统管理操作

****查看主机名

hostname

****修改主机名(重启后无效)

hostname hadoop

5184209785b9ca119ffc196d2872429e.jpg

****修改主机名(重启后永久生效)

vi /etc/sysconfig/network

16307a3969d439697c2401b2daf874d1.jpg

4c63b767770cfaf804ca348d8ecd88b8.jpg

e687fab8579913b018aacf57ab502775.jpg


****修改IP(重启后无效)

ifconfig etho 192.168.12.22

63d859f24cbed1a11a328bee054b4ef0.jpg

****修改IP(重启后永久生效)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

9b5ecface8383e2a03cde1f0a07dcd8e.jpg

85b19adb74224be9d862592879831bd1.jpg

重启服务

service network restart

49817e6c23219ec5fd4227dc61eaaf1c.jpg

****修改静态地址后发现无法ping外网

需要设置网关

route add default gw 192.168.33.1

添加nameserver

vi /etc/resolv.conf

nameserver 192.168.33.1

****修改ip地址和主机的映射关系

vi /etc/hosts

176c45a02bd3ac2d801772f811e7845b.jpg

345ee6c31a97c215fcefc5756cf9d500.jpg

****关闭iptables并设置其开机启动/不启动

service iptables stop

chkconfig iptables on

chkconfig iptables off

33802dda9396aac1ee114885ffce92f5.jpg

****查看系统信息

uname -a

uname -r

73c5ef27059ddd3e80f4b07d057f90a4.jpg****显示用户的ID,以及所属群组的ID

id    显示当前用户的ID

38d2b0cd1af8be517ee7678a5c6c11f6.jpg

id -g    显示用户组的ID

dc29637bbec31a38977ac01c2c47c349.jpg

id hadoop    显示指定用户信息

5254224731bb52eb97deafee15c7202a.jpg


mount ****    挂载外部存储设备到文件系统中

mkdir /mnt/cdrom    创建一个目录,用来挂载

mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/    将设备/dev/cdrom/挂载到挂载点:/mnt/cdrom                                                  中

umount    取消挂载

umount /mnt/cdrom


加载windows共享

mount -t cifs //192.168.3.4/tools /mnt


****统计文件或文件夹的大小

du -sh    /mnt

df -h    查看磁盘的空间

ac719bded14784df03ee74ea1acbe1ac.jpg

****查看内存使用情况

free

9f70416a08c4363d0c06afdc78dbb0f0.jpg

****查看日志

ls /var/log/

1d4d2f53c0b62d0884298b1c9a4cfe4b.jpg

****查看系统报错日志

tail /var/log/messages

2d29e1931afe5e342863e77de2b14095.jpg

****查看进程

top

939a310215f0dd3d3e41a00558c48402.jpg

****结束进程

kill 1234

kill -9 4333 强制杀死该进程


****ssh远程连接

ssh 登录名@ip

96566a7960e32f820b6a1bbba7543f7d.jpgdd1beb084d709efd1b5e0c1610d450ae.jpg


****关机

halt

shutdown -h now

init 0

****重启

reboot

shutdown -r now



****配置主机之间的免密ssh登录

d158561e59a883c1751063f322f65eef.jpg

假如 A 要登录 B

在A上操作:

%%首先生成密钥对

ssh-keygen    (提示时,直接回车即可)

%%再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中

ssh-copy-id B


四、本地YUM源制作

1、yum相关概念

1.1 什么是yum

yum全称为Yellow dog Update,Modified)是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

1.2 yum的作用

在Linux上使用源码的方式安装软件非常繁琐,使用yum可以简化安装的过程

2、yum的常用命令

安装httpd并确认安装

yum install -y httpd

ef2a84ebe09d97d82b5328c12381efbb.jpg

6b9689ebd1a8a00f217bafac74635c1e.jpg

ddc6474a0f30e87777201e86524ce299.jpg

列出所有可用的package和package组

yum list

30e725a99a7bec27743b177238528684.jpg

a124e0fd6954e24838f0c1be11ca9c5b.jpg

清除所有缓冲数据

yum clean all

727e91aa77980f35774c1aa64c6a3149.jpg

列出一个包所有依赖的包

yum deplist httpd

92029f41442a4e930470fa8dcf185627.jpg

删除httpd

48ecc511411e34ec730773217ef59153.jpg

3、制作本地yum源

3.1 为什么要制作本地yum源

yum源虽然可以简化我们在Linux上安装软件的过程,但是生成环境通常无法上网,不能连接外网的yum源,说以就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置yum源

3.2 yum源的原理

yum源其实就是一个保存了多个rpm包的服务器,可以通过http的方式来检索、下载并安装相关的rpm包

bc3b89416cb72106926bcd29505c65e8.jpg

3.3 制作本地yum源

<1>准备一台Linux服务器,用最简单的版本CentOS-6.7-x86_64-minimal.iso

<2>配置好这台服务器的IP地址

    ifconfig eth0 up    激活eth0网卡

183065254892de1c8fac2c2958a89406.jpg

dd30e190b2cfb339e81ea70c09cb4d74.jpg

    vi /etc/sysconfig/network-scripts/ifcfg-eth0    修改配置文件

2fd363c35306da297acbef9aa8f9d61d.jpg

dcca3b27462daa1e3262b7195f99eece.jpg

    service network restart 重启服务,自动获取IP地址

5ac922f0fbf3518ce08e25bba9021238.jpg

fc7a3aa6990993a2d1840d12030c7e19.jpg

<3>上传CentOS-6.7-x86_64-bin-DVD1.iso到服务器

e1c732d6208d6afbc3e18d1ac7649f23.jpg

<4>将CentOS-6.7-x86_64-bin-DVD1.iso镜像挂载到某个目录

    mkdir /var/iso

    mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /var/iso

bc13ecc461e4c85d72bd06636c3561ee.jpg


<5>修改本机上的yum源配置文件,将源指向自己,备份原有的yum源配置文件

    cd /etc/yum.repos.d/

    rename .repo .repo.bak*

    vi CentOS-Local.repo

715886caaf431f14d9821797d9d4134b.jpg

71de8ecd46980887c6b35df88571743b.jpg

添加上面内容保存退出


<6>清除yum缓冲

    yum clean all

0ec6996908c4914e1af2e194fa87c158.jpg

<7>列出可用的yum源

    yum repolist

14e1a4445f7901d4ae3b15421e430d8a.jpg

<8>安装相应的软件

    yum install -y httpd

c41c227c2b83caecb31f074f5d3f6f3e.jpg

<9>开启httpd使用浏览器访问http://192.168.0.100:80(访问不同,检查防火墙是否开启了80端口或关闭防火墙)

    service httpd start

c174688b2e94a67b64fd91350a8665d0.jpg

    打开80端口

    vi /etc/sysconfig/iptables

    在-A INPUT -j REJECT --reject-with icmp-host-prohibited上面加入如下语句

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

48632f5460d3ed4481d42efbc00d3d3a.jpg

    重启服务

    /etc/init.d/iptables restart

3f1fcadbe05a511d861fc4d2b57c72d4.jpg

    查看端口是否生效

    /etc/init.d/iptables status324834dd1e5a6d46b1aa3c03a314bf04.jpg

<10>将yum源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的yum源了

    cp -r /var/iso /var/www/html/CentOS-6.7

f2dfc2d9cf79f90f5b79d7ac0141c823.jpg

de4aaccdbd95feeccc01da435857b9e7.jpg

<11>取消先前挂载的镜像

    umount /var/iso

b4cd80d2546d6d2c84d343cc92299162.jpg

<12>在浏览器中访问http://192.168.0.100/CentOS-6.7/

7c8d6b2e4a8e1c2925fbe4ca5a00ff33.png

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

    cd /etc/yum.repos.d/

    rename .repo .repo.bak*

    vi CentOS-Local.repo

de08812b8d126b0e8dc02d596829a34e.jpg

添加上面的内容保存退出

<14>在这台新的服务器上执行yum的命令

    yum clean all

    yum repolist

0901a768eb268f1343b0407fcbccbd03.jpg

fe35085f3bb02203c29bdb17e19c2b4d.jpg

<15>安装相应的软件

    yum install -y gcc

2c5eb7bada9fb216805ba5bd0fde0a54.jpg

6cad3e6c758690b723f23093f155653e.jpg

<16>加入依赖包到私有yum的repository

    进入到repo目录

    执行命令:createrepo

五、VMware虚拟机三种联网方法及原理

1、Bridge---桥接:默认使用VMnet0

<1>原理:

Bridge的桥就是一个主机,这个主机拥有两块网卡,分别处于两个局域网中,同时在“桥”上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,WMware网卡和物理网卡应该处于同一IP网段,当然要保证两个局域网没有冲突的IP。

VMware的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由VMware软件虚拟了,当采用桥接时,VMware会虚拟一块网卡和真正的物理网卡进行桥接,这样,发到物理网卡的所有数据包就到了VMware虚拟机,而由VMware发出的数据包也会通过桥从物理网卡的那端发出

<2>联网方式

这一种联网方式最简单,在局域网内,你的主机是怎么联网的,你在虚拟机里就怎么连网,把虚拟机看成局域网内的另一台电脑就行了

提示:主机网卡处在一个可以访问Internet的局域网中,虚拟机才能通过Bridge访问Internet

262a4b93d5a4c25d71e9d528c756629e.png

2、NAT--网络地址转换:默认使用VMnet8

<1>原理:

NAT是Network address translate的简称。NET技术应用在internet网关和路由器上,比如192.168.0.123这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即NAT)以使私有网段主机能够顺利访问internet。此技术解决了IP地址稀缺的问题。同样的私有IP可以网关NAT上网。

虚拟网卡和虚拟机处于一个地址段,虚拟机和主机不同一个地址段,主机相当于虚拟机的网关,所依虚拟机能ping到主机的IP,但是主机ping不到虚拟机的IP

<2>联网方式

方法1:动态IP地址

主机是静态IP或动态IP都无所谓,将虚拟机设置成使用DHCP方式上网,Windows下选择“自动获取IP”,Linux下开启DHCP服务即可。(这种方法最简单,不用过多的设置,但要在VMware中进行“编辑->虚拟网络设置”,将NAT和DHCP都开启了,一般NAT默认开启,DHCP默认关闭)

方法2:静态IP地址

如果不想使用DHCP,也可以手动设置

IP设置与VMnet1同网段,网关设置成VMnet8的网关(在“虚拟网络设置”里的Net选项卡里能找到Gateway)通常是xxx.xxx.xxx.2

DNS设置与主机相同

例如:主机IP是10.70.54.31,设置虚拟机IP为10.70.54.22。Netmask,Gateway,DNS都与主机相同即可实现 虚拟机----主机 虚拟机<---->互联网通信

提示:使用NAT技术,主机能上网,虚拟机就可以访问Internet,但是主机不能访问虚拟机

6c9c5f03af659321da3adbf759bf09c4.png

3、Host-Only---私有网络共享主机:默认使用VMnet1

<1>原理:

提供的是主机和虚拟机之间的网络互访,只想让虚拟机和主机之间有数据交换,而不是让虚拟机访问Internet,就要采用这个设置了

Host-only的条件下,VMware在真正的windows系统中,建立一块软网卡,这块网卡可以在网络连接中看到,一般是VMnet1,这块网卡的作用就是使windows看到虚拟机的IP。

<2>联网方法

方法1:动态IP地址

像上面那样开启DHCP后,虚拟机直接自动获取IP地址和DNS。就可以和主机相连了。

方法2:静态IP地址

也可以手动设置,将虚拟机IP设置与VMnet1同网段,网关设置成Vmnet1的网关相同,其余设置与VMnet1相同,DNS设置与主机相同

例如:VMnet1    IP:172.16.249.1    Gateway:172.16.249.2

那么虚拟机      IP:172.16.249.100  Gateway:172.16.249.2

这样    虚拟机<--->主机    可以通信

但是    虚拟机<--->互联网  无法通信

提示:Host-only技术只用于主机和虚拟机互访,于访问Internet无关

a0d29730dd6c0edebe13cec62bb70015.png



解决克隆后etho不见的问题

直接修改 /etc/sysconfig/network-script/ifcfg-eth0

删掉UUID HWADDR

配置静态地址

然后:

rm -rf /etc/udev/rules.d/70-persistent-net.rules

然后: 

reboot