您好,登錄后才能下訂單哦!
這篇文章主要介紹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常用命令有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。