作业一:
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,如图,显然成功了:

 

 

 

 

 

 

python全栈开发第6天的更多相关文章

  1. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  2. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  3. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  4. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  5. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  6. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  7. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  8. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  9. Python全栈开发

    Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...

  10. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师

    为什么要写这个系列博客呢? 说来讽刺,91年生人的我,同龄人大多有一份事业,或者有一个家庭了.而我,念了次985大学,年少轻狂,在大学期间迷信创业,觉得大学里的许多课程如同吃翔一样学了几乎一辈子都用不 ...

随机推荐

  1. Qt设置按钮为圆形

    通过Qt 的样式表实现圆形按钮,其也可以实现圆角按钮,当然也可以使用其他的方式,比如说,通过派生按钮类使用绘图事件,进行一个图形的绘制,或者是通过自定义一个类,通过信号与槽的机制与绘图事件的配合也能实 ...

  2. 使用tomcat-maven-plugin自动化部署应用

    目标:将应用自动打包并自动部署到远程tomcat容器. 1.在pom.xml中添加plugin <plugin> <groupId>org.apache.tomcat.mave ...

  3. 代码检查工具sonarqube介绍

    SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量.通过插件形式,可以支持众多计算机语言. 比如 java, C#, go,C/C++, PL/SQL,Cobol,Jav ...

  4. loj2613 「NOIP2013」华容道[最短路]

    感觉和以前做过的一个推箱子很像,都是可以用bfs解决的,而且都是手玩出结论. 因为起始棋子肯定是要和空格交换的,所以第一件事是先把空格移到棋子旁边.然后讨论怎么设计搜索状态.由于和推箱子实在太像了,所 ...

  5. Storm实践(一):基础知识

    storm简介 Storm是一个分布式实时流式计算平台,支持水平扩展,通过追加机器就能提供并发数进而提高处理能力:同时具备自动容错机制,能自动处理进程.机器.网络等异常. 它可以很方便地对流式数据进行 ...

  6. MQTT 入门介绍——菜鸟教程

    一.简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级& ...

  7. pipeline和baseline是什么?

    昨天和刚来项目的机器学习小白解释了一边什么baseline 和pipeline,今天在这里总结一下什么是baseline和pipeline. 1.pipeline 1.1 从管道符到pipeline ...

  8. JS 实现复制一个或多个内容到剪贴板

    需要实现的功能:点击button,复制如下值到剪贴板, 链接:http://192.168.0.203:7083/share/nRrDLqBBJFjXQ5lk9Nv60GV6 提取码: 3NmH 常用 ...

  9. Python 读写XML文件

    Python 生成XML文件 from xml.dom import minidom # 生成XML文件方式 def generateXml(): impl = minidom.getDOMImple ...

  10. Chrome安卓H5调试,连接手机检测不到页面

    Chrome安卓H5调试,连接手机检测不到页面,重启什么的都不行,未找到设备,或者offline,怎么办? 首先手机开启调试模式是必须的 然后用adb工具箱,cmd进来 运行命令 adb kill-s ...