这篇文章主要介绍hashlinux常用命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
———————————-
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 "hashlinux" {}/;
查找文件名,不取路径
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 下载地址
https://cache.yisu.com/upload/information/20200310/34/104726.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 "hashlinux制作" –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 "hashlinux制作" –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/hashlinux
public=yes
writable=yes
browseable=yes
重启
service smb restart
linux 访问 windows 共享
smbclient -L //ip 地址或计算机名
##################################
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/hashlinux
echo "local_root=/var/ZhanDian/hashlinux" >> /etc/vsftpd/vsftpd_zhandian/hashlinux
(12)
mkdir /var/ZhanDian/hashlinux
(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 'hashlinux'
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 -h210.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 'hashlinux'
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
以上是“hashlinux常用命令有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/205591.html