python全栈开发第6天

作业一:
1) 开启Linux系统前添加一块大小为15G的SCSI硬盘

2) 开启系统,右击桌面,打开终端

3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G

4) 格式化主分区为ext3系统

5) 将逻辑分区设置为交换分区

6) 启用上一步的交换分区

7) 查看交换分区的状态

 

 

作业二:free命令查看内存

整理buffer与cache的作用

Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况(这里我们不去关心)
系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。
total1: 表示物理内存总量。
used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free1: 未被分配的内存。
shared1: 共享内存,一般系统不会用到,这里也不讨论。
buffers1: 系统分配但未被使用的buffers 数量。
cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
used2: 实际使用的buffers 与cache 总量,也是实际使用的内存总量。
free2: 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
  可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1

CentOS 6及以前

$ free
              total       used        free    shared    buffers    cached
Mem:        4040360    4012200       28160         0     176628   3571348
-/+ buffers/cache:      264224     3776136
Swap:       4200956      12184     4188772
$

 内存的使用分作4部分:

  • A. 程序使用的;
  • B. 未被分配的;
  • C. Buffers (buffer cache)
  • D. Cached (page cache)
显然,A (程序使用的) 肯定是used,B (未被分配的) 肯定是free。但是,C (Buffers) 和 D (Cached) 是算作used还是算作free呢?一方面,它们已经被分配了,可以算作used;另一方面,当程序需要时,可以回收它们来使用,可以算作free。所以,怎么算都合理。这就是在free命令的output中,第一行和第二行的区别:
  • 第一行(Mem):Buffers和Cached被算作used。也就是说,它的free是指 B (未被分配的);它的used是指 A + C + D;
  • 第二行(-/+ buffers/cache):Buffers和Cached被算作free。也就是说,它的used是指 A (程序使用的);它的free是指 B + C + D;行名称“-/+ buffers/cache”的含义就是“把Buffers和Cached从used减下来,加到free里”。
搞清这些之后,我们可以算出A,B,C和D各自的值:
  • A=264224
  • B=28160
  • C=176628
  • D=3571348
可见验证一下:
  • total=A + B + C + D
  • 第一行used = A + C + D
  • 第二行free  = B + C + D

CentOS 7 

free命令的out:

# free
          total      used       free   shared    buff/cache    available
    Mem:  507368   284868        48140     4348        174360    181424
    Swap:   6291448     3452  6287996

首先,C (Buffers) 和D (Cached)被和到一起,即buff/cache;
其次,used就是指A (程序使用的);free就是指B (未被分配的);
另外,CentOS 7中加入了一个available,它是什么呢?手册上是这么说的: 
  • MemAvailable: An estimate of how much memory is available for starting new applications, without swapping.也就是一个新启动的应用最大能使用的内存。
前面说过,当程序需要时,可以回收C (Buffers)和D (Cached),那么MemAvailabe不就是B+C+D吗?当程序需要时可以回收C和D,这句话以前是正确,但是现在就不精确了:因为, 现在,C和D中不是所有的内存都可以被回收。所以,大致可以这么理解,MemAvailable = B (未被分配的) + C (Buffers) + D (Cached) - 不可回收的部分。哪些不可回收呢?共享内存段,tmpfs,ramfs等。详细的介绍如下:
 
/proc/meminfo: provide estimated available memory

Many load balancing and workload placing programs check /proc/meminfo to estimate how much free memory
is available. They generally do this by adding up "free" and "cached", which was fine ten years ago,
but is pretty much guaranteed to be wrong today.
It is wrong because Cached includes memory that is not freeable as page cache, for example shared memory
segments, tmpfs, and ramfs, and it do esnot include reclaimable slab memory, which can take up a large
fraction of system memory on mostly idle systems with lots of files.
Currently, the amount of memory that is available for a new workload,without pushing the system into swap,
can be estimated from MemFree, Active(file), Inactive(file), and SReclaimable, as well as the "low"watermarks
from /proc/zoneinfo.
However, this may change in the future, and user space really should not be expected to know kernel internals
to come up with an estimate for the amount of free memory.
It is more convenient to provide such an estimate in /proc/meminfo. If things change in the future, we only
have to change it in one place.

计算真实的内存使用率

# free
          total      used       free   shared    buff/cache    available
    Mem:  507368   284868        48140     4348        174360    181424
    Swap:   6291448     3452  6287996

根据我的内存使用数据来说应该是这样计算内存的使用率的:

内存的使用率=(used+buff/cache)/total=(284868+174360)/507368=90.5%

作业三:dd命令测试硬盘速度

作业四:查找一个名为firewall的进程,并且将其强制杀死

 用命令:ps aux | grep firewall

用命令:kell -9 11006 强制杀死进程

 

作业五:rpm命令
1) 挂载光盘文件到/media目录

2) 进去/media目录下的Packages目录

3) 查看系统已安装的所有rpm包

使用命令:rpm -qa

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

使用命令:rpm -qa | grep dhcp

5) 安装dhcp软件包

6) 查看dhcp软件包的信息

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

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

9) 卸载dhcp软件包

作业六:yum命令
1) 自定义yum仓库:createrepo

2) 自定义repo文件

  1. 在根目录下建立createrepo目录,命令为:

    mkdir /createrepo

  2.将在/media/Packages/目录下找到图片中红颜色名称的安装包用cp命令拷贝到库文件夹/createrepo中;

    

  3.进入/etc/yum.repos.d目录,将里面所有的文件移动到/repos.bak目录中,这里需要说明一下,因为我们在公司里面需要保障软件版本的可靠性、稳定性及兼容性的问题,所以,这里我建议要将系统自己带的yum源文件移动到其他的位置,采用我们自己定制的源,这样我们才能很好的把软件的版块控制好,才能保障客户使用软件的稳定性;

  4.在当前目录下建立并编写文件Local.repo,用此命令:vim Local.repo。

    编辑文件内容为:

    

  5.正式创建我们的安装库:

   createrepo /createrepo 

     

3) 使用yum命令安装httpd软件包

  yum -y install httpd

   


4) 卸载httpd软件包:yum –y remove 软件名

    

5) 使用yum安装组件'KDE 桌面':yum –y groupinstall 组件名

使用的命令为:yum -y groupinstall KDE 桌面,

由于我的系统版本比较新,这里我用的命令为:

yum -y groups install KDE 桌面

由于所安装的文件过多,这里不一一截图了。


6) 掌握使用yum删除组件‘KDE 桌面’:yum –y groupremove 组件名

这里我的命令为:yum -y groups remove KDE 桌面

 


7) 掌握清除yum缓存:yum clean all

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers


8) 使用yum查找软件包:yum search 软件包名

 

作业七:源码安装python

1.解压文件

本人将Python-3.6.0.tgz的源代码文件全部解压到/usr/Python-3.6.0目录中。

2.我们可以在Python-3.6.0目录中找到configure文件进行vim编辑,对prefix字段后面的等号对应的路径(定制用户的安装路径)进行编辑,这里我们不做改动,保持默认,如图:

3.使用./configure 命令检查一下软件的依赖关系,然后用make命令编译Python-3.6.0的源码,然后用make install安装,这里我们可以合并成为一步操作,命令为:

运行./configure后提示如图:

这里提示我们需要安装开发工具,所以,我们运行命令进行安装:

yum -y groups install 开发工具  

安装完成后的结果

 

再次执行./configure的结果如图:

 

make && make install

安装完成。

但是我们要试验一下是否正确的安装,让我来实验一条命令:

但是我们如果想要在任何目录下都能运行此Python3.6的话,我们需要修改一下环境变量:

1、用vim /etc/profile 命令后,在文件的末尾加上两行内容为:

  PATH=/usr/local/bin/:$PATH

  export PATH

保存退出,然后我们再根目录下运行一下python3.6,如图,显然成功了:

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/mojiexiaolong/p/6568180.html