一、linux网络原理及基础设置

ifconfig 命令:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址。

[root@bogon ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.108 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8c6c:c7be:1c12:9ddc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b8:b3:a4 txqueuelen 1000 (Ethernet)
RX packets 1974 bytes 1815266 (1.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 428 bytes 42066 (41.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 6 bytes 536 (536.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 536 (536.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ee:81:cc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33代表网卡

inet 后面的192.168.0.108 就是IP地址

netmask 是子网掩码

ether 是mac地址

mtu 指最大传输单元,默认一次最多1500字节

lo 是本地回环网卡,第二行分别表示ip地址和子网掩码,本地回环网卡的IP地址默认就是127.0.0.1

virbr0是虚拟机的网卡

可以用ifconfig修改IP地址和子网掩码

例:修改ens33网卡的IP地址为192.18.16.56和子网掩码255.255.255.100的命令:
  ifconfig ens33 192.18.16.56 netmask 255.255.255.128

[root@bogon ~]# ifconfig ens33 192.18.16.56 netmask 255.255.255.128
[root@bogon ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.18.16.56 netmask 255.255.255.128 broadcast 192.18.16.127
inet6 fe80::8c6c:c7be:1c12:9ddc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b8:b3:a4 txqueuelen 1000 (Ethernet)
RX packets 11201 bytes 4780758 (4.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 568 bytes 56374 (55.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 30 bytes 3032 (2.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30 bytes 3032 (2.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ee:81:cc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

但这种操作只是临时修改,要想永久修改必须修改配置文件,网卡的配置文件存放在/etc/sysconfig/network-scripts目录中,且每个网卡对应的配置文件的文件名以ifcfg-开始,如ens33这个网卡对应的网络配置文件就是ifcfg-ens33。

用vim编辑器修改配置文件

把BOOTROTO改成static

写入以下几个命令

IPADDR=要改的IP地址

NETMASK=子网掩码

GATEWAY=网关

DNS=202.106.0.20(改成自己指定的DNS)

最后,ONBOOT要改成yes

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.20
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=192.168.0.254
DNS2=202.106.0.20
DNS3=8.8.8.8
NAME=ens33
UUID=6e166b31-83c8-4a37-b31e-71c82062889b
DEVICE=ens33
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

保存退出后,重启网络服务就可以生效了

centos7重启网络服务的命令是:systemctl restart network

再次用ifconfig命令查看,可以发现IP,网关,子网掩码都已经修改成功了

[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8c6c:c7be:1c12:9ddc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b8:b3:a4 txqueuelen 1000 (Ethernet)
RX packets 71 bytes 10926 (10.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 114 bytes 12259 (11.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 9 bytes 872 (872.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9 bytes 872 (872.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ee:81:cc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost network-scripts]# ping www.baidu.com
PING www.a.shifen.com (119.75.217.109) 56(84) bytes of data.
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=1 ttl=54 time=7.98 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=2 ttl=54 time=5.60 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=3 ttl=54 time=8.82 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=4 ttl=54 time=6.72 ms

查看网关的命令是route -n,可以自己添加网关,命令是:route add default gw 网关地址 dev 网卡名

DNS的配置文件在/etc/resolv.conf里

本地解析的配置文件在/etc/hosts里,可以自己设置IP和域名的对应关系,优先级比DNS高

二、软件包管理(rpm命令)

1.安装命令:rpm -ivh 软件包位置

2.查看是否安装:rpm -q 软件名

查看软件包中所包含的所有文件:rpm -ql 软件名

查看软件包详细信息:rpm -qi 软件名

查看某条命令是哪个软件包产生的:rpm -qf 命令的绝对路径

查看所有安装的软件:rpm -qa

3.卸载命令:rpm -e 软件名

在命令后面加上 --nodeps 可以忽略依赖性卸载

rpm命令安装软件是存在依赖性问题的,yum命令可以避免这个问题

三、yum命令管理软件包

yum(全称为 Yellow dog Updater, Modified)是一个Shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,常用的命令有:

yum install 软件包名 -y   :安装

yum list :列出有哪些软件包

yum grouplist :列出有哪些组

yum clean all :清除yum缓存

yum makecache -y :自己制作缓存

yum remove 软件名 -y :卸载

yum之所以能自动下载rpm包,是因为它有指定的yum源,我们也可以自己指定yum源。yum源文件在/etc/yum.repos.d/ 下,进入该目录后可以发现有一些.repo 文件,在Centos-Base.repo中的[base]标题下就指定了yum源。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

同样我们也可以自己写一个本地yum源,Centos光盘中就有许多rpm包,存放在Packages下,但我们要指定Packages的上层目录作为源,我们创建一个local.repo的文件,文件内容如下:

[root@localhost yum.repos.d]# vim local.repo 

[local]                  #标题行,内容无要求,但必须有
name=local repo for test
baseurl=file:///opt #如果是网络源,baseurl后面就要写http://
enabled=1 #表示开启yum源
gpgcheck=0 #表示不检测key
~

写好以后保存退出,测试时可以先把之前文件夹下的其他repo文件移动到其他文件夹,重新安装一个软件,可以发现安装过程中不会从网络下载东西

linux基础(五)的更多相关文章

  1. Linux基础(五) Shell函数

    Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action ...

  2. Linux基础五(系统管理)

    Linux 系统管理 1. 进程管理 1.1 进程管理简介 进程的简介: 一个程序在运行的时候会占用系统的资源,即系统分配资源给某个程序使用,进程就是正在运行中的某个程序或者命令.进程又可以细分为线程 ...

  3. Linux基础五:网络配置与管理

    五.网络配置与管理 1.网络知识 2.命令 ifconfig命令  <=>  ip  addr  show 命令--查看本地所有网卡配置信息 ens32:本地以太网网卡,lo:本地回环网卡 ...

  4. Linux基础五

    Yum软件包管理 yum:基于rpm包构建的软件更新机制 自动解决软件包依赖关系 所有软件包由集中的yum软件仓库提供. [root@hydra桌面]#ls /misc/cd/repodata/ (r ...

  5. Linux基础入门

    第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...

  6. Linux及安全——Linux基础实践

    Linux及安全——Linux基础实践 一.实践一:掌握软件源的维护方法,配置系统使用教育网内的软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 1.软件源的维护方法 Ubuntu的软件 ...

  7. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  8. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  9. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  10. Linux 基础(5)

    Linux 基础 (五) 一.shell相关知识 shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本.通过解释器的角度来理解shel 命令分为: ==> ...

随机推荐

  1. 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  2. 关于 vue-cli v2.8.2

    我在撰写<Vue2实践揭秘>时采用的 vue-cli 版本是 v2.5.1,由于实体书的出版周期比电子书的要长,所以到全书出版vue-cli已经更新到 v2.8.2 了,我在书中曾经对 v ...

  3. Ubuntu下解决解压zip文件中文文件名乱码问题

    在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Window ...

  4. C#的命名管道(named pipe)

    命名管道是一种从一个进程到另一个进程用内核对象来进行信息传输.和一般的管道不同,命名管道可以被不同进程以不同的方式方法调用(可以跨权限.跨语言.跨平台).只要程序知道命名管道的名字,发送到命名管道里的 ...

  5. [0] DDD领域驱动设计(三) 之 聚合(根)、实体、值对象

    1.      聚合根.实体.值对象的区别? 从标识的角度: 聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法: 从是否只读的角度 ...

  6. Go - method

    hello, 大家好,由于之前工作上面的事情较多,所以关于go语言的学习就暂时“搁浅了”...不过从今天开始,我们又将回到了go语言的学习过程之中. 当然,我们学习go的"初心"是 ...

  7. Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息

    详情请看:Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息 在项目中需要获取到当前设备,例如手机的ID,联网状态,等,然后这个Cordova里有这个插件可以用, ...

  8. jQuery – 鼠标经过(hover)事件的延时处理

    一.关于鼠标hover事件及延时 鼠标经过事件为web页面上非常常见的事件之一.简单的hover可以用CSS :hover伪类实现,复杂点的用js. 一般情况下,我们是不对鼠标hover事件进行延时处 ...

  9. JavaScript事件与例子(三)

    两个例子,好友选中效果和左侧右侧子菜单 一.好友选中效果 可以通过设置属性的方式判断当前是否被选中,也可以通过获取当前元素的颜色从而得知当前元素状态是否被选中,从而进行操作 1.通过设置属性的方式判断 ...

  10. Qt使用MySQL笔记一

    原始日期:2015-08-20 18:01 今天开发项目时,遇到一个问题,经过自己不断尝试,终于找到了解决办法,于是赶紧记下来,不然过段时间可能又忘了呵呵,从而重蹈覆辙,浪费时间~问题是这样的:在插入 ...