Skip to content Skip to main navigation Skip to footer

CentOS

CentOS/Linux: 10最常用的linux命令

在你准备使用Linux系统作为网站服务器系统之前,我建议大家先学习一些基本的Linux系统的操作命令,这些命令都是在日常操作中和配置Linux服务器网络环境时要用到的,了解和掌握这些命令,将有助于你更好的使用Linux服务器。本文将以CentOS 6.5为例简单讲解一下Linux系统下常用的基本操作命令。
首先大家可以使用virtualbox安装一个CENTOS6.5系统,或者直接购买一个安装了centos系统的云主机,国内推荐阿里云,橙云主机其实也不错,不过我个人在使用过程中感觉速度不是很理想,特别是磁盘性能方面。国外的大家根据实际情况选择吧,我这里就不推荐了,免得被说是广告。
登录服务器实现远程控制
windows用户推荐使用Xshell(下载地址)
mac用户可以使用系统终端工具
登录服务器之后就可以开始命令行操作了
查看你当前所在的位置 pwd( print working directory )

pwd
 

会显示当前的位置,例如:

/root
 

改变你所在的目录位置 cd( change directory )

cd /home
 

会让你进入到根目录下面的 home 这个目录里面,/ 表示根目录,如果用 pwd 查看一下会返回:

/home
 

另外cd /root = cd ~
列出目录里的东西 ls

ls
 

ls 命令应该是 list 的简称,列出的意思,这个命令可以配合一些参数,例如:

ls -la
 

这样会使用更详细的形式列出文件与目录,并且会包含目录里面隐藏的文件,l 表示 long,a 表示 all 。在命令的后面你可以指定具体要列出的目录,例如:

ls -la /usr/local
 

这会列出在系统根目录下面的 usr 目录下面的 local 这个目录里的所有的东西。如果想查看命令详细的使用说明,可以加上 –help 参数:

ls --help
 

现在,你已经学会了一个简单的 ls 命令去列出目录里的东西,在使用其它命令的时候,你也可以这样来用,你知道命令的后面可以添加一些参数,去做更具体的事情,想得到命令的使用说明,就去在命令后面添加一个 –help 参数,命令的后面也可以添加更具体的信息,比如一个目录的位置,一个文件的名称等等。
创建目录 mkdir( make directory )

mkdir
 

下面,我们可以在你当前所在的位置去创建一个新的目录,记得使用 pwd 命令确定一下你的位置:

mkdir www
 

上面这行命令会在当前位置上去创建一个叫 www 的目录。使用 ls 命令,可以查看一下当前目录里面的东西。在安装WDCP时,我们要在根目录下创建一个WWW目录来挂载数据盘,使用的命令应该是

mkdir /www
 

删除目录或文件 rm( remove )

rm
 

在命令的后面,加上你想要删除的东西,可能是一个目录的名称,或者一个文件的名称。注意想要删除目录的时候,你需要添加两个参数:-r -f,可以将两个参数系在一起,如-rf

rm -rf www
 

这里,r 参数可以让 rm 命令递归删除目录及其内容,f 参数是 force ,表示强制删除。合起来这行命令的意思是,递归的强制删除 www 这个目录,以及这个目录里面的所有的东西。
编辑文件 vi:

vi hello.txt
 

上面的命令会去编辑当前目录下面的 hello.txt 这个文件,如果这个文件不存在,会打开一个空白的文件,这样你在保存并退出以后 ,就可以创建一个叫做 hello.txt 的文件。vi 工具的使用需要配合一些按键,比如打开文件以后,你想编辑这个文件,可以进入到编辑模式,按一下键盘上的 i 键或者insert键,然后用上下左右按键去浏览到文件的某个位置上。编辑好以后,要按一下 esc 键,退出编辑模式,然后输入 : (冒号),再输入 wq ,表示保存并退出。如果你不想保存所做的修改,可以输入 : q 。有的时候,在编辑一些只读文件,你需要再添加一个 ! ,比如 :wq! ,或者 q! 。
i ,输入编辑模式。
esc,退出模式。
:wq,保存文件并退出。
:wq!,强制保存并退出。
:q,直接退出不保存修改。
/,可以进行搜索,在 / 后面加上要搜索的文字,然后回车。
n,可以查找下一处。
N,可以查找上一处。
ctrl+f,向后翻页。
ctrl+b,向前翻页。
详细的使用说明,可以查看 vi 命令的帮助,vi –help 。
移动/重命名目录或文件 mv( move )
移动或重命名目录或者文件,使用的是同一个命令:
mv 要移动的目录/文件 移动之后的目录/文件
在这个后面先指一定想要移动的目录或者文件的位置,一个空格,后面再加上移动以后的目录和文件所在的位置。这里我们得先理解一下几个路径的意思:
/
表示系统的根目录。
~
表示当前所登录的用户的主目录。
.
一个点表示当前的目录。
../
两个点加一个斜线,表示上一级目录。
../../
表示上两级目录。知道了这些,我们就可以去移动目录或文件了。

mv www www1
 

上面这行命令的意思是,把当前目录里面的 www 这个目录重命名为 www1 。

mv www1 ../
 

这样会把 www1 这个目录移动到当前目录的上一级目录下面,你可以进入到当前目录的上一级目录:

cd ../
 

然后列出目录里面的东西:

ls
 

看到 www1 目录了吗?删除它可以使用 rm 命令加上 rf 参数:

rm -rf www1
 

再用 ls 看一下,是不是 www1 已经不在了。
* 号表示所有的文件或目录,比如你想把某个目录下面的所有的目录或文件移动到某个地方,可以这样:

mv /home/www/web1/* /home/www/gb1982
 

上面命令会把 /home/www/web1 里面的东西全部都移动到 /home/www/gb1982 这个目录里面。
复制目录或文件 cp( copy )
cp 要复制的东西 要复制到哪里
比如你当前目录下面有一个 hello.txt 文件,你想复制一份,复制以后的文件叫 hello.bak ,可以这样:

cp hello.txt hello.bak
 

你想把 hello.bak 复制到某个目录的下面:

cp hello.bak /home/bak
 

这样会把 hello.bak 这个文件复制到 /home/bak 里面,注意,bak 这个目录必须已经存在了。
复制目录,你需要添加一个 -R 的参数,它会递归的去复制目录以及目录里面的所有的东西。比如要把 www 这个目录复制一份,复制以后的目录名是 www1:

cp -R www www1
 

原文

CentOS/RHEL 如何配置系统防火墙

在centos 系统下我想只开放某一个端口号或者禁止某个ip访问本主机,该如何来配置系统的防火iptables呢。本文将会将一些centos或rhel系统下的关于iptable防火墙的基本配置知识。
Iptables是linux下的防火墙,同时也是服务名称。

service  iptables  status        查看防火墙状态
service  iptables  start           开启防火墙
service  iptables  stop           关闭防火墙
service  iptables  restart        重启防火墙
 

防火墙开放特定端口:
编辑文件/etc/sysconfig/iptables ,输入下面的命令:

vim   /etc/sysconfig/iptables
 

添加:

 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
 

保存对防火墙的设置

serivce iptables save
 

查看iptables规则及编号

iptables -nL --line-number
 

关闭所有的INPUT FORWARD(转发) OUTPUT的所有端口

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
 

只打开22端口

iptables -A  INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
 

参数讲解:
–A 参数就看成是添加一条规则
–p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS
–dport 就是目标端口,当数据从外部进入服务器为目标端口
–sport 数据从服务器出去,则为数据源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收
禁止某个IP访问

iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
 

–s 参数是来源(即192.168.1.2)
后面拒绝就是DROP
删除规则

iptables -D INPUT 2
 

删除INPUT链编号为2的规则

CentOS如何查看程序的内存分配

在centos下如何来查看一段C语言程序的内存分配情况呢?下面我会举一个C语言的例子,并运行该程序,查看该程序运行时的内存分配情况。
C语言代码:
[cc lang=”c”] #include
#include
int main()
{
printf(“%d\n”,getpid());
while(1);
}
[/code] 编译并执行上面的程序,并打开另一个终端,输入cat /proc/10073/maps,出现如下显示:

 08048000-08049000 r-xp 00000000 fd:01 14844      /home/Alex/DaNei/Interview/a.out
    08049000-0804a000 r--p 00000000 fd:01 14844      /home/Alex/DaNei/Interview/a.out
    0804a000-0804b000 rw-p 00001000 fd:01 14844      /home/Alex/DaNei/Interview/a.out
    4427b000-4429a000 r-xp 00000000 fd:01 393917     /usr/lib/ld-2.17.so
    4429a000-4429b000 r--p 0001e000 fd:01 393917     /usr/lib/ld-2.17.so
    4429b000-4429c000 rw-p 0001f000 fd:01 393917     /usr/lib/ld-2.17.so
    442a3000-4445b000 r-xp 00000000 fd:01 393918     /usr/lib/libc-2.17.so
    4445b000-4445c000 ---p 001b8000 fd:01 393918     /usr/lib/libc-2.17.so
    4445c000-4445e000 r--p 001b8000 fd:01 393918     /usr/lib/libc-2.17.so
    4445e000-4445f000 rw-p 001ba000 fd:01 393918     /usr/lib/libc-2.17.so
    4445f000-44462000 rw-p 00000000 00:00 0
    b7752000-b7753000 rw-p 00000000 00:00 0
    b7769000-b776b000 rw-p 00000000 00:00 0
    b776b000-b776c000 r-xp 00000000 00:00 0          [vdso]
    bfe13000-bfe34000 rw-p 00000000 00:00 0          [stack]
 

实际上,第一行是代码区所占的内存空间,804800-804900,实际上几乎所有的linux程序代码段都是从804800开始的,第二行是全局栈区所占的内存空间,第三行是堆空间所占的内存空间,最后一行是局部栈所占的内存空间。 同时,我们会发现除了代码段的权限是r-xp(可读-不可写-可执行-私有保护)之外,其他三个都是不可执行的。

CentOS/Linux:如何查看SSH的版本号

在centos系统下我们经常回使用ssh安全加密协议,那么如何来查看ssh协议的版本号呢。
安全Shell(SSH)通过加密的安全通信通道来远程登录或者远程执行命令。SSH被设计来替代不安全的明文协议,如telnet、rsh和rlogin。SSH提供了大量需要的特性,如认证、加密、数据完整性、授权和转发/通道。
SSH1 vs. SSH2
SSH协议规范存在一些小版本的差异,但是有两个主要的大版本:SSH1 (版本号 1.XX) 和 SSH2 (版本号 2.00)。
事实上,SSH1和SSH2是两个完全不同互不兼容的协议。SSH2明显地提升了SSH1中的很多方面。首先,SSH是宏设计,几个不同的功能(如:认证、传输、连接)被打包进一个单一的协议,SSH2带来了比SSH1更强大的安全特性,如基于MAC的完整性检查,灵活的会话密钥更新、充分协商的加密算法、公钥证书等等。
SSH2由IETF标准化,且它的实现在业界被广泛部署和接受。由于SSH2对于SSH1的流行和加密优势,许多产品对SSH1放弃了支持。在写这篇文章的时候,OpenSSH仍旧支持SSH1和SSH2,然而在所有的现代Linux发行版中,OpenSSH服务器默认禁用了SSH1。
检查支持的SSH协议版本

方法一

如果你想检查本地OpenSSH服务器支持的SSH协议版本,你可以参考/etc/ssh/sshd_config这个文件。用文本编辑器打开/etc/ssh/sshd_config,并且查看”Protocol”字段。
如果如下显示,就代表服务器只支持SSH2。

Protocol 2
 

如果如下显示,就代表服务器同时支持SSH1和SSH2。

Protocol 1,2
 

方法二
如果因为OpenSSH服务其运行在远端服务器上而你不能访问/etc/ssh/sshd_config。你可以使用叫ssh的SSH客户端来检查支持的协议。具体说来,就是强制ssh使用特定的SSH协议,接着我么查看SSH服务器的响应。
下面的命令强制ssh使用SSH1:

$ ssh -1 user@remote_server
 

下面的命令强制ssh使用SSH2:

$ ssh -2 user@remote_server
 

如果远程SSH服务器只支持SSH2,那么第一个带“-1”的选项就会出现像下面的错误信息:

Protocol major versions differ: 1 vs. 2
 

如果SSH服务器同时支持SSH1和SSH2,那么两个命令都有效。
方法三
另一个检查版本的方法是运行SSH扫描工具,叫做scanssh。这个命令行工具在你想要检查一组IP地址或者整个本地网络来升级SSH1兼容的SSH服务器时很有用。
下面是基本的SSH版本扫描语法。

$ sudo scanssh -s ssh -n [ports] [IP addresses or CIDR prefix]
 

“-n”选项可以指定扫描的SSH端口。你可以用都好分隔来扫描多个端口,不带这个选项,scanssh会默认扫描22端口。
使用下面的命令来发现192.168.1.0/24本地网络中的SSH服务器,并检查SSH协议v版本:

$ sudo scan -s ssh 192.168.1.0/24
 

如果scanssh为特定IP地址报告“SSH-1.XX-XXXX”,这暗示着相关的SSH服务器支持的最低版本是SSH1.如果远程服务器只支持SSH2,scanssh会显示“SSH-2.0-XXXX”。
原文:linux中国

CentOS7/RHEL7 常用的基本操作

最新centos/rhel系统centos7和rhel7 和之前的版本有了很大的变化,下面总结了一下在centos7或rhel7 linux系统下的一些最基本的操作。
1. 基本命令包

yum groupinstall base
 

安装完后ifconfig、service、chkconfig等命令就都有了
2. 运行级修改
Redhat 7之前,是修改 /etc/inittab文件。
Redhat 7的话,查看该文件会有提示。

# inittab is no longer used when usingsystemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ONYOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by/etc/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. Bydefault, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To set a default target, run:
#
# ln -sf /lib/systemd/system/<targetname>.target /etc/systemd/system/default.target
 

只需要在/lib/system/system/目录下建个软件连即可。
3. 网络配置
a) 网络管理器
RHEL 7 安装有网络管理器,并处于启动状态

#systemctl status NetworkManager.service
 

b) 查看网络接口

#nmcli dev status
 

查看网络接口。
c) 文本配置网络
在如下路径,增加文件如ifcfg-enp0s3

#/etc/sysconfig/network-scripts/
 

d) 图形化配置网络

#nmtui
 

启动图形化配置。
e) 启动网络

#systemctl restart network.service
 

4. 主机名
编辑文件

/etc/hostname
 

即可修改主机名。
注:RedHat7之前,编辑/etc/sysconfig/network文件。
Redhat7中使用命令 hostnamectlstatus 命令查看主机名

#hostnamectl status
 

此外也可以在

#nmtui
 

中设置主机名
5. 防火墙
查看防火墙状态。

#systemctl status firewalld
 

临时关闭防火墙命令。重启电脑后,防火墙自动起来。

systemctl stop firewalld
 

永久关闭防火墙命令。重启后,防火墙不会自动启动。

 systemctl disable firewalld
 

打开防火墙命令。

systemctl enable firewalld
 

Vmware workstation下创建的centos/Rhel 虚机后的常用操作

当你在vmware workstation 下安装完centos或者rhel linux操作系统之后,可能需要vm workstation继续提供一些支持,比如说读取光盘里的软件包来继续安装相应的包。
本文将会说一些vmware 下rhel 虚机的一些操作。
在VM虚拟机中安装完Redhat系统之后
如果需要用secureCRT连接linux系统的话
操作步骤如下:
1.进入linux系统,在终端输入ifconfig(注意,不是windows的ipconfig)
结果如下
centos vm 1.1
找到ip地址,可以在主机上ping一下,可以ping通就表示可以用
centos vm
下载好secureCRT之后打开,在快速连接中主机名输入刚刚linux的ip地址,用户以root为例,确定之后会请你输入密码
完成之后连接连接成功
centos vm 1.3
安装g++编译器:
在VM中选中虚拟机右键,设置
如下图iso镜像文件选择安装的那个就可以了
centos vm 1.4
确定之后可以在虚拟机的图形界面看到很多文件
使用root用户进行操作
在终端输入cd /进入根目录
继续输入

cd media
cd RH*
cd Pa*
 

进入Packages目录
centos vm 1.5
接下来输入

rpm -ivh libstdc++-devel-4.4.6-4.el6.i686.rpm  回车,安装完毕之后继续输入
rpm -ivh gcc-c++-4.4.6-4.el6.i686.rpm 回车,安装完成之后即可
 

输入g++ –help如果有显示信息说明安装成功
centos vm 1.6
安装gdb:
还是使用root用户进行操作
进入Packages目录
输入rpm -ivh gdb-7.2-56.el6.i686.rpm 回车和进行安装
安装完成之后输入gdb出现gdb版本信息
centos vm 1.7
设置执行程序时不用./从根目录执行,也可以从当前目录执行
登陆要进行操作的用户(每个用户都有不一样的配置)
输入cd进入宿主目录
输入
vi .bash_profile
在Path最后加上:.
centos vm 1.8
保存退出之后再次输入. .bash_profile使其生效
设置gdb调试时生成core调试文件
登陆要操作的用户
cd 进入宿主目录
输入vi .bashrc
在最后一行加上 ulimit -c unlimited
centos vm 1.9
保存退出之后再次输入. .bashrc使配置生效

CentOS/RHEL 如何获取SSH登陆的用户名和密码

systemtap是一款非常强大内核调试工具,可以debug很多关于kernel层的问题。Linux是通过PAM模块检测用户信息和认证信息的,从而确定一个用户是否可以登录系统,利用这个知识点,使用systemtap捕获一下pam_unix.so该动态库文件的函数调用,获得用户在ssh远程登录时的用户名和密码吧。
测试环境:CentOS6.4 32bit
内核版本:2.6.32-358.el6.i686
首先安装以下rpm包

yum --releasever=6.4 update
yum install -y systemtap
debuginfo-install $(rpm -qf /lib/security/pam_unix.so)
 

创建文件,写入以下代码

touch /root/capture_pass.stp
 
· #!/usr/bin/stap
· global username, pass, isSuccRet = 1;
· probe process("/lib/security/pam_unix.so").function("_unix_verify_password")
· {
· username = user_string($name);
· pass = user_string($p);
· }
· probe process("/lib/security/pam_unix.so").function("_unix_verify_password").return
· {
· if ($return == 0)
· {
· printf("User: %s\nPassword: %s\n\n", username, pass);
· isSuccRet = 0;
· }
· }
· probe process("/lib/security/pam_unix.so").function("pam_sm_open_session")
· {
· if (isSuccRet != 0)
· {
· printf("Login via ssh service.\n\User: %s\nPassword: %s\n\n", username, pass);
· }
· isSuccRet = 1;
· }
 

赋予可执行权限

chmod +x capture_pass.stp
 

创建一个记录密码的文件

touch password.txt
 

执行systemstap脚本

stap capture_pass.stp -o password.txt
 

systemtap
本地执行capture_pass.stp脚本,同时ssh远程登录系统,即使第一次登录失败也没有问题,不会记录尝试输入的错误密码。登录成功后ctl+C终止脚本运行,查看password.txt,成功捕获。systemstap很强大的利器,所以只有超户可以使用。
systemtap
原文

CentOS/RHEL 如何使用netstat命令查看tcp的网络连接状态

在centos或者rhel系统我们经常需要查看当前系统的网络连接状态,那么我们首先会想到netstat命令,如何使用netstat命令来查看tcp的网络连接状态呢?
输入下面的命令:

#netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".state[key]}’
 

会得到类似下面的结果,具体数字会有所不同:

FIN_WAIT_1     286
FIN_WAIT_2     960
SYN_SENT       3
LAST_ACK       32
CLOSING         1
CLOSED          36
SYN_RCVD     144
TIME_WAIT    2520
ESTABLISHED 352     #差不多等于连接的并发数
 

这条命令可以把当前系统的网络连接状态分类汇总。
返回参数的说明如下:
SYN_RECV 表示正在等待处理的请求数;
ESTABLISHED 表示正常数据传输状态;
TIME_WAIT 表示处理完毕,等待超时结束的请求数。
——————————————————————
再来看看awk:
/^tcp/
滤出tcp开头的记录,屏蔽udp, socket等无关记录。
state[] 相当于定义了一个名叫state的数组
NF
表示记录的字段数,如上所示的记录,NF等于6
$NF
表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT
state[$NF] 表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数
++state[$NF] 表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一
END
表示在最后阶段要执行的命令
for(key in state)
遍历数组
print key,”\t”,state[key] 打印数组的键和值,中间用\t制表符分割,美化一下。

CentOS/RHEL 下如何使用CP拷贝命令

在centos 或者rhel系统下,当你使用拷贝命令cp拷贝文件的时候,如果有重复的文件,就会有提示是否覆盖重复文件,那么如何让系统不提示直接覆盖文件呢?今天 在我的VPS上拷一个文件夹,但放的地方有一个同名文件夹而且里面还有文件,如是直接拷过去,结果有N个要确认替换的提示,直接CTRL+C,在网上搜了把,发现有几个方法可以解决,方法如下:
通过使用下面的命令格式:

cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir
 

-r的意思是递归复制,也就是复制文件夹及其下所有文件
-f的意思是遇到同名的文件,不提示,直接覆盖
但为什么我们用这两个参数,系统还是会提示覆盖呢?
这是因为,系统在安装的时候使用了别名,防止我们误操作,覆盖了不该覆盖的文件。使用别名命令就可以看到具体的配置了。

[test@Server home]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 

从上边我们可以看出,我们输入的cp命令,其实是“cp -i”命令,也就是不管我们怎么输入 cp -rf,其实执行的是 cp -i -rf , 也无怪乎总是提问是否覆盖了。
从上边的命令我们可以知道,其他几个命令,也使用了别名,例如ll,ls mv,rm等。
那么如何解决这个问题呢?

[test@Server home]# vi ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 

只要在相应的命令前加#号,就可以注释掉该命令了。保存退出,然后你就可以用纯粹的原命令了。
其实还有一种更简单的方法可以解决这个问题,就是在cp前加一个反斜杠如: \cp -f file dir 就可以了!

CentOS/RHEL 下如何解压缩RAR格式文件

在centos或者rhel系统下如何来解压缩RAR格式的压缩包文件呢?有些朋友购买了vps后由于他是从原来的win主机搬迁过来,备份打包的数据是rar格式的,那在centos下怎么解压呢?
解决方法如下:
首先下载并安装rarlinux软件包

wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz
tar -xvf rarlinux-3.9.3.tar.gz
cd rar
make
 

看见下面这些信息就是安装成功了

mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
 

但是在运行命令rar时,出现下面这个问题,

rar: /lib/i686/nosegneg/libc.so.6: version `GLIBC_2.7' not found (required by rar)
 

解决办法:

cp rar_static /usr/local/bin/rar
 

先记住两个常用命令吧:

rar x vpsyou.rar  //解压 vpsyou.rar 到当前目录
rar vpsyou.rar ./vpsyou.com/   //将 vpsyou.com 目录打包为 vpsyou.rar
 

原文

CentOS /RHEL: 如何使用DD命令

在centos 或者rhel系统下我们经常会用到dd命令来创建文件,那么dd命令的用法还有很多。本文将会给大家介绍一些dd命令的例子。
在我们手边没有合适的硬盘IO测试利器时,dd是我们的最佳选择,好,仔细看线面四种方式。思考一个问题,区别在哪儿?

dd bs=1M count=128 if=/dev/zero of=test
dd bs=1M count=128 if=/dev/zero of=test_01; sync
dd bs=1M count=128 if=/dev/zero of=test_02 conv=fdatasync
dd bs=1M count=128 if=/dev/zero of=test_03 oflag=dsync
 

想到了吗?看这里:区别在于内存中写缓存的处理方式。
1# dd bs=4M count=1024 if=/dev/zero of=test
centos dd 命令
没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。所以如果这个速度很快,先不要偷着乐。呵呵

2# dd bs=4M count=1024 if=/dev/zero of=test_01

centos dd 命令
和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。
3# dd bs=4M count=1024 if=/dev/zero of=test_02 conv=fdatasync
centos dd 命令
加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。
4# dd bs=4M count=1024 if=/dev/zero of=test_03 oflag=dsync
centos dd 命令
加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。
至于哪一种最有参考价值,个人觉得是下面这种:

dd bs=4M count=1024 if=/dev/zero of=test_02  conv=fdatasync
 

因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。

CentOS 7 /RHEL7 如何修改网卡名字为eth*

在centos7 系统里,网卡的名字已经不是 以前的eth0 或者eth*这样的,而是变成了enp0s3这样的,那么如何将网卡的名字从enp0s3改成eth0这样的呢?
centos 7
1# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    name="eth0"
 

2# mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0
3# vi /etc/default/grun

  GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet"
    GRUB_DISABLE_RECOVERY="true
 

在rhgb quiet中添加:net.ifnames=0 biosdevname=0
4# 重新建立grub文件

    grub2-mkconfig -o /boot/grub2/grub.cfg
 

5# 重新启动服务器

CentOS 安装php-tidy 模块扩展

在php环境下有时候需要php-tidy模块的支持,那么如何在centos 或rhel系统下安装php-tidy模块呢?
首先需要使用yum命令安装下面的模块:
php-tidy-这个包含了使用tidy 类库支持php的动态共享库。
linux操作系统

在centos下安装php-tidy

输入下面的命令:

yum install php-tidy
 

命令输出:

[root@devops Desktop]# yum -y install glances
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
No package glances available.
Error: Nothing to do
[root@devops Desktop]# yum install glances
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
No package glances available.
Error: Nothing to do
[root@devops Desktop]#
[root@devops Desktop]#
[root@devops Desktop]#
[root@devops Desktop]# yum install php-tidy
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-tidy.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-40.el6_6 for package: php-tidy-5.3.3-40.el6_6.x86_64
--> Processing Dependency: libtidy-0.99.so.0()(64bit) for package: php-tidy-5.3.3-40.el6_6.x86_64
--> Running transaction check
---> Package libtidy.x86_64 0:0.99.0-19.20070615.1.el6 will be installed
---> Package php-common.x86_64 0:5.3.3-40.el6_6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package         Arch        Version                         Repository    Size
================================================================================
Installing:
 php-tidy        x86_64      5.3.3-40.el6_6                  updates       39 k
Installing for dependencies:
 libtidy         x86_64      0.99.0-19.20070615.1.el6        base         127 k
 php-common      x86_64      5.3.3-40.el6_6                  updates      527 k
Transaction Summary
================================================================================
Install       3 Package(s)
Total download size: 693 k
Installed size: 3.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): libtidy-0.99.0-19.20070615.1.el6.x86_64.rpm       | 127 kB     00:00
(2/3): php-common-5.3.3-40.el6_6.x86_64.rpm              | 527 kB     00:01
(3/3): php-tidy-5.3.3-40.el6_6.x86_64.rpm                |  39 kB     00:00
--------------------------------------------------------------------------------
Total                                           108 kB/s | 693 kB     00:06
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : php-common-5.3.3-40.el6_6.x86_64                             1/3
  Installing : libtidy-0.99.0-19.20070615.1.el6.x86_64                      2/3
  Installing : php-tidy-5.3.3-40.el6_6.x86_64                               3/3
  Verifying  : libtidy-0.99.0-19.20070615.1.el6.x86_64                      1/3
  Verifying  : php-tidy-5.3.3-40.el6_6.x86_64                               2/3
  Verifying  : php-common-5.3.3-40.el6_6.x86_64                             3/3
Installed:
  php-tidy.x86_64 0:5.3.3-40.el6_6
Dependency Installed:
  libtidy.x86_64 0:0.99.0-19.20070615.1.el6  php-common.x86_64 0:5.3.3-40.el6_6
Complete!
 

重启或者重载 web服务器
输入下面的命令:

service httpd restart
 

验证tidy的配置
输入命令:

php -i | grep -color tidy
 

命令输出:

PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in Unknown on line 0
tidy
Extension Version => 2.0 ($Id: tidy.c 296107 2010-03-12 10:28:59Z jani $)
tidy.clean_output => no value => no value
tidy.default_config => no value => no value
[root@devops Desktop]#
 

centos/ubuntu下安装glances监控软件

如果你想通过一个工具来监控真个linux系统的使用情况,比如cpu, 磁盘iO,网络使用情况,内存使用情况以及其它的。那么可以尝试使用glances工具来监控系统。

CentOS/RHEL 下安装glances工具

使用yum命令来安装glances,输入下面的命令:

yum -y install glances
 

命令输出:

yum install glances
Loaded plugins: product-id, protectbase, rhnplugin
This system is receiving updates from RHN Classic or RHN Satellite.
rhel-x86_64-server-6                                 | 1.5 kB     00:00
rhel-x86_64-server-optional-6                        | 1.5 kB     00:00
0 packages excluded due to repository protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package glances.noarch 0:1.7.1-1.el6 will be installed
--> Processing Dependency: python-psutil >= 0.4.1 for package: glances-1.7.1-1.el6.noarch
--> Processing Dependency: python-setuptools for package: glances-1.7.1-1.el6.noarch
--> Running transaction check
---> Package python-psutil.x86_64 0:0.6.1-1.el6 will be installed
---> Package python-setuptools.noarch 0:0.6.10-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================
 Package             Arch     Version          Repository              Size
============================================================================
Installing:
 glances             noarch   1.7.1-1.el6      epel                   107 k
Installing for dependencies:
 python-psutil       x86_64   0.6.1-1.el6      epel                    84 k
 python-setuptools   noarch   0.6.10-3.el6     rhel-x86_64-server-6   336 k
Transaction Summary
============================================================================
Install       3 Package(s)
Total download size: 527 k
Installed size: 843 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): glances-1.7.1-1.el6.noarch.rpm                | 107 kB     00:00
(2/3): python-psutil-0.6.1-1.el6.x86_64.rpm          |  84 kB     00:00
(3/3): python-setuptools-0.6.10-3.el6.noarch.rpm     | 336 kB     00:00
----------------------------------------------------------------------------
Total                                       1.8 MB/s | 527 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : python-psutil-0.6.1-1.el6.x86_64                         1/3
  Installing : python-setuptools-0.6.10-3.el6.noarch                    2/3
  Installing : glances-1.7.1-1.el6.noarch                               3/3
  Verifying  : python-setuptools-0.6.10-3.el6.noarch                    1/3
  Verifying  : python-psutil-0.6.1-1.el6.x86_64                         2/3
  Verifying  : glances-1.7.1-1.el6.noarch                               3/3
Installed:
  glances.noarch 0:1.7.1-1.el6
Dependency Installed:
  python-psutil.x86_64 0:0.6.1-1.el6
  python-setuptools.noarch 0:0.6.10-3.el6
Complete!
 
Ubuntu/Debian下安装glances工具
 

输入下面的命令:

sudo apt-get install glances
 

命令输出:
glances

CentOS 更改默认的openSSH 端口

在centos系统里,如何将ssh默认的端口号22改成2200呢?
linux logo

CentOS下更改OpenSSH端口号

要想更改openssh的端口号,需要编辑/etc/ssh/sshd_config文件,更改”Port”字段的值为你想要更改的端口号。
首先,打开“/etc/ssh/sshd_config”配置文件,更改下面的行:

Port 2200
 

保存并推出当前的配置文件,并重新加载或者重新启动sshd服务,输入下面的命令:

service sshd restart
或者
service sshd reload
 

CentOS:yum更新时如何限制某个包为特定的版本

在centos下,当我们使用yum udpate命令更新系统的软件包的时候,会默认将所以需要更新的包都显示出来,并更新。那么如果你想让某一个包一直保持在某一个版本,该如何来做呢?你可以通过下面的两个方法来实现:
1.执行yum update 命令的时候,使用”–exclude” 选项,来排除不需要更新的软件包。
2. 使用yum versionlock 工具
linux操作系统

方法一:使用yum –exclude 命令来限定不更新的软件包

1.编辑配置文件“/etc/yum.conf”
2. 加入下面的内容到配置文件里:

exclude=http* ===》(在这里加入不需要更新的软件包)
 

保存并退出。

方法二:通过yum versionlock工具限制软件包更新

首先你需要安装”yum-plugin-versionlock”工具,并传入需要排除的软件包的名字。这样就可以保护某些软件包的版本不需要更新。
centos 下安装yum-plugin-versionlock
输入下面的命令来安装yum-plugin-versionlock

yum -y install yum-versionlock
或
yum -y install yum-plugin-versionlock
 

命令输出:

[root@devops Desktop]# yum -y install yum-versionlock
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-plugin-versionlock.noarch 0:1.1.30-30.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package                      Arch         Version             Repository  Size
================================================================================
Installing:
 yum-plugin-versionlock       noarch       1.1.30-30.el6       base        30 k
Transaction Summary
================================================================================
Install       1 Package(s)
Total download size: 30 k
Installed size: 43 k
Downloading Packages:
yum-plugin-versionlock-1.1.30-30.el6.noarch.rpm          |  30 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : yum-plugin-versionlock-1.1.30-30.el6.noarch                  1/1
  Verifying  : yum-plugin-versionlock-1.1.30-30.el6.noarch                  1/1
Installed:
  yum-plugin-versionlock.noarch 0:1.1.30-30.el6
Complete!
 

举个例子:使用versionlock工具限定httpd工具不更新

yum versionlock httpd
或者
yum versionlock add httpd
 

命令输出:

[root@devops Desktop]# yum versionlock httpd
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Adding versionlock on: 0:httpd-2.2.15-15.el6.centos.1
versionlock added: 1
 

如果想删除某个软件包部在限制更新之列,可以使用“delete”选项,如下面的命令:

yum versionlock delete httpd
 

列出当前限定列表里的所有软件包
输入下面的命令:

yum versionlock list
 

命令输出:

[root@devops Desktop]# yum versionlock  list
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
0:wget-1.12-1.4.el6.*
0:httpd-2.2.15-15.el6.centos.1.*
versionlock list done
 

移除所有的限定软件包列表
输入下面的命令:

yum versionlock clear
 

命令输出:

[root@devops Desktop]# yum versionlock clear
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
versionlock cleared
 

CentOS 如何阻止yum在update的时候更新内核

在centos 或者rhel系统,如果你想更新系统上的软件包的时候,我们都会使用yum update,这个命令默认情况下也会更新系统给的内核文件,那么如何不让yum update 命令页升级内核文件呢?
linux操作系统
首先编辑”/etc/yum.conf” 文件,添加下面的内容:

exclude=kernel*
 

保存并退出配置文件。
尝试使用yum -y update 命令来更新软件包.

yum -y update
 

如果想不更新配置文件并不更新kernel 文件,可以使用“-x” 选项,输入下面的命令:

yum -x 'kernel*' update
 

CentOS 查看yum命令的历史记录

如何查看在linux系统下使用yum 命令的历史记录,比如说更新包,删除包或其它的yum信息。yum命令的history选项可以用来查看yum命令的操作历史记录。
linux操作系统

查看yum工具的版本信息

输入下面的命令:

yum info yum | grep --color Version
 

命令输出:

[root@devops Desktop]# yum info yum | grep --color Version
Version     : 3.2.29
Version     : 3.2.29
[root@devops Desktop]#
 

yum history命令查看yum命令的操作记录

输入下面的命令:

yum history
 

或者

yum history list
 

命令输出如下:

[root@devops Desktop]# yum history
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     6 |  <devops>                | 2014-12-14 09:11 | Update         |    1
     5 |  <devops>                | 2014-12-14 08:41 | I, U           |    3
     4 |  <devops>                | 2014-12-14 08:37 | Install        |    3
     3 |  <devops>                | 2014-12-14 05:51 | Install        |    1
     2 |  <devops>                | 2014-12-14 04:12 | I, O           |    4
     1 | System <unset>           | 2014-11-26 14:39 | Install        | 1076
 

centos如何解决“rpmdb:PANIC: fatal region error detected; run recovery error and solution"错误

在centos 或者rhel系统,当你使用yum命令的时候可能会遇到下面的错误信息:

rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
 

如何解决这个问题呢?
首先要先备份下rpm数据库,以防万一。使用下面的命令备份rpm数据库:

cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/
 

显示所有的rpm 数据库文件,输入下面的命令:

ls -l /var/lib/rpm/_*
 

命令输出:

[root@devops Desktop]# ls -l /var/lib/rpm/_*
-rw-r--r--. 1 root root   24576 Dec 14 04:13 /var/lib/rpm/__db.001
-rw-r--r--. 1 root root  229376 Dec 14 04:13 /var/lib/rpm/__db.002
-rw-r--r--. 1 root root 1318912 Dec 14 04:13 /var/lib/rpm/__db.003
-rw-r--r--. 1 root root  753664 Dec 14 04:13 /var/lib/rpm/__db.004
 

执行下面的命令,修复问题:

rm -f /var/lib/rpm/__db*
db_verify /var/lib/rpm/Packages
rpm --rebuilddb
yum clean all
 

到此我们可以执行一个yum命令来验证问题已经被解决。
输入下面命令:

yum repolist
 

命令输出:

[root@devops Desktop]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
repo id                        repo name                                  status
base                           CentOS-6 - Base                            6,518
extras                         CentOS-6 - Extras                             36
updates                        CentOS-6 - Updates                           494
repolist: 7,048
 

CentOS 6.x 安装和配置KVM虚拟化环境

如何在centos 6.x系统上配置给予内核的虚拟化环境呢?如何使用KVM安装并管理虚机?
KVM是CentOS或RHEL系统的一部分,我们仍然需要安装一下KVM包相关的一些软件包。
kvm

CentOS 安装kvm相关软件包

输入下面的命令:

yum groupinstall "Virtualisation Tools" "Virtualization Platform"
yum install python-virtinst
 

或者

 yum install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools
 

命令输出:

Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.pubyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.pubyun.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libguestfs-tools.x86_64 1:1.20.11-11.el6 will be installed
--> Processing Dependency: libguestfs-tools-c = 1:1.20.11-11.el6 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: libguestfs = 1:1.20.11-11.el6 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Win::Hivex) >= 1.2.7 for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(XML::Writer) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Virt) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Guestfs::Lib) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
--> Processing Dependency: perl(Sys::Guestfs) for package: 1:libguestfs-tools-1.20.11-11.el6.x86_64
...
 

启动libvirtd 服务

libvirtd 程序是一个服务器端的进程组件,用来做虚拟化的管理。 输入下面的命令来设置libvirtd服务系统自启动:

chkconfig libvirtd on
 

输入下面的命令启动libvirtd服务:

service libvirtd start
 

命令输出:

Starting libvirtd daemon:                                  [  OK  ]
 

使用下面的命令来检测libvirtd服务的状态:

service libvirtd status
 

命令输出:

libvirtd (pid  31128) is running...
# virsh -c qemu:///system list
 Id    Name                           State
----------------------------------------------------
 

安装并配置网桥

所有的VM虚机会通过一个私有网络来进行网络通信。所以你需要创建一个网桥让各主机之间进行互相通信。输入下面的命令来装网桥组件:

yum install birdge-utils
 

命令输出:

[root@devops Desktop]# yum install bridge-utils
Loaded plugins: fastestmirror, refresh-packagekit, security, versionlock
Loading mirror speeds from cached hostfile
 * base: mirrors.pubyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.pubyun.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bridge-utils.x86_64 0:1.2-9.el6 will be updated
---> Package bridge-utils.x86_64 0:1.2-10.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package               Arch            Version              Repository     Size
================================================================================
Updating:
 bridge-utils          x86_64          1.2-10.el6           base           30 k
Transaction Summary
================================================================================
Upgrade       1 Package(s)
Total download size: 30 k
Downloading Packages:
bridge-utils-1.2-10.el6.x86_64.rpm                       |  30 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : bridge-utils-1.2-10.el6.x86_64                               1/2
  Cleanup    : bridge-utils-1.2-9.el6.x86_64                                2/2
  Verifying  : bridge-utils-1.2-10.el6.x86_64                               1/2
  Verifying  : bridge-utils-1.2-9.el6.x86_64                                2/2
Updated:
  bridge-utils.x86_64 0:1.2-10.el6
Complete!
 

配置网桥
编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 :

DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
 

创建一个网桥文件ifcfg-br0:”/etc/sysconfig/network-scripts/ifcfg-br0″,并进入下面的内容:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.192
DELAY=0
 

重启网络服务
输入下面的命令:

service network restart
 

CentOS 使用yum工具安装JAVA SDK

如何在centos系统里安装JAVA JDK 运行时环境呢?本文将会介绍通过使用yum命令安装JAVA SDK 开发环境。
CentOS 6.x 和5.x 版本默认都安装了openJDK运行时环境。这是一个开源的java版本。
java
CentOS 默认安装的JAVA 软件包包括:
[cc lang=”php”] java-1.7.0-openjdk – OpenJDK 运行时环境
java-1.7.0-openjdk-devel – OpenJDK 开发环境
[/code] [cc lang=”php”] 使用下面的命令查看yum软件库里可用的JDK 软件包:
yum search java | grep -i –color JDK
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# yum search java | grep -i –color JDK
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK – Java browser
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK
[/code] CentOS 安装 Java SDK 开发包
在命令行下通过yum命令安装JAVA SDK:
[cc lang=”php”] yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.1.el6 will be installed
–> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64
—> Package java-1.7.0-openjdk-devel.x86_64 1:1.7.0.71-2.5.3.1.el6 will be installed
–> Running transaction check
—> Package libjpeg.x86_64 0:6b-46.el6 will be obsoleted
—> Package libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 will be obsoleting
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
java-1.7.0-openjdk x86_64 1:1.7.0.71-2.5.3.1.el6 updates 26 M
java-1.7.0-openjdk-devel x86_64 1:1.7.0.71-2.5.3.1.el6 updates 9.4 M
libjpeg-turbo x86_64 1.2.1-3.el6_5 base 174 k
replacing libjpeg.x86_64 6b-46.el6
Transaction Summary
================================================================================
Install 3 Package(s)
Total download size: 35 M
Is this ok [y/N]:
Is this ok [y/N]: y
Downloading Packages:
(1/3): java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64.rp | 26 MB 00:16
(2/3): java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86 | 9.4 MB 00:06
(3/3): libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm | 174 kB 00:00
——————————————————————————–
Total 1.6 MB/s | 35 MB 00:22
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key)
Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libjpeg-turbo-1.2.1-3.el6_5.x86_64 1/4
Installing : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64 2/4
Installing : 1:java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86_64 3/4
Erasing : libjpeg-6b-46.el6.x86_64 4/4
Verifying : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el6.x86_64 1/4
Verifying : libjpeg-turbo-1.2.1-3.el6_5.x86_64 2/4
Verifying : 1:java-1.7.0-openjdk-devel-1.7.0.71-2.5.3.1.el6.x86_64 3/4
Verifying : libjpeg-6b-46.el6.x86_64 4/4
Installed:
java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.1.el6
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.71-2.5.3.1.el6
libjpeg-turbo.x86_64 0:1.2.1-3.el6_5
Replaced:
libjpeg.x86_64 0:6b-46.el6
Complete!
[/code] CentOS设置 JAVA_HOME 环境变量
java SDK包默认会安装在“/usr/lib/jvm” 目录下:
[cc lang=”php”] ls -l /usr/lib/jvm
[/code] 命令输出:
[cc lang=”php”] [root@devops Desktop]# ls -l /usr/lib/jvm
total 8
lrwxrwxrwx. 1 root root 26 Dec 14 04:13 java -> /etc/alternatives/java_sdk
drwxr-xr-x. 3 root root 4096 Nov 26 14:42 java-1.6.0-openjdk-1.6.0.0.x86_64
lrwxrwxrwx. 1 root root 32 Dec 14 04:13 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0
drwxr-xr-x. 7 root root 4096 Dec 14 04:13 java-1.7.0-openjdk-1.7.0.71.x86_64
lrwxrwxrwx. 1 root root 34 Dec 14 04:13 java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.71.x86_64
lrwxrwxrwx. 1 root root 34 Dec 14 04:13 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root 21 Dec 14 04:12 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Nov 26 14:42 jre-1.6.0 -> /etc/alternatives/jre_1.6.0
lrwxrwxrwx. 1 root root 37 Nov 26 14:42 jre-1.6.0-openjdk.x86_64 -> java-1.6.0-openjdk-1.6.0.0.x86_64/jre
lrwxrwxrwx. 1 root root 27 Dec 14 04:12 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx. 1 root root 38 Dec 14 04:12 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.71.x86_64/jre
lrwxrwxrwx. 1 root root 29 Dec 14 04:12 jre-openjdk -> /etc/alternatives/jre_openjdk
[/code] 使用export命令设置JAVA_HOME的变量值为包含”bin/java”可执行文件的目录
[cc lang=”php”] export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
[/code] java环境变量就配置完成了。
下面我们来测试执行一个java程序。
创建一个名为test.java的文件,加入下面的代码:
[cc lang=”java”] public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, World! osetc.com”);
}
}
[/code] 编译并执行test.java程序:
[cc lang=”php”] javac HelloWorld.java
java HelloWorld
[/code] 程序输出:
[cc lang=”php”] Hello, World!
[/code]

CentOS 使用yum安装 Lighttpd web 服务器

Lighttpd是一个快速且安全的并被优化的高性能web服务器。这种web服务器需要更低的内存以及很低的cpu使用率。包括下面的一下高级功能:
[cc lang=”php”] FastCGI
CGI
Auth
输出压缩
URL 重写
[/code] lighttpd
lighttpd 服务器软件包并不在默认的CentOS yum库里,所以你需要配置Epel repo库来安装。下面先来安装epel repo.
下载epel 软件包,使用wget 命令:
[cc lang=”php”] wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
[/code] 命令输出:
[cc lang=”php”] Resolving epel.mirror.net.in… 120.88.47.14, 2401:4800:2121:c0:ff:ee:ee:2
Connecting to epel.mirror.net.in|120.88.47.14|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 14540 (14K) [application/x-redhat-package-manager] Saving to: “epel-release-6-8.noarch.rpm”
100%[==========================================================================================>] 14,540 54.6K/s in 0.3s
2014-02-23 12:24:53 (54.6 KB/s) – “epel-release-6-8.noarch.rpm” saved [14540/14540] [/code] 使用rpm 命令安装刚才下载的epel软件包:
[cc lang=”php”] rpm -ivh epel-release-6-8.noarch.rpm
[/code] 命令输出:
[cc lang=”php”] arning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing… ########################################### [100%] 1:epel-release ########################################### [100%] [/code]

CentOS 安装Lighttpd

步骤一:使用yum命令安装下面的包:
[cc lang=”php”] yum install lighttpd lighttpd-fastcgi lighttpd-mod_geoip
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirror.thelinuxfix.com
* epel: mirror.steadfast.net
* extras: holmes.umflint.edu
* updates: bay.uchicago.edu
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package lighttpd.x86_64 0:1.4.34-1.el6 will be installed
—> Package lighttpd-fastcgi.x86_64 0:1.4.34-1.el6 will be installed
–> Processing Dependency: spawn-fcgi for package: lighttpd-fastcgi-1.4.34-1.el6.x86_64
—> Package lighttpd-mod_geoip.x86_64 0:1.4.34-1.el6 will be installed
–> Processing Dependency: libGeoIP.so.1()(64bit) for package: lighttpd-mod_geoip-1.4.34-1.el6.x86_64
–> Running transaction check
—> Package GeoIP.x86_64 0:1.4.8-1.el6 will be installed
—> Package spawn-fcgi.x86_64 0:1.6.3-1.el6 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
======================================================================
Package Arch Version Repository
Size
======================================================================
Installing:
lighttpd x86_64 1.4.34-1.el6 epel 294 k
lighttpd-fastcgi x86_64 1.4.34-1.el6 epel 44 k
lighttpd-mod_geoip x86_64 1.4.34-1.el6 epel 21 k
Installing for dependencies:
GeoIP x86_64 1.4.8-1.el6 epel 620 k
spawn-fcgi x86_64 1.6.3-1.el6 epel 16 k
Transaction Summary
======================================================================
Install 5 Package(s)
Total download size: 995 k
Installed size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): GeoIP-1.4.8-1.el6.x86_64.rpm | 620 kB 00:00
(2/5): lighttpd-1.4.34-1.el6.x86_64.rpm | 294 kB 00:00
(3/5): lighttpd-fastcgi-1.4.34-1.el6.x86_64.rp | 44 kB 00:00
(4/5): lighttpd-mod_geoip-1.4.34-1.el6.x86_64. | 21 kB 00:00
(5/5): spawn-fcgi-1.6.3-1.el6.x86_64.rpm | 16 kB 00:00
———————————————————————-
Total 1.7 MB/s | 995 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6)
Package: epel-release-6-8.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : lighttpd-1.4.34-1.el6.x86_64 1/5
Installing : GeoIP-1.4.8-1.el6.x86_64 2/5
Installing : spawn-fcgi-1.6.3-1.el6.x86_64 3/5
Installing : lighttpd-fastcgi-1.4.34-1.el6.x86_64 4/5
Installing : lighttpd-mod_geoip-1.4.34-1.el6.x86_64 5/5
Verifying : lighttpd-1.4.34-1.el6.x86_64 1/5
Verifying : lighttpd-mod_geoip-1.4.34-1.el6.x86_64 2/5
Verifying : spawn-fcgi-1.6.3-1.el6.x86_64 3/5
Verifying : GeoIP-1.4.8-1.el6.x86_64 4/5
Verifying : lighttpd-fastcgi-1.4.34-1.el6.x86_64 5/5
Installed:
lighttpd.x86_64 0:1.4.34-1.el6
lighttpd-fastcgi.x86_64 0:1.4.34-1.el6
lighttpd-mod_geoip.x86_64 0:1.4.34-1.el6
Dependency Installed:
GeoIP.x86_64 0:1.4.8-1.el6 spawn-fcgi.x86_64 0:1.6.3-1.el6
Complete!
[/code] 启动lighttpd服务,并将其加入到系统自启动项里:
[cc lang=”php”] service lighttpd start
chkconfig lighttpd on
[/code] 步骤二:CentOS lightpd web 服务器配置
1.编辑配置文件“/etc/lighttpd/lighttpd.conf”,更改下面的内容:
[cc lang=”php”] var.server_root = “/var/www”
include “modules.conf”
server.port = 80
server.document-root = server_root + “/lighttpd”
[/code] 2. 编辑lighttpd模块文件”/etc/lighttpd/modules.conf”,取消注释下面的内容:
[cc lang=”php”] include “conf.d/fastcgi.conf”
server.modules = (
“mod_access”,
“mod_alias”,
“mod_auth”,
# “mod_evasive”,
“mod_redirect”,
“mod_rewrite”,
# “mod_setenv”,
# “mod_usertrack”,
[/code] )
步骤三: 重新启动lighttpd 服务
输入下面的命令重启lighttpd服务:
[cc lang=”php”] service lighttpd restart
[/code]

CentOS 7/RHEL 7: 如何安装LAMP工具(Apache, MariaDB,PHP)

CentOS 和RHEL 官方发布的最新版centos 7 和rhel 7系统有了很大的改变,那么如何在新的centos 7 和rhel 7 系统上搭建LAMP server.
centos 7 lamp

1.安装并配置apache 服务器

通过yum安装apache web 服务器:
[cc lang=”php”] yum install httpd
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package httpd.x86_64 0:2.4.6-18.el7.centos will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
httpd x86_64 2.4.6-18.el7.centos updates 2.7 M
Transaction Summary
==============================================================================================
Install 1 Package
Total download size: 2.7 M
Installed size: 9.3 M
Is this ok [y/d/N]: y
Downloading packages:
httpd-2.4.6-18.el7.centos.x86_64.rpm | 2.7 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : httpd-2.4.6-18.el7.centos.x86_64 1/1
Verifying : httpd-2.4.6-18.el7.centos.x86_64 1/1
Installed:
httpd.x86_64 0:2.4.6-18.el7.centos
Complete!
[/code] 设置apache服务器在系统启动的时候自动启动
[cc lang=”php”] systemctl enable httpd.service
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# systemctl enable httpd.service
ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
[/code] centos 7 下启动httpd 服务
[cc lang=”php”] systemctl start httpd.service
[/code]

2. 在centos 7 系统上安装MariaDB

通过yum 命令来安装MariaDB 服务器:
[cc lang=”php”] yum install mariadb-server mariadb
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install mariadb-server mariadb
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package mariadb.x86_64 1:5.5.40-1.el7_0 will be installed
–> Processing Dependency: mariadb-libs(x86-64) = 1:5.5.40-1.el7_0 for package: 1:mariadb-5.5.40-1.el7_0.x86_64
—> Package mariadb-server.x86_64 1:5.5.40-1.el7_0 will be installed
–> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.40-1.el7_0.x86_64
–> Running transaction check
—> Package mariadb-libs.x86_64 1:5.5.35-3.el7 will be updated
—> Package mariadb-libs.x86_64 1:5.5.40-1.el7_0 will be an update
—> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be installed
—> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
–> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
–> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
–> Running transaction check
—> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
–> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch
–> Running transaction check
—> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed
–> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
–> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
—> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
–> Running transaction check
—> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed
—> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
mariadb x86_64 1:5.5.40-1.el7_0 updates 8.9 M
mariadb-server x86_64 1:5.5.40-1.el7_0 updates 11 M
Installing for dependencies:
perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k
perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k
perl-DBD-MySQL x86_64 4.023-5.el7 base 140 k
perl-DBI x86_64 1.627-4.el7 base 802 k
perl-IO-Compress noarch 2.061-2.el7 base 260 k
perl-Net-Daemon noarch 0.48-5.el7 base 51 k
perl-PlRPC noarch 0.2020-14.el7 base 36 k
Updating for dependencies:
mariadb-libs x86_64 1:5.5.40-1.el7_0 updates 753 k
Transaction Summary
==============================================================================================
Install 2 Packages (+7 Dependent packages)
Upgrade ( 1 Dependent package)
Total size: 22 M
Total download size: 21 M
Is this ok [y/d/N]: y
Downloading packages:
(1/9): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00
(2/9): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00
(3/9): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00
(4/9): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00
(5/9): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00
(6/9): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00
(7/9): mariadb-5.5.40-1.el7_0.x86_64.rpm | 8.9 MB 00:00:07
(8/9): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm | 140 kB 00:00:07
(9/9): mariadb-server-5.5.40-1.el7_0.x86_64.rpm | 11 MB 00:00:13
———————————————————————————————-
Total 1.6 MB/s | 21 MB 00:00:13
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 1:mariadb-libs-5.5.40-1.el7_0.x86_64 1/11
Installing : 1:mariadb-5.5.40-1.el7_0.x86_64 2/11
Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 3/11
Installing : perl-Net-Daemon-0.48-5.el7.noarch 4/11
Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 5/11
Installing : perl-IO-Compress-2.061-2.el7.noarch 6/11
Installing : perl-PlRPC-0.2020-14.el7.noarch 7/11
Installing : perl-DBI-1.627-4.el7.x86_64 8/11
Installing : perl-DBD-MySQL-4.023-5.el7.x86_64 9/11
Installing : 1:mariadb-server-5.5.40-1.el7_0.x86_64 10/11
Cleanup : 1:mariadb-libs-5.5.35-3.el7.x86_64 11/11
Verifying : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 1/11
Verifying : perl-Net-Daemon-0.48-5.el7.noarch 2/11
Verifying : 1:mariadb-5.5.40-1.el7_0.x86_64 3/11
Verifying : 1:mariadb-server-5.5.40-1.el7_0.x86_64 4/11
Verifying : 1:mariadb-libs-5.5.40-1.el7_0.x86_64 5/11
Verifying : perl-PlRPC-0.2020-14.el7.noarch 6/11
Verifying : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 7/11
Verifying : perl-DBI-1.627-4.el7.x86_64 8/11
Verifying : perl-IO-Compress-2.061-2.el7.noarch 9/11
Verifying : perl-DBD-MySQL-4.023-5.el7.x86_64 10/11
Verifying : 1:mariadb-libs-5.5.35-3.el7.x86_64 11/11
Installed:
mariadb.x86_64 1:5.5.40-1.el7_0 mariadb-server.x86_64 1:5.5.40-1.el7_0
Dependency Installed:
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBD-MySQL.x86_64 0:4.023-5.el7 perl-DBI.x86_64 0:1.627-4.el7
perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
Dependency Updated:
mariadb-libs.x86_64 1:5.5.40-1.el7_0
Complete!
[/code] 启动mariadb 服务,输入:
[cc lang=”php”] systemctl start mariadb.service
[/code] 设置mariadb 服务器在系统启动时候启用,输入命令:
[cc lang=”php”] systemctl enable mariadb.service
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# systemctl enable mariadb.service
ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
[/code] Mariadb 权限配置
输入下面的命令:
[cc lang=”php”] ./usr/bin/mysql_secure_installation
[/code] 命令输出:
[cc lang=”php”] NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:输入密码
Re-enter new password: 再次输入密码
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
… Success!
By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[/code] 测试MariaDB是否安装成功,输入下面的命令:
[cc lang=”php”] mysql -u root -p
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.40-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
+——————–+
3 rows in set (0.01 sec)
[/code]

3. 在centos 7 上安装PHP

使用yum命令安装php包和其相关的软件包:
[cc lang=”php”] yum install php php-mysql php-gd php-pear
[/code] 命令输出:
[cc lang=”php”] [root@osetc /]# yum install php php-mysql php-gd php-pear
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Resolving Dependencies
–> Running transaction check
—> Package php.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: php-common(x86-64) = 5.4.16-23.el7_0.3 for package: php-5.4.16-23.el7_0.3.x86_64
–> Processing Dependency: php-cli(x86-64) = 5.4.16-23.el7_0.3 for package: php-5.4.16-23.el7_0.3.x86_64
—> Package php-gd.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.4.16-23.el7_0.3.x86_64
—> Package php-mysql.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: php-pdo(x86-64) = 5.4.16-23.el7_0.3 for package: php-mysql-5.4.16-23.el7_0.3.x86_64
—> Package php-pear.noarch 1:1.9.4-21.el7 will be installed
–> Processing Dependency: php-xml for package: 1:php-pear-1.9.4-21.el7.noarch
–> Processing Dependency: php-posix for package: 1:php-pear-1.9.4-21.el7.noarch
–> Running transaction check
—> Package php-cli.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-common.x86_64 0:5.4.16-23.el7_0.3 will be installed
–> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-23.el7_0.3.x86_64
—> Package php-pdo.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-process.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package php-xml.x86_64 0:5.4.16-23.el7_0.3 will be installed
—> Package t1lib.x86_64 0:5.1.2-14.el7 will be installed
–> Running transaction check
—> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
php x86_64 5.4.16-23.el7_0.3 updates 1.3 M
php-gd x86_64 5.4.16-23.el7_0.3 updates 124 k
php-mysql x86_64 5.4.16-23.el7_0.3 updates 97 k
php-pear noarch 1:1.9.4-21.el7 base 357 k
Installing for dependencies:
libzip x86_64 0.10.1-8.el7 base 48 k
php-cli x86_64 5.4.16-23.el7_0.3 updates 2.7 M
php-common x86_64 5.4.16-23.el7_0.3 updates 561 k
php-pdo x86_64 5.4.16-23.el7_0.3 updates 95 k
php-process x86_64 5.4.16-23.el7_0.3 updates 52 k
php-xml x86_64 5.4.16-23.el7_0.3 updates 122 k
t1lib x86_64 5.1.2-14.el7 base 166 k
Transaction Summary
==============================================================================================
Install 4 Packages (+7 Dependent packages)
Total download size: 5.7 M
Installed size: 21 M
Is this ok [y/d/N]: y
ownloading packages:
(1/11): libzip-0.10.1-8.el7.x86_64.rpm | 48 kB 00:00:01
(2/11): php-gd-5.4.16-23.el7_0.3.x86_64.rpm | 124 kB 00:00:01
(3/11): php-5.4.16-23.el7_0.3.x86_64.rpm | 1.3 MB 00:00:01
(4/11): php-mysql-5.4.16-23.el7_0.3.x86_64.rpm | 97 kB 00:00:00
(5/11): php-pdo-5.4.16-23.el7_0.3.x86_64.rpm | 95 kB 00:00:00
(6/11): php-cli-5.4.16-23.el7_0.3.x86_64.rpm | 2.7 MB 00:00:02
(7/11): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00
(8/11): php-process-5.4.16-23.el7_0.3.x86_64.rpm | 52 kB 00:00:00
(9/11): php-xml-5.4.16-23.el7_0.3.x86_64.rpm | 122 kB 00:00:01
(10/11): php-pear-1.9.4-21.el7.noarch.rpm | 357 kB 00:00:01
(11/11): php-common-5.4.16-23.el7_0.3.x86_64.rpm | 561 kB 00:00:06
———————————————————————————————-
Total 920 kB/s | 5.7 MB 00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libzip-0.10.1-8.el7.x86_64 1/11
Installing : php-common-5.4.16-23.el7_0.3.x86_64 2/11
Installing : php-cli-5.4.16-23.el7_0.3.x86_64 3/11
Installing : php-pdo-5.4.16-23.el7_0.3.x86_64 4/11
Installing : php-process-5.4.16-23.el7_0.3.x86_64 5/11
Installing : php-xml-5.4.16-23.el7_0.3.x86_64 6/11
Installing : t1lib-5.1.2-14.el7.x86_64 7/11
Installing : php-gd-5.4.16-23.el7_0.3.x86_64 8/11
Installing : 1:php-pear-1.9.4-21.el7.noarch 9/11
Installing : php-mysql-5.4.16-23.el7_0.3.x86_64 10/11
Installing : php-5.4.16-23.el7_0.3.x86_64 11/11
Verifying : php-common-5.4.16-23.el7_0.3.x86_64 1/11
Verifying : php-pdo-5.4.16-23.el7_0.3.x86_64 2/11
Verifying : t1lib-5.1.2-14.el7.x86_64 3/11
Verifying : php-process-5.4.16-23.el7_0.3.x86_64 4/11
Verifying : php-5.4.16-23.el7_0.3.x86_64 5/11
Verifying : php-gd-5.4.16-23.el7_0.3.x86_64 6/11
Verifying : php-xml-5.4.16-23.el7_0.3.x86_64 7/11
Verifying : php-mysql-5.4.16-23.el7_0.3.x86_64 8/11
Verifying : php-cli-5.4.16-23.el7_0.3.x86_64 9/11
Verifying : libzip-0.10.1-8.el7.x86_64 10/11
Verifying : 1:php-pear-1.9.4-21.el7.noarch 11/11
Installed:
php.x86_64 0:5.4.16-23.el7_0.3 php-gd.x86_64 0:5.4.16-23.el7_0.3
php-mysql.x86_64 0:5.4.16-23.el7_0.3 php-pear.noarch 1:1.9.4-21.el7
Dependency Installed:
libzip.x86_64 0:0.10.1-8.el7 php-cli.x86_64 0:5.4.16-23.el7_0.3
php-common.x86_64 0:5.4.16-23.el7_0.3 php-pdo.x86_64 0:5.4.16-23.el7_0.3
php-process.x86_64 0:5.4.16-23.el7_0.3 php-xml.x86_64 0:5.4.16-23.el7_0.3
t1lib.x86_64 0:5.1.2-14.el7
Complete!
[/code] 测试安装后的php服务器
在/var/www/html/下创一个test.php 文件,并加入下面的内容:
[cc lang=”php”]
[/code] 保存退出后,在浏览器上输入:http://127.0.0.1/test.php,后出现下面的界面。
centos 7 php
到此在centos 7 系统上配置LAMP的工具已完成。

CentOS 7/RHEL 7: 如何安装GCC编译器和开发工具

在CentOS 7和RHEL 7系统上如何安装Gnu GCC编译器和相关的工具比如:autoconf,automake,flex, c++编译器等工具。我们可以通过在centos 或者rhel 7 系统上安装下面的软件包来搭建基本的开发环境。
[cc lang=”php”] autoconf
automake
binutils
bison
flex
gcc
gcc-c++
gettext
libtool
make
patch
pkgconfig
redhat-rpm-config
rpm-build
rpm-sign
[/code] 显示当前系统的yum group,使用下面的命令:
[cc lang=”php”] yum group list
[/code] 命令输出:
[cc lang=”php”] [root@itsprite /]# yum group list
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Available environment groups:
Minimal Install
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
[/code] 安装GCC和开发环境
输入下面的命令:
[cc lang=”php”] yum group install “Development Tools”
[/code] 安装完之后,使用下面的命令来验证gcc是否安装成功:
[cc lang=”php”] whereis gcc
[/code] 命令输出:
[cc lang=”php”] [root@itsprite /]# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
[/code] 输入下面的命令来查看gcc工具的版本:
[cc lang=”php”] [root@itsprite /]# gcc –version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[/code] 测试GCC编译器
下面我们使用刚安装好的GCC编译器来编译一个c语言程序.
创建下面的test.c程序:
[cc lang=”c”] #include
int main(void){
printf(“Hello World!\n”);
return 0;
}
[/code] 输入命令编译test.c 文件:
[cc lang=”php”] gcc test.c -o test
[/code] 执行编译后的文件:
[cc lang=”php”] ./test
Hello World!
[/code]

centos 7/rhel7: 如何安装EPEL软件库

在centos 7 或者rhel 7系统上如何安装 EPEL repo呢? 使用EPEL repo 可以用来很容易的安装不同的软件包或者第三方的软件包。这些软件包在centos 或者RHEL官方的yum软件库里是不支持的。所以我们可以通过安装EPEL 软件库来安装官方不支持的软件包。
安装EPEL 软件库
1.首先下载并安装epel安装包,使用下面的命令:
[cc lang=”php”] yum install epel-release-7-2.noarch.rpm
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: amazon-id, rhui-lb
Examining epel-release-7-2.noarch.rpm: epel-release-7-2.noarch
Marking epel-release-7-2.noarch.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package epel-release.noarch 0:7-2 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch 7-2 /epel-release-7-2.noarch 22 k
Transaction Summary
================================================================================
Install 1 Package
Total size: 22 k
Installed size: 22 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-2.noarch 1/1
Verifying : epel-release-7-2.noarch 1/1
Installed:
epel-release.noarch 0:7-2
[/code] Complete!
当你安装完毕后可以使用“yum repolist” 命令来显示epel repo:
[cc lang=”php”] yum repolist
[/code] 命令输出:
[cc lang=”php”] Loaded plugins: amazon-id, rhui-lb
repo id repo name status
epel/x86_64 Extra Packages for Enterprise Linux 7 – x86_64 5,610
rhui-REGION-client-config-server-7/x86_64 Red Hat Update Infrastructure 2.0 Client Configur 2
rhui-REGION-rhel-server-releases/7Server/x86_64 Red Hat Enterprise Linux Server 7 (RPMs) 4,718
repolist: 10,330
[/code] 查找并安装软件包
使用下面的命令来显示在epel repo 里的所有可用软件包:
[cc lang=”php”] $ sudo yum –disablerepo=”*” –enablerepo=”epel” list available
[/code] 或者:
[cc lang=”php”] $ sudo yum –disablerepo=”*” –enablerepo=”epel” list available | grep ‘package’
[/code]

centos 7/rhel7: 如何重启/停止/启动网络服务

在新的centos7 系统里,我们如何来启动网络服务,如何重启网络服务以及如何来停止网络服务呢?centos 7 系统现在使用systemd来替换之前的init进程。它是linux操作系统的系统和服务的管理者。
centos 7
在之前的centos 6 系统里,我们一般都是使用init脚本来控制系统的服务或者进程的。
CentOS 7 重启网络服务,输入下面的命令:
[cc lang=”php”] systemctl retart network.service

systemctl restart network
[/code] Centos 7 启动网络服务,输入下面的命令:
[cc lang=”php”] systemctl start network.service

systemctl start network
[/code] CentOS 7 停止网络服务,输入命令:
[cc lang=”php”] systemctl stop network.service

systemctl stop network
[/code]

CentOS /Linux: 如何配置yum软件仓库

在centos 系统或者redhat系统下,我们安装软件的包的首选工具是yum,但是在使用yum之前必须配置好yum源软件仓库。yum命令还可以帮助解决软件包安装过程中的包依赖,也就是说会帮你安装所有依赖的软件包。那么如何在 CentOS Linux 系统下配置yum 源软件仓库呢? 本文将会讲述配置yum源的方法。
linux logo
CentOS 以光盘文件配置 Yum 软件仓库
首先我们以挂载在CDROM光驱里的 CentOS 安装光盘为yum源, 运行下面的命令挂载CentOS 光盘文件到/media目录里:
[cc lang=”php”] $sudo mount /dev/dvd /media
[/code] 然后,在/etc/yum.repos.d/目录下创建yum配置文件,该文件的扩展名必须以“.repo”结尾,使用vim 命令编辑并创建新的repo文件 softtest.repo:
[cc lang=”php”] $sudo vim /etc/yum.repos.d/softtest.repo
[/code] 打开文件后,添加下面的内容到配置文件里:
[cc lang=”php”] [base] name=Server
baseurl=file:///media
gpgcheck=0
enabled=1
[/code] 保存并退出文件后,需要清空一下yum缓存,输入下面的命令:
[cc lang=”php”] $sudo yum clean all
[/code] Output:
[cc lang=”php”] [devops@osetc] $ sudo yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos:
Cleaning up Everything
[/code] 现在你就可以使用yum命令来安装软件包了。
如果你有一个自己的本地yum库,如何添加其它的软件包到yum库里呢? 这个需要更YUM库里软件列表文件也就是repomd.xml文件。那么如何来更新这个文件呢? 首先需要安装createrepo软件包,然后通过该软件为软件包目录创建新的软件仓库列表。
1.下载并安装createrepo, 使用下面的命令:
[cc lang=”php”] $sudo yum -y install libxml2-python
$sudo wget ftp://195.220.108.108/linux/dag/redhat/el4/en/i386/dag/RPMS/createrepo-0.4.6-1.el4.rf.noarch.rpm
[/code] [cc lang=”php”] $sudo rpm -ivh createrepo-0.4.6-1.el4.rf.noarch.rpm
或者:
$sudo yum -y install createrepo
[/code] 2. 使用createrepo命令为软件包目录创建新的软件仓库列表
[cc lang=”php”] $sudo createrepo /mnt/Packages
[/code]
3.
更新下yum缓存
[cc lang=”php”] $sudo yum clean all
[/code] 这样就完成了往yum库里添加软件包的操作。

CentOS /Linux: 深入理解Man 命令

Linux 命令 man可能是我们在学习linux的时候最早使用的命令之一。大家都知道man命令可以帮助我们了解其它命令的使用方法。 除了这些,你对 Linux man 命令还有其它的了解吗?本文将会给大家讲述下的 Linux Man 命令的背后的事情。
linux操作系统
man命令主要用来格式化显示命令的在线帮助页面,这些帮助信息主要会有每个命令的开发者编写。
man 命令的帮助信息主要包含8个部分:
man1: User programs
Manual pages that describe publicly accessible commands are contained
in this chapter. Most program documentation that a user will need to
use is located here.
man2: System calls
This section describes all of the system calls (requests for the kernel
to perform operations).
man3: Library functions and subroutines
Section 3 describes program library routines that are not direct calls
to kernel services. This and chapter 2 are only really of interest to
programmers.
man4: Special files
Section 4 describes the special files, related driver functions, and
networking support available in the system. Typically, this includes
the device files found in /dev and the kernel interface to networking
protocol support.

man5: File formats

The formats for many data files are documented in the section 5. This
includes various include files, program output files, and system files.
man6: Games
This chapter documents games, demos, and generally trivial programs.
Different people have various notions about how essential this is.
man7: Miscellaneous Manual pages that are difficult to classify are
designated as being section 7. The troff and other text processing
macro packages are found here.
man8: System administration Programs used by system administrators
for system operation and maintenance are documented here. Some of
these programs are also occasionally useful for normal users.
当我们使用man命令去查看某个命令的帮助信息时候,主要显示的是第一部分的内容和第五部分的内容,也就是man 1和man 5. 比如用man ls命令,其实是 man 1 ls. 在帮助信息里的最上面你可以看到 LS(1)的信心,这个1就代表调用的是man 1.
man命令的所有信息都保存在/usr/share/man目录下:
[cc lang=”php”] [root@itsprite ~]# ls -l /usr/share/man
total 352
drwxr-xr-x. 5 root root 4096 Dec 17 2012 bg
drwxr-xr-x. 5 root root 4096 Apr 3 2012 cs
drwxr-xr-x. 5 root root 4096 Dec 17 2012 da
drwxr-xr-x. 5 root root 4096 Apr 3 2012 de
drwxr-xr-x. 5 root root 4096 Dec 17 2012 el
drwxr-xr-x. 5 root root 4096 Dec 17 2012 en
drwxr-xr-x. 5 root root 4096 Dec 17 2012 es
drwxr-xr-x. 5 root root 4096 Dec 17 2012 fi
drwxr-xr-x. 6 root root 4096 Apr 3 2012 fr
drwxr-xr-x. 5 root root 4096 Dec 17 2012 hr
drwxr-xr-x. 4 root root 4096 Dec 17 2012 hu
drwxr-xr-x. 3 root root 4096 Dec 17 2012 id
drwxr-xr-x. 6 root root 4096 Apr 3 2012 it
drwxr-xr-x. 5 root root 4096 Apr 3 2012 ja
drwxr-xr-x. 5 root root 4096 Dec 17 2012 ko
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man0p
drwxr-xr-x. 2 root root 36864 May 12 2014 man1
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man1p
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man1x
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man2
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man2x
drwxr-xr-x. 2 root root 110592 Apr 22 2014 man3
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man3p
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man3x
drwxr-xr-x. 2 root root 4096 Dec 17 2012 man4
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man4x
drwxr-xr-x. 2 root root 4096 Apr 22 2014 man5
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man5x
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man6
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man6x
drwxr-xr-x. 2 root root 4096 Apr 22 2014 man7
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man7x
drwxr-xr-x. 2 root root 20480 May 12 2014 man8
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man8x
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man9
drwxr-xr-x. 2 root root 4096 Sep 23 2011 man9x
drwxr-xr-x. 2 root root 4096 Sep 23 2011 mann
drwxr-xr-x. 5 root root 4096 Dec 17 2012 nl
drwxr-xr-x. 5 root root 4096 Apr 3 2012 pl
drwxr-xr-x. 5 root root 4096 Dec 17 2012 pt
drwxr-xr-x. 5 root root 4096 Dec 17 2012 pt_BR
drwxr-xr-x. 5 root root 4096 Dec 17 2012 ro
drwxr-xr-x. 6 root root 4096 Dec 17 2012 ru
drwxr-xr-x. 3 root root 4096 Dec 17 2012 sk
drwxr-xr-x. 5 root root 4096 Dec 17 2012 sl
drwxr-xr-x. 6 root root 4096 Dec 17 2012 sv
drwxr-xr-x. 5 root root 4096 Dec 17 2012 tr
drwxr-xr-x. 4 root root 4096 Dec 17 2012 zh_CN
drwxr-xr-x. 4 root root 4096 Dec 17 2012 zh_TW
[/code] 如果你先查看某个命令在当前系统都包含哪几部分的帮助信息,可以使用”man -f” 命令来查看:
[cc lang=”php”] [root@osetc man5]# man -f init
init (5) – Upstart init daemon job configuration
init (8) – Upstart process management daemon
[/code] [cc lang=”php”] 查看某个命令的所有的man帮助信息,使用命令“man -a“
[root@itsprite man5]# man -a init
[/code] 该命令会先显示man 8的 帮助信息,当退出之前的页面,会自动显示man 5 的帮助信息。

CentOS /Linux: 如何升级软件包,编译器,函数库,系统

当我们使用Linux一段时间以后,自然不会满足总是在没有任何变化的系统中工作,而是渴望能象在Windows系统中一样,不断对自己的Linux进行 升级。另一方面,Linux本身就是一个开放的系统,每天都会有新的软件出现,Linux发行套件和内核也在不断更新。在这样的情况下,学会对 Linux(包括系统本身和各种软件)进行升级就显得非常迫切了。
在Linux环境下,升级的对象可以是一般的软件,可以是编译器,也可以是系统的内核,甚至是系统本身。下面,我就分别讲讲对不同对象的升级方法。
linux操作系统
CentOS 升级一般软件
一般来说,升级应用软件是比较简单的,因为你不用太在意升级后对其他软件的影响(如果是升级系统,情况就不一样了)。首先,你必须找到希望升级的新版本。 你可以在Linux的专门站点上寻找自己中意的软件。然后就是使用各种下载工具将软件下载到指定目录中。下载的软件大部分是以tar打包的gzip压缩文 件。
在处理这些软件之前最好使用tar tvf 或 tar ztvf 命令看看下载下来的文件中包含了一些什么文件。因为得到的软件可能是二进制文件也可能是源码,使用上述的命令可以看看究竟是哪一种文件。
如果是二进制文件,一般可以直接将包打开,然后删除相应的老文件就可以了。
如果是源文件则要留心包里面是否有帮助和安装文件(readme / install / help)等等。然后将软件打开到指定的目录中去,仔细看看帮助和安装文件中的提示和安装约定,再进行安装工作。这时,安装工作意味着要对源代码进行编 译。首先要对Makefile文件进行修改,修改的内容和修改的方法在软件包中的相关文件中往往可以找到,另外有的时候软件包里会包含一个shell程序 configure,执行它可以省不少时间。对makefile处理完以后,就可以使用make命令来编译指定的文件。最后用make install命令将软件安装到自己的计算机上。
CentOS 升级编译器
我们可以先用“gcc -v”命令看看自己当前的gcc版本,然后决定是否要进行升级。当我们需要对自己的gcc、连接器、汇编器以及各种头文件和函数库进行升级的时候,我们就 可以到相关站点上获得对应的软件包,然后在指定目录下开打,同时删除(覆盖)原来的老文件就可以了。
CentOS 升级函数库
因为升级后要重新指定库的连接,所以函数库是比较麻烦的。我们知道,Linux系统的库文件分为档案库和共享库两种类型。档案库的文件一般是 libx.a,而共享库的文件一般是libx.so.version,升级函数库时必须使用新的版本的.a和.so.version文件替换老版本的对应 文件。对.a文件来说非常容易,只要将新文件拷进指定的目录,覆盖原来的文件就可以了。但是我们对共享库进行操作的时候就要特别小心了。绝不能简单地将新 文件拷到一个目录下,然后删除旧的文件。因为有可能旧的函数库正在为某个程序所使用。我们必须保证每个程序都能够正确地找到共享库。简单的将,当我们将新 版本的共享库文件放到指定目录下以后,使用ln命令来完成:
ln –sf /usr/lib/libdb.so.new(“new”指新的版本号) /usr/lib/libdb.so.old(“old”是原有的文件);比如: /usr/lib/libdb.so.2原来指向的文件是/usr/llib/libdb.so.2.0.1,现在有一个新文件 /usr/lib/libdb.so.2.78.1,我们可以这样处理:ln –sf /usr/lib/libdb.so.2.78.1 /usr/lib/libdb.so.2 ;然后,我们才能将/usr/lib/libdb.so.2.0.1文件进行删除。
CentOS 升级系统
最简单的升级方法当然是。一张cd-rom里就可以将整个系统完全包括了。当然,这样的升级方法比较费事,同时,每一次升级都意味着原来的文件有可能丢 失,因此,完全没有必要总是将系统重新安装一次。每一个Linux发行套件其实都是记录升级情况的文件。比如slackware中有一个 changelog.txt文件,按时间顺序记录了slackware的更新状况。而在RedHat中则是/redhat-4.2/updates /00readme.errata.我们可以从这些文件中看出是不是需要进行升级。然后找到相应部分的软件包,使用installpkg filename或者rpm –U filename来将软件包安装在计算机上。
来源:linuxdiyf.com

CentOS /Linux: 如何挂在只读的Linux文件系统

Linux 系统下的mount命令主要用来挂在系统发现的文件系统或者硬件设备比如光盘,移动硬盘,闪存盘等。那么如何在 CentOS Linux 系统下挂在一个linux 文件系统呢,比如: ext3 或者ext4. ? 如何在 CentOS Linux 系统下挂在一个只读的文件系统呢?本文将会讲述挂在只读文件系统的方法。
linux logo
CentOS Linux 挂载 ext3文件系统
假如在/dev/sdb1磁盘下有一个ext3的文件系统,在linux系统下如何来挂载使用呢?我们可以使用下面的命令将其挂载到/mnt/disk 目录下,输入命令:
[cc lang=”php”] $mount -t ext3 /dev/sdb1 /mnt/disk
[/code] 如果你想让系统启动的时候,这个文件系统能够自动挂载,那么你需要在/etc/fstab 配置文件里定义挂载关系。使用vim命令编辑/etc/fstab 文件,加入下面的内容:
[cc lang=”php”] /dev/sdb1 /mnt/disk ext3 defaults 0 0
[/code] 如果你在/etc/fstab配置文件里定义了这个文件系统的挂载关系,那么可以直接使用下面的命令来挂载:
[cc lang=”php”] $mount /mnt/disk
[/code] CentOS /Linux 挂载只读文件系统
在centos 系统下,挂载一个只读的文件系统,需要使用mount命令的”-o” 选项,并指定值为“ro”, 输入下面的命令只读挂载/dev/sdb1 下的文件系统。
[cc lang=”php”] $sudo mount -t ext3 -o ro /dev/sdb1 /mnt/disk
[/code] 如果你已经挂载了一个文件系统,想将其直接变成只读挂载,输入下面的命令:
[cc lang=”php”] $sudo mount -o remount,ro /mnt/disk
[/code]