您的位置:首页 > 运维架构 > Linux

Python学习第六天----Linux内存管理、进程管理、RPM包安装管理及源码安装软件

2017-03-17 20:03 936 查看
Linux内存管理、进程管理、RPM包安装管理及源码安装软件
一、交换分区
交换分区其实就相当于Windows系统下的虚拟内存的概念,当物理内存不够用的时候,由操作系统将硬盘的一块区域划分出来作为内存使用。具体使用方法如下:


[root@bogon ~]# fdisk -l

磁盘 /dev/sdb:16.1 GB, 16106127360 字节,31457280 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@bogon ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x61afdd31 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-31457279,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-31457279,默认为 31457279):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):b
There is no *BSD partition on (null).

命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
分区号 (2-4,默认 2):
起始 扇区 (10487808-31457279,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-31457279,默认为 31457279):
将使用默认值 31457279
分区 2 已设置为 Extended 类型,大小设为 10 GiB

命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (10489856-31457279,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-31457279,默认为 31457279):+5G
分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):w #保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@bogon ~]# mkfs.ext3 /dev/sdb1 #格式化主分区为ext3格式

[root@bogon ~]# swapon -s #查看交换设备的使用情况
文件名类型大小已用权限
/dev/dm-1 partition 2097148140-1
[root@bogon ~]# mkswap /dev/sdb5 #将sdb5分区设置为交换分区
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=e394c7fd-3d3f-42b8-a396-ea4980250391

[root@bogon ~]# swapon -a /dev/sdb5
[root@bogon ~]# swapon -s
文件名类型大小已用权限
/dev/dm-1 partition2097148136-1
/dev/sdb5 partition52428760-2

二、内存管理
指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
查看内存使用情况命令:free
[root@bogon ~]# free
total used free shared buff/cache available
Mem: 999936 516024 197684 8696 286228 279348
Swap: 7340024 132 7339892
buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操作系统的性能。但buffers与cached缓冲的内容却是不同的。buffers是用来缓冲块设备做的,它只记录文件系统的元数据(metadata)以及 tracking in-flight pages,而cached是用来给文件做缓冲。更通俗一点说buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。
buffer:还没有被使用的缓冲区域

cache:已经被使用的内存空间,即已经有缓存内容的区域

由上面的数值可以看出total=used+free+buff/cache

内存使用率=(used+buff/cache)/total=80%

三、测试硬盘速度
dd命令的作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
可以用来备份数据,测试硬盘读写速度,修复磁盘等

[root@bogon ~]# dd if=/dev/zero of=/test.txt bs=1G count=1
记录了1+0 的读入
记录了1+0 的写出
1073741824字节(1.1 GB)已复制,21.9436 秒,48.9 MB/秒

四、进程管理


进程是具有一定独立功能的程序关于一个数据集合的一次运行活动
进程具有以下主要特性:
(1)并发性:可以与其它进程一道在宏观上同时向前推进。
(2)动态性:进程是执行中的程序。此外进程的动态性还体现在如下两个方面:首先,进程是动态产生、动态消亡的;其次,在进程的生存期内,其状态处于经常性的动态变化之中。
(3)独立性:进程是调度的基本单位,它可以获得处理机并参与并发执行。
(4)交往性:进程在运行过程中可能会与其它进程发生直接或间接的相互作用。
(5)异步性:每个进程都以其相对独立、不可预知的速度向前推进。
(6)结构性:每个进程有一个控制块PCB。进程和程序的相同点:程序是构成进程的组成部分之一,一个进程存在的目的就是执行其所对应的程序,如果没有程序,进程就失去了其存在的意义。
Linux查询进程状态命令:ps aux

查询firewall进程的信息并且将其杀死:

[root@bogon ~]# systemctl start firewalld #启动防火墙服务
[root@bogon ~]# ps aux |grep firewall #查询防火墙进程信息
root 6115 1.8 2.6 327392 26904 ? Ssl 16:39 0:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
root 6240 0.0 0.0 112664 976 pts/0 R+ 16:40 0:00 grep --color=auto firewall
[root@bogon ~]# kill -9 6115 #-9表示强制杀死进程 也可用pkill+进程名
[root@bogon ~]# ps aux |grep firewall
root 6347 0.0 0.0 112664 976 pts/0 R+ 16:45 0:00 grep --color=auto firewall
[root@bogon ~]#

五、RPM软件包管理

RedHat Package Manager即红帽软件包管理器,起源于RedHat,但是现在大多数Linux也在使用包括CentOS

命令格式:rpm -ivh 需要安装的软件包 i表示安装 v表示详细信息 h表示进度条

rpm -qa |grep *** 查询当前系统已经安装的软件包

rpm -ql 软件包名 查询软件包安装位置即软件包所有文件

rpm -e 软件包名 卸载已经安装的软件包

rpm -qi 软件包名 查询需要安装的软件包信息

rpm -qf 文件名 查询一个文件属于哪个软件包

查看系统是否安装dhcp软件包:

[root@bogon Packages]# rpm -qa|grep dhcp
dhcp-libs-4.2.5-47.el7.centos.x86_64
dhcp-common-4.2.5-47.el7.centos.x86_64
安装dhcp软件:

[root@bogon Packages]# rpm -ivh dhcp-4.2.5-47.el7.centos.x86_64.rpm
警告:dhcp-4.2.5-47.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f 4a80eb5: NOKEY
准备中... (1################################# [100%]
正在升级/安装...
:dhcp-12:4.2.5-47.el7.centos ################################ [100%]

查看dhcp软件包中所包含的所有文件:

[root@bogon Packages]# rpm -ql dhcp
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/12-dhcpd
/etc/dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
/usr/share/doc/dhcp-4.2.5/ldap
/usr/share/doc/dhcp-4.2.5/ldap/README.ldap
/usr/share/doc/dhcp-4.2.5/ldap/dhcp.schema
/usr/share/doc/dhcp-4.2.5/ldap/dhcpd-conf-to-ldap
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/usr/share/systemtap/tapset/dhcpd.stp
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

查看/bin/ls文件是由哪个软件包产生:

[root@bogon Packages]# rpm -qf /bin/ls
coreutils-8.22-18.el7.x86_64
[root@bogon Packages]#

卸载dhcp软件包:

[root@bogon Packages]# rpm -e dhcp
[root@bogon Packages]# rpm -qa |grep dhcp
dhcp-libs-4.2.5-47.el7.centos.x86_64
dhcp-common-4.2.5-47.el7.centos.x86_64

六、YUM
为了方便的安装与更新系统软件包,可以使用yum工具,可以配置自己的yum库,自己的依赖关系库,最好配置自己的yum安装源,并将安装文件下载到自己的yum库,这样有助于软件版本控制及其他管理工作。

(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。概括了部分常用的命令包括:自动搜索最快镜像插件: yum install yum-fastestmirror
安装yum图形窗口插件: yum install yumex
查看可能批量安装的列表: yum grouplist1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group12 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group13 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包4 删除程序
yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers比如,要安装游戏程序组,首先进行查找:
#:yum grouplist
可以发现,可安装的游戏程序包名字是”Games and Entertainment“,这样就可以进行安装:
#:yum groupinstall "Games and Entertainment"
所 有的游戏程序包就自动安装了。在这里Games and Entertainment的名字必须用双引号选定,因为linux下面遇到空格会认为文件名结束了,因此必须告诉系统安装的程序包的名字是“Games and Entertainment”而不是“Games"。此外,还可以修改配置文件/etc/yum.conf选择安装源。可见yum进行配置程序有多方便了吧。 自定义YUM库实操截图:











七、源码安装Python3.6














内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux YUM RPM