Linux 学习笔记网络配置进程管理rpm 包的管理和 yum 介绍

Posted 吞吞吐吐大魔王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 学习笔记网络配置进程管理rpm 包的管理和 yum 介绍相关的知识,希望对你有一定的参考价值。

前言: 本文是听的b站韩顺平老师 Linux 课程的 63~85 集所做的笔记,大家可以配套该文章学习韩老师的 Linux 课程,也可以借助此文章来学习 Linux 的知识。可以收藏起来,以后要用时,随用随查。

1. 网络配置

1.1 查看网络 IP 和网关(ifconfig)

  • 查看 Windows 环境中 VMnet8 网络配置

    ipconfig
    
  • 查看 Linux 中网络配置

    ifconfig
    
  • 测试主机之间网络连通性

    // 测试当前服务器是否可以连接目的主机
    ping 目的主机的ip地址
    

    示例:测试当前服务器是否可以连接到百度

    ping www.baidu.com
    

1.2 Linux 网络环境配置

  • 方式一:自动获取 IP

    • 说明:登陆后,通过界面来设置自动获取 IP
    • 特点:Linux 启动后会自动获取 IP
    • 缺点:每次自动获取的 IP 地址可能不一样
  • 方式二(推荐):指定 IP

    • 说明:直接修改配置文件来指定 IP,并可以连接到外网
    • 编辑:vim /etc/sysconfig/network-scripts/ifcfg-ens33
    • 要求:将 IP 地址配置为静态的(将 BOOTPROTO 的值改为 static,再设置指定 IP,保存,然后重启网络系统 service network restart

1.3 设置主机名和 hosts 映射

  • 查看当前主机名

    hostname
    
  • 修改主机名(修改文件在 /etc/hostname 中)

    // 1. 进入主机名修改文件
    vim etc/hostname
    
    // 2. 修改主机名,保存退出,并且重启系统
    
  • 设置 host 映射

    • 通过建立 host 映射,我们就可义直接通过 ping 主机名的方式来访问测试是否连接到要访问的主机
    • host 文件中设置的是要访问的 IP 和主机名,通过 ping 主机名,就可以在对应 host 文件中找到主机名,然后又可以找到对应的 IP
    • 在 Windows 中,进入 C:\\Windows\\System32\\drivers\\etc 文件中,再将 IP 和对应主机名名写成下面的形式即可,例如
    • 在 Linux 中,进入 /etc/hosts 文件中,进行编辑

1.4 主机名解析过程分析(Hosts、DNS)

  • Hosts

    Hosts 是一个文本文件,用来记录 IP 和 Hostname(主机名)的映射关系

  • DNS

    DNS 是 Domain Name System 的缩写,即域名系统,是互联网上作为域名和 IP 地址相互映射的一个分布式数据库

  • 实例解析:用户在浏览器输入了 www.baidu.com

    • 浏览器先检查浏览器缓存中有没有该域名解析 IP 地址,如果有,就先调用这个 IP 完成解析;如果没有,就检查 DNS 解析缓存,如果 DNS 解析缓存中有就直接返回 IP 完成解析(上述两个缓,都可以理解为本地解析器缓存)
    • 一般来说,当电脑第一次成功访问某一个网站后,在一定时间内,浏览器或操作系统会缓存它的 IP 地址(DNS 解析记录)
    • 如果本地解析器缓存没有找到对应映射,就会检查系统中 hosts 文件里有没有配置对应的域名 IP 映射,如果有,则完成解析
    • 如果本地解析器缓存中和 host 文件中均没有找到对应的 IP,则到域名服务器 DNS 进行解析域
    • 如果域名服务器 DNS(DNS其实有一组,它是递进的) 中也没有,那么就返回域名不存在
  • 在 cmd 窗口中可以输入下面指令来显示 DNS 域名解析缓存或手动清理 DNS 的缓存

    // 显示 DNS 域名解析缓存
    ipconfig /displaydns
    
    // 手动清理 DNS 缓存
    ipconfig /flushdns
    

2. 进程管理

2.1 介绍

  • 在 Linux 中,每个执行的程序都被称为一个进程,每一个进程都分配一个 ID 号(即 PID、进程号)
  • 程序没有执行时,是静态的,其实就是一份代码。当其被加载到内存中运行后, 是动态的,就是进程
  • 每个进程都可能以两种方式存在,前台与后台。
    • 前台进程:就是用户目前的屏幕上可以进行操作的
    • 后台进程:就是实际已经在操作,但是屏幕上无法看到的进程,通常使用后台方式执行
  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束

2.2 显示系统执行的进程(ps)

查看当前系统中,有哪些正在执行,以及它们执行的状况

ps [选项]

// 显示当前终端的所有进程信息
ps -a

// 以用户的格式显示进程信息
ps -u

// 显示后台进程运行的参数
ps -x

// 显示所有进程
ps -e

// 以全格式显示进程(可以显示父进程 PPIDps -f

// 选项可以组合使用,例如
ps -aux
ps -ef 

// 加上 grep 进行过滤
ps [选项] | grep xxx

补充: ps 显示信息说明

字段说明
PID进程识别号
TTY终端信息
TIME此进程所占用 CPU 时间
COMMAND正在执行的命令或进程
USER执行该进程的用户
%CPU占用 CPU 的百分比
%MEM占用物理内存的百分比
VSZ占用虚拟内存大小(单位:KB)
RSS占用物理内存大小(单位:KB)
STAY运行状态(S 表示睡眠、s 表示该进程是会话的先导进程、N 表示进程拥有比普通优先级更低的优先级、R 表示正在运行、D 表示短期等待、Z 表示僵死进程、T 表示被跟踪或者被停止)
START执行的开始使时间

2.3 终止进程(kill、killal)

若是某个进程执行一半需要停止时间,或是已消耗了很大的系统资源时,就可以考虑停止该进程

// 通过进程号杀死进程
kill [选项] 进程号

// 常用选项
-9 表示强迫进程立即停止

// 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
killal 进程名

补充:

通过 killall 杀死进程的话,所有子进程都会被干掉

2.4 查看进程树(pstree)

更加直观的查看进程信息

pstree [选项]

// 常用选项
-p 显示进程的 PID
-u 显示进程的所属用户

2.5 动态监控进程(top、netstat)

top 与 ps 命令相似,它们都用来显示正在执行的进程。top 与 ps 最大的不同之处是 top 在执行一段时间可以更新正在运行的进程

  • top 指令用法:

    top [选项]
    
    // 常用选项 
    // -d [秒数]   表示指定 top 命令每隔几秒更新,默认是3秒
    // -i       表示使 top 不显示任何闲置后者僵死进程
    // -p       表示通过指定监控进程 ID 来仅仅监控某个进程的状态 
    

    指令显示信息说明:

  • 交互操作说明:

    操作功能
    P以 CPU 使用率排序,默认就是此项
    M以内存的使用率排序
    N以 PID 排序
    q退出 top
  • 监视指定用户

    // 首先进入 top,输入 u,再回车,再输入用户名即可
    
  • 终止指定的进程

    // 首先进入 top,输入 k,再回车,再输入要结束的进程 ID 号
    
  • 查看系统网络情况

    netstat [选项]
    
    // 常用选项
    // -an 表示按一定顺序排序输出
    // -p 表示显示哪个进程在调用
    
  • 检测主机连接命令

    ping 对方ip地址
    

    ping 是一种网络检测工具,它主要是用来检测远程主机是否正常,或是两个主机之间的网络或网卡故障

3. 服务管理

3.1 介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如:mysqld、sshd 防火墙等,因此我们又称其为守护进程

3.2 service 管理指令

  • service 指令

    service 服务名 [start | stop | restart | reload | status]
    
    // start 开启服务
    // stop 关闭服务
    // restart 重启服务
    // reload 重装服务
    // status 查看状态
    
  • 在 CentOS7.0 后很多服务不再使用 service 指令去管理了,而是使用 systemctl 指令

  • service 指令管理的服务在 /etc/init.d 中查看

  • 查看系统中所有服务指令

    setup
    
    // 带✳的表示自动启动
    // 可以通过把光标放在✳上,按住空格键,来取消✳ 
    

3.3 服务的运行级别

Linux 系统有7种运行级别(runlevel),常用的是级别3和5

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1:单用户工作状态,root 权限,用于系统维护,禁止远程登录
  • 运行级别2:多用户状态(没有 NFS),不支持网络
  • 运行级别3:完全的多用户状态(有 NFS),无界面,登录后进入控制台命令行模式
  • 运行级别4:系统未使用,保留
  • 运行级别5:X11 控制台,登陆后进图图形 GUI 模式
  • 运行级别6:系统正常关闭并启动,默认运行级别不能设为6,否则不能正常启动

开机流程说明:

  • 查看当前运行级别

    systemctl get-default
    
  • 更改运行级别

    systemctl set-default 要更改的运行级别
    
  • 注意:在 CentOS7 后运行级别在 /etc/initab 文件种进行了简化

    • multi-user.target 表示运行级别3
    • graphical.target 表示运行级别5

3.4 chkconfig 指令

  • 通过 chkconfig 命令可以给服务器在各个不同运行级别时设置自动启动或关闭

  • chkconfig 指令管理的服务在 /etc/init.d 中查看

  • chkconfig 基本语法

    // 查看 chikconfig 管理的服务
    chkconfig
    
    // 查看具体的某个服务
    chkconfig 服务名
    
    // 设置某个服务的自启动或关闭
    chkconfig --level 运行级别 服务名 on/off
    

3.5 systemctl 指令

  • systemctl 管理指令

    systemctl [start | stop | restart | status] 服务名
    // start 开启服务
    // stop 关闭服务
    // restart 重启服务
    // status 查看状态
    

    systemctl 指令管理的服务在 /usr/lib/systemd/system 中查看

  • systemctl 设置服务的自动启动状态

    // 查看各个服务器开机启动状态,可以使用 grep 过滤
    systemctl list-unit-files [ | grep 服务名]
    
    // 设置服务开机启动
    systemctl enable 服务名
    
    // 关闭服务开机启动
    systemctl disable 服务名
    
    // 查询某个服务是否是自动启动的
    systemctl is-enabled 服务名
    

3.6 打开或者关闭指定端口(firewall)

在真正的生产环境中,往往需要将防火墙打开,但是如果打开防火墙,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,例如:80、22、8080

  • 打开端口

    firewall-cmd --permanent --add-port=端口号/协议
    
  • 关闭端口

    firewall-cmd --permanent --remove-port=端口号/协议
    
  • 重新载入,才能生效

    firewall-cmd --reload
    

    打开或者关闭端口之后,要重新载入才能生效

  • 查询端口是否开放

    firewall-cmd --query-port=端口/协议
    

开或者关闭指定端口(firewall)

在真正的生产环境中,往往需要将防火墙打开,但是如果打开防火墙,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,例如:80、22、8080

  • 打开端口

    firewall-cmd --permanent --add-port=端口号/协议
    
  • 关闭端口

    firewall-cmd --permanent --remove-port=端口号/协议
    
  • 重新载入,才能生效

    firewall-cmd --reload
    

    打开或者关闭端口之后,要重新载入才能生效

  • 查询端口是否开放

    firewall-cmd --query-port=端口/协议
    

4. rpm 包的管理

4.1 介绍

rpm 是用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它会生成具有 .RPM 扩展名的文件。RPM 是 RedHat Package Manger(RedHat 软件包管理工具)的缩写,类似于 Windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但是理念是通用的

4.2 rpm 包的简单查询

  • 查询已安装的所有 rpm 软件包,或查询是否安装了某个具体的软件包

    rpm -qa | grep xxx
    

    返回结果是包名,例如:firefox-60.2.2-1.el7.centos.x86_64,其中

    • firefox 是名称
    • 60.2.2-1 是版本号
    • el7.centos.x86_64 是适用操作系统
  • 查询软件包是否安装

    rpm -q 软件包名
    
  • 查询软件包信息

    rpm -qi 软件包名
    
  • 查询软件包中的文件

    rpm -ql 软件包名
    
  • 查询文件所属的软件包

    rpm -qf 文件全路径名
    

4.3 卸载 rpm 包

卸载 rpm 包

rpm -e RPM包的名称

注意:

  • 当删除某个软件包时,可能会报 xxx is needed by sss 的信息,因为你要删除的软件包 xxx 被 sss 引用了。
  • 强制删除,可以增加参数 --nodeps,但是不推荐使用,可能导致依赖该软件包的程序无法运行

4.4 安装 rpm 包

安装 rpm 包

rpm -ivh RPM包全路径名称

参数说明:

  • i 表示 install 安装
  • v 表示 verbose 提示
  • h 表示 hash 进度条

5. yum

5.1 介绍

yum 是一个 shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包

5.2 基本指令

  • 查询 yum 服务器是否有需要安装的软件

    yum list | grep 软件名
    
  • 安装指定的 yum 包

    yum install 包名
    

以上是关于Linux 学习笔记网络配置进程管理rpm 包的管理和 yum 介绍的主要内容,如果未能解决你的问题,请参考以下文章

Linux-网络配置和进程管理

Linux学习笔记:rpm程序包管理

Linux学习导航

学习笔记之rpm程序包管理功能解析

Linux-Centos7学习笔记

Linux笔记 - 服务管理