==================================
1 文件管理2 软件管理3 系统管理
4 服务管理5 网络管理6 磁盘管理
7 用户管理8 脚本相关9 服务配置
==================================
----------------------------------
1 文件管理
----------------------------------
创建空白文件
touch
不提示删除非空目录
rm -rf目录名
(-r:递归删除 -f 强制)
##################################
恢复 rm 删除的文件(ext3)
查看磁盘分区格式
df -T
卸载挂载
umount /data/
ext3grep /dev/sdb1 --ls --inode 2
记录信息继续查找目录下文件 inode信息
ext3grep /dev/sdb1 --ls --inode 131081 # 此处是 inode
记录下 inode信息开始恢复目录
ext3grep /dev/sdb1 --restore-inode 49153
##################################
windows 文本转 linux 文本
dos2unix
linux 文本转 windows 文本
unix2dos
转换编码
iconv -f gbk -tutf8 原.txt > 新.txt
查看 md5 值
md5sum
硬链接
ln
符号连接
ln -s
查看上下翻页且显示行号
cat ? | nl |less
q 退出
结束状态
ctrl+z
查看文件开头内容
head
查看文件结尾内容
tail -f # 监视日志文件
检查文件类型
file
重命名
rename
rename source_pattern target_pattern source_files
更改默认权限
umask
按数字排序
sort -n
按数字倒叙
sort -nr
过滤重复行
sort -u
删除重复的行
uniq
重复的行出现次数
uniq -c
只显示不重复行
uniq -u
将两个文件合并用 tab键分隔开
paste a b
将两个文件合并指定‘+‘符号隔开
paste -d‘+‘ a b
将多行数据合并到一行用 tab 键隔开
paste -s a
设置隐藏属性
chattr [+-=] [ASacdistu] 文件或目录
向下分面器
more
搜索
locate 字符串
查看行数
wc -l
实时某个目录下查看最新改动过的文件
watch -d-n 1 ‘df; ls -FlAt /path‘
快速备份一个文件
cp filename{,.bak}
##################################
配置编辑器
gconf-editor
vi 配置文件
vi /etc/vimrc
编辑文件
vim
打开行号
:set nu
取消行号
:set nonu
跳转到 200
200G
取消高亮
:nohl
设置自动缩进
:set autoindent
查看文本格式
set ff
改为 unix 格式
set binary
向前翻页
ctrl+ U
向后翻页
ctrl+ D
全部替换
g/字符 1/s//字符 2/g
%s/字符 1/字符 2/g
# 普通用户打开文档不能保存
# tee 是一个把 stdin 保存到文件的小工具,而%,是 vim 当中一个只读寄存器的名字,总保存着当
前编辑文件的文件路径
:w !sudotee %
##################################
按文件名查找
find /etc -name http
查找某一类型文件
find . -type f
按照文件权限查找
find / -perm
按照文件属主查找
find / -user
按照文件所属的组来查找文件
find / -group
文件使用时间在 N 天以内
find / -atime -n
文件使用时间在 N 天以前
find / -atime +n
文件内容改变时间在 N 天以内
find / -mtime -n
文件内容改变时间在 N 天以前
find / -mtime +n
文件状态改变时间在 N 天前
find / -ctime +n
文件状态改变时间在 N 天内
find / -ctime -n
# linux 文件无创建时间
# Access 使用时间
# Modify 内容修改时间
# Change 状态改变时间(权限、属主)
查找文件长度大于 1M 字节的文件
find / -size +1000000c -print
按名字查找文件传递给-exec 后命令
find /etc -name "passwd*" -exec grep "xuesong" {}\;
查找文件名,不取路径
find . -name ‘t*‘ -exec basename {} \;
##################################
====================================================================
----------------------------------
2 软件管理
----------------------------------
解包 tar
tar xvf 1.tar -C 目录
打包 tar
tar -cvf 1.tar *
查看 tar
tar tvf 1.tar
给 tar 追加文件
tar -rvf 1.tar 文件名
解包 gz
tar zxvpf gz.tar.gz
打包 gz
tar zcvpf gz.tar.gz
查看 gz
tar ztvpf gz.tar.gz
解压 bzip2
bzip2 -dv 1.tar.bz2
解压 gzip 到 tar
gzip -dv 1.tar.gz
压缩 tar 到 gz
gzip -v 1.tar
bzip2 压缩
bzip2 -v 1.tar
查看 bzip2
bzcat
rpm 安装
rpm -ivh
卸载
rpm -e lynx
强制卸载
rpm -e lynx --nodeps
测试
rpm --test lynx
查看所有安装的 rpm 包
rpm -qa
查找包是否安装
rpm -qa | grep http
解压 zip
unzip zip.zip
压缩 zip
zip zip.zip *
rar3.6 下载地址
http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz
压缩文件为 rar 包
rar a rar.rar *.jpg
解压 rar 包
unrar x rar.rar
7z 压缩
7z a 7z.7z *
7z 解压
7z e 7z.7z
查看字符行
zgrep 字符 1.gz
打包/home, /etc ,但排除 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home} # 去掉第一条 /
及其左边的字串:dir1/dir2/dir3/my.file.txt
${file##*/} # 去掉最后一条/ 及其左边的字串:my.file.txt
${file#*.} # 去掉第一个 . 及其左边的字串:file.txt
${file##*.} # 去掉最后一个 . 及其左边的字串:txt
${file%/p}"
删除含关键的一行
sed -i "/^$f/d" a
直接对文本替换
sed -i "s/=/:/" c
找到 pearls 开头在行尾加 jcui
sed -i "/^pearls/s/$/jcui/" ab.txt
标签(保存\(mar\)作为标签 1)
sed -n ‘s/\(mar\)got/\1ianne/p‘ 文件
echo "margot"|sed -n ‘s/\(mar\).*\(t\)/\1\2/p‘
sed -e ‘s/^\([a-zA-Z]\+\) \([a-zA-Z]\+\)\(.*\)/\2 \1\3/g‘
file
在以[0-9][0-9]结尾的行后加 5
sed ‘s/[0-9][0-9]$/&5‘ 文件
打印从第 5 行到以 no 开头行之间的所有行
sed -n ‘5,/^no/p‘ 文件
修改 west 和 east 之间的所有行,在结尾处加*VACA*
sed ‘/west/,/east/s/$‘ 文件
多重编辑(先删除 1-3 行,在将 1 替换成 2)
sed -e ‘1,3d‘ -e‘s/1/2/‘ 文件
找到含 suan 的行,在后面加上读入的文件内容
sed ‘/suan/r 读入文件‘ 文件
找到含 no 的行,写入到指定文件中
sed -n ‘/no/w 写入文件‘ 文件
取出第一组数字,并且忽略掉开头的 0
sed ‘s/[^1-9]*\([0-9]\+\).*/\1/‘
打印 1 和 3 之间的行
sed ‘/1/,/3/p‘ file
取出指定行
sed -n ‘1p‘ 文件
在第 5 行之前插入行
sed ‘5i\aaa‘file
在第 5 行之后抽入行
sed ‘5a\aaa‘ file
在匹配行前插入一行
echo a|sed -e ‘/a/i\b‘
在匹配行后插入一行
echo a|sed -e ‘/a/a\b‘
echo a|sed ‘s/a/&\nb/g‘
引用外部变量
sed -n ‘‘$a‘,10p‘
sed -n ""$a",10p"
取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除)
sed -n ‘{s/^[^\/]*//;s/\:.*//;p}‘ /etc/passwd
将换行符转换为换行
echo abcd\\nabcde |sed ‘s/\\n/@/g‘ |tr ‘@‘ ‘\n‘
删除掉@后面所有字符,和空行
sed -e ‘s/@.*//g‘ -e ‘/^$/d‘
将几行合并成一行
echo $(cat file)|sed ‘s/ //g‘
取一列最大值
cat tmp|awk ‘{print $1}‘|sort -n|sed -n ‘$p‘
查找属主权限为 7的文件
ls -l|sed -n ‘/^.rwx.*/p‘
在 a 前面加#号
echo a|sed -e ‘s/a/#&/g‘
##################################
图形 dialog
多选界面[方括号]
dialog --title "Check me" --checklist "Pick Numbers" 15 25 3 1
"one" "off" 2 "two""on" 3 "three"
"off" 2>tmp
多选界面(圆括号)
dialog --title "title" --radiolist "checklist" 20 60 14 tag1
"item1"on tag2 "item2"off 2>tmp
单选界面
dialog --title "title" --menu "MENU" 20 60 14 tag1 "item1" tag2
"item2" 2>tmp
进度条
dialog --title "Installation" --backtitle"Star Linux" --gauge
"Linux Kernel" 10 60 50
选择 yes/no
dialog --title "标题"--backtitle "Dialog" --yesno "说明" 2060
公告
dialog --title "公告标题"--backtitle "Dialog" --msgbox "内容" 20 60
显示讯息后立即离开
dialog --title "hey" --backtitle "Dialog" --infobox "Is everything
okay?"10 60
输入对话框
dialog --title "hey" --backtitle "Dialog" --inputbox "Is okay?" 10
60 "yes"
显示文档内容
dialog --title "Array 30" --backtitle "All " --textbox /root/txt 20
75
多条输入对话框
dialog --title "Add a user" --form "Add a user" 12 40 4 "Username:"
1 1 "" 1 15 15 0 "Full
name:" 2 1 "" 2 15 15 0 2>tmp
星号显示输入--insecure
dialog --title "Password" --insecure --passwordbox "请输入密码" 10
35
选择日期
dialog --stdout --title "日历" --calendar "请选择" 0 0 9 1 2010
##################################
脚本头 # sh 为当前系统默认 shell,可指定为 bash 等
#!/bin/sh
临时文件定义
errtmp=/tmp/$$`date +%s%N`.errtmp
outtmp=/tmp/$$`date +%s%N`.outtmp
true > $outtmp
随机数
$RANDOM
进程号
$$
纳秒
date +%N
在当前 bash 环境下读取并执行 FileName 中的命令
sourcefile-name # 等同 . FileName
间隔睡眠 5 秒
sleep 5
在接收到信号后将要采取的行动
trap
当前目录
$PWD
之前一个目录的路径
$OLDPWD
返回上一个目录路径
cd -
重复打印
yes
自动回答 y 或者其他
yes |rm-i*
查看目录所有文件夹
ls -p/home
查看匹配完整路径
ls -d/home/
命令替换 xargs
#将前面的内容,作为后面命令的参数
find / -perm +7000 | xargs ls -l
不换行执行下一句话
echo -n aa;echo bb
使转义生效
echo -e "s\tss\n\n\n"
取字符串中字元
echo $a | cut -c2-6
排列组合(括号内一个元素分别和其他括号内元素组合)
echo {a,b,c}{a,b,c}{a,b,c}
返回目录名
pwd | awk -F/ ‘{ print "目录名:",$2 }‘
替换上一条命令中的(foo)一个短语(bar)
^foo^bar^
!!:s/foo/bar/
!!:gs/foo/bar
##################################
shell 例子
判断参数是否为空-空退出并打印 null
#!/bin/sh
echo $1
name=${1:?"null"}
echo $name
##################################
循环数组
for ((i=0;i<${#o[*]};i++))
do
echo ${o[$i]}
done
##################################
判断路径
if[ -d /root/Desktop/text/123 ];then
echo "找到了 123"
if[ -d /root/Desktop/text ]
then echo "找到了 text"
else echo "没找到 text"
fi
else echo "没找到 123 文件夹"
fi
##################################
匹配替换密码
#!/bin/sh
cat mailpassword > temp.txt
sed -i "s/:/ =/" temp.txt
w=`awk -F " = " ‘{print $1}‘ temp.txt`
for d in $w
do
grep -w $d svnpassword>/dev/null
if[ $? -eq 0 ]
then
sed -i "/^$d/d" svnpassword
grep "^$d" temp.txt >> svnpassword
#替换到转义就出问题
#sed -i "/^$d/c $(grep "^$d" temp.txt)" svnpassword
fi
done
rm temp.txt
##################################
多行合并
将两行并为一行(去掉换行符)
sed ‘{N;s/\n//}‘ file
将 4行合并为一行(可扩展)
awk ‘{if(NR%4==0){print $0} else {printf"%s ",$0}}‘ file
将所有行合并
awk ‘{printf"%s ",$0}‘
##################################
shift 用法
./cs.sh 1 2 3
#!/bin/sh
until [ $# -eq 0 ]
do
echo "第一个参数为: $1参数个数为: $#"
#shift 命令执行前变量 $1 的值在 shift 命令执行后不可用
shift
done
##################################
给脚本加参数 getopts
#!/bin/sh
while getopts :ab: name
do
case $name in
a) aflag=1
;;
b) bflag=1
bval=$OPTARG
;;
\?) echo "USAGE:`basename $0` [-a] [-b value]"
exit 1
;;
esac
done
if[ ! -z $aflag ] ; then
echo "option -a specified"
echo "$aflag"
echo "$OPTIND"
fi
if[ ! -z $bflag ] ; then
echo "option -b specified"
echo "$bflag"
echo "$bval"
echo "$OPTIND"
fi
echo "here $OPTIND"
shift $(($OPTIND -1))
echo "$OPTIND"
echo " `shift $(($OPTIND -1))` "
##################################
判断脚本参数是否正确
./test.sh -p123 -P 3306 -h 127.0.0.1 -u root
#!/bin/sh
if[ $# -ne 8 ];then
echo "USAGE: $0 -u user -p passwd -P port -h host"
exit 1
fi
while getopts :u:p:P:h: name
do
case $name in
u)
mysql_user=$OPTARG
;;
p)
mysql_passwd=$OPTARG
;;
P)
mysql_port=$OPTARG
;;
h)
mysql_host=$OPTARG
;;
*)
echo "USAGE: $0 -u user -p passwd -P port -h host"
exit 1
;;
esac
done
if[ -z $mysql_user ] || [ -z $mysql_passwd ] || [ -z $mysql_port ]
|| [ -z $mysql_host ]
then
echo "USAGE: $0 -u user -p passwd -P port -h host"
exit 1
fi
echo $mysql_user $mysql_passwd $mysql_port $mysql_host
#结果 root123 3306127.0.0.1
##################################
dialog 取值接值退出
outtmp=/tmp/outtmp
dialog --no-shadow --backtitle "雪松制作" --title "请选择" --ok-label "提交"
--cancel-label "取消"
--menu "请选择" 10 60 0 \
1 "[目录]" \
q "[退出]" \
2> $outtmp
#判断提交取消
if[ $? == "1" ]
then
break
#continue
fi
#只判断退出
pt=`awk ‘{print}‘ $outtmp`
if[ $pt == q ]
then
break
fi
#判断操作
case $pt in
1)
#操作
;;
q)
exit #break
;;
esac
##################################
dialog 输入对话框加判断
while :
do
outtmp=/tmp/outtmp
dialog --title "雪松制作" --form "请输入" 20 60 10 "用户:" 1 2 "" 1 15 35 0
"ID:" 2 2 "" 2
15 35 0 "" 6 2 ""6 0 0 0 "输入格式如下" 7 2 "" 7 0 0 0 "说明" 8 2 "" 8 0
0
0 2> $outtmp
yh=`sed -n ‘1p‘ $outtmp`
id=`sed -n ‘2p‘ $outtmp`
ifecho $yh | grep -e ‘^[1-9][0-9]\{0,2\}‘ > /dev/null
2>&1
then
if echo $id | grep -e ‘^[1-9][0-9]\{0,12\}‘ > /dev/null
2>&1
then
break
else
echo "您输入的不合法,请从新输入!"
fi
else
echo "您输入的不合法,请从新输入!"
fi
done
##################################
打印表格
#!/bin/sh
clear
awk ‘BEGIN{
print "+--------------------+--------------------+";
printf "|%-20s|%-20s|\n","Name","Number";
print "+--------------------+--------------------+";
}‘
a=`grep "^[A-Z]" a.txt |sort +1 -n |awk ‘{print $1":"$2}‘`
#cat a.txt |sort +1 -n |while read list
for list in $a
do
name=`echo $list |awk -F: ‘{print $1}‘`
number=`echo $list |awk -F: ‘{print $2}‘`
awk ‘BEGIN{printf
"|%-20s|%-20s|\n","‘"$name"‘","‘"$number"‘";
print "+--------------------+--------------------+";
}‘
done
awk ‘BEGIN{
print " *** The End *** "
print " "
}‘
##################################
判断日期是否合法
#!/bin/sh
while read a
do
if echo$a | grep -q "-" && date -d $a +%Y%m%d >
/dev/null 2>&1
then
if echo $a | grep -e ‘^[0-9]\{4\}-[01][0-9]-[0-3][0-9]$‘
then
break
else
echo "您输入的日期不合法,请从新输入!"
fi
else
echo "您输入的日期不合法,请从新输入!"
fi
done
echo "日期为$a"
##################################
打印日期段所有日期
#!/bin/bash
qsrq=20010101
jsrq=20010227
n=0
>tmp
while :;do
current=$(date +%Y%m%d -d"$n day $qsrq")
if[[ $current == $jsrq ]];then
echo $current >>tmp;break
else
echo $current >>tmp
((n++))
fi
done
rq=`awk ‘NR==1{print}‘ tmp`
##################################
打印提示
cat <<EOF
#内容
EOF
登陆远程执行命令(特殊符号需要\转义)
ssh root@ip << EOF
#执行命令
EOF
登陆 mysql 执行命令
mysql -uroot -ppasswd -S mysql.sock --default-character-set=gbk
-A<<EOF>outtmp
#mysql 命令
EOF
##################################
数学计算的小算法
#!/bin/sh
A=1
B=1
while [ $A-le 10 ]
do
SUM=`expr $A\* $B`
echo "$SUM"
if[ $A= 10 ]
then
B=`expr $B + 1`
A=1
fi
A=`expr $A+ 1`
done
##################################
竖行转横行(三种)
cat file|tr ‘\n‘ ‘ ‘
echo $(cat file)
#!/bin/sh
for i in `cat file`
do
a=${a}""${i}
done
echo $a
##################################
取用户的根目录
#! /bin/bash
#showhome.sh
IFS=:
while read namepass uid gid gecos home shell
do
echo $home
done
执行./showhome.sh < /etc/passwd
##################################
把汉字转成 encode 格式:
echo 论坛 | tr -d "\n" | xxd -i | sed -e "s/0x/%/g" | tr-d "
,\n"
大写的:
echo 论坛 | tr -d "\n" | xxd -i | sed -e "s/0x/%/g" | tr-d " ,\n" |
tr "[a-f]" "[A-F]"
##################################
把带有大写字母的文件名改为全部小写
#!/bin/bash
for fin *;do
mv $f `echo $f |tr "[A-Z]" "[a-z]"`
done
##################################
查找连续多行,在不连续的行前插入
#/bin/bash
lastrow=null
i=0
cat incl|while read line
do
i=`expr $i + 1`
ifecho "$lastrow" | grep "#include <[A-Z].h>"
then
if echo "$line" | grep -v "#include<[A-Z].h>"
then
sed -i ‘‘$i‘i\\/\/Allheader files are include‘ incl
i=`expr $i + 1`
fi
fi
lastrow="$line"
done
##################################
====================================================================
----------------------------------
9 服务配置
----------------------------------
samba
修改配置文
/etc/samba/smb.conf
[global]
workgroup =WORKGROUP
server string = sambaserver
security=share
hosts allow=网络主机
[file]
comment=home directories
path=/etc/samba/xuesong
public=yes
writable=yes
browseable=yes
重启
service smb restart
linux 访问 windows 共享
smbclient -L //ip 地址或计算机名
##################################
DNS 服务器
DNS 主配置文件,moon.com 域名,zone.moon.com 域的配置文件
vi /etc/named.conf
zone "moon.com" IN {
type master;
file "zone.moon.com";
allow-update { none; };
};
测试主配置文件
named-checkconf
新建域的配置文件 zone.moon.com
vi /var/named/chroot/var/named/zone.moon.com
$TTL 86400
@ IN SOA xs. quanzhou722.163.com. (
20102014
3H
15M
1W
1D
)
IN NS xs.
IN MX 5 mail.
www IN A 192.168.1.209
ftp IN A 192.168.1.209
mail IN A 192.168.1.209
测试 moon.com 域配置文件
named-checkzone moon.com
/var/named/chroot/var/named/zone.moon.com
建立域配置文件的软连接
ln -s/var/named/chroot/var/named/zone.moon.com
/var/named/zone.moon.com
重启 named 服务
service named restart
设置 DNS
vi /etc/resolv.conf
测试解析是否成功
host www.moon.com
nslookup www.moon.com
##################################
ftp 配置
查看 vsftp 是否安装
rpm -qa | grep vsftp
主配置文件
vi /etc/vsftpd/vsftpd.conf
启动 VSFTPD 服务
service vsftpd restart
查看 21 端口是否开放
netstat-atln |grep 21
1、匿名用户是否允许访问
anonymous_enable=YES
anon_mkdir_write_enable=YES
2、本地用户管理
local_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
将用户添加到 vsftpd.chroot_list 文件中允许访问
cat /etc/passwd |grep ":5[0-9][0-9]:" | awk -F : ‘{print $1}‘ >
/etc/vsftpd.chroot_list
3、虚拟用户管理
(1)要用到文件数据库 db4
rpm -qa |grep db4
(2)将帐户放入文本:(奇数行)用户名 (偶数行)密码
vi zhanghu.dat
(3)生成帐户的文件数据库
db_load -T -t hash -fzhanghu.dat
/etc/vsftpd/vsftpd_zhanghu.db
(4)修改文件数据库访问权限
chmod 600 /etc/vsftpd/vsftpd_zhanghu.db
(5)手工建立虚拟用户所需的 PAM 配置文件
vi /etc/pam.d/vsftpd.zhanghu
auth required /lib/security/pam_userdb.so
db=/etc/vsftpd/vsftpd_zhanghu
account required /lib/security/pam_userdb.so
db=/etc/vsftpd/vsftpd_zhanghu
(6)添加一个虚拟用户的入口帐户
useradd -d /var/ZhanDian -s /sbin/nologin XuNiRuKou
(7)在主配置文件中添加虚拟用户的配置内容
虚拟用户的新添加配置
chroot_local_user=YES
guest_enable=YES
guest_username=XuNiRuKou
pam_service_name=vsftpd.zhanghu
(8)在 vsftpd.conf 配置文件中指定用户配置文件的目录
user_config_dir=/etc/vsftpd/vsftpd_zhandian
(9)建立配置文件中指定用户配置文件的目录
mkdir /etc/vsftpd/vsftpd_zhandian
(10)因为入口帐户是一个本地帐户,所以要指定虚拟用户具有本地帐户的权限,才能读写 自
己空间中的文件
虚拟用户就可以就拥有写权限
virtual_use_local_privs=YES
(11)
touch /etc/vsftpd/vsftpd_zhandian/xuesong
echo "local_root=/var/ZhanDian/xuesong" >>
/etc/vsftpd/vsftpd_zhandian/xuesong
(12)
mkdir /var/ZhanDian/xuesong
(13)
chown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/
(14)重启服务
/etc/init.d/vsftpd restart
(15)客户端虚拟账号测试
建立用户脚本。最好在加上判断用户名是否存在
#!/bin/sh
echo 请输入用户名
read y
echo $y >> zhanghu.dat
echo 请输入密码
read m
echo $m >> zhanghu.dat
db_load -T -t hash -fzhanghu.dat
/etc/vsftpd/vsftpd_zhanghu.db
chmod 600 /etc/vsftpd/vsftpd_zhanghu.db
touch /etc/vsftpd/vsftpd_zhandian/$y
echo "local_root=/var/ZhanDian/$y" >>
/etc/vsftpd/vsftpd_zhandian/$y
mkdir /var/ZhanDian/$y
chown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/$y
/etc/init.d/vsftpd restart
##################################
httpd 安装
tar zxvf httpd-2.2.12.tar.gz
cd httpd-2.2.12
./configure --prefix=/usr/local/httpd \
--enable-rewrite
make && make install
ls /usr/local/
groupadd www
useradd -g www-M -s /sbin/nologin www
cd /usr/local/httpd/
vi conf/httpd.conf
服务器开启在软件安装目录的 bin 中
./apachectl start
网页放在的 htdocs 中
开机启动
vi /etc/rc.d/rc.local
/usr/local/httpd/bin/apachectl start
如果启动提示
httpd: Could not reliably determine the server fully qualified
domain name, using 127.0.0.1 for
ServerName
修改/etc/hosts 计算机名
在 httpd.conf 中开启
ServerName 127.0.0.1:80
编码设置
AddDefaultCharset UTF-8
AddDefaultCharset GB2312
##################################
mysql 源码安装
groupadd mysql
useradd mysql -g mysql -M -s /bin/false
tar zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure --prefix=/usr/local/mysql \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--with-mysqld-user=mysql \
--with-extra-charsets=all \
--with-unix-socket-path=/var/tmp/mysql.sock
make && make install
生成 mysql 用户数据库和表文件,在安装包中输入。
scripts/mysql_install_db --user=mysql
vi ~/.bashrc
export PATH="$PATH: /usr/local/mysql/bin"
配置文件,有 large,medium,small 三个,根据机器性能选择
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
cd /usr/local
chmod 750 mysql -R
chgrp mysql mysql -R
chown mysql mysql/var -R
cp /usr/local/mysql/libexec/mysqld mysqld.old
ln -s/usr/local/mysql/bin/mysql /sbin/mysql
ln -s/usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
ln -s-f /usr/local/mysql/bin/mysqld_safe
/etc/rc.d/rc3.d/S15mysql5
ln -s-f /usr/local/mysql/bin/mysqld_safe
/etc/rc.d/rc0.d/K15mysql5
##################################
mysql rpm 安装
到 http://www.mysql.com/downloads/mysql 下载 mysql RPM(service 和
client) ,
MySQL-server-community-5.1.51-1.rhel5.i386.rpm 安装服务端
MySQL-client-community-5.1.51-1.rhel5.i386.rpm 安装客户端
MySQL-devel-community-5.1.51-1.rhel5.i386.rpm 用于 php 的 mysql
安装
rpm –ivh MySQL-server-community-5.1.51-1.rhel5.i386.rpm
rpm –ivh MySQL-client-community-5.1.51-1.rhel5.i386.rpm
rpm –ivh MySQL-devel-community-5.1.51-1.rhel5.i386.rpm
/etc/init.d/mysqld start
mysqladmin -u root password ‘xuesong‘
mysql -u root -S /var/lib/mysql/mysql.sock -p
数据目录/var/lib/mysql
chkconfig --list |grep mysqld
chkconfig --level 3 mysqld on
配置文件(日志\pid)
/etc/my.cnf
ll /usr/bin/mysql*
##################################
mysql 常用命令
启动 mysql 服务
./mysql/bin/mysqld_safe --user=mysql &
登录 mysql 的命令
格式: mysql -h 主机地址 -u 用户名-p 用户密码
mysql -h110.110.110.110 -P3306 -uroot -p
mysql -uroot -p -S /data1/mysql5/data/mysql.sock -A
--default-character-set=GBK
刷新
flush privileges;
显示所有数据库
show databases;
打开数据库
use dbname;
显示选中数据库中所有的表
show tables;
查看表结构
desc tables;
删除数据库
drop database name;
删除表
drop table name;
创建数据库
create database name;
mysqladmin -h myhost -u root -p create dbname
创建表
create table ka(ka_idvarchar(6),qianshu int);
插入字段
alter table name add column accountid(列名) int(11) NOT
NULL(字段不为空);
不登陆 mysql 插入字段
mysql -uroot -p -S mysql.sock -e "use db;alter table gift add
column accountid int(11) NOT
NULL;flush privileges;"
查询
select 列名称 from 表名称;
select host,user,password from user;
备份数据库
mysqldump -h host -u root -pdbname >dbname_backup.sql
mysqlhotcopy 只能备份 MyISAM 引擎
/bin/mysqlhotcopy -u root -p
还原数据库
mysql -h host -u root -pdbname < dbname_backup.sql
登陆 mysql 后还原 sql 文件
source 路径.sql
赋予查询权限(没有用户,直接创建)
grant select on db.* to log@"%" Identified by "123456";
赋予所有权限(没有用户,直接创建)
grant all privileges on db.* to log@"IP" identified by ‘123456‘
withgrant option;
更改密码
update user set password=password(‘新密码‘) where user=‘root‘
mysqladmin -u root password ‘xuesong‘
mysql 查看所有用户的语句
select user();
删除用户
delete from user where user=‘sss‘ andhost=‘localhost‘ ;
查看主从
show slave status\G;
查看主从复制进程
show processlist;
添加索引 解决停 mysql 速度慢
ALTER TABLE playerADD INDEX weekcredit_faction_index (weekcredit,
faction);
创建主从复制用户
grant replication slave on *.* to ‘用户‘@‘%‘ identifiedby ‘密码‘;
备份表
mysqldump -u root -p -S mysql.sock --default-character-set=utf8
--hex-blob db table1 table1 >
/data/db.sql
查看系统的字符集和排序方式的设定
SHOW VARIABLES LIKE ‘character_set_%‘;
查看 mysql 所有参数
show variables;
删除空用户
delete from user where user=‘‘;
创建表指定存储引擎的类型:
CREATE TABLE innodb (id int, titlechar(20)) ENGINE = INNODB
CREATE TABLE myisam (id int, title char(20)) ENGINE =MyISAM
改变现有的表使用的存储引擎:
ALTER TABLE mytable ENGINE = MyISAM
查询表引擎
SHOW TABLE STATUS from 数据库库名 where Name=‘表名‘;
SHOW TABLE STATUS from db where Name=‘innodb‘;
查看 mysql 变量
SHOW VARIABLES;
查询用户权限
select host,user,password from user;
查看表的引擎状态
show table status
##################################
gd 安装
分别安装组件 libxml、zlib、freetype、libpng、jpegsrc、gd
libxml2-2.6.24.tar.bz2
zlib-1.2.3.tar.gz
freetype-2.2.1.tar.gz
libpng-1.2.10.tar.gz
jpegsrc.v6b.tar.gz
gd-2.0.33.tar.gz
libxml安装
tar xzvf libxml2-2.6.24.tar.bz2
tar xvf libxml2-2.6.24.tar
cd libxml2-2.6.24
./configure
make
make install
zlib 安装
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install
freetype 安装
tar xzvf freetype-2.2.1.tar.gz
cd freetype-2.2.1
./configure --prefix=/usr/local/php/modules/freetype
make
make install
libpng 安装
tar xzvf libpng-1.2.10.tar.gz
cd libpng-1.2.10
./configure --prefix=/usr/local/php/modules/libpng
jpeg 安装
mkdir /usr/local/php/modules/jpeg6
mkdir /usr/local/php/modules/jpeg6/bin
mkdir /usr/local/php/modules/jpeg6/lib
mkdir /usr/local/php/modules/jpeg6/include
mkdir /usr/local/php/modules/jpeg6/man
mkdir /usr/local/php/modules/jpeg6/man/man1
一句创建
mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --prefix=/usr/local/php/modules/jpeg6 \
--enable-shared \
--enable-static
make
make install
gd 安装
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/gd2 \
--with-jpeg=/usr/local/php/modules/jpeg6 \
--with-png=/usr/local/php/modules/libpng \
--with-zlib \
--with-freetype=/usr/local/php/modules/freetype
修改 Makefile 文件 231 行,重复的第二个 freetype 改为 libpng
make
make install
php 安装
tar xvf php-5.1.6.tar
cd php-5.1.bz2.6
./configure --prefix=/usr/local/php \
--sysconfdir=/etc \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-config-file-path=/usr/local/php/lib \
--with-libxml-dir=/usr/local/libxml2 \
--with-zlib \
--with-jpeg-dir=/usr/local/php/modules/jpeg6 \
--with-freetype-dir=/usr/local/php/modules/freetype \
--with-gd=/usr/local/gd2 \
--with-openssl \
--with-regex=php \
--with-gnu-ld \
--with-tsrm-pthreads \
--with-bz2 \
--with-gettext \
--with-db4=/usr \
--enable-ftp \
--enable-bcmath \
--enable-dba \
--enable-sockets \
--enable-soap \
--enable-zend-multibyte \
--enable-mbstring \
--with-curlwrappers \
--with-curl=/usr/local/curl \
--with-pdo-mysql=/usr/local/mysql \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config
make
make install
cp php.ini-recommended /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
在 PHP.IN 添加
[eaccelerator]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/usr/local/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
完成后在/usr/local/httpd/conf/httpd.conf 文件上添加如下一行:
AddType application/x-httpd-php .php .php5
ln -s/usr/local/php/bin/php /sbin/php
vi index.php
本文出自 “江湖笑笑生” 博客,请务必保留此出处http://hashlinux.blog.51cto.com/9647696/1794830
原文地址:http://hashlinux.blog.51cto.com/9647696/1794830