linux常用命令

最常用的查找命令
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,就可以了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值