吕城宇作业计算机基础6

Posted 简明现代魔法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吕城宇作业计算机基础6相关的知识,希望对你有一定的参考价值。

创建swap分区

Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。例如:安装redhat的时候,你可以默认划分硬盘空间,交换区的大小事系统默认配置,当你安装完系统后需要安装一个oracle数据库,突然发出警告,交换空间不够。此刻该怎么办?

  1. 查看交换分区的方式
    可以通过命令top,free命令查看当前的交换分区。也可以使用cat /proc/swaps查看交换分区

  2. 如何通过swap文件扩充交换空间的大小

例如:增加1G的交换空间
* dd if=/dev/zone of=/myswap bs=2k count=524288 //划分空间
* mkswap /myswap //格式成交换分区的格式
* swapon /myswap //使格式的swap生效
设置后,可以通过上面的命令查看时否生效。当启动系统后需要自动加载交互分区,可以在/etc/fstab文件中增加:/myswap swap swap default 0 0

  1. 如何通过swap分区的方式增加交换空间

  • 如果希望添加一个交换分区(这里假设希望把/dev/hdb5添加为交换分区),这个硬盘不能被正在使用(也就是分区不能被加载,交换空间没有被激活)。分区表在使用时不能被修改,因为内核可能无法正确识别分区表的变化。这样数据可能会写入到错误的分区,而导致数据被覆盖而丢失,因为内核维护的分区表跟硬盘上的分区表不一致造成的。
    解决这个问题最简单的办法是将系统引导进入急救(rescue)模式下进行操作。当提示扫描并加载文件系统时,选择跳过。如果硬盘上没有任何分区被使用,这样就可以卸载分区,使用swapoff命令来关闭该硬盘上所有的交换分区。

  • 使用parted创建交换分区
    以root身份运行: parted /dev/hdb
    在parted命令的提示符,输入print查看当前分区表,以及空闲空间。开始和结束值的单位是MB,然后计算有多少空闲空间,以及你希望划分多少空间给交换分区。
    在parted提示符后,输入mkpartfs part-tyep linux-swap start end,这里part-type是primary、extend或logical。start是分区开始点,end是分区结束点。
    输入exit退出parted

  • 现在已经创建了交换分区,使用mkswap命令设置交换分区:
    mkswap /dev/hdb2

  • 为了立刻激活swap分区,输入以下命令:
    swapon /dev/hdb2

  • 为了在启动时激活它,在/etc/fstab中添加如下内容:
    /dev/hdb2 swap swap defaults 0 0
    下次启动时,系统会自动激活该交换分区。

  • 添加了新分区,并激活它以后,可以通过cat /proc/swaps或者free来查看该交换分区是否已经工作。

linux 系统内存

linux的内存管理机制与windows的有所不同。具体的机制我们无需知道,我们需要知道的是,linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化。内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。

直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的采集流程图。

/proc/meminfo 信息如下:

  • 需要使用的指标有:MemTotal ,MemFree,Buffers,Cached

    MemTotal:总内存大小
    MemFree: 空闲内存大小
    Buffers和Cached:磁盘缓存的大小
    Buffers和Cached的区别:
    buffers 是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
    cached 是用来给文件做缓冲。
    buffers 是用来存储目录里面有什么内容,权限等等。

而cached直接用来记忆我们打开的文件,比如先后执行两次命令#man X,你就可以明显的感觉到第二次的开打的速度快很多。而buffers随时都在增加,比如先后两次使用ls /dev后,就会发现第二次执行的速度会较第一次快。

这就是buffers/chached的区别。

free 命令和内存计算

$ free -m
             total       used       free     shared    buffers     cached
Mem:         1002        769        232          0         62        421
-/+ buffers/cache:        286        715
Swap:         1153          0       1153
---------------------------
真实内存占用 = used-buffers-cached = 286

alias 别名

alias xxx = ‘commond‘

软件包安装

rpm -ivh softname.rpm

rpm -ql 软件包名
-qi
-qf
-q
-qa
-e swname #卸载

yum可以解决依赖性,但是rpm不可以

yum命令详解

yum.conf

[main]
cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=0             #缓存是否保存,1保存,0不保存。
debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log         #yum的日志文件所在的位置
exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1             #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1             #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3         #允许保留多少个内核包。
exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
#       This is the default, if you make this bigger yum won‘t see if the metadata
# is newer on the remote and so you‘ll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don‘t keep old packages around. If you don‘t like this checking
# interupting your command line usage, it‘s much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE or IN separate files named file.repo
# in /etc/yum.repos.d

详解yum.repo文件

什么是repo文件?

repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
我们以一份系统自带的repo文件做为实例来探讨(#号后面是我加的注释):

[fedora]      #方括号里面的是软件源的名称,将被yum取得并识别
name=Fedora $releasever - $basearch   #这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……
failovermethod=priority   #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#上面的一行baseurl第一个字符是‘#‘表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:
baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os
enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥

[name]
name = xxxxx #baseurl = file:///opt
baseurl = http://ip
enable = 1
gpgcheck = 0

yum常用命令

yum clean all #清除缓存
yum makecache #建立缓存

yum grouplist #yum安装包组列表
yum groupinstall ‘软件组‘

yum install epel-* -yum

有时候出现没有找到软件包的情况,需要安装外部源库

yum -y install xxxxx #安装
yum erase xxxxx #卸载
yum remove xxxxx #卸载
yum reinstall xxxxx #重新安装

yum update #包括内核系统更新
yum upgrade #仅更新软件

防止默认更新,需要在yum配置文件中修改默认选项

  • 创建软件源
    download rpm -------------> cangku_httpd
    yum install createrepo -y
    createrepo /cengku_hettpd
    pwd

cat httpd.repo

yum groupinstall
tar xvf Py…

cd /root/P….
.

作业<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

以上是关于吕城宇作业计算机基础6的主要内容,如果未能解决你的问题,请参考以下文章

吕城宇作业计算机基础4

吕城宇作业计算机基础9

软件工程第四次作业

动态SQL基础概念复习(Javaweb作业5)

20155234 2017-2018-1《信息安全系统设计基础》课程总结

听任清宇大佬讲话有感