最常用的查找命令
find /home/jerry –type f -print -exec grep -in "httpd" {} \;
find /home/jerry –type f -print –exec|xargs grep -in "httpd" {} \;
删除当前目录下文件:
find ./ -type f -exec rm {} \;
查找文件夹
find / -name 文件夹名
查找内容
grep something path -r
查看实时日志
tail –f /var/log/messages
查看网络端口
netstat -i
查看端口占用
netstat -anpt
显示所有进程
ps -ef
ps -auxf|grep 进程名
根据进程名显示进程号
pidof 进程名
查看端口占用
lsof -i:端口号
调试
strace -p 进程号 -o 输出文件
-c 进行统计
strace -T -tt -p 进程号
显示函数调用时间
数据包捕获命令
tcpdump -i eth1 port 端口号
tcpdump -i eth1 src IP地址 dst 目的地址
tcpdump -i eth1 src IP地址 net 目的网络
查看捕获数据包的详细信息
tcpdump -xSO -XXX -vvv -s0 -ilo udp and port 9051
查看系统时钟的操作:
# date
增加文件执行权限
chmod ugo+x -R 文件夹
设置系统时钟的操作:
# date 122615472011.30
通用的设置格式:
# date 月日时分年.秒
杀死进程
kill -9 进程号
df -h 查看磁盘空间
查看当前文件夹大小
du -h --max-depth=1 .
链接两个文件
ln -s 原文件 链接文件
显示共享内存信息
ipcs -m
删除共享内存
ipcrm命令,使用shmid做为参数。shmid在ipcs命令中会有输出
ipcrm -m shmid
下面的命令可以释放所有已分配的共享内存:
ipcs -m | awk '$2 ~ /[0-9]+/ {print $2}' | while read s; do sudo ipcrm -m $s; done
查看系统多少位,32 or 64
#uname -a
如果有x86_64就是64位的,没有就是32位的
free 查看内存命令
压缩命令
tar -zcvf directory.tar.gz directory
解压
tar xvzf mysql-5.1.30.tar.gz
远程登录
ssh -l root -p 36000 172.20.6.57
ssh -l root -p 36000 112.121.91.167
************************************mysql*************************************
连接mysql命令
mysql -h10.6.221.55 -ucube -pminigame CubeDB
mysql -h172.20.6.46 -ugame -pminigame gamedb
香港 mysql -h172.20.6.44 -ucube -pminigame cube
mysql -h172.25.40.50 -ucube -pminigame cube
台湾:mysql -h192.168.14.145 -ucube -pminigame cube
调整字段顺序:
ALTER TABLE tablename CHANGE colnumname colnumname int not null default 0 AFTER othercolnumname
备份制定的表
mysqldump -u user -p db tab1 tab2 > db.sql
EXA:
mysqldump -u pivot -p pivot news > c:\news.sql
备份数据库
mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak
还原数据库
mysql -u 用户名 -p 密码 -h 主机名 --one-database 还原数据库名 < 路径/备份名.bak
mysql -u pivot -p pivot news < c:\news.sql
mysql
FROM_UNIXTIME转化为unix时间
UNIX_TIMESTAMP目前的时间戳
联合查分表
select * from b1 where 时间=1月
union all
select * from b1 where 时间=2月
...
union all
select * from b1 where 时间=12月
select uin, from_unixtime(date), answer from (select uin, date, answer from feedback_list_0 union select uin, date, answer from feedback_list_1 union select uin, date, answer from feedback_list_2 union select uin, date, answer from feedback_list_3 ) as t order by date into outfile "/data/result.txt";
修改用户的host
GRANT ALL PRIVILEGES ON *.* TO logsvr@"10.133.7.23" IDENTIFIED BY 'logsvr@ibg' WITH GRANT OPTION;
mysql编码
show Variables like 'char%';
修改mysql编码
--在 [mysqld] 标签下加上三行
default-character-set = utf8
character_set_server = utf8
--在 [mysql] 标签下加上一行
default-character-set = utf8
--在 [mysql.server]标签下加上一行
default-character-set = utf8
--在 [mysqld_safe]标签下加上一行
default-character-set = utf8
--在 [client]标签下加上一行
default-character-set = utf8
mysql断连
在my.ini中[mysqld]添加
wait_timeout=31536000
interactive_time=31536000
Mysql查找命令
select * from ( select * form %s where GameType = 201 order by Points DESC) as subTable where rownum < 1000;
备份所有数据库
mysqldump -uroot --all-databases --add-drop-database --lock-table=0 -B -e -R > /data/mysql.sql
远程cp命令
scp -r local_folder remote_username@remote_ip:remote_folder
scp mysql-5.0.33.tar.gz root@172.20.6.57:/home/jerryshi
scp svndata.tgz root@112.124.23.97:/data
不挂断地运行命令
nohup
nohup ./wealthRankSvr &
测试udp端口是否可用
netcat -u 192.168.1.123 8001
看系统内核
uname -a
看系统版本(其实是登录时的提示语,哈哈)
cat /etc/issue
查看进程占用
按cpu的占用量降序
ps -aux|awk '{print $3,$11}'|sort -r
ps auxw 查看进程状态
D IO问题
R CPU问题
S Sleep未唤醒
查看内存占用
/proc/XXXX/status文件中
查看内存信息
cat /proc/meminfo
机器运行的时间
uptime
系统启动时间
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
监控虚拟内存
vmstat
查看链接库
locate + 文件
定时启动命令
取消告警系统
crontab -e
ifconfig
查看本机ip
因为现在香港环境的apache部署了可以支持ssl
所以请大家重启服务器的使用改用
apachectl -k stop
apachectl startssl
groupadd mysql(普通用户)
useradd -g mysql mysql为mysqld增加一个登录用户和组:
userdel -r 用户名 删除用户
chown -R root . 将文件的所有属性改为root用户。
chown -R mysql var 将数据目录的所有属性改为mysql用户
chgrp -R mysql . 将组属性改为mysql组。
cat /etc/password 查看所有用户
cat /etc/group文件包含所有组
cat /etc/shadow和/etc/passwd系统存在的所有用户名
增加最大打开的文件数
在 /etc/profile 中 加入 一行
ulimit -n 65535
查看防火墙
iptables -nvL
查看系统用户
/etc/shadow和/etc/passwd中的
cat /etc/passwd | grep cyq
netstat -anp | grep 端口号
netstat -s 统计
删除进程
kill -9 'ps aux |grep -i nginx |grep -v grep |awk '{print $2}''
有日志文件格式:[时间]|手机号码|上行指令|消息内容
字段提取
awk -F "|" '{printf("%s|%s\n",$2,$3)}'
统计a.txt中各个关键字的个数
uniq -c a.txt
1、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
2、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l
3、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
4、将每个IP访问的页面数进行从小到大排序:
} END {for (a in S) print S[a],a}' log_file | sort -n
5、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
6、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
7、查看2009年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2009:14 | awk '{print $2}'| sort | uniq | wc -l
awk '{print $4,$1}' /usr/local/apache/logs/texas_garena-access_log | grep 9/Sep/2011:09 | awk '{print $2}'| wc -l
cat /usr/local/apache/logs/texas_garena-access_log |awk '{sum+=$10} END {print sum/1024/1024/1024}'
top
大写M,按内存大小排序
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期
查看文件的md5值
md5sum 文件
关于shell
$ echo ${A[@]} //取全部元素
$ echo ${A[0]} //取第一个元素
$ echo ${#A[@]}//取得数组元素的个数
$ A=//清空变量,即将值变为空
查看cpu信息
cat /proc/cpuinfo
查看time wait
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"/t",state[key]}'
统计脚本
tail -n 2000 luckybagdebug20120723.log | grep uin | awk -F'[, :]' '{if((($26-$29+$32)>-20) && (($26-$29+$32)<0)) print " "$26 " "$29 " "$26-$29+$32}'
vi使用
1)把光标移动到要复制的行上,按yy (复制当前行)
2)把光标移动到要复制的位置 ,按p (粘贴到指定行
查看CPU
dmidecode | grep CPU
cat /proc/cpuinfo
修改fd的最大限制
vi /etc/security/limits.conf
* hard nofile 102400
* soft nofile 102400
查看操作系统是32位还是64位
getconf LONG_BIT
查看当前监听的端口
netstat -lntp
查看Apache的编译参数
cat /usr/local/apache2/build/config.nice
查看PHP编译参数
/usr/local/php/bin/php -i |grep configure
查看MySQL编译参数
cat /usr/local/mysql/bin/mysqlbug|grep configure
gdb调试
gdb --core=core
file ./xxx
bt
查看core模式
cat /proc/sys/kernel/core_pattern
core-%e
nsswitch配置host生效
/etc/networking restart
内存检测工具
valgrind
MallocDebug
删除文本中的^M
cat filename1 | tr -d “^V^M” > newfile;
^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴
路由跟踪
traceroute 域名或者IP
linux挂载磁盘方式
1. fdisk –l 找到磁盘
2. mkfs –t ext4 磁盘名 (格式化,注意使用,数据会丢失)
3. mkdir /data
4. mount 磁盘名路径
卸载磁盘
umount 路径
查看磁盘UUID
blkid
设置系统自动挂载硬盘
vi /etc/fstab
/dev/xvdb1 路径 ext4 defaults 0 0
linux密码修改
passwd
修改ssh默认端口
[root@localhost /]# vi /etc/ssh/sshd_config
Port 36000
[root@localhost /]# service sshd restart
查看进程依赖多动态链接库
ldd 进程
修改防火墙的配置
/etc/sysconfig/iptables
iptables -p INPUT DROP
iptables -p OUTPUT ACCEPT
iptables -p FORWARD ACCEPT
iptables -A INPUT -p tcp --dport 36000 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
#DNS解析
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart
时间转换
date -d '1970-1-1 0:0:0 GMT + 1433321494 seconds'
杀死进程
ps -ef|grep tcpServer|grep -v grep|awk '{print $2}'|xargs kill -9
ldconfig需要注意的地方:
1、往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf文件的,但是添加完后需要调用下ldconfig,不然添加的library会找不到。
2、如果添加的library不在/lib和/usr/lib里面的话,就一定要修改/etc/ld.so.conf文件,往该文件追加library所在的路径,然后也需要重新调用下ldconfig命令。比如在安装mysql的时候,其库文件/usr/local/mysql/lib,就需要追加到/etc/ld.so.conf文件中。命令如下:
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
# ldconfig -v | grep mysql
3、如果添加的library不在/lib或/usr/lib下,但是却没有权限操作写/etc/ld.so.conf文件的话,这时就需要往export里写一个全局变量LD_LIBRARY_PATH,就可以了。