189 8069 5689

hashlinux常用命令有哪些

这篇文章主要介绍hashlinux常用命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联公司成立与2013年,是专业互联网技术服务公司,拥有项目做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元巴林左旗做网站,已为上家服务,为巴林左旗各地企业和个人服务,联系电话:18980820575

----------------------------------

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 下载地址

/upload/otherpic54/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

登陆远程执行命令(特殊符号需要\转义)

ssh root@ip << EOF

#执行命令

EOF

登陆 mysql 执行命令

mysql -uroot -ppasswd -S mysql.sock --default-character-set=gbk -A<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 服务器

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常用命令有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


新闻标题:hashlinux常用命令有哪些
路径分享:http://cdxtjz.cn/article/gipodi.html

其他资讯