网络管理
ifconfig网络管理工具
ifconfig依赖于命令中使用一些选项属性,不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置,但是通过ifconfig修改的通常为临时配置,即系统重启后失效。
命令格式:
ifconfig [选项] [参数]
注:ifconfig后不跟任何选项和参数,表示查询当前生效的网卡信息
常用选项:
<device> up 启动指定网络设备或网卡。 注:可使用ifup代替
<device> down 关闭指定网络设备或网卡。 注:可使用ifdown代替
-a 显示全部接口信息(查询)
add <address> 临时添加一个ip地址
del <address> 临时删除一个ip地址
配置示例:
ifconfig eth0 up 开启eth0网卡
ifconfig eth0 down 关闭eth0网卡
ifconfig eth0 add 192.168.1.1 为网卡eth0配置地址一个地址为192.168.1.1,当该网卡本身有ip地址时,会以子接口方式追加一个ip
ifconfig eth0 del 192.168.1.1 为网卡eth0删除192.168.1.1地址
route网关配置
route命令用来显示并设置Linux内核中的网络路由表,设置的路由主要是静态路由。
命令格式:
route [选项] [参数]
注:route后不跟任何选项和参数表示查询路由信息
常用选项:
-v 显示详细路由信息
add 增加指定的路由记录或网关
del 删除指定的路由记录或网关
gw 设置默认网关
dev 路由记录所表示的网络接口
配置示例:
route add -net 192.168.1.0 netmask 255.255.255.0 增加一条到达192.168.1.0的路由
route del -net 192.168.1.0 netmask 255.255.255.0 删除一条到达192.168.1.0的路由
route add default gw 192.168.1.250 指定默认网关为192.168.1.250
route del default gw 192.168.1.250 删除默认网关192.168.1.250
DNS配置
修改DNS服务器非常简单,只需要修改/etc/resolv.conf配置文件即可。
[root@centos-python ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114 #修改ip地址即可更改dns,修改后保存立刻生效
nameserver 202.102.152.3
域名解析优先级:/etc/hosts的优先级要高于配置的dns的解析优先级
网络配置文件
配置文件修改网络:网络接口配置文件是控制单个网络设备的软件接口
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-<name>
注:name指配置文件控制的设备或连接的名称
配置文件标准变量(默认DHCP获取地址):
除了红色说明的条目,其他的条目建议删除
[root@centos-python ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR=00:0C:29:9A:CD:CC #网卡mac地址
TYPE=Ethernet #网络类型
BOOTPROTO=dhcp #网络连接类型是动态dhcp或静态static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736 #网络连接的名字
UUID=d7eceeef-e67e-48a7-8150-f186fc2f7a5d #网络唯一标识
ONBOOT=yes #网卡开机是否启动
配置文件标准变量(手动配置静态地址):
[root@centos-python ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR=00:0C:29:9A:CD:CC
TYPE=Ethernet
BOOTPROTO=static #静态地址
NAME=eno16777736
ONBOOT=yes
IPADDR=192.168.1.105 #ip地址
NETMASK=255.255.255.0 #掩码
DNS1=114.114.114.114 #指定dns
GATEWAY=192.168.1.1 #指定网关
注:静态设置中,IP地址、掩码、网关等可以多组指定
注:DNS可指定多个服务器时,查询时候按照顺序查询
手动修改配置文件时更改的内容不是即时生效,需要重新启动网络服务才行
[root@centos-python ~]# systemctl restart NetworkManager
除了修改配置文件,还可以使用nmcli命令配置网络,nmcli会直接将配置信息写入配置文件,在此不做说明
软件包管理
rpm包管理工具
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。
rpm管理工具不能解析依赖关系,必须手动安装依赖包,但是大部分软件包都存在依赖包,即要安装一个软件包的前提可能有数个几十个其他的软件包需要提前安装,所以rpm只适合简单的管理。
命令格式:
rpm [选项] [参数]
常用选项:
-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户,所有查询选项都需要该选项配合
-a 查询所有安装的软件包
-e<软件包>或--erase<软件包> 删除指定的软件包
-f<文件> 查询文件所属的软件包
-i 显示软件包的相关信息
-i<软件包>或--install<软件包> 安装指定的软件包
-l 显示软件包的文件列表
-R 显示软件包的关联性信息
-U<软件包>或--upgrade<软件包> 升级指定的软件包
-v 显示指令执行过程
-vv 详细显示指令执行过程,便于排错
常用示例:
[root@centos-python ~]# rpm -qa #查询所有已经安装的软件包,输出信息已省略
[root@centos-python ~]# rpm -ql gcc #查询gcc安装后能产生哪些文件,输出信息已省略
[root@centos-python ~]# rpm -qf /usr/share/info/gcc.info.gz #查看该文件属于哪个软件包
gcc-4.8.2-16.el7.x86_64
[root@centos-python ~]# rpm -qi gcc #查询gcc的包信息,包括版本,平台,开发者等,输出信息已省略
[root@centos-python Packages]# rpm -ivh dhcp-4.2.5-27.el7.centos.x86_64.rpm #安装dhcp
Preparing... ################################# [100%]
Updating / installing...
1:dhcp-12:4.2.5-27.el7.centos ################################# [100%]
[root@centos-python Packages]# rpm -evh dhcp-4.2.5-27.el7.centos.x86_64 #卸载dhcp
Preparing... ################################# [100%]
Cleaning up / removing...
1:dhcp-12:4.2.5-27.el7.centos ################################# [100%]
[root@centos-python Packages]# rpm -qR dhcp-4.2.5-27.el7.centos.x86_64 #查看已经安装了的dhcp包有哪些依赖关系,输出信息已省略
yum包管理工具
yum命令是RedHat开发的基于rpm的软件包管理器,它使系统管理人员交互和自动化地管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
yum命令的执行需要依赖于yum服务运行,yum一般从网络软件包存储库安装软件包和更新,所以使用yum需要从一个源配置文件中读取相关的信息。
yum源配置文件:/etc/yum.repos.d/<name>.repo,name名字自己定义,后缀必须是repo
[root@centos-python Packages]# cat /etc/yum.repos.d/dvd.repo
[dvd] #yum源的库名字,自己定义的,最好跟文件名一样
name=dvd #yum源的库的说明信息,自定义
baseurl=file:///mnt #yum源的库的地址,file://表示本地库,/mnt表示路径,另外还可以用http://ip/path、ftp://ip/path等远程的库,远程库需要用相关服务进行文件共享才行
gpgcheck=0 #是否进行gpg签名校验
enable=1 #开启该yum源配置,默认就是开启,可不写这一行
以下yum命令,均使用上面repo文件信息,/mnt下挂载了相应的系统镜像,一般系统镜像内都封装了常用的服务软件包。
命令格式:
yum [选项] [参数]
常用选项:
install 安装rpm软件包
update 更新rpm软件包
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包的信息
search 检查软件包的信息
info 显示指定的rpm软件包的描述信息和概要信息
clean 清理yum过期的缓存
resolvedep 显示rpm软件包的依赖关系
localinstall 安装本地的rpm软件包
localupdate 显示本地rpm软件包进行更新
deplist 显示rpm软件包的所有依赖关系
groups 软件包组管理
常用示例:
[root@centos-python ~]# yum list #列出所有库所提供的软件包列表
[root@centos-python ~]# yum install vsftpd -y #安装vsftpd
[root@centos-python ~]# yum remove vsftpd -y #删除vsftpd
[root@centos-python ~]# yum deplist vsftpd #列出vsftpd的依赖关系
[root@centos-python ~]# yum info vsftpd #查看vsftpd的描述和概要信息
[root@centos-python ~]# yum groups list #列出所有软件包组
[root@centos-python ~]# yum groups install KDE #安装KDE软件包组
[root@centos-python ~]# yum search dhcp #查找并显示dhcp的信息
[root@centos-python ~]# yum clean all #清除缓存信息
[root@centos-python ~]# yum repolist #查看源库的列表,库可以指定多个,可以写在一个repo文件里,也可以分开写
源代码包管理
源代码包的安装一般由4个步骤组成:解压源代码包、配置(configure)、编译(make)、安装(make install),以下将已python3.6.1为例说明
解压源代码包:
源代码包一般使用gz、bz2方式封装(使用tar即可解包),还有一些使用xz(xz -d解压)、zip(unzip解压)
配置(configure):
每一个软件包解压后,内部基本都有configure文件,如下configure文件
[root@centos-python ~]# cd Python-3.6.1/
[root@centos-python Python-3.6.1]# ls
aclocal.m4 config.sub Include Mac Modules Programs Python setup.py
build configure install-sh Makefile Objects pybuilddir.txt python-config Tools
config.guess configure.ac Lib Makefile.pre Parser pyconfig.h python-config.py
config.log Doc libpython3.6m.a Makefile.pre.in PC pyconfig.h.in python-gdb.py
config.status Grammar LICENSE Misc PCbuild python README.rst
configure是一个可执行的配置脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表
一般常用的就一个,--prefix选项是配置软件安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,指定路径后就会存放到相应的目录内。
[root@centos-python Python-3.6.1]# ./configure --prefix=/usr/local/python3 #配置安装路径为/usr/local/python3
编译(make):
在源代码路径下执行make命令,make执行时,会在当前目录下搜索makefile文件,makefile文件记录了该源代码软件进行编译的详细信息,执行该过程会用到例如gcc编译环境、zlib函式库等环境,缺少相应的软件环境会导致编译失败,一般失败的原因会提示,用户根据提示一般都能解决。
[root@centos-python Python-3.6.1]# make
编译安装(make install):
make install会根据makefile中的install选项将上一步编译完的数据安装到配置的目录中,想要卸载已安装的源代码包,可以使用make uninstall(configure配置和make编译需要完成)。
[root@centos-python Python-3.6.1]# make install
到达这一步就已经安装完成了,但是要使用python3.6.1还需要修改以下系统的环境变量
软件安装后配置:
将python3.6.1的执行文件路径写到环境变量配置文件中,并失之生效即可
[root@centos-python Python-3.6.1]# echo 'export PATH="$PATH:/usr/local/python3/bin"' >> /etc/profile
[root@centos-python Python-3.6.1]# source /etc/profile
验证:
[root@centos-python Python-3.6.1]# pip3 -V
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
[root@centos-python Python-3.6.1]# python3
Python 3.6.1 (default, May 28 2017, 22:15:46)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()