修改软件源为国内加速镜像

通用
阿里云镜像 http://mirrors.aliyun.com
网易镜像 http://mirrors.163.com
搜狐镜像 http://mirrors.sohu.com

教育网
清华大学开源软件镜像 https://mirrors.tuna.tsinghua.edu.cn
中国科学技术大学开源软件镜像 https://mirrors.ustc.edu.cn

更多源

各系统软件源修改方法
CentOS

# 系统代号     版本
# squeeze     6.x
# wheezy      7.x
# jessie      8.x

# 备份原文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 下载新的CentOS-Base.repo 到/etc/yum.repos.d/

# CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

# CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 生成缓存
yum makecache

Debina

# 备份原文件
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 修改为阿里云的镜像源
cat > /etc/apt/sources.list << END
deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
END
# 更新源列表信息 apt-get update

Ubuntu

# 系统代号      版本    LTS
# precise     12.04   true
# trusty      14.04   true
# vivid       15.04
# xenial      16.04   true
# zesty       17.04

# 备份原文件
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 修改为阿里云的镜像源
cat > /etc/apt/sources.list << END
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
END

# 更新源列表信息
apt-get update

Alpine

# 备份原始文件
cp /etc/apk/repositories /etc/apk/repositories.bak

# 修改为国内镜像源
echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories

管道符sort

sort
sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:

sort [-bcfMnrtk][源文件][-o 输出文件]

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o <输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t <分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
常用命令:| sort -rn

Linux磁盘或文件大小查看

df 查看磁盘空间使用情况
du 查看各目录或文件所占空间

经常需要查看Linux文件大小,只记得df -h,经常忘了du -h,故此总结记录。

df
1. 命令格式:
df [选项] [文件]
2. 命令功能:
显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示
3. 命令参数:
必要参数:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
–no-sync 忽略 sync 命令
-P 输出格式为POSIX
–sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
–block-size=<区块大小> 指定区块大小
-t <文件系统类型> 只显示选定文件系统的磁盘信息
-x <文件系统类型> 不显示选定文件系统的磁盘信息
–help 显示帮助信息
–version 显示版本信息
常用命令:df -hi

du
1.命令格式:
du [选项][文件]
2.命令功能:
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总计,只列出最后加总的值。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L <符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X <文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。
常用命令:du -a

在 Mac OS X 终端里使用 Solarized 配色方案

要在 Mac OS X 终端里舒服的使用命令行(至少)需要给3个工具配色,terminal、vim 和 ls. 首先下载 Solarized

git clone git://github.com/altercation/solarized.git

Terminal/iTerm2
Mac OS X 自带的 Terminal 和免费的 iTerm2 都是很好用的工具,iTerm2 可以切分成多窗口,更方便一些。
如果你使用的是 Terminal 的话,在 solarized/osx-terminal.app-colors-solarized 下双击 Solarized Dark ansi.terminal 和 Solarized Light ansi.terminal 就会自动导入两种配色方案 Dark 和 Light 到 Terminal.app 里。
如果你使用的是 iTerm2 的话,到 solarized/iterm2-colors-solarized 下双击 Solarized Dark.itermcolors 和 Solarized Light.itermcolors 两个文件就可以把配置文件导入到 iTerm 里。

Vim
Vim 的配色最好和终端的配色保持一致,不然在 Terminal/iTerm2 里使用命令行 Vim 会很别扭:

cd solarized
cd vim-colors-solarized/colors
mkdir -p ~/.vim/colors
cp solarized.vim ~/.vim/colors/

vi ~/.vimrc
syntax enable
set background=dark
colorscheme solarized

ls
Mac OS X 是基于 FreeBSD 的,所以一些工具 ls, top 等都是 BSD 那一套,ls 不是 GNU ls,所以即使 Terminal/iTerm2 配置了颜色,但是在 Mac 上敲入 ls 命令也不会显示高亮,可以通过安装 coreutils 来解决(brew install coreutils),不过如果对 ls 颜色不挑剔的话有个简单办法就是在 .bash_profile 里输出 CLICOLOR=1:

vi ~/.bash_profile
export CLICOLOR=1

Linux定时任务命令Crontab参数详解

crontab——操作每个用户的守护程序和该执行的时间表。

具体的部分参数说明如下:

crontab file [-u user]-用指定的文件替代目前的crontab。 
crontab-[-u user]-用标准输入替代目前的crontab. Crontab –
crontab- l[user]-列出用户目前的crontab. 
crontab-e[user]-编辑用户目前的crontab. 
crontab-d[user]-删除用户目前的crontab. 
crontab-c dir- 指定crontab的目录。 
crontab文件的格式:M H D m d cmd.

服务器不重启的情况下定时自动重启apache及mysql服务,其实也大同小异。具体步骤如下:
一、每天的12点及16点重启apache及mysql服务

[root@www bin]# cd /opt/
[root@www opt]# vim reboot.txt

在reboot.txt.txt文件中输入下面的内容后保存

0 12 * * * service httpd restart
0 12 * * * service mysqld restart
0 16 * * * service httpd restart
0 16 * * * service mysqld restart

二、把新建的文件加入到cron服务中

[root@www opt]# crontab reboot.txt
[root@www opt]# crontab -l
0 12 * * * service httpd restart
0 12 * * * service mysqld restart
0 16 * * * service httpd restart
0 16 * * * service mysqld restart

三、重启cron服务

[root@www opt]# /sbin/service crond restart

补充说明:
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

时程表的基本格式 :

*  *  *  *  *  program
分  时  日  月  周  命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
当第1列 为 * 时表示每分钟都要执行 program,第2列为 * 时表示每小时都要执行程式,其余类推
当第1列为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,第2列为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当第1列为 */n 时表示每 n 分钟个时间间隔执行一次,第2列 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当第1列为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,第2列 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推

crontab文件的一些例子:

每晚的21:30重启lighttpd
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
每月1、10、22日的4 : 45重启lighttpd
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
每周六、周日的1 : 10重启lighttpd
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
每天18 : 00至23 : 00之间每隔30分钟重启lighttpd
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
每星期六的11 : 00 pm重启lighttpd
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

1.1 /etc/crontab 文件
在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
如:

[root@dave ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

1.2 /etc/cron.deny 和 /etc/cron.allow 文件
/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有超级用户可以安排作业。
每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下:
如:

[root@dave ~]# cd /var/spool/cron
[root@dave cron]# ls
oracle root

我们直接查看这个文件,里面的内容和对应用户显示的crontab -l 一致。

[root@dave cron]# cat oracle
00 6 * * * /u02/scripts/del_st_archive.sh >/u02/scripts/del_st_arch.log 2>&1
[root@dave cron]# cat root
0 12 * * * /root/bin/sync-clock.sh
[root@dave cron]#

CentOS 7控制台屏幕分辨率问题

我们在服务器上,很少会安装图形化界面,一般都使用字符界面的控制台。CentOS 下,控制台分辨率缺省情况下,变得很高,导致在显示器上花屏或者只能显示局部。
这是由于使用了frame buffer,好处是可以在高分辨率显示器上显示更多内容,让我们视野更加开阔,带来的问题是在普通的显示器上会出现问题。
CentOS 6下,我们一般是在安装启动的时候,加入 “vga=711″的参数,但是到了CentOS 7下,这个方法失去了作用。

解决方法:
在安装启动的时候,加入 nomodeset 参数。
如果你已经安装完毕,则可以修改 vi /etc/sysconfig/grub,加入 nomodeset 参数:

GRUB_CMDLINE_LINUX=”rd.md=0 rd.dm=0 KEYTABLE=us SYSFONT=True
rd.lvm.lv=vg/lv_root rd.luks=0 rd.lvm.lv=vg/lv_swap LANG=en_US.UTF-8
rhgb quiet nomodeset”

然后执行:

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

Linux中cp直接覆盖不提示的方法

新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的。。。
把a目录下的文件复制到b目录

cp –r a/* b

执行上面的命令时,b存在的每个文件都会提示是否覆盖;

cp –r –f a/* b

执行上面的命令时,b存在的每个文件都不再会提示;
这是我们希望的理想状态,但是有时加了-f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp=’cp -i’,当你执行cp时,其实执行的是cp –i。
在终端执行alias就可以看出来了。

[root@devdb ~]# alias
alias cp=’cp -i’

可以这样解决

[root@devdb ~]# vi ~/.bashrc

在alias cp=’cp -i’前加上”#”注释掉这行,:wq!保存推出,然后重新登陆就可以了。

CentOS-6.3安装配置SVN

安装说明

系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion

#卸载旧版本SVN
[root@localhost modules]# yum remove subversion

安装SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

确认已安装了svn模块

[root@localhost /]# cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

验证安装

检验已经安装的SVN版本信息
[root@localhost modules]# svnserve –version

svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

代码库创建

SVN软件安装完成后还需要建立SVN库
[root@localhost modules]# mkdir -p /opt/svn/repositories
[root@localhost modules]# svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置
[root@localhost modules]# cd /opt/svn/repositories/conf

用户密码passwd配置

[root@localhost password]# cd /opt/svn/repositories/conf
[root@admin conf]# vi + passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456

权限控制authz配置

[root@admin conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

#设置[/]代表根目录下所有的资源
[/]
zhoulf=rw

服务svnserve.conf配置

[root@admin conf]# vi + svnserve.conf

追加以下内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories

配置防火墙端口

[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3690 -j ACCEPT
保存后重启防火墙
[root@localhost conf]# service iptables restart

启动SVN

svnserve -d -r /opt/svn/repositories

查看SVN进程

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /opt/svn/repositories

检测SVN 端口

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

[root@localhost password]# killall svnserve    //停止
[root@localhost password]# svnserve -d -r /opt/svn/repositories  // 启动

测试

SVN服务已经启动,使用客户端测试连接。
客户端连接地址:svn://192.168.15.231
用户名/密码: zhoulf/123456
测试创建文件夹等操作。

How to Install php-mcrypt on CentOS 6.2

在CentOS6.2上需要自己安装php-mcrypt。

按照下面的步骤安装
1、下载 epel repository :
打开网址: 使用 Ctrl+F 搜索关键词“epel-release” 找到当前最新的扩展包发现最新版本为:epel-release-6-8.noarch.rpm

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6

2、安装 epel repository :

rpm --import RPM-GPG-KEY-EPEL-6  
rpm -i epel-release-6-8.noarch.rpm

3、yum方式安装

yum install php-mcrypt -y  

4、重启httpd服务