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

Linux内存管理、进程管理、RPM包安装管理及源码安装软件


一、交换分区

    交换分区其实就相当于Windows系统下的虚拟内存的概念,当物理内存不够用的时候,由操作系统将硬盘的一块区域划分出来作为内存使用。具体使用方法如下:

    

[[email protected] ~]# fdisk -l

磁盘 /dev/sdb:16.1 GB, 16106127360 字节,31457280 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

[[email protected] ~]# 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.

正在同步磁盘。


[[email protected] ~]# mkfs.ext3 /dev/sdb1       #格式化主分区为ext3格式


[[email protected] ~]# swapon -s                 #查看交换设备的使用情况

文件名 类型 大小 已用 权限

/dev/dm-1             partition       2097148 140 -1

[[email protected] ~]# mkswap /dev/sdb5           #将sdb5分区设置为交换分区

正在设置交换空间版本 1,大小 = 5242876 KiB

无标签,UUID=e394c7fd-3d3f-42b8-a396-ea4980250391


[[email protected] ~]# swapon -a /dev/sdb5

[[email protected] ~]# swapon -s

文件名 类型 大小 已用 权限

/dev/dm-1                               partition 2097148 136 -1

/dev/sdb5                               partition 5242876 0 -2

二、内存管理

    指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。

    查看内存使用情况命令:free

    [[email protected] ~]# 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命令的作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

可以用来备份数据,测试硬盘读写速度,修复磁盘等

[[email protected] ~]# 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进程的信息并且将其杀死:

[[email protected] ~]# systemctl start firewalld   #启动防火墙服务

[[email protected] ~]# 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

[[email protected] ~]# kill -9 6115              #-9表示强制杀死进程 也可用pkill+进程名

[[email protected] ~]# ps aux |grep firewall

root       6347  0.0  0.0 112664   976 pts/0    R+   16:45   0:00 grep --color=auto firewall

[[email protected] ~]#

五、RPM软件包管理

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

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

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

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

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

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

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

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

[[email protected] 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软件:

[[email protected] 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软件包中所包含的所有文件:

 [[email protected] 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文件是由哪个软件包产生:

[[email protected] Packages]# rpm -qf /bin/ls

coreutils-8.22-18.el7.x86_64

[[email protected] Packages]#

卸载dhcp软件包:

[[email protected] Packages]# rpm -e dhcp

[[email protected] 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 grouplist

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
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

时间: 2024-10-02 13:59:38

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

Red hat Linux 安装Node.js 源码安装

1. 下载源码包 http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz 2.准备安装环境,>python2.6, gcc, g++ python redhat自带了不用装, gcc:  yum install -y gcc gcc-c++ 3. tar -zxf node-v0.10.29.tar.gz cd node-v0.10.29 ./configure && make && sudo make install

Linux软件安装之源码安装

什么是源码安装?一开始接触到Linux时候感觉很疑惑,安装不就是跟Windows中安装软件一样,下一步-->更改安装位置-->下一步么,用什么源码安装?现在有了些初步的了解,写出来算是做个笔记,与大家分享学习成果吧. 每个程序开发过程中或因考虑不充分出现一些漏洞,或者有些程序模块是你用不到的, 是否只能程序开发者才能解决问题呢?在Linux中不是这样的,每个人可以根据自己的喜好.要求随意改动源代码,自行修改程序为你所用.这样的源码不必再有专门的安装包,可直接编译安装,这就是源码安装的基本思想.

linux之使用rpmbuild打rpm包

linux之使用rpmbuild打rpm包 前言: 已从事linux运维工作数年,感觉自己还是个小菜鸟,没有大神那么的钻研的精神.只是单纯热爱,喜欢对着黑色的屏幕敲击命令,喜欢这种感觉.为什么要做RPM包呢?因为之前公司使用的是开源软件环境,nginx,tomcat,java,等等等等,安装时流程:编译->标准化目录->标准化参数->部署代码.这样纯手操作的话需要一套部署文档,当然根据个人理解和个人功力的不同,部署出来效果都千奇百怪. 所以通过一个星期的学习,大概掌握了写spec,并且总

linux软件包的安装之----编译源码格式的rpm包(后缀名为.src.rpm的软件包)

编译源码格式的rpm包-----à并制作为二进制格式的rpm包 实例 #useradd  mockbuild (需要使用mockbuild用户来编译) #rpm –ivh nginx--src.rpm(会在当前目录下生成rpmbuild目录) #cd rpmbuild;ls(以下是子目录介绍) SOURCES:存放的是程序源代码.补丁.脚本等. SPECS:nginx.spec文件    指示如何解压,打补丁,如何./configure,make,makeinstall,如何封装为nginx-.

Linux基础--------监控系统、进程管理、软件包管理-------free、dd、kill、 rpm、yum、源码安装python

作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G fdisk -l /dev/sdb       查看新增加硬盘sdb的详细信息     第一个硬盘叫sda,新建的第二个就叫sdb,再增加一个就叫sdc,依此类推 fdisk /dev/sdb      给/dev目录下的sdb硬盘座磁盘分区      m  查看帮助 n  添加一个新

Day6.swap命令,进程管理,rmp软件包与yum软件包管理,源码安装

1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G 4) 格式化主分区为ext3系统 5) 将逻辑分区设置为交换分区 6) 启用上一步的交换分区 7) 查看交换分区的状态 作业二:free命令查看内存 整理buffer与cache的作用:两者是用来解决硬盘和内存速度差的问题,实质上是内存上的空间,buffer是还没有写到硬盘里的数据,就是内存数

linux程序包管理与源码安装

一.RPM包简介: linux之所以那么强大,除了linux强大的内核,还有很大一部分取决于linux的软件包,假想没有软件包,就一个内核在运行,人类需要和内核打交道是多么痛苦,但是聪明的人类发明了bash,通过bash,人就可以使用高级语言,和机器沟通,这其中的bash起始也是一个软件包,当然linux除了bash还有各式各样的包,帮助我们完成各种任务,这其中便涉及到程序的包管理. rpm包管理器(原名redhat package manager,后成为行业标准,命名为rpm package

Linux软件包管理之源码安装

Linux软件包管理之源码安装 源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言.Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件.所以如果你的机器上没有安装gcc就没有办法去编译源码.你可以使用 yum install -y gcc 来完成安装. 3.1 源码包安装的步骤 1.拿到源代码,并解压 #tar xf package-version.tar.{gz|bz2|xz} 注意:展开

python学习第六天 - 列表(数组)

python当中的数组与java,c不太一样,数组相当于一个列表,一个列表中可以有,整型,字符串,浮点型等等. 定义格式如下: >>> list = [123,'小甲鱼',3.14] >>> list [123, '小甲鱼', 3.14] 介绍几种向列表中添加元素的方法 1.append() :向列表中增加新的元素,一次只能添加一个元素,默认添加到列表的末尾 >>> list.append('黑夜') >>> list [123, '