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)
- 第一行(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=264224
- B=28160
- C=176628
- D=3571348
- total=A + B + C + D
- 第一行used = A + C + D
- 第二行free = B + C + D
CentOS 7
# free
total used free shared buff/cache available
Mem: 507368 284868 48140 4348 174360 181424
Swap: 6291448 3452 6287996
- 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等。详细的介绍如下:
ago,
memory
a large
into swap,
"low"watermarks
internals
we only
计算真实的内存使用率
# 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文件
- 在根目录下建立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,如图,显然成功了:
最新文章
- Js 变量声明提升和函数声明提升
- 自己动手写插件底层篇—基于jquery移动插件实现
- 使用re-sign.jar对apk进行重签名
- 使用的组件:Layui
- CruiseControl.NET/CCNET配置(SVN+MSBuild+BAT+FTP)
- Javascript 笔记与总结(2-9)获取运行时的 style 对象
- 5月5日 while、do{}while
- 数据结构 《6》----堆 ( Heap )
- Hadoop-chd4.4.0安装
- POJ 1666
- duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包
- PHP:PHP5.4连接SQLSERVER
- /dev/shm(转)
- Django学习-8-模板渲染的一些特性
- 任意模数NTT学习笔记
- 构建可扩展的微博架构(qcon beijing 2010演讲)#高并发经验值#
- mssql sqlserver 批量删除所有存储过程的方法分享
- Building Fire Stations ZOJ - 3820 (二分,树的直径)
- 【C++】:STL迭代器使用---[容器::iterator iter;]
- GIS中的数据库.gdb与.mdb的区别