以下所有操作默认在root权限下执行,桌面环境是kde,使用gnome的也可以参考一下。
我收集的以下要用到的一些安装包,这是百度网盘的地址 http://pan.baidu.com/s/1sjM5IHJ
以下要用的安装软件语法:
通过软件源在线安装:
sudo yum -y install 软件名
其中参数-y为所有选项均选则yes,不加-y则要手动确认
通过本地rpm包安装:
sudo rpm -ivh 软件名
其中参数-i为安装,-vh为列出安装过程
1、将安装光盘构建为本地yun源
1.安装createrepo
yum install createrepo
2.复制光盘镜像文件到/usr/local/src
cp CentOS-7.0-1406-DVD.iso /usr/local/src
3.将安装光盘文件挂载
mkdir /media/CentOS7-LocalSource
mount -t iso9660 -o loop /usr/local/src/CentOS-7.0-1406-DVD.iso/media/CentOS7-LocalSource
4.设置开机自动挂载光盘镜像
vi /etc/fstab
在最后添加一行(注意:fstab写错了会进入emergency mode,无法正常加载系统)
/usr/local/src/CentOS-7.0-1406-DVD.iso /media/CentOS7-LocalSourceiso9660 defaults,ro,loop 0 0
5.重写repodata(未修改光盘镜像不需要此操作)
cd /media
createrepo CentOS7-LocalServer
6.配置源
vi /etc/yum.repos.d/CentOS7-LocalServer.repo
[CentOS7-LocalServer]
name=LocalServer
baseurl= ftp://192.168.1.119/CentOS7-LocalServer
enable=1
gpgcheck=0
7.重新建立yum缓存
yum clean all
yum makecache
8.本地yum源搭建完成
2、配置kde桌面语言中文显示
我装的是kde桌面,刚装好时桌面是英文显示的,所以现在来配置一下
yum listkde*chinese
yum install kde-l10n-Chinese.noarch
二、添加第三方软件源1、添加rpmforge源
该源听说很强大,不过我看了下目前centos7的软件包并不多,关于5和6的包倒是很多
下载地址:http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
安装:
cd ~/下载
rpm –ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
2、添加elrepo源
该源包含NVIDIA显卡驱动
下载地址:
http://elrepo.reloumirrors.net/elrepo/el7/x86_64/RPMS/elrepo-release-7.0-1.el7.elrepo.noarch.rpm
安装:
cd ~/下载
rpm –ivh elrepo-release-7.0-1.el7.elrepo.noarch.rpm
3、添加epel源
该源包含很多fedora移植过来的软件
下载地址:http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
安装:
cd ~/下载
rpm -ivh epel-release-7-2.noarch.rpm
4、添加mosquito源
该源包含的软件有(配合nux-dextop源使用)
pidgin-lwqq - 使用 WebQQ 协议编写的 pidgin-QQ 插件
pidgin-openfetion - 使用 fetion v4 协议编写的 pidgin 飞信插件
pidgin-sendscreenshot - pidgin 截图插件
wiznote - 为知笔记
sogou-pinyin - 搜狗拼音输入法,基于 fcitx 框架开发
sogou-pinyin-skins - 搜狗拼音输入法皮肤
fcitx-googlepinyin - 基于 fcitx 框架的谷歌拼音输入模块
fcitx-rime - 中州韵输入法
fcitx-libpinyin - 基于 fcitx 框架的 libpinyin 输入法
fcitx-sunpinyin - 基于 fcitx 框架的 sunpinyin 输入法
fcitx-configtool, kcm-fcitx - GTK 和 KDE 下的 fcitx 配置工具
openyoudao - 一个 python 编写的有道词典 linux 客户端
deepin-music-player - 深度音乐播放器
dmusic-plugin-baidumusic - 深度音乐播放器的百度音乐插件
osdlyrics - 支持多款音乐播放器的桌面歌词软件
pointdownload - 一款方便高效的下载软件
mvgather - 一款支持影视点播的视频客户端,内容来自 yunfan.com
deepin-screenshot - 深度截图
deepin-translator - 深度翻译
xware-desktop - 迅雷桌面版
bcloud - 百度云的 linux 客户端
screenfetch - 获取系统/主题信息的命令行工具
musicbox - 网易云音乐的命令行客户端
moonplayer - 视频播放器,支持搜索播放 youku, tudou, iqiyi, sohu, 56, funshion 的网络视频
gouyong - 够用翻译,支持取词
doubanfm-qt - 基于 Qt5 开发的 DoubanFM 客户端
douban.fm - 基于 NodeJS 开发的 DoubanFM CLI 客户端
1)方法一:直接安装
终端输入,回车即可
yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm-E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
2)方法二:手动编写repo文件
若方法一不可用,用vi新建一个/etc/yum.repos.d/mosquito-myrepo.repo文件
vi /etc/yum.repos.d/mosquito-myrepo.repo 往里面写入一下语句 [mosquito-myrepo]
name=Copr repo for myrepo owned by mosquito
baseurl=http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo/epel-7-$basearch/
skip_if_unavailable=True
gpgcheck=0
enabled=1
按:wq保存退出5. 添加nux-dextop源1)方法一:直接安装
终端输入,回车即可
yumlocalinstall http://li.nux.ro/download/nux/dextop/el$(rpm -E %rhel)/x86_64/nux-dextop-release-0-2.el$(rpm-E %rhel).nux.noarch.rpm
2)方法二:
下载:
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
安装:
cd ~/下载
rpm –ivh nux-dextop-release-0-1.el7.nux.noarch.rpm
6.运行以下命令生成以上第三方源的yum缓存
sudo yum cleanall
sduo yummakecache
7、安装fastestmirror
一个自动选择最快的yum源的插件
安装方法:
1)搜索fastestmirror包的全名
sudo yum searchfastestmirror
2)假设搜索的结果是“yum-fastestmirror-noarch”,那么输入命令
sudo yum installyum-fastestmirror-noarch
8、如果不想这么麻烦自己安装第三方源,可以将我在百度网盘里提供的repo和gpg直接复制到本机centos7上就可以了
导入repo
cdrepo目录
cp*.repo /etc/yum.repos.d
导入repo的密钥gpg
cdgpg目录
cp* /etc/pki/rpm-gpg
三、安装一些日常应用软件1、安装chrome浏览器
Firefox是各centos7发行版默认的浏览器,chrome是Google出品的一款很强大的浏览器,所谓Google出品,必属精品。还有adobe-flash插件的安装。chrome访问不了官网, adobe-flash插件可以分别到官网下载,在软件源里都没有,前面已经给出了我的百度网盘分享地址
安装方法:
1)安装chrome
首先进入rpm安装包所在目录,cd命令参照前面,后面所有安装均要进入安装包所在目录,不再提示。
运行下面这条命令
sudo rpm –ivh google-chrome*.rpm
如果提示缺少什么依赖包,则安装依赖包后在执行,后面的软件安装缺少依赖包时参照此处依赖包的安装,依赖包的安装方法
sudo yum –y install 依赖包1 依赖包2 依赖包n
2)安装adobe-flash插件
sudo rpm –ivh flash*.rpm
2、安装桌面插件cairo-dock
一个仿苹果风的桌面插件。这个安装后要在 系统设置->桌面效果 设置,忘了哪个效果了,应该是跟透明相关的效果,否则有一条黑黑的条条,很难看
yum install cairo-dock
3、压缩与解压缩工具
Linux下打包压缩解压缩一般用的是tar、gzip、bzip2命令,tar打包后的压缩包通常为*.tar.gz或*.tar.bz,gzip压缩后的文件为*.gz,bzip2压缩后的文件为*.bz。也有办法解压缩zip文件。但对于新手来说,win平台常见的rar、zip和7z文件使用unrar、unzip和p7zip可能更为适合,现在我们来安装一下。
安装方法:
1)安装unrar和unzip
sudo yum install unrar unzip
2)安装p7zip
sudo yun install p7zip
4、在线音乐kwplayer
这是一个酷我音乐盒的linux版本,kwplayer 是linux桌面下的轻量级的音乐播放软件, 由LiuLang同学开发, 使用的是Python3+gtk3, 开源的(GPLv3),地址为https://github.com/LiuLang/kwplayer
方法:
sudo rpm –ivh kwplayer*.rpm
这个要安装音频解码器等依赖包,根据依赖检测缺失的包安装一下就好
5、视频播放器Mplayer和smplayer
yum install mplayer smplayer
6、视频播放器VLC
yum -y --enablerepo=nux-dextop installgstreamer-ffmpeg gstreamer-plugins-ugly gstreamer-plugins-bad ffmpeg libvdpaumpg123 gstreamer-plugins-bad-nonfree gstreamer1-libavgstreamer1-plugins-bad-freeworld
yum install vlc
7、办公软件
默认安装的libreoffice是开源的办公软件,兼容微软的office的各种文档格式,但是有点问题就是可能两者的显示效果并不一致,不知道是不是跟文字编码和字体有关,这一点上国产的WPS则要好一点点,所以一般linux和windows的文档交流用的是pdf文档。因为不同系统对office文档的显示效果并不那么一致,就连win系统不同版本间对office的显示效果有时都会不一样。
安装方法:
安装wps,wps for linux下载地址
http://community.wps.cn/download/
sudo rpm –ivh wps-office*.rpm\
然后这个在centos7上面缺少好多依赖包,一个个把依赖包安装上去吧,参照前面的方法
安装后打开wps是可能会提示缺少字体,可以到win系统下把字体复制到/usr/share/fonts/文件夹下就是了。因为那些字体是有版权的,wps并没有集成。
8、PDF阅读器
Centos7自带的okular挺好用的
9、chm阅读器
我从fedora20上移植过来的kchmviewer,所有第三方源似乎都没有关于chm阅读的软件,前面的百度网盘有分享
rpm –ivh chmlib-0.40-9.el7.x86_64.rpm kio_msits-5.2-5.el7.x86_64.rpmkchmviewer-common-5.2-5.el7.noarch.rpm kchmviewer-5.2-5.el7.x86_64.rpm
10、图形处理工具gimp和矢量图处理工具inkscape
Windows下有Photoshop这个图形处理软件,而linux下对应的图形处理工具则是gimp,值得一提的是,gimp比Photoshop还要强大一些,可以直接输出视频。而inkscape则是处理矢量图的工具,类似与illustrator
安装方法:
sudo yum install gimp
sudo yum install inkcape
11、翻译词典stardict
星际译王(stardict)是利用GTK(GIMP TOOLKIT)开发的国际化的、跨平台的自由的桌面字典软件。它并不包含字典档,使用者须自行下载配合使用。它可以运行于多种不同的平台,如Linux, MicrosoftWindows,FreeBSD及Solaris,并使用GPL授权。这是从fedora20源里弄下来的,直接用,没什么bug
安装方法:
rpm –ivh stardict-3.0.5-1.fc20.x86_64.rpm
词库安装:(我在百度网盘里有分享)
cp 词库 /usr/share/stardict/dic
12、linux版百度云管家bcloud
这个也是kwplayer的作者编写的,我们已经添加了源,直接装就好了
yum installbcloud
13、邮件收发工具thunderbird
yuminstall thunderbird
14、录制桌面操作视频的工具qt-recordMyDesktop
Kde桌面安装
yum installqt-recordmydesktop
gnome桌面安装
gtk-recordmydesktop
15、linux版迅雷
//TODO需要依赖包python3-qt5这个包没解决
16、linux版有道
可惜只有屏幕取词的功能
yuminstall openyoudao
17、影视集结号mvgather
可以看在线电视和一些在线视频
yuminstall mvgather
18、Moon Player
视频播放器,支持搜索播放 youku,tudou, iqiyi, sohu, 56, funshion 的网络视频
yum installmoonplayer
19、screenfetch
获取系统/主题信息的命令行工具,大神都在用
yuminstall screenfetch
20、点载pointdownload
一款方便高效的下载软件,支持 HTTP,BT, Magnet, ed2k, Thunder 等下载协议,支持迅雷离线加速和高速通道功能,支持视频下载功能。
yuminstall pointdownload
四、磁盘管理与刻录、启动U盘制作1、图形化分区和格式化磁盘工具gparted
在 Linux 中调整分区最简单的方法是使用GParted 程序。它拒绝在任何当前挂载的分区上进行操作,不能调整根目录(/)或者其他对操作系统功能来说至关重要的分区,避免了误操作。当然要调整这些至关重要的分区还是可以在命令行进行的。
安装方法:
yum install gparted
2、专业的图形化光盘刻录工具k3b
K3b(KDE Burn Baby Burn)是一个设计给 KDE在Linux或其它类Unix系统上的CD/DVD烧录的自由软件 。当然各linux发行版一般都有自带磁盘刻录的工具啦。
Centos7自带了,挺好用的,效果不比Nero差
3、Linux下制作USB安装盘(启动U盘)
在windows下我们使用通过制作PE或者使用UltraISO写入硬盘映像的方法来制作USB引导安装盘,也就是所谓的启动U盘,在linux下也是可以做到的,通过unetbootin这个傻瓜式的图形软件就可以一键制作各linux发行版的USB引导盘,但可惜的是unetbootin并不支持win系统的USB安装盘的制作。没有关系我们可以使用gparted、ms-sys、cp等工具进行制作win系统的USB引导盘,下面就来介绍一下。
安装方法:
1) 制作linux各发行版USB安装盘
yum installunetbootin
然后打开unetbootin这个软件就可以一键制作linux各发行版USB安装盘了。
2)制作win7系统的USB安装盘
有三步:
第一步:使用gparted格式化U盘为NTFS格式
第二步:使用ms-sys -7 /dev/sdb 写入win7引导信息到dev/sdb磁盘上面,注意看你的U盘设备是什么,是“dev/sdb”还是“dev/sdc”
第三部:挂载win7.iso和你的U盘,复制win7.iso里面的所有信息到U盘去,可以使用cp –r命令或直接在图形化的文件管理器里用鼠标进行复制。
gparted前面已经介绍了安装的方法,现在介绍安装ms-sys这个微软出品的在开源linux上使用的写入win系统引导信息的命令行工具,去官网下载一个最新版,http://sourceforge.net/projects/ms-sys/
只有源码的makefile文件,没有前面用的那种rpm包,所以我们要手动编译并安装
在终端进入下载的ms-sys目录下,运行命令
sudo make
这时如果没有错误提示则在运行make install命令,如果提示找不到cc或gcc,那就是没有安装gcc编译器的意思。
这时就可以先运行命令安装gcc编译器
sudo yum install gcc
安装完gcc编译器后,我们再运行
sudo make
sudo make install
安装完ms-sys命令后,我们可以运行ms-sys命令测试一下,这是就可以看到ms-sys的具体用法了。
然后我们使用之前安装的图形化gparted工具将U盘格式化为NTFS格式,win7安装盘一定要是NTFS格式,否则制作的引导盘无法引导win7系统,
格式化后关闭gparted,打开终端,然后输入partprobe命令刷新磁盘信息
然后写入win7引导信息到U盘,运行命令
ms-sys -7 /dev/sdb
-7这个参数是写入win7引导信息的意思,/dev/sdb是你的U盘设备名
最后挂载win7.iso并复制所有iso里的文件到你的U盘里面,可以使用如下命令
挂载win7.iso
sudo mount 路径/win7.iso /mnt/media
复制文件
cp –r /mnt/media/* U盘的挂载路径
因为win7.iso有3.2G大小,复制需要10-20分钟时间,耐心等待就好
如果你觉得命令行下看不到进度条不放心,也可以使用图形化的文件管理器进行复制
复制完后就win7USB引导设备就制作完成了,XP和win8我没有尝试,应该也是可以成功的。
如果是作为桌面使用,以上的软件已经足够像在windows上那样随心所欲地操作了,但如果作为开发者而言,一些开发环境的安装是不能不知道的。比如C/C++的编译器GCC,Java的编译与运行环境JDK,目前比较流行的Java的集成开发环境eclipse,甚至还有Oracle数据库、apache服务器等等。
1、安装GCC编译器
如果安装centos7时没有选择安装开发环境那一项,那么
yum install gcc gcc-c++
2、安装openjdk
openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearchLicense,Java研究授权协议)发布。至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。
我们安装openjdk7就好了
1)安装java程序运行环境
java-1.7.0-openjdk.x86_64(Java程序的运行环境,libreoffice等多数开源程序的运行就是基于此)
yum install java-1.7.0-openjdk.x86_64
1) 安装java开发环境
java-1.7.0-openjdk-devel.x86_64(开发环境,Java的编译环境)
sudoyum –y install java-1.7.0-openjdk-devel.x86_64
3、安装linux下的常用文本编辑器
vi是所有linux下的强大命令行文本编辑器,vim是vi的升级版本,有高亮显示的功能,已经是一个代码编辑器了,很多程序员都喜欢用vim或者emacs作为写C/C++代码的编辑器。nano是一个易于使用的命令行文本编辑器。gedit是gnome桌面默认的图形文本编辑器,对应的,KDE桌面也有一个默认的图形文本编辑器叫kwrite。
安装方法:
1)安装vim
sudo yum –y install vim
2)安装nano
sudo yum –y install nano
3)安装emacs
sudo yum –y install emacs
4、安装eclipse
Eclipse是目前比较流行的Java集成开发环境(Eclipse官网下载的绿色软件,解压后直接用)
tar -zxvf eclipse-jee-luna-SR1-linux-gtk-x86_64.tar.gz -C ~
5、安装oracle11g数据库
rpm –ivh oracle-xe-11.2.0-1.0.x86_64.rpm
6、安装tomcat服务器
tomcat官网下载的绿色软件,解压后直接用
tar-zxvf apache-tomcat-7.0.56.tar.gz -C ~
五、几个常见问题的说明1、当前用户不在sudoers文件中
解决办法是,将当前用户写到/etc/sudoers文件中
1)切换到root用户
su –
2)修改/etc/sudoers文件权限,修改为可写权限
chmod 777 /etc/sudoers
3)使用gedit或kwrite编辑/etc/sudoers文件
添加要提升权限的用户;在文件中找到root ALL=(ALL)ALL那一行,在该行下添加提升权限的用户信息,比如我的用户名为“jison“,就填上jison如:
root ALL=(ALL) ALL
jison ALL=(ALL) ALL
说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
4)保存退出,并恢复/etc/sudoers的访问权限为440
chmod440 /etc/sudoers
5)切换到普通用户,测试用户权限提升功能
sudo命令
2、音乐格式不支持播放
那是因为没有安装到相关的音乐解码器,安装一下以下音频解码器就好了。
安装音频解码器:(可以一条命令一起安装,每个包之间用空格隔开即可,这样写只是为了大家知道有哪些包)
sudo yum install ffmpeg
sudo yum install ffmpeg-libs
sudo yum install gstreamer-ffmpeg
sudo yum install xvidcore
sudo yum install libdvdread
sudo yum install libdvdnav
sudo yum install lsdvd
sudo yum install gstreamer-plugins-good
sudo yum install gstreamer-plugins-bad
sudo yum install gstreamer-plugins-ugly
sudo yum install gstreamer-plugins-bad
sudo yum install gstreamer-ffmpeg
3、视频格式不支持播放
那是因为没有安装到相关的视频解码器,安装一下以下视频解码器就好了。
安装视频解码器:(可以一条命令一起安装,每个包之间用空格隔开即可,这样写只是为了大家知道有哪些包)
sudo yum install ffmpeg
sudoyum install ffmpeg-libs
sudo yum install gstreamer-ffmpeg
sudo yum install libmatroska
sudo yum install xvidcore
4、centos7的备份与还原和grub2修复
centos7备份还原与grub2引导和rescue模式修改root密码
一.centos7备份
1.su -
2.cd /
3.tar -zpPcvf backup.tgz --exclude=/sys --exclude=/mnt --exclude=/proc--exclude=/lost+found --exclude=backup.tgz /
二.centos7还原(原系统挂掉解决办法,系统没挂直接tar即可还原)
1.centos7安装盘进入援救模式
2.给磁盘分区(sda1用作根目录,sda2用作交换分区)
fdisk/dev/sda
p 向屏幕打印硬盘的分区
d 删除分区
n 新建分区
w 保存更改并退出
q 退出不保存之前的操作
3.格式化分区
mke2fs-t ext3 /dev/sda1 将/dev/sda1格式化为ext3文件系统
mkswap/dev/sda2 将/dev/sda2格式化为交换分区
4.挂载/dev/sda1到centos启动盘援救系统的/mnt目录下
mount/dev/sda1 /mnt
5.还原系统备份到/dev/sda1所挂载的目录/mnt
tar-zpxvf backup.tgz -C /mnt
三.安装grub并写入引导信息到mbr
1.更改/dev/sda1所挂载的目录/mnt为根目录
chroot/mnt
2.挂载proc和sysfs
mount-t proc proc /proc
mountsysfs /sys -t sysfs
3.安装grub2到/dev/sda的mbr
grub2-install/dev/sda1
4.更新/boot/grub2/grub.cfg和/etc/grub2.cfg的信息
grub2-mkconfig-o /boot/grub2/grub.cfg
grub2-mkconfig-o /etc/grub2.cfg
{/**
* @引申的命令
* 查看默认引导的内核 grub2-editenvlist
* 修改默认引导的标题 grub2-set-default"标题"
* 未chroot时使用(假设/mnt为根目录挂在位置) grub2-install --directory-root=/mnt/dev/sda
*/
}
5.把/etc/fstab文件中的uuid标识符改为硬盘设备分区
比如:
行首的UUID=03feda9-c221-4375-a6bf-0b80bd875323改为/dev/sda1
UUID=f4e3d0dc-df2f-446f-9403-0e51835ca4b3改为/dev/sda2
四.更改root密码(不知道为何,没有这个操作进不了系统)
1.开机选择界面按e
2.然后在倒数第二行内核vmlinuz那一行后面加 rw single init=/bin/bash,接着Ctrl+X进入但用户模式
3.passwd修改root密码
4.touch /.autorelabel
5.exec /sbin/init(一定要这样启动),接着输入刚刚修改root密码回车,自动重启后就可以进入还原的系统了
5、双系统win7引导项丢失问题
一.用vi编辑/boot/grub2/grub.cfg文件
vi /boot/grub2/grub.cfg
找到下面这段
### BEGIN /etc/grub.d/30_os-prober ###
### END/etc/grub.d/30_os-prober ###
修改为下面这段(+2没有空格)
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7"{
insmod part_msdos
insmod ntfs
set root=*(hd0,msdos1)*
search --no-flooppy --fs-uuid --set6a9463b094637e07
chainloader +2
}
### END/etc/grub.d/30_os-prober ###
查看分区的uuid
blkid/dev/sda1
二.修改win7为默认启动系统
查看默认引导的内核
grub2-editenv list
修改默认引导的系统(双引号内的字符串为上面修改grub.cfg的"Windows7")
grub2-set-default "Windows 7"
6、ibus拼音输入法
按win+空格就可以切换输入法了,这里提一下,免得找不到
7、给konsole做一个快捷键Ctrl+Alt+T
打开 系统设置->快捷方式->手势自定义快捷键->编辑->新建->全局快捷键->命令/URL-
快捷方式命名为“konsole“
触发器->快捷键输入“Ctrl+Alt+T”
动作->命令/URL输入“/usr/bin/konsole”
最后点击应用就ok了
8、解决ntfs格式的磁盘挂载
1.下载
http://www.tuxera.com/community/ntfs-3g-download/
2.编译工具(若没有yum安装一下)
gcc compiler, libc-dev libraries
3.编译安装()
./configure
make
make install # or *sudo make install* ifyou aren*t root
4.挂载ntfs分区(以挂载/dev/sdb1为例)
mount -t ntfs-3g /dev/sdb1 /mnt/windows
5.卸载ntfs分区
umount /dev/sdb1
6.设置开机挂载
vi /etc/fstab
到最后一行添加
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0
9、配置konsole字体和外观
konsole默认状态极丑,文字有时显示不全,我们只要设置一下就好了
设置->管理配置方案->编辑配置方案->外观
选择自己的配色方案和背景,编辑需要的效果即可
字体选择自己喜欢的一个,调整好大小和显示效果即可
六、centos7的虚拟化1、kvm虚拟机
kvm是未来虚拟化的趋势,因为从内核2.6.20开始已经整合到内核里面了,又称为基于内核的虚拟机。
它和xen均是虚拟化的解决方案,但是目前中国用的较多的还是xen的解决方案,xen的高手也多一些。
1.安装
查看虚拟支持情况:grep-E *svm|vmx* /proc/cpuinfo
需要注意的是,开启主板BIOS里的AMD或者INTEL的CPU的虚拟化支持。
如果是服务器上的实装,一般都不会安装GUI,采用最小化安装,那么执行以下命令:
yum -y install qemu-kvm libvirtvirt-install bridge-utils
并且要会设置桥接网卡。这里不再介绍了。
如果是有GUI的界面的,比如我自己的笔记本电脑,那么要简单的多了。
yum install qemu-kvm qemu-imgyum installvirt-manager libvirt libvirt-python python-virtinst libvirt-client
然后重启下电脑。
lsmod | grep kvm
确认模块已经被加装了,如果出现以下两行,则表示模块已安装
kvm_intel 138567 0
kvm 441119 1 kvm_intel
开启libvirtd服务
systemctl start libvirtd
systemctl enable libvirtd
2.配置桥接网络接口
为即将安装的kvm虚拟机配置一个桥接网络接口
vi/etc/sysconfig/network-scripts/ifcfg-br0
我的配置有点像这样
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=br0
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
编辑实际网卡的配置
vi/etc/sysconfig/network-scripts/ifcfg-enp8s0
我的配置有点像这样
DEVICE=enp8s0
TYPE=Ethernet
BOOTPROTO=dhcp
BRIDGE=br0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=enp8s0
UUID=bd4e4309-1113-4223-b94a-509fe0d15c8b
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
然后重启下电脑
reboot
3.安装kvm虚拟机
打开虚拟系统管理器(virt-manager),安装系统挺傻瓜式的,唯一需要注意的是网卡选择上面配置的br0桥接网卡
安装完成之后,就可以使用本地路由器分配的ip地址上网了,也可以通过ip地址进行远程登陆管理形成vpn(虚拟专用网了)
值得一提的是,安装kvm虚拟机时有三种让虚拟机访问外网的方式,即桥接,NAT和Host-only(使用主机网络)
但只有上面用到的桥接方式才能让外网访问安装的kvm虚拟机
2.xen虚拟机
//TODO 用到再说
3.VitualBox虚拟机
这个虚拟机也是开源的,没有vmware好用,仅仅是装过一个winxp
rpm–ivh VirtualBox-4.3-4.3.18_96516_el7-1.x86_64.rpm
//TODO并没有用来测试过桥接网络接口,用到再说
4.VMware虚拟机
VMware应该算是目前最好用的虚拟机软件了,但为什么放到最后说呢,因为上面三个是免费的,它是闭源收费的
好用归好用,但是一般用不起vmware的时候就只好用上面三个了
在CentOS7上安装Vmware 10.0.3。通常,这个版本是不能在CentOS7工作的,因为它只能运行在比较低的内核版本3.10上。
首先,以正常方式下载并安装(没有问题)。唯一的问题是在后来运行vmware程序的时候。
shVMware-Workstation-Full-10.0.3-1895310.x86_64.bundle
如何修复?
1 –进入/usr/lib/vmware/modules/source。
cd /usr/lib/vmware/modules/source
2 –解压 vmnet.tar.
tar -xvf vmnet.tar
3 –进入 vmnet-only 目录。
cd vmnet-only
4 –编辑filter.c文件。
vi filter.c
在206和259行,替换以下字符串:
#if LINUX_VERSION_CODE <KERNEL_VERSION(3, 13, 0)
为:
#if LINUX_VERSION_CODE <KERNEL_VERSION(3, 0, 0)
保存并退出。
5 –回到先前文件夹。
cd ../
6 –再次压缩文件夹。
tar -uvf vmnet.tar vmnet-only
7 –移除旧目录。
rm -fr vmnet-only
8 –启动vmware并体验。
9 卸载Vmware
vmware-uninstall
vmware-installer -l
vmware-installer -u vmware-workstation
这三个命令足够卸载了
10 vmware功能强大,方便易用,跨平台且资料也多,没什么好说的了
七、几种我搭建过的服务器1、ftp服务器
1.安装vsftpd
yum install vsftpd
2.启动关闭
设置开机自启
systemctl enable vsftpd
启动/关闭重启
systemctl start/stop/restart vsftpd
3.关闭防火墙和selinux
systemct disable firewalld
systemctl stop firewalld
vi /etc/selinux/config
将SELINUX改为disabled
reboot
4.通过sftp登陆vsftpd
sftp username@192.168.1.119
5.浏览器访问
ftp://username:password@192.168.1.119
注:192.168.1.119是局域网服务器的ip
查看ip命令ipaddr
2、ftp-yum服务器
无防范的配置:(初学者用)
1.安装createrepo和vsftpd
yum install createrepo vsftpd
2.mkdir /home/ftp
3.cp-r 源的目录 /home/ftp
4.vi/etc/vsftpd/vsftpd.conf
最后添加anon_root=/home/ftp和no_anon_password=YES
6.cd/home/ftp
7.createrepo CentOS7-LocalServer/
8.关闭防火墙和selinux
systemct disable firewalld
systemctl stop firewalld
vi /etc/selinux/config
将SELINUX改为disabled
reboot
9.systemctl enable vsftpd
10.systemctl start vsftpd
1.客户端配置源
vi /etc/yum.repos.d/CentOS7-LocalServer.repo
[CentOS7-LocalServer]
name=LocalServer
baseurl=ftp://192.168.1.119/CentOS7-LocalServer
enable=1
gpgcheck=0
2.yum clean all
3.yum makecache
4.搭建完成,局域网ftp-yum服务器测试
yum install samba
3、samba服务器
centos7安装samba服务器
1.关闭防火墙,systemctlstop firewalld.service 和setenforce0
2.mkdir/home/samba
chmod 777 /home/samba
3.配置smb.conf,vim /etc/samba/smb.conf
smb.conf配置内容
[global]
workgroup= WORKGROUP
netbiosname = cmcc1
serverstring = Linux Samba Server TestServer
security= user #在samba4中share 和server已经被禁用
(表示192.168.1.*的IP)
hostsallow = 192.168.1.
mapto guest =Bad User
[WORKGROUP]
path= /home/samba
writeable= yes
browseable= yes
guestok= yes
3.启动samba服务,systemctl start samba.service
注意:在samba4中share 和server已经被禁用,需要用security = user 和mapto guest =Bad User来实现无密码访问目录
4、ntp服务器
1、NFS的安装需要的软件包;
Centos7:需要nfs-utils和nfs4;
2、使用如下命令查找系统是否已安装如上的软件包;
rpm–qa *nfs*
如果已安装,则直接操作第三步;如果未安装,则运行如下命令安装:
yuminstall nfs4* nfs-util
3、配置服务器端
建立挂载的目录,并且挂载目录,使用如下命令:
mkdir/home/nfs
cd/home/nfs
mkdirtest
然后修改/etc/exports文件,该文件定义了共享目录以及共享规则;
vi/etc/exports
在该文件中加入
/home/nfs192.168.1.119(rw,root_squash)
上面加入的这行的意思是nfs共享的目录是/home/nfs,192.168.1.0/24网段的IP可以访问,访问是读写,客户端可以有root权限;
修改完成后保存退出;
然后运行systemctlrestart nfs重启nfs服务;
4、关闭防火墙,使用如下命令
systemctlstop firewalld
5、配置客户端
客户端上的操作系统与服务端的操作系统相同;也需要安装nfs-utls和rpcbind;
安装后查看是否能正常访问nfs服务
showmount–e 192.168.1.119
出现如下结果说明能正常访问:
Exportlist for 192.168.1.119:
/home/nfs192.168.1.0/24
然后使用如下命令创建本地文件与服务端的挂载点关联
mkdir/home/nfs
mount-t nfs 192.168.1.119:/home/nfs/ /home/nfs/
然后运行ls/home/nfs在客户端看到服务器上共享目录中的文件。并可以对共享目录中的文件进行读写操作;
5、apache服务器
1.安装apache主程序httpd
yum install httpd
2.启动关闭
设置开机自启
systemctl enable httpd
启动/关闭重启
systemctl start/stop/restart httpd
3.在/var/www/html目录存放自己的网页目录就可以访问了
新建一个测试网页
cd /var/www/html
echo "hello world!">helloworld.html
4.在局域网内的任意一台计算机访问测试网页helloworld.html
http://192.168.1.119/helloworkd.html
注:192.168.1.119是局域网apache服务器的ip
查看ip命令ipaddr
6、centos7服务管理、防火墙和selinux设置
1.服务管理
设置服务(service)开机自启和关闭开机自启
systemctl enable/disable service
设置服务启动/重启/关闭
systemctl start/restart/stop service
2.防火墙(firewalld)启动与关闭
防火墙开机自启
systemctl enable firewalld
防火墙关闭开机自启
systemctl disable firewalld
设置防火墙启动/重启/关闭
systemctl start/restart/stop firewalld
3.selinux设置与查看和修改运行模式
设置
vi /etc/selinux/config
找到SELINUX=enforcing这一行
可以修改为以下三个模式
SELINUX=enforcing 强制模式(默认)
SELINUX=permissive 宽容模式(有警告)
SELINUX=disabled 关闭
查看
getenforce
修改运行模式
setenforce 0|1
0 宽容模式(permissive)
1 强制模式(disabled)
systemctl是系统服务管理器命令,它实际上将service 和chkconfig 这两个命令组合到一起。
任务 旧指令 新指令
使某服务自动启动 chkconfig –level3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig –level3 httpd off systemctl disablehttpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息)systemctl is-active httpd.service (仅显示是否Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service
下面以nfs服务为例:
1.启动nfs服务
systemctlstart nfs-server.service
2.设置开机自启动
systemctlenable nfs-server.service
3.停止开机自启动
systemctldisable nfs-server.service
4.查看服务当前状态
systemctlstatus nfs-server.service
5.重新启动某服务
systemctlrestart nfs-server.service
6.查看所有已启动的服务
systemctllist -units --type=service
开启防火墙22端口
iptables-I INPUT -p tcp --dport 22 -j ACCEPT
如果仍然有问题,就可能是SELinux导致的
关闭SElinux:
修改/etc/selinux/config文件中的SELINUX=””为 disabled,然后重启
彻底关闭防火墙:
sudosystemctl status firewalld.service
sudosystemctl stop firewalld.service
sudosystemctl disable firewalld.service
7、centos7的telnet和ssh远程登录
telnet远程登录
1. SentOS7.0 telnet-server 启动的问题。
解决方法:
①、先检查CentOS7.0是否已经安装以下两个安装包:telnet-server、xinetd。命令如下:
rpm-qa telnet-server
rpm-qa xinetd
如果没有安装,则先安装。安装命令:
yuminstall telnet-server-0.17-59.el7.x86_64.rpm
yuminstall xinetd-2.3.15-12.el7.x86_64.rpm
安装完成后,将xinetd服务加入开机自启动:
systemctlenable xinetd.service
将telnet服务加入开机自启动:
systemctlenable telnet.socket
最后,启动以上两个服务即可:
systemctlstart telnet.socket
systemctlstart xinetd(或servicexinetd start)
2.telnet 192.168.5.128 出错:No route to host
解决方法:在服务器主机运行以下命令:iptables -F 即可
3.telnet 192.168.5.128 出错:connection refuse
解决方法:
①、出现这个问题请先检查telnet-server 是否已经启动。
②、修改服务器主机允许root用户登录:
修改方法:
1)在客户端运行登录指令:telnet192.168.5.128
2)在服务器主机运行以下命令:tail/var/log/secure
查看log里面刚才客户端是以哪一个端口设备登录的(如:pts/1)。记录下来然后
打开/etc/securetty 将设备名添加进去即可。
ssh远程登录
1.centos7默认安装有openssh-server、openssh-client和openssh
2.所以我们直接登陆ssh192.168.1.119
3.后台运行的是sshd,所以我们可以通过它来开启和关闭ssh远程登陆服务
开启/重启/关闭
systemctl start/restart/stop sshd
最近常逛的几个centos7相关的网站
1、一个介绍搭建centos7服务器的网站
http://www.server-world.info/en/note?os=CentOS_7&p=kvm
2、centos的中文站
http://www.centoscn.com/CentOS/
3、centos官方wiki
http://wiki.centos.org/HowTos
4、51cto的centos版块
http://os.51cto.com/col/1335/
自己总结的一些linux下的常用命令
1、处理文件与目录
1、ls /home/jison 查看/home/jison目录下的文件和目录
-l 列出文件的属性与权限
-a 列出所有文件(包含隐藏文件)
-i 列出inode节点号码
2、直接查看文件
1.cattest.txt 由第一行开始显示test.txt文件的内容
2.tac test.txt 由最后一行开始显示test.txt文件的内容
3.moretest.txt 可翻页显示test.txt文件的内容
4.lesstest.txt 比more多了个往前翻页的功能,pagedown向下翻页,pageup向上翻页
5.headtest.txt 只看test.txt文件的头几行
6.tail test.txt 只看test.txt文件的尾几行
3、cd / 切换到根目录
. 当前目录
.. 当前目录的上一层目录
- 前一个工作目录
~ 当前用户所在主文件夹
4、pwd 显示当前目录
5、mkdir test 新建一个test目录
6、rmdir test 删除空的test目录,此命令无法删除非空目录
7、cp 源文件目标文件夹 复制文件
-r 用于复制目录
8、mv 源文件目标文件夹 移动文件
9、rm 文件或目录 删除文件或目录
-f 强制删除
-r 用于删除目录
10、touch test.txt 新建一个test.txt的文件
11、file test.txt 查看文件的类型,有文本文件(text),数据文件(data),二进制文件(binary)
12、文件与目录的权限
在linux系统里面,文件与目录均有[-][rwx][rwx][rwx]权限,三个“rwx”一组,分别代表“读写执行”权限,第一组为文件所有者的权限,第二组为同用户组的权限,第三组为其它用户组的权限。而[-]则代表此文件为“文件、目录或者链接等”
- 代表文件
d 代表目录
l 代表链接
13、改变文件(目录)的属性与权限
1.chgrpjison test.txt 改变test.txt文件的所属用户组为jison
-r 连目录中的子目录和文件一起改所属用户组
2.chownjison test.txt 改变test.txt文件的所属用户为jison
-r 连目录中的子目录和文件一起改所属用户
3.chmod777 test.txt 将test.txt文件权限改为777,7=4+2+1
r=4 u=rwx,g=rwx,o=rwx
w=2 a+r 所有用户+r
x=1 a代表所有用户
ugo分别代表user,group,other
14、umask 默认权限,如果返回0023,023表示被拿掉的权限,实际权限为777-023,则权限为754
-S 返回以u=rwx,g=rx,o=r的方式表示默认权限
15、文件的特殊权限:SUID,SGID,SBIT,用于替代x权限的
SUID和SGID分别表示使用户和用户组执行二进制文件时暂时获取root,需要具备x的权限,此时x变成s,若无x权限是,则显示为S,表示SUID权限不可用
SBIT表示用户在该目录下创建的文件或目录只能自己和root删除,需要具备wx的权限,且只对目录有效,此时x变成t,若无x权限,则显示为T,表示SBIT权限不可用
SUID=4
SGID=2
SBIT=1
16、which ifconfig 列出第一次查找到的脚本命令路径
-a 列出找到所有路径
17、whereis ifconfig 寻找特定文件的路径(通过数据库中的记录)
18、locate test.txt 寻找test.txt文件的完整路径(通过数据库中的记录)
19、find 查找文件,时间慢
20、gzip iwconfig.txt 将当前目录的iwconfig.txt压缩成iwconfig.txt.gz文件,并删除源文件iwconfig.txt
-d 解压缩的参数
gzip -d iwconfig.txt.gz 将当前目录的iwconfig.txt.gz解压为iwconfig.txt,并删除源文件iwconfig.txt.gz
gcat iwconfig.txt.gz 不解压直接读取iwconfig.txt.gz的内容到屏幕中去
21、bzip2 iwconfig.txt 将当前目录的iwconfig.txt压缩成iwconfig.txt.bz2文件,并删除源文件iwconfig.txt
-d 解压缩的参数
bzip2 iwconfig.txt.bz2 将当前目录的iwconfig.txt.gz解压为iwconfig.txt,并删除源文件iwconfig.txt.bz2
22、打包命令tar
压缩:tar -jcvf filename.tar.bz2 要被压缩的的文件或目录名称
查询压缩文件中的文件名:tar -jtvf filename.tar.bz2
解压:tar -jxvf filename.tar.bz2 -C 要解压到的目录
-c 新建打包文件
-t 查看打包文件有哪些文件名
-x 解打包和解压缩功能
-j 用于解压bzip2压缩的文件
-z 用于解压gzip压缩的文件
-v 将正在处理的文件名显示
-f 指定处理的文件名
-C 指定解压目录
-P 保留原本权限和属性
-p 保留绝对路径
2、网络连接相关命令
1、查看网络连接接口:
ifconfig 此命令可以显示本机中所有网络连接端口及状态
iwconfig 此命令显示无线网络的接口连接状态
2、IP连接测试(可以ping域名或IP地址)
pingbaidu.com
3、netstat 跟踪网络,用于显示各种网络相关信息
4、本地网络连接
1.修改IP,子网掩码和默认网关
ifconfigeth0 192.168.1.100(给eth0网卡分配一个IP地址)
ifconfigeth0 netmask 255.255.255.0(分配子网掩码)
routeadd default gw 192.168.1.1(修改默认网关)
1.启动或关闭eth0网卡方法一
ifconfigeth0 up/down
2.启动或关闭eth0网卡方法二
ifup/ifdwoneth0
3.启动或关闭eth0网卡方法三
iplink set eth0 on/off(启动或关闭eth0网卡)
4.动态设置网卡配置信息
dhclienteth0
5、无线网络连接
1.打开或关闭无线网卡电源
iwconfigwlan0 txpower on/off
2.启动无线网卡
ifconfigwlan0 up
3.列出区域内的无线网络
iwlistwlan0 scan
4.连接到36C无线网为例
iwconfigwlan0 essid "36C" key s:yyxcyyxc或
wpa_passphrase36C yyxcyyxc > ./36C.conf
wpa_suppliant-B -i wlan0 -Dwext -c ./36C.conf
5.动态获取ip
dhclientwlan0
6、设置ip地址和子网掩码并启动网卡eth0
ifconfigeth0 192.168..21.15 netmask 255.255.255.0 up
7、添加和删除默认网关
route-n(查询路由表)
routeadd default gw 192.168.21.254
routedel default gw 192.168.21.254
8、配置固定dns服务器
手动改/etc/resolv.conf文件
echo"nameserver218.104.111.114">>/etc/resolv.conf
9、修改dns与IP地址的映射关系的/etc/hosts文件(以下为文本格式要求)
IP DNS
3、磁盘管理与文件系统
1、df 列出整体磁盘使用量
-h 以GB、MB、KB等自行显示
2、du /home/jison 列出目录所占容量
-m 以MB显示
-s 列出目录总量
3、mount /dev/sdb1 /mnt 将磁盘sdb1挂载到mnt目录下
4、umount /dev/sdb1 卸载已挂载的磁盘sdb1(也可以卸载所挂载的mnt目录)
5、fdisk /dev/sda 对磁盘sda进行分区,参数不用记,提示相当友好
6、mkfs -t ext3 /dev/sda4 将磁盘分区sda4格式化为ext3的文件系统
7、badblocks /dev/sda4 对磁盘分区sda4进行坏道检测
-s 在屏幕上列出进度
-v 可以再屏幕上看到进度
8、parted /dev/sda print 列出硬盘sda的分区表资料
9、parted /dev/sda 8 删除硬盘sda的8号分区,立即生效,慎重。
10、parted /dev/sda mkpart[parimary|logical|extended] ext3 19.2G 19.7G
新增一个从19.2G节点处到19.7G节点处的分区
11、dd if="input file"of="output file" bs="block size" count="bs*snumber"
直接对磁盘操作的备份命令
4、系统相关命令
1、top 动态查看进程变化
输入P 以CPU的使用资源排序
输入M 以内存的使用资源排序
输入N 以进程号PID排序
输入T 以CPU的使用时间TIME+排序
输入q 退出top命令
2、ps 查看某个时间点的进程运行情况
-A 显示所有进程
-l 详细列出PID信息
aux 显示所有进程
3、kill 2656 杀掉PID为2656的进程号
killall dhclient 杀掉dhclient服务开启的相关进程
4、pstree 显示进程树
-P 显示进程号
-u 显示每个进程所属账号
5、free 查看内存使用情况
-m 以MB显示
-t 显示内存与swap总量
6、uname 查看系统与内核相关信息
-a 显示所有系统相关信息
-r 只显示内核版本
7、uptime 显示top界面最上面一行
8、locale 显示系统当前默认语系
-a 显示系统支持的语系
9、LANG=C 修改当前语系为C
10、alias 显示系统当前命令的别名
alias lm=*ls -l | more* 设置一个命令别名为lm
unalias lm 取消lm这个命令别名
11、history 查询用过的历史命令
history 10 查询最近用过的10条命令
12、Ctrl+Alt+F1-F6 打开tty1-6六个终端的快捷键
13、reboot 马上重启
shutdown -r now
14、poweroff 马上关机
shutdown -h now
15、su - 切换为管理员用户
su jison 切换为jison用户
16、sudo 以管理员权限执行一条命令
17、useradd jison 添加一个名为jison的用户
passwd jison 修改jison的密码
userdel jison 删除jison用户
18、groupadd jison 添加一个名为jison的用户组
gpasswd jison 修改jison用户组的密码
groupdel jison 删除一个名为jison的用户组
19、init 1 单用户模式,一般用来维护系统时开启
init 3 开启文本模式的linux
init 5 开启图形模式的linux
20、startx 从命令行开启Xwindow桌面
21、last 列出目前与过去登录系统的用户相关信息
22、whoami 显示当前登录的用户
23、echo $SHELL 查看当前使用shell类型
23、chsh -s /bin/dash 改变shell的类型为dash,需重启生效
24、glxgeras glxgears是一个测试你的Linux是否可以顺利运行2D、3D的测试软件
25、glxinfo | grep rendering 提示:direct rendering: Yes 表明openGL启动正常
5、各发行版软件安装与软件源配置
1、redhat/fedora/centos的yum在线软件管理和rpm包安装
1.yuminstall 软件包名 在线安装一个软件
-y 所有询问返回yes
2.yumsearch i18n 查询含有i18n的在线软件包名
3.yumremove 软件包名 卸载软件包名的软件
4.rpm-ivh test.rpm 安装名为test.rpm的软件
5.rpm-r test.rpm 卸载rpm安装的test.rpm软件
-q 查询已安装软件
-a 查询所有已安装软件
2、opensuse的zypper在线软件管理和rpm包安装
1.zypper install/in 软件包名在线安装一个软件包
2.zyppersearch/se i18n 查询一个含有i18n的在线软件包名
3.zypperremove/rm 软件包名 卸载一个在线安装的软件包
4.rpm包的安装参照redhat系列
3、debian/ubuntu/deepin的dpkg在线软件管理和deb包安装
1.apt-getinstall 软件包名 在线安装一个软件
2.apt-getremove 软件包名 卸载在线安装的软件
3.dpkg-i 软件包名.deb 安装一个deb包
4.dpkg-r 软件包名 卸载一个dpkg安装的软件
5.dpkg-s 查询已安装的包的详细信息
4、redhat/fedora/centos更改软件源
将镜像网站提供的repo文件复制到/etc/yum.repos.d文件夹,然后执行命令
yummakeclean
yummakecache
yumrepolist 查询已配置好的软件源
5、opensuse更改软件源
repos, lr 列出所有定义的安装源
addrepo, ar 添加一个新的安装源
removerepo,rr 删除指定的安装源
renamerepo, nr 重命名指定的安装源
modifyrepo, mr 修改指定的安装源
refresh, ref 刷新所有安装源
clean 清除本地缓存
6、ubuntu更改软件源
更改/etc/apt/sources.list文件的内容为镜像网站的网址,然后保存,执行命令
sudoapt-get update就可以更新了
7、tarball软件安装
./configure 建立makefile文件
makeclean 清除前一次make的目标文件
make 根据makefile文件进行编译
makeinstall 根据makefile文件进行安装
十、磁盘配额、阵列与LVM管理
2、磁盘阵列软raid
一.mdadm的语法
mdadm --detail /dev/md0 查看/dev/md0的raid细节
mdadm --create --auto=yes /dev/md[0-9] --level=[015] --raid-devices=N--spare-devices=N /dev/sdx
--create:为新建raid的参数
--auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,/dev/md1等
--level=[015]:设置磁盘阵列等级
--detail:列出后面所接的那个磁盘阵列设备的详细信息
--raid-devices=N:使用几个磁盘作为磁盘阵列的设备
--spare-devices=N:使用几个磁盘作为备用设备
mdadm --manage /dev/md[0-9] [--add /dev/sdxN] [--remove /dev/sdxN][--fail /dev/sdxN]
--add:后面接的设备将加到这个md中
--remove:将后面接的设备从这个md中删除
--fail:将后面的设备设置为出错状态
二.一个raid5实例
fdisk /dev/sda
使用n参数新建6个大小均为300M的分区dev/sda5-10
w保存后使用partprobe刷新分区表
接着使用sda5-9组成raid5阵列
mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4--spare-devices=1 /dev/sda{5,6,7,8,9}
查看系统软件磁盘阵列的情况
cat /proc/mdstat
格式和与挂载使用raid
mkfs -t ext3 /dev/md0
mkdir /mnt/raid
mount /dev/md0 /mnt/raid
查看md0软件磁盘阵列的详细信息
mdadm --detail /dev/md0
模拟援救raid5
将/dev/sda6设置为出错状态(备用的/dev/sda9会自动补上)
mdadm --manage /dev/md0 --fail /dev/sda6
此时赶紧输入以下命令查看磁盘补上的过程(速度要快,要不然看到的就是补上的结果了)
mdadm --detail /dev/md0
cat /proc/mdstat
等一会儿后,重复输入上面两个命令就可以看到补上后的结果了
mdadm --detail /dev/md0
cat /proc/mdstat
将出错的/dev/sda6删除,并将/dev/sda10添加为raid5备用磁盘
mdadm --manage /dev/md0 --add /dev/sda10 --remove /dev/sda6
三.开机自动raid并自动挂载
查看/dev/md的uuid
mdadm --detail /dev/md0 | grep -i uuid
可以看到以下一行
UUID:048383b6:c69991e2:f9c2bef7:39d45ef1
接下来设置mdadm.conf
vi /etc/mdadm.conf
往里面添加一行
ARRAY /dev/md0 048383b6:c69991e2:f9c2bef7:39d45ef1
设置开机自动挂载
vi /etc/fstab
往末尾添加一行
/dev/md0 /mnt/raid ext3 defaults 1 2
测试挂载/etc/fstab里面设置的设备
umount /dev/md0
mount -a
df /mnt/md0
四.关闭软件raid
先卸载/dev/md0
umount /dev/md0
然后删除之前在/etc/fstab中添加的语句
直接关闭/dev/md0的方法
mdadm --stop /dev/md0
查看raid是否还存在
cat /proc/mdstat
删除/etc/mdadm.conf里之前写的语句
vi /etc/mdadm.conf
3、弹性磁盘LVM管理
一.建立5个分区
/**
I * 由于本机没有留下空闲的磁盘空间,只好把swap删掉用来腾出空间
*/
1.先把swap删除 swapoff /dev/sdax
2.修改开机挂载文件/etc/fstab
删掉swap那一行后保存
3.新建分区
fdisk /dev/sda
使用n参数新建5个300M分区/dev/sda5-9
使用t参数修改分区id为8e
使用w保存退出
输入partprobe命令更新分区表
二.PV(物理卷)阶段
查看本机是否存在pv
pvscan
新建/dev/sda5-8四个分区为pv
pvcreate /dev/sda{5,6,7,8}
查看刚刚新建的pv
pvscan
更详细的列出系统上面pv信息
pvdisplay
三.VG(卷用户组)阶段
将/dev/sda{5,6,7,8}新建为一个分区
vgcreate -s 16M jisonvg /dev/sda{5,6,7,8}
-s 后面接PE(物理扩展块)的大小
查看本机的vg
vgscan
再次查看本机的pv
pvscan
更详细的列出系统上面vg信息
vgdisplay
四.LV(逻辑卷)阶段
将整个的jisonvg全部分配给jisonlv
lvcreate -l 72 -n jisonlv jisonvg
-L 后面接容量,可以是M,G,T
-l 后面接PE的个数
-n 后面接的是LV的名称
更详细的列出系统上面lv信息
lvdisplay
五.文件系统阶段
格式化jisonlv的文件系统为ext3
mkfs -t ext3 /dev/jisonvg/jisonlv
挂载jisonlv到/mnt/lvm上
mkdir /mnt/lvm
mount /dev/jisonvg/jisonlv /mnt/lvm
查看挂载的jisonlv
df -h
测试使用jisonlv
cp -r /etc /mnt/lvm
ll /mnt/lvm/etc
六.放大LV的容量
使用之前新建的没有加入到jisonlv的pv(/dev/sda9),将它加到jisonvg上面
vgextend jisonvg /dev/sda9
详细的列出系统上面vg信息
vgdisplay
调整jisonlv的大小
lvresize -l +18 /dev/jisonvg/jisonlv
详细的列出系统上面lv信息
lvdisplay
查看原先文件系统里面的superblock的记录情况
dumpe2fs /dev/jisonvg/jisonlv
完整的将LV的容量扩充到整个文件系统
resize2fs /dev/jisonvg/jisonlv
查看扩充后文件系统里面的superblock的记录情况
dumpe2fs /dev/jisonvg/jisonlv
查看扩充后的文件系统
df -h /dev/jisonvg/jisonlv
七.缩小LV的容量
先卸载/dev/jisonvg/jisonlv
umount /mnt/lvm
进行磁盘检查
e2fsck -f /dev/jisonvg/jisonlv
降低文件系统的容量
resize2fs /dev/jisonvg/jisonlv 300M
查看降低容量后的文件系统
mount /dev/jisonvg/jisonlv /mnt/lvm
df -h /mnt/lvm
降低LV的容量
lvresize -l -18 /dev/jisonvg/jisonlv
将没有使用的PE转移到/dev/sda6上
pvdisplay
pvmove /dev/sda6 /dev/sda9
将/dev/sda6移出jisonvg
vgreduce jisonvg /dev/sda6
将pv(/dev/sda6)删除
pvremove /dev/sda6
八.LVM快照
建立一个/dev/jisonvg/jisonlv的快照/dev/jisonvg/jisonss
pvcreate /dev/sda6
vgextend jisonvg /dev/sda6
vgdisplay
lvcreate -l 18 -s -n jisonss /dev/jisonvg/jisonlv
lvdisplay
挂载/dev/jisonvg/jisonss
mkdir /mnt/snapshot
mount /dev/jisonvg/jisonss /mnt/snapshot
df -h
会发现快照/dev/jisonvg/jisonss和/dev/jisonvg/jisonlv的使用量和大小居然是一模一样的,但实际上快照区是没有这么大的,快照区只是记录创建快照那一瞬间/dev/jisonvg/jisonlv的内容
当修改/dev/jisonvg/jisonlv后快照区的内容还是没有变化的
利用快照区复原文件系统
umount /mnt/snapshot
df /mnt/lvm
rm -rf /mnt/lvm/etc
cp -r /boot /mnt/lvm
mount /dev/jisonvg/jisonss /mnt/snapshot
df -h
这时会发现/dev/jisonvg/jisonlv和/dev/jisonvg/jisonlv的使用量和大小不一样了,快照里面的内容还是原来的,而/dev/jisonvg/jisonlv的内容则是修改过后的
这时要还原/dev/jisonvg/jisonlv的内容为原来的内容的话,格式化/dev/jisonvg/jisonlv后,将/dev/jisonvg/jisonss的内容复制到/dev/jisonvg/jisonlv里面就可以了
umount /dev/lvm
mkfs -t ext3 /dev/jisonvg/jisonlv
mount /dev/jisonvg/jisonlv /mnt/lvm
cp -r /mnt/snapshot/* /mnt/lvm
cd /mnt/lvm
ls
这时应该/dev/jisonvg/jisonlv和快照/dev/jisonvg/jisonss的内容又一致了
九.关闭LVM并还原磁盘为swap
卸载
umount /mnt/lvm
umount /mnt/snapshot
处理快照和原系统
lvremove /dev/jisonvg/jisonss
lvremove /dev/jisonvg/jisonlv
使jisonvg变成不活跃状态
vgchange -a n jisonvg
删除jisonvg
vgremove jisonvg
删除所有的pv
pvremove /dev/sda{5,6,7,8,9}
将/dev/sda{5,6,7,8,9}分区的8e标志改回83,重新建立分区并格式化为swap
fdisk /dev/sda
使用t参数修改分区/dev/sda{5,6,7,8,9}的id为83
使用d参数删除/dev/sda{5,6,7,8,9}分区
使用d参数删除逻辑分区/dev/sda4
使用n参数将所有剩余空间新建一个分区为/dev/sda2
使用w参数保存分区操作
使用partprobe命令刷新分区表
将/dev/sda2格式化为swap分区
mkswap /dev/sda2
然后重启
reboot
在 Linux 系统中,由于是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生,为了合理使用这些空间,管理员需要控制用户对磁盘空间的使用,这个就是Linux 下的配额管理。
配额管理是对某个磁盘分区进行限制。这里的限制包括2个方面:
1.单个用户对某个目录下空间大小的限制。
2.单个用户对某个目录下文件个数的限制。
1.1 Quota 常用在如下几种情况
1) 针对 WWW server ,例如:每个人的网页空间的容量限制。
2) 针对 mail server,例如:每个人的邮件空间限制。
3) 针对 file server,例如:每个人最大的可用网络硬盘空间。
1.2 Quota 的2个注意事项
(1)仅针对整个 partition:
quota针对『整个 partition』进行限制, 例如:如果/dev/hda5 是挂载在 /dave 目录下,那么在 /dave 目录下的所有目录都会受到限制。
(2)只对一般身份使用者有效:
不是所有在 Linux 上面的账号都可以设定 quota,例如 root 就不能设定quota 。
1.3 Quota 的三种限制类型
(1)soft limit:
这是最低限制容量的意思,用户在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下。
(2)hard limit:
这是『绝对不能超过』的容量。通常hard limit 会比 soft limit 为高,例如网络驱动器空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告用户,让使用者可以在『宽限时间内』将他的档案量降低至 25 MB ( 亦即是 soft limit )之内。也就是说, soft 到 hard 之间的容量其实就是宽限的容量,可以达到针对使用者的『警示』作用。
(3)宽限时间:
宽限时间就是当使用者使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,就必需要请用户将使用的磁盘容量降低到 soft limit 之下。而当用户将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在用户将容量降低到 softlimit 之下,那么宽限时间就会自动的取消。
1.4 Quota 的安装包
Quota也需要安装,安装包如下:
[root @rhce /]# rpm -q quota
quota-3.17-16.el6.x86_64
[root@rhce /]#
1.5 Quota 相关的命令
与Quota 相关的几个命令如下。
1.5.1 启用quota:quotaon
[root@rhce /]# quotaon
Bad number of arguments.
quotaon: Usage:
quotaon [-guvp] [-F quotaformat] [-x state] -a
quotaon [-guvp] [-F quotaformat] [-x state] filesys ...
-a, --all turn quotas on for all filesystems
-f, --off turn quotas off
-u, --user operate on user quotas
-g, --group operate on group quotas
-p, --print-state print whether quotas are on or off
-x, --xfs-command=cmd perform XFS quota command
-F, --format=formatname operate on specific quota format
-v, --verbose print more messages
-h, --help display this help text and exit
-V, --version display version information andexit
[root@rhce /]#
1.5.2 关闭quota:quotaoff
[root@rhce /]# quotaoff
Bad number of arguments.
quotaoff: Usage:
quotaoff [-guvp] [-F quotaformat] [-x state] -a
quotaoff [-guvp] [-F quotaformat] [-x state] filesys ...
-a, --all turn quotas off forallfilesystems
-f, --off turn quotas off
-u, --user operate on user quotas
-g, --group operate on group quotas
-p, --print-state print whether quotas are on or off
-x, --xfs-command=cmd perform XFS quota command
-F, --format=formatname operate on specific quota format
-v, --verbose print more messages
-h, --help display this help text and exit
-V, --version display version information andexit
1.5.3 配额发送警告:warnquota
[root@rhce /]# warnquota -h
warnquota: Usage:
warnquota [-ugsid] [-F quotaformat] [-cconfigfile] [-q quotatabfile][-a adminsfile]
-u, --user warn users
-g, --group warn groups
-s, --human-readable send information in morehumanfriendly units
-i, --no-autofs avoid autofs mountpoints
-d, --no-details do not send quotainformationitself
-F, --format=formatname use quotafiles of specific format
-c, --config=config-file non-default config file
-q, --quota-tab=quotatab-file non-default quotatab
-a, --admins-file=admins-file non-default admins file
-h, --help display this helpmessageand exit
-v, --version display versioninformationand exit
Bugs to jack@suse.cz
[root@rhce /]#
1.5.4 编辑配额属性:edquota
[root@rhce /]# edquota
edquota: Usage:
edquota [-rm] [-u] [-F formatname] [-p username] [-f filesystem]username...
edquota [-rm] -g [-F formatname] [-pgroupname] [-f filesystem] groupname...
edquota [-rm] [-u|g] [-F formatname] [-f filesystem] -t
edquota [-rm] [-u|g] [-F formatname] [-f filesystem]-Tusername|groupname ...
-u, --user edit user data
-g, --group edit group data
-r, --remote edit remote quota (via RPC)
-m, --no-mixed-pathnames trim leading slashes fromNFSv4mountpoints
-F, --format=formatname edit quotas of a specific format
-p, --prototype=name copy data from a prototype user/group
--always-resolve alwaystry to resolve name, even if it is
composed onlyofdigits
-f, --filesystem=filesystem edit data only on a specific filesystem
-t, --edit-period edit grace period
-T, --edit-times edit grace time of a user/group
-h, --help display this help textandexit
-V, --version display version informationandexit
Bugs to: jack@suse.cz
[root@rhce /]#
1.5.5 显示配额信息:repquota
[root@rhce /]# repquota -h
repquota: Utility for reporting quotas.
Usage:
repquota [-vugsi] [-c|C] [-t|n][-Fquotaformat] (-a | mntpoint)
-v, --verbose display also users/groups withoutanyusage
-u, --user display informationaboutusers
-g, --group display informationaboutgroups
-s, --human-readable show numbers in human friendlyunits(MB, GB, ...)
-t, --truncate-names truncate names to 8 characters
-p, --raw-grace print grace time in secondssinceepoch
-n, --no-names do not translate uid/gid to name
-i, --no-autofs avoid autofs mountpoints
-c, --batch-translation translate big number of ids at once
-C, --no-batch-translation translate ids one by one
-F, --format=formatname report information for specific format
-h, --help display this help messageandexit
-V, --version display version informationandexit
Bugs to jack@suse.cz
[root@rhce /]#
1.5.6 检查并修复quota 配置文件:quotacheck
#quotacheck –cvug/tmp
[root@rhce ~]# quotacheck -h
Utility for checking and repairingquotafiles.
quotacheck [-gucbfinvdmMR][-F<quota-format>] filesystem|-a
-u, --user check user files
-g, --group check group files
-c, --create-files create new quota files
-b, --backup create backups of old quota files
-f, --force force check even if quotasareenabled
-i, --interactive interactive mode
-n, --use-first-dquot use the first copy of duplicated structure
-v, --verbose print more information
-d, --debug print even more messages
-m, --no-remount do not remount filesystem read-only
-M, --try-remount try remounting filesystem read-only,
continue even ifitfails
-R, --exclude-root exclude root when checkingallfilesystems
-F, --format=formatname check quota files of specific format
-a, --all check all filesystems
-h, --help display this message and exit
-V, --version display version informationandexit
Bugs to jack@suse.cz
[root@rhce ~]#
[root@rhce ~]# quotacheck -cvug /dave
quotacheck: Your kernel probablysupportsjournaled quota but you are not using it. Consider switching tojournaled quotato avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdc1 [/dave] done
quotacheck: Cannot stat old user quotafile:No such file or directory
quotacheck: Cannot stat old groupquotafile: No such file or directory
quotacheck: Cannot stat old user quotafile:No such file or directory
quotacheck: Cannot stat old group quotafile:No such file or directory
quotacheck: Checked 3 directories and2files
quotacheck: Old file not found.
[root @rhce ~]# setquota -h
setquota: Usage:
setquota [-u|-g] [-rm] [-F quotaformat]<user|group>
<block-softlimit> <block-hardlimit><inode-softlimit><inode-hardlimit> -a|<filesystem>...
setquota [-u|-g] [-rm] [-F quotaformat] <-pprotouser|protogroup><user|group> -a|<filesystem>...
setquota [-u|-g] [-rm] [-F quotaformat] -b[-c] -a|<filesystem>...
setquota [-u|-g] [-F quotaformat] -t<blockgrace><inodegrace> -a|<filesystem>...
setquota [-u|-g] [-F quotaformat]<user|group> -T<blockgrace> <inodegrace>-a|<filesystem>...
-u, --user set limits for user
-g, --group set limits for group
-a, --all set limits for allfilesystems
--always-resolve alwaystryto resolve name, even if is
composed onlyofdigits
-F, --format=formatname operate on specific quota format
-p, --prototype=protoname copy limits from user/group
-b, --batch read limits from standard input
-c, --continue-batch continue in input processing in caseofan error
-r, --remote set remote quota (via RPC)
-m, --no-mixed-pathnames trim leading slashes fromNFSv4mountpoints
-t, --edit-period edit grace period
-T, --edit-times edit grace times for user/group
-h, --help display this help text andexit
-V, --version display version informationandexit
Bugs to: jack@suse.cz
[root@rhce ~]#
二. 配额使用示例
2.1 创建分区并mount到目录
[root@rhce /]# fdisk /dev/sdc
Device contains neither a validDOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel withdiskidentifier 0x1e051117.
Changes will remain in memory only,untilyou decide to write them.
After that, of course, the previouscontentwon*t be recoverable.
Warning: invalid flag 0x0000 ofpartitiontable 4 will be corrected by w(rite)
WARNING: DOS-compatible mode isdeprecated.It*s strongly recommended to
switch off the mode (command *c*) and change display units to
sectors (command *u*).
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder, +cylinders or+size{K,M,G}(1-652, default 652):
Using default value 652
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rhce /]# fdisk -l
Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 =8225280bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes /512bytes
Disk identifier: 0x1e051117
Device Boot Start End Blocks Id System
/dev/sdc1 1 652 5237158+ 83 Linux
[root@rhce /]# mkfs -t ext3 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1309289 blocks
65464 blocks (5.00%) reserved for thesuperuser
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragmentspergroup
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystemaccountinginformation: done
This filesystem will beautomaticallychecked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@rhce /]#
[root@rhce /]# mount/dev/sdc1 /dave
[root@rhce /]# vim /etc/fstab
/dev/sdc1 /dave ext3 defaults 0 0
我们这里将/dev/sdc1映射到了目录/dave.
2.2 创建2个测试用户
[root@rhce /]# groupadd grp01
[root@rhce /]# groupadd grp02
[root@rhce /]# cat /etc/group|grep grp0*
grp01:x:503:
grp02:x:504:
[root@rhce /]#
[root@rhce /]# useradd dave01 -g grp01
[root@rhce /]# useradd dave02 -g grp02
[root@rhce /]# passwd dave01
Changing password for user dave01.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokensupdatedsuccessfully.
[root@rhce /]# passwd dave02
Changing password for user dave02.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokensupdatedsuccessfully.
[root@rhce /]#
2.3 修改分区表启用配额限制
[root@rhce ~]# cat /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdc1 /dave ext3 defaults,usrquota,grpquot 0 0
[root@rhce ~]#
/etc/fstab 文件的第四个字段是装载文件系统是使用的选项:
(1)实现基于用户的磁盘配额,就加入usrquota关键字,
(2)实现基于组的磁盘配额,就加入grpqouta关键字,如果两者都需要,就全写入,中间可以用逗号分隔。
注意:请特别注意这里的拼写,是usrquota和grpquota,不要写成userquota和groupquota。
2.4 重新Remount 分区
[root@rhce ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts(rw,gid=5,mode=620)
tmpfs on /dev/shm typetmpfs(rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misctypebinfmt_misc (rw)
none on /sys/kernel/config typeconfigfs(rw)
sunrpc on /var/lib/nfs/rpc_pipefstyperpc_pipefs (rw)
gvfs-fuse-daemon on /root/.gvfstypefuse.gvfs-fuse-daemon (rw,nosuid,nodev)
/dev/sdc1 on /dave typeext3 (rw)
分区是我们之前mount的,我们后来修改了mount的选项,增加了用户和组的配额,所以这里我们重新mount一次,使我们的修改生效。
[root @rhce ~]# mount -oremount /dave
[root@rhce ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts typedevpts(rw,gid=5,mode=620)
tmpfs on /dev/shm typetmpfs(rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misctypebinfmt_misc (rw)
none on /sys/kernel/config typeconfigfs(rw)
sunrpc on /var/lib/nfs/rpc_pipefstyperpc_pipefs (rw)
gvfs-fuse-daemon on /root/.gvfstypefuse.gvfs-fuse-daemon (rw,nosuid,nodev)
/dev/sdc1 on /dave typeext3(rw,usrquota,grpquota)
[root@rhce ~]#
2.5 启动并配置文件大小配额限制
--检查配额文件
[root@rhce ~]# quotacheck/dave
quotacheck: Cannot create new quotafile/dave/aquota.user.new:Permission denied
quotacheck: Cannot initialize IO onnewquotafile: Permission denied
这里关闭SELinux即可:
[root@rhce ~]# getenforce
Enforcing
[root@rhce ~]# setenforce 0
[root@rhce ~]# getenforce
Permissive
[root@rhce ~]#
--启动配额限制
[root@rhce ~]# quotaon -vug /dave
/dev/sdc1 [/dave]: group quotas turned on
/dev/sdc1 [/dave]: user quotas turned on
[root@rhce ~]#
--开启之后,会在/dave的目录下自动创建配额的管理文件:aquota.group和aquota.user
[root@rhce dave]# pwd
/dave
[root@rhce dave]# ll
total 32
-rw-------. 1 root root 6144 Jun 22 09:28 aquota.group
-rw-------. 1 root root 6144 Jun 22 09:28 aquota.user
drwx------. 2 root root 16384 Jun 2205:00lost+found
[root@rhce dave]#
这个文件我们不能直接编辑,我们需要使用edquota命令来进行编辑。
[root@rhce dave]# edquota -u dave01
Disk quotas for user dave01 (uid 503):
Filesystem blocks soft hard inodes soft hard
/dev/sdc1 0 10240 20480 0 0 0
这里的限制分三种:
1.blocks:按block的数量
2.soft:软限制,单位为字节。
3.hard: 硬限制,单位为字节。
上例中,soft限制约为10MB,hard限制约为20MB,当用户dave01使用空间超过10MB时,系统会进行提示,但可以继续使用空间,而当用户dave01使用空间达到20MB时,就会限制用户dave01继续使用/dave空间。
--查看报告:
[root@rhce dave]# repquota /dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days;Inode grace time:7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141436 0 0 4 0 0
--这里只有root用户的信息,因为其他用户还没有创建文件,一旦创建文件,就会限制了。
[root@rhce dave]#
--用dave01用户创建文件进行配额限制的测试
--创建5M的文件:成功
[dave01@rhce ~]$ ddif=/dev/zeroof=/dave/tf01 bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.0445553s,118 MB/s
--创建10M的文件,超过soft 的配额限制,有警告:
[dave01@rhce ~]$ ddif=/dev/zeroof=/dave/tf01 bs=1M count=10
sdc1: warning, user blockquota exceeded.
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0232663s,451 MB/s
--在创建10M的文件,超过20M的配额限制,文件创建失败:
[dave01@rhce ~]$ ddif=/dev/zeroof=/dave/tf02 bs=1M count=10
sdc1: write failed, userblock limitreached.
dd: writing `/dave/tf02*:Disk quotaexceeded
10+0 records in
9+0 records out
10448896 bytes (10 MB) copied, 0.049051 s,213MB/s
[dave01@rhce ~]$
--查看报告:
[root@rhce dave]# repquota /dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days;Inode grace time:7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141432 0 0 3 0 0
dave01 +- 20480 10240 20480 6days 3 0 0
这里就显示了dave01这个用户的相关限制。我们这里的宽限时间变成了6days。
2.6 配置文件个数的配额限制
配额的限制,除了在磁盘大小上的限制,还可以在文件个数上进行限制。我们这里用dave02这个进行示例。
[root@rhce dave]# edquota -u dave02
Disk quotas for user dave02 (uid 504):
Filesystem blocks soft hard inodes soft hard
/dev/sdc1 0 0 0 0 20 30
soft和hard同上是软限制和硬限制,分别是20、30,当用户dave02创建文件超过20个时,系统会进行提示,但仍可以继续创建文件,而当用户dave02创建文件超过30个文件时,就会限制用户dave02继续创建文件。
注意:因为用户dave02是在/dave目录下进行了磁盘配额限制,所以/dave目录会算做一个文件,所以dave02最多只能创建29个文件。
[root@rhce ~]# chown dave02.grp02 /dave
--用脚本手动创建文件:
[dave02@rhce ~]$ cd /dave
[dave02@rhce dave]$ ls
aquota.group aquota.user lost+found tf01 tf02
[dave02@rhce dave]$
[dave02@rhce dave]$ for i in $(seq 1 22);
> do echo “dave02file$i”;
> touch dave02file$i;
> done
“dave02file1”
“dave02file2”
“dave02file3”
“dave02file4”
“dave02file5”
“dave02file6”
“dave02file7”
“dave02file8”
“dave02file9”
“dave02file10”
“dave02file11”
“dave02file12”
“dave02file13”
“dave02file14”
“dave02file15”
“dave02file16”
“dave02file17”
“dave02file18”
“dave02file19”
“dave02file20”
sdc1: warning, user filequota exceeded.
“dave02file21”
“dave02file22”
[dave02@rhce dave]$
到20就提示配额限制了。
[dave02 @rhce dave]$ for i in $(seq 23 33);
> do echo “dave02file$i”;
> touch dave02file$i;
> done
“dave02file23”
“dave02file24”
“dave02file25”
“dave02file26”
“dave02file27”
“dave02file28”
“dave02file29”
“dave02file30”
sdc1: write failed, userfile limit reached.
touch: cannot touch`dave02file30*: Diskquota exceeded
“dave02file31”
touch: cannot touch `dave02file31*:Diskquota exceeded
“dave02file32”
touch: cannot touch `dave02file32*:Diskquota exceeded
“dave02file33”
touch: cannot touch `dave02file33*:Diskquota exceeded
[dave02@rhce dave]$
这里我们最多只能创建29个文件。
--限制报告:
[root@rhce ~]# repquota /dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days;Inode grace time:7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141432 0 0 3 0 0
dave01 +- 20476 10240 20480 6days 2 0 0
dave02 -+ 4 0 0 30 20 30 6days
2.7 更改宽限时间
通过repquota命令,可以看到block和inode的宽限时间默认都是7天。
[root@rhce ~]# repquota /dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days;Inode grace time:7days
这个时间,我们可以使用edquota来修改。
[root@rhce ~]# edquota -h
edquota: Usage:
edquota [-rm] [-u] [-F formatname] [-p username] [-f filesystem]username...
edquota [-rm] -g [-F formatname] [-p groupname] [-f filesystem]groupname...
edquota [-rm] [-u|g] [-F formatname] [-f filesystem] -t
edquota [-rm] [-u|g] [-F formatname] [-f filesystem]-Tusername|groupname ...
-u, --user edit user data
-g, --group edit group data
-r, --remote edit remote quota (via RPC)
-m, --no-mixed-pathnames trim leading slashes fromNFSv4mountpoints
-F, --format=formatname edit quotas of a specific format
-p, --prototype=name copy data from a prototype user/group
--always-resolve alwaystry to resolve name, even if it is
composed only ofdigits
-f, --filesystem=filesystem edit data only on a specific filesystem
-t, --edit-period edit grace period
-T, --edit-times edit grace time of a user/group
-h, --help display this help textandexit
-V, --version display version informationandexit
2.7.1 按用户来设置宽限时间
--修改用户dave01的宽限时间:
[root@rhce ~]# edquota-T dave01
Times to enforce softlimit for userdave01(uid 503):
Time units may be: days, hours, minutes,orseconds
Filesystem block grace inodegrace
/dev/sdc1 601938seconds unset
~
这是默认值:
[root@rhce ~]# edquota -T dave01
Times to enforce softlimit for userdave01(uid 503):
Time units may be: days,hours, minutes, orseconds
Filesystem block grace inodegrace
/dev/sdc1 10days unset
我们改成10天。 上面有时间的单位。
--查看报告显示:
[root@rhce ~]# repquota /dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days; Inode gracetime:7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141432 0 0 3 0 0
dave01 +- 20476 10240 20480 10days 2 0 0
dave02 -+ 4 0 0 30 20 30 6days
[root@rhce ~]# edquota -T dave02
Times to enforce softlimit for userdave02(uid 504):
Time units may be: days, hours, minutes,orseconds
Filesystem block grace inodegrace
/dev/sdc1 unset 12days
~
[root@rhce ~]# repquota/dave
*** Report for user quotas ondevice/dev/sdc1
Block grace time: 7days; Inode gracetime:7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141432 0 0 3 0 0
dave01 +- 20476 10240 20480 9days 2 0 0
dave02 -+ 4 0 0 30 20 30 12days
2.7.2 按组来设置宽限时间
我们的dave02 用户对应的组是grp02.
-Tg 争对组
T 争对用户
--默认值:
[root@rhce ~]# edquota -Tg grp02
Times to enforce softlimit for groupgrp02(gid 504):
Time units may be: days,hours, minutes, or seconds
Filesystem block grace inodegrace
/dev/sdc1 unset unset
--修改:
[root@rhce ~]# edquota -Tg grp02
Times to enforce softlimit for groupgrp02(gid 504):
Time units may be: days, hours, minutes,orseconds
Filesystem block grace inodegrace
/dev/sdc1 unset 10days
~
但是这里我们一旦保存之后,我们的修改就又还原了。
如果我们想修改组的宽限时间,就必须先设置组的soft和hard limit。 只有这2个属性设置以后,才可以设置宽限时间。
[root@rhce dave]# edquota-g grp02
Disk quotas for group grp02 (gid 504):
Filesystem blocks soft hard inodes soft hard
/dev/sdc1 4 0 0 30 20 30
这是完以后,就可以设置组的宽限时间了。
2.8 关闭配额
[root@rhce dave]# quotaoff -a
--关闭quota之后,在清空/etc/fstab文件中有关配额的限制。
最后remount 磁盘。
我用centos7而不用fedora20的原因是因为我的机子使用centos7无线上网更为稳定,而fedora20老是掉线,不过使用有线的话就无所谓了
http://tieba.baidu.com/p/3379447850?see_lz=1