月度归档:2015年01月

linux系统安装yum环境

1、卸载rhel的默认安装的yum包
查看yum包

rpm -qa|grep yum

卸载之

rpm -qa|grep yum|xargs rpm -e --nodeps

2、下载新的yum包
64位linux系统下载安装包

wget http://centos.ustc.edu.cn/centos/5/os/x86_64/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
wget http://centos.ustc.edu.cn/centos/5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
wget http://centos.ustc.edu.cn/centos/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-4.el5.x86_64.rpm

32位linux系统下载安装包

wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm

注意:安装包可能会升级,最后的文件名可以通过最新路径下查看得到,例如:
http://centos.ustc.edu.cn/centos/5/os/x86_64/CentOS/
http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/

然后进行安装

rpm -ivh yum-*

注意:yum和yum-fastestmirror相互依赖,所以同时安装即可。
3、下载yum的配置源

wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

下载到 /etc/yum.repos.d/ 目录下面

4、运行yum makecache生成缓存

Ubuntu设置环境变量并立即生效

Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。

修改用户环境变量
用户环境变量通常被存储在下面的文件中:

  • ~/.profile
  • ~/.bash_profile 或者 ~./bash_login
  • ~/.bashrc

上述文件在Ubuntu 10.0以前版本不推荐使用。

系统环境变量
系统环境变量一般保存在下面的文件中:

  • /etc/environment
  • /etc/profile
  • /etc/bash.bashrc

/etc/profile和 /etc/bash.bashrc在Ubuntu 10.0版本中不推荐使用。

加入环境变量
如想将一个路径加入到$PATH中,可以像下面这样做(修改/etc/profile):

sudo nano /etc/profile

在里面加入:

JAVA_HOME=/usr/jdk1.6.0_25
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
CLASSPATH=.:$JAVA_HOME/lib
export CLASSPATH

你可以自己加上指定的多个路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:

$source /etc/profile

需要注意的是,最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。

其他文件的修改方式与此类似,需要注意的是/etc/environment不需要使用export设置环境变量,其他profile文件需要。

更详细的说明可以参考这里。

当然如果想使用文本编辑工具修改环境变量,可以使用root权限登录后,直接用文本编辑器打开修改保存

也可以普通用户权限下把文件复制到桌面等修改后用root权限覆盖回去

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
JAVA_HOME=/usr/hadoop/jdk1.6.0_25
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
CLASSPATH=.:$JAVA_HOME/lib
export CLASSPATH
unset i
fi
if [ "$PS1" ]; then
if [ "$BASH" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi

Ubuntu查询及删除软件及dpkg的使用

ubuntu下删除已安装的某个软件,以删除mysql的客户端为例

在ubuntu下删除软件需要知道确切的包名,查看软件的完整包名:

dpkg -l | grep mysql

根据包名使用apt-get命令删除软件包,需要完整的包名即

apt-get remove mysql-client-core-5.5

或者使用

sudo apt-get autoremove php5-mysql

再次查看与mysql有关的包:

dpkg -l | grep mysql

已经完成删除。

dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。
下面是它的一些命令解释:
1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令行:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令行:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令行:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
命令行:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令行:dpkg –help
15)显示dpkg的Licence
命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令行:dpkg –version
17)建立一个deb文件
命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的目录
命令行:dpkg -c filename
19)显示一个Deb的说明
命令行:dpkg -I filename [control-file]
20)搜索Deb包
命令行:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令行:dpkg -l
22)报告指定包的状态信息
命令行:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令行:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令行:dpkg -S filename-search-pattern
25)显示包的具体信息
命令行:dpkg -p package-name
示例:dpkg -p cacti

最后:
1、很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了。其实可以用上面的dpkg -L命令来方便的查找。看来基础还是非常重要的,图形界面并不能够包办一切。
2、有的时候,用“新力得”下载完成以后,没有配置,系统会提示用“dpkg –configure -all”来配置,具体为什么也可以从上面看到。
3、现在Edgy里面可以看到Deb的信息。不过是在没有安装的时候(当然也可以重新打开那个包),可以看到Deb的文件路径。
4、如果想暂时删除程序以后再安装,第5项还是比较实用的,毕竟在Linux下面配置一个软件也并非容易。

磁盘配额(quota)权限不够解决方法

磁盘配额不生效的,显示错误及权限不够。是因为 SELinux打开的原因,在这里简单的处理方法是将SELinux的强制模式( Enforcing)转换成宽容模式(permissive),不需要关闭的。

[root@www ~]# setenforce [0|1] 

选顷不参数: 0 :转成 permissive 宽容模式; 1 :转成 Enforcing 强制模式

范例一:

将 SELinux 在 Enforcing 与 permissive 之间切换,观察

[root@www ~]# setenforce 0
[root@www ~]# getenforce Permissive
[root@www ~]# setenforce 1
[root@www ~]# getenforce Enforcing

中国大陆开源镜像站汇总

1.企业贡献

2.大学教学

北京理工大学:

北京交通大学

兰州大学

http://mirror.lzu.edu.cn/

厦门大学

http://mirrors.xmu.edu.cn/

上海交通大学

  • http://ftp.sjtu.edu.cn/ (IPv4 only)
  • http://ftp6.sjtu.edu.cn (IPv6 only)

清华大学

  • http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
  • http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
  • http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)

天津大学

http://mirror.tju.edu.cn/

中国科学技术大学

  • http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
  • http://mirrors4.ustc.edu.cn/
  • http://mirrors6.ustc.edu.cn/

西南大学

http://linux.swu.edu.cn/swudownload/Distributions/

东北大学

  • http://mirror.neu.edu.cn/ (IPv4 only)
  • http://mirror.neu6.edu.cn/ (IPv6 only)

电子科技大学

http://ubuntu.uestc.edu.cn/

青岛大学

http://mirror.qdu.edu.cn/

SyntaxHighlighter Evolved支持哪些高亮语言

SyntaxHighlighter Evolved这个插件很好用,但是就是有时候不知道自己的代码它支不支持,百度和官网都找不到具体的说明,不过在后台插件编辑中看到这些代码,那我就放心使用了!


$this-&gt;brushes = (array) apply_filters( 'syntaxhighlighter_brushes', array(
'as3' =&gt; 'as3',
'actionscript3' =&gt; 'as3',
'bash' =&gt; 'bash',
'shell' =&gt; 'bash',
'coldfusion' =&gt; 'coldfusion',
'cf' =&gt; 'coldfusion',
'clojure' =&gt; 'clojure',
'clj' =&gt; 'clojure',
'cpp' =&gt; 'cpp',
'c' =&gt; 'cpp',
'c-sharp' =&gt; 'csharp',
'csharp' =&gt; 'csharp',
'css' =&gt; 'css',
'delphi' =&gt; 'delphi',
'pas' =&gt; 'delphi',
'pascal' =&gt; 'delphi',
'diff' =&gt; 'diff',
'patch' =&gt; 'diff',
'erl' =&gt; 'erlang',
'erlang' =&gt; 'erlang',
'fsharp' =&gt; 'fsharp',
'groovy' =&gt; 'groovy',
'java' =&gt; 'java',
'jfx' =&gt; 'javafx',
'javafx' =&gt; 'javafx',
'js' =&gt; 'jscript',
'jscript' =&gt; 'jscript',
'javascript' =&gt; 'jscript',
'latex' =&gt; 'latex', // Not used as a shortcode
'tex' =&gt; 'latex',
'matlab' =&gt; 'matlabkey',
'objc' =&gt; 'objc',
'obj-c' =&gt; 'objc',
'perl' =&gt; 'perl',
'pl' =&gt; 'perl',
'php' =&gt; 'php',
'plain' =&gt; 'plain',
'text' =&gt; 'plain',
'ps' =&gt; 'powershell',
'powershell' =&gt; 'powershell',
'py' =&gt; 'python',
'python' =&gt; 'python',
'r' =&gt; 'r', // Not used as a shortcode
'splus' =&gt; 'r',
'rails' =&gt; 'ruby',
'rb' =&gt; 'ruby',
'ror' =&gt; 'ruby',
'ruby' =&gt; 'ruby',
'scala' =&gt; 'scala',
'sql' =&gt; 'sql',
'vb' =&gt; 'vb',
'vbnet' =&gt; 'vb',
'xml' =&gt; 'xml',
'xhtml' =&gt; 'xml',
'xslt' =&gt; 'xml',
'html' =&gt; 'xml',
) );

测试

这里写你的代码

cp (复制档案或目录)

[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的档(destination)
[root@linux ~]# cp [options] source1 source2 source3 …. directory

参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !

参数pdr分别为:保留权限,复制软链接本身,递归复制

pure-ftpd 安装配置

一、

[root@rs_200_142 src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.28.tar.gz
[root@rs_200_142 src]# tar -zxvf pure-ftpd-1.0.28.tar.gz
[root@rs_200_142 src]# cd pure-ftpd-1.0.28
[root@rs_200_142 pure-ftpd-1.0.28]# ./configure --prefix=/usr/local/pureftpd --with-language=simplified-chinese --with-puredb
[root@rs_200_142 pure-ftpd-1.0.28]# make &amp;&amp; make install
[root@rs_200_142 pure-ftpd-1.0.28]# mkdir /usr/local/pureftpd/etc
[root@rs_200_142 pure-ftpd-1.0.28]# mkdir /usr/local/pureftpd/var
[root@rs_200_142 pure-ftpd-1.0.28]# cd /usr/local/pureftpd/etc
[root@rs_200_142 etc]# vi pure-ftpd.conf
ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            1150
Daemonize                   yes
MaxClientsPerIP             20
VerboseLog                  no  #是否记录所有客户命令
DisplayDotFiles             no
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              none
DontResolve                 yes
MaxIdleTime                 1
PureDB                          /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion              2000 8
AnonymousCanCreateDirs      no
MaxLoad                     4
PassivePortRange          64400 65535
AntiWarez                   yes
Umask                       111:000
MinUID                      500
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       yes
ProhibitDotFilesRead        yes
AutoRename                  no
AnonymousCantUpload         yes
PIDFile                     /usr/local/pureftpd/var/pure-ftpd.pid
MaxDiskUsage               95
CustomerProof              yes
PerUserLimits            20:0
IPV4Only                 yes
CreateHomeDir     yes
ClientCharset=gbk #必设,防止Windows登录出现中文乱码

二、启动脚本

[root@rs_200_142 etc]# cp /usr/local/src/pure-ftpd-1.0.28/configuration-file/pure-config.pl /usr/local/pureftpd/sbin/
[root@rs_200_142 etc]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
[root@rs_200_142 etc]# vi /usr/local/pureftpd/sbin/pureftpd.sh
#!/bin/sh

PUREFTPD=/usr/local/pureftpd/sbin/pure-config.pl
CONF=/usr/local/pureftpd/etc/pure-ftpd.conf
PID_FILE=/usr/local/pureftpd/var/pure-ftpd.pid

case $1 in
start)
${PUREFTPD} ${CONF} &
;;

stop)
kill -9 `cat ${PID_FILE}`
;;

reload)
kill -1 `cat ${PID_FILE}`
;;

restart)
$0 stop
sleep 1
$0 start
;;
esac

三、创建用户

[root@rs_200_142 etc]# groupadd   ftpgroup
[root@rs_200_142 etc]# useradd    -g ftpgroup -s /sbin/nologin -d /home/test  test

四、
1、创建虚拟用户

[root@rs_200_142 etc]# /usr/local/pureftpd/bin/pure-pw useradd ftpuser -u test -d /home/ftpuser -m

其中:
-u 将虚拟用户 ftpuser 同系统用户 test 关联在一起。
-d 参数使 ftpuser 只能访问其 home 目录。而如果想让他访问整个文件系统,可以用 -D 选项。
执行完上述命令后,会提示输入密码,两次输入 ftpuser 用户的密码即可。用户的口令会根据系统对加
密方式的支持情况,选择一个最安全的方式进行加密。

注:如果设了CreateHomeDir
设置为 yes 创建新虚拟用户时 pureftpd 自动创建用户的主目录。
但是有一点需要大家注意,就是它只支持二层目录的建立而不支持三层以上目录的建立
2、删除用户

[root@rs_200_142 etc]# /usr/local/pureftpd/bin/pure-pw userdel ftpuser -f /usr/local/pureftpd/etc/pureftpd.passwd -m

3、修改密码

[root@rs_200_142 etc]# /usr/local/pureftpd/bin/pure-pw passwd ftpuser -f /usr/local/pureftpd/etc/pureftpd.passwd -m

注意问题:
ftp有主动与被动方式
ftp服务器上要允许高端口通过

运行yum显示Existing lock /var/run/yum.pid: another copy is running as pid 2662.

运行yum,系统提示Existing lock /var/run/yum.pid: another copy is running as pid 3046

问题描述:登录系统后,执行yum install vsftpd,提示Existing lock /var/run/yum.pid: another copy is running as pid 5048.有时等5~10分钟yum可以正常使用。

问题分析:主要原因就是yum在自动更新,所以再运行yum就会报这个错。

问题解决:只要关掉正在执行的yum更新就可以了就可以了,停止正在运行的yum进程,或者禁用开机自动启动yum进程。

操作步骤:

停止yum进程

[root@localhost ~]# rm -f /var/run/yum.pid

为什么会有一个yum进程在执行呢?

原来是yum自动更新机制自动激活了yum进程,用下面的命令停止自动更新:

[root@localhost ~]# /etc/init.d/yum-updatesd stop

停止 yum-updatesd: [确定]

如果我们不需要自动更新服务,可以直接删除它。
#yum remove yum-updatesd
不过删除该服务之后,以后的更新要用下面的命令手工来完成了。

#yum update

原文链接:http://www.blogjava.net/jasmine214–love/archive/2011/05/27/351174.html

ubuntu设置root用户密码

安装完Ubuntu后在终端使用命令:
su –
然后输入密码,总是不正确。
原来是自己没有设置ROOT密码。

设置ROOT密码方法如下:
开启终端,输入以下命令:
sudo passwd root
然后输入密码按”确认”键就OK了。
Ubuntu 中的 root 帐号默认是被禁用了的。在这种情况之下,如果你想要使用 root 的权限来干些事情,就需要 sudo 指令。对某些朋友来说,他们可能需要激活 Ubuntu 中的 root 帐号。

在 Ubuntu 中激活 root 帐号的过程如下:

1. 在终端执行 sudo passwd root 指令后,系统将会提示你设置一个新的 root 帐号密码。
2. 点击 System -> Preferences -> Login Window 菜单,并切换到 Security 选项页,然后选中其下的“Allow local system administrator login”选项。

执行上述两步后,你便可以使用 root 帐号登录 Ubuntu 系统了。

如果要再次禁用 root 帐号,那么可以执行 sudo passwd -l root。