shell常用命令

netstat -n | awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

  CLOSED:无连接是活动的或正在进行

LISTEN:服务器在等待进入呼叫

SYN_RECV:一个连接请求已经到达,等待确认

SYN_SENT:应用已经开始,打开一个连接

ESTABLISHED:正常数据传输状态

FIN_WAIT1:应用说它已经完成

FIN_WAIT2:另一边已同意释放

ITMED_WAIT:等待所有分组死掉

CLOSING:两边同时尝试关闭

TIME_WAIT:另一边已初始化一个释放

LAST_ACK:等待所有分组死掉

netstat -an | grep-i "127.0.0.1:80" | awk '{print $6}' | sort | uniq -c | sort -n

统计TCP各个连接状态的数量

netstat -na | grep-c ":80"

显示并发进程

ls -l

按文件大小排序

/Data/apps/httpd/bin/apachectlstop

/Data/apps/httpd/bin/apachectlstart

重启和停止apache

/Data/apps/apache/bin/httpd-k restart

重启apache


netstat -an|grep'192.168.0.1:80'

mail

收邮件

修改邮件路径可以在/etc/profile里修改

history

查看历史的运行指令

查看访问80端口的连接

ls -al

列出当前所有档案(包含隐藏档)及所有的档案属性

alias lm='ls -al'

type ls

查看ls是内建指令还是非内建指令

curl -I 127.0.0.1

telnet 127.0.0.111211

telnet 127.0.0.1 25

SHOW VARIABLES LIKE'have_query_cache';

通过have_query_cache服务器系统变量指示查询缓存是否可用:

SHOW VARIABLES LIKE'query_cache_size';

取得查询缓存大小

SET GLOBALquery_cache_size = 40000;

FLUSH QUERY CACHE

可以使用FLUSH QUERY CACHE语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。

RESET QUERY CACHE

从查询缓存中移出所有查询

/Data/apps/apache/bin/apachectl  -t

/Data/apps/apache/bin/apachectl  -kgraceful

Error: Table 'xxx'is marked as crashed and should be repaired

REPAIR TABLE `xxx`;

[root@pilot bin]#/Data/apps/mysql/bin/perror 29

OS errorcode  29:  Illegal seek

查询错误代码描述信息

SELECT name, dbFROM mysql.proc LIMIT 0 , 30;

查询存储过程列表

lsof | grep mysql

从哪里看描述符

lsof | greperror_log

rsync  -az--delete  --progress  /home/www/test  /home/www/test2

本地同步

/usr/bin/rsync-vzrtopg --progress  -e [email protected]:/etc/hosts /etc/

mysqldump-h127.0.0.1 -uusername -ppass dbname > db.sql

导出数据库

[email protected]

连接sftp

get/var/www/index.php  index.php

下载远程主机文件到本地

put index.php/home/www/index.php

上传本地文件到远程主机

lpwd

查看本机目录

if [ -s/tmp/php-error.log ]

then

DATE=`date +%y%m%d`

cp/tmp/php-error.log /logs/php_error_log/php-error$DATE.log

cat /dev/null >/tmp/php-error.log

gzip -9/logs/php_error_log/*.log

else

echo ok

fi

=============================================================

dir=`cd/Data/cache;ls | grep "\.old"`

for dirname in $dir

do

      cd /Data/cache;find ./$dirname/ -name '*' -exec rm -rdf {} \;>/dev/null 2>&1  &

done

dir = `cd /Data/webapps/360quan.com;ls"

for dirname in $dir

do

      echo dirname

done

echomd5(uniqid(microtime()));

生成唯一标识

explorer[url=http://www.sohu.com/]http://www.sohu.com[/url]

mysqladmin-h127.0.0.1 -uroot create 1111

mysqladmin-h127.0.0.1 -uroot status;

mysqladmin-h127.0.0.1 -uroot drop 1111

mysqladmin-h127.0.0.1 -uroot processlist;

mysqladmin-h127.0.0.1 -uroot ping

mysqladmin-h127.0.0.1 -uroot version

mysqladmin-h127.0.0.1 -uroot shutdown

关闭mysql服务器

svn log url

svn info

svn ls

explorer e:

打开E

ls | vim -

Vim 能从标准输入读取文本

zfap zo

设置折叠与打开折叠

:colo default

语法高亮设置

CTRL-Z

vim中把vim先挂起。fg命令

:!ls  vim内执行单个shell命令

service mysqlrestart

/etc/init.d/mysql  start|stop|restart|reload|force-reloads

ps -A | grep mysql

查看运行的mysql进程

kill后重启mysql

Can't open file:'group_lists.MYI' (errno: 145)\n的解决方案

repair tablegroup_lists

SELECT benchmark(100000000, 'select * from group_lists' )

检测Mysql的性能

SELECT * FROMgroup_lists PROCEDURE ANALYSE ( )

分析各个子段类型大小是否设置合适

ps -ef|grephttpd|wc -l

[url=http://127.0.0.1/server-status]http://127.0.0.1/server-status[/url]

apache信息查看

php_flag engine off对于不需要php权限的目录或者虚拟主机设置加上这个

ls -al 查看所有文件包括隐藏文件

htpasswd -c/tmp/.htpasswd admin

建立一口令文件,文件名为.htpasswd,用户名为admin

.htaccess文件

AuthName admin-only

AuthType Basic

AuthUserFile/tmp/.htpasswd

require user admin

scp/home/scw/[email protected]:/home/sunchangwei

SCP的新命令,这个命令可以在主机间进行大数据量的交互。而且在局域网中传数据,可以达到10MB/S.详细的命令格式,可以用man scp进行查询

gzip

压缩命令

mysql -uroot -ptablename < tablename.sql

导入数据

update mysql.db setdb ='group2' where user = 'group';

ll -t

按时间排序

ll -S

按大小排序

awk '{print"space"}' /etc/passwd

awk '{print}'/etc/passwd

awk -F":"'{print $1}' /etc/passwd

awk -F":"'{print "username" $1 "\t\tuid" $3}' /etc/passwd

awk /var/'{print}'/etc/passwd > var.txt

会对/etc/passwd中的每一行执行正则表达式/var/筛选出来保存到var.txt

awk '{print $1}'/etc/passwd | tee passwd.txt

输出到文件的同时也在屏幕上显示

awk 'BEGIN {print"Name Belt\n-----------------------------------"}{print$1"\t",$4}' grade.txt

awk '$4 ~ /Brown/'grade.txt

打印信息头

Name Belt

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

M.Tans  Green

J.Lulu  green

P.Bunny  Yellow

J.Troll  Brown-3

L.Tansl  Brown-2

awk 'BEGIN {print"Name\n--------"}{print $1} END {print "end-of-report"}'grade.txt

打印信息尾

awk 'BEGIN {print"Name\n--------"}{print $1} END {"end-of-report"}'

awk '{if($4 ~/Brown/) print $1}' grade.txt

使用操作符和正则例子

awk'gsub(/48317/,6666){print $0}' grade.txt

把记录中匹配/48317/的替换为6666

sed -n '2p'quote.txt 只打印第二行

sed -n '1,3p'quote.txt

打印第13

sed -n '1,$p'quote.txt 显示一个文件的所有行

sed -n '1p'quote.txt 打印第一行

sed -n '$p'quote.txt 打印最后一行

find  /Data/logs -type f -mtime +5 -exec rm{} \;

logs目录中查找是文件并在5天以前被更改

find  -type f -print | xargs file

find -name "*.php"

在当前目录下查找所有扩展名php的文件

find /Data/  -type d

查找目录下的所有目录

grep -i -c"usp" data.f

data.f文件中查找usp,不区分大小写,只返回匹配的行数

grep  -r'GroupProfileDAO::exist' ./

grep  -r'GroupProfileDAO::exist' *.php 只查找php文件

grep-n  -r 'GroupProfileDAO::exist' *.php

加上行号

mysqladmin -urootping &>dev/null

mysqladmin-h127.0.0.1 -uroot -proot processlist

mysqladmin-h127.0.0.1 -uroot -proot version

mysqldumpslow -s c-t 5 24.slow.comment.20080822 > 24.slow.comment.20080822.log -g | grep -vlocal

mysqldumpslow -sc   10.slow.log.20080825 | grep -i notice_message | wc -l

mysqldumpslow -sc  -t 20 myqlslow.log

找出查询次数最多的前20sql

mysqldumpslow -s t-t 20 mysqlslow.log

找出查询时间最多的前20sql

echo "That isall right, this is a great job." > test.txt

head -n 1/etc/issue

查看操作系统版本

df -h 查看各分区的使用情况

last | grep"heiyeluren" | wc -l

查看用户登陆日志

ls *[0-9]*

显示包含数字的文件名和目录名

mkdir -p/tmp/dir1/dir2

创建一个目录树

rm -f file1

删除一个叫做 'file1' 的文件'

rmdir dir1

删除一个叫做 'dir1' 的目录'

find /dir1/dir2/-name \*.php

在此目录中查找以php结尾的文件

du -sh dirname

估算dirname所占用的磁盘空间

df -h | grep 50%

cat /etc/group

查看所有用户组

groupadd group_name添加一个用户组

groupdel group_name删除一个用户组

groupmod -nnewGroupname oldGroupname 重命名一个用户组

bzip2 file1

压缩一个叫file1的文件

bunzip2 file1 解压缩文件

gzip file1

gunzip file1

more/var/log/messages

查看大文件内容

grep Aug -R/var/log/*

type command

查看command指令是内建指令还是外建

read -p"Please keyin your name: " -t 30 named

读取来自键盘输入的变量,并加上提示,超过30秒没动作自动停止

a[0]="apple"

a[1]="orange"

a[2]="banana"

for b in ${a};do

echo $b

done

shell数组循环例子

echo"empty" >> test1.$$

basename dir 从路径中分离出文件名

cat f1 f2 >> f3

f1f2的内容合并到f3

diff f1 f2

dirname basename相反

file filename 用来确定文件类型

logname 显示当前使用的登陆用户名

简单的if控制语句

=======================

if [ -d f1 ]; then

      echo "is dir"

else

      echo "not dir";

fi

=======================

==================================

functioncheckUser(){

 name[0]="admin"

 name[1]="test"

 name[2]="sysadmin"

 name[3]="op"

 for rowin ${name};do

   if [$row = $1 ];then

      return 0

   fi

 done

 return1

}

pass=N

read -p"please input login username:" -t 30 username

while [ $pass = N];do

 ifcheckUser $username;then

   echo "username pass"

   exit 1

 else

   read -p "pass not right,please input again:" -t 30username

 fi

done

======================================

简单的用户验证脚本

if cp myfilemyfile.bak;then

mysqldump-h127.0.0.1 -uroot notice > /tmp/notice.sql

cd /tmp

[email protected]

get notice.sql

rm-fr  notice.sql

mysql ad1 </tmp/ad.sql -uroot -p

导入数据

temph=`date | cut-c12-13`

截取date的第12个和第13个字符

echo -e "\033[34m qweqwe "  

RESET QUERY CACHE;

清理查询缓存

SHOW VARIABLES LIKE'have_query_cache';

INSERT INTO user

SELECT *

FROM user

WHERE user.user ='group' ON DUPLICATE

KEY UPDATEuser.user = 'notice'

UPDATE user SETPASSWORD = md5( 'notice.tiger' ) WHERE User = 'notice'

原来mysqlmd5password不一样

group2

INSERT INTO db

SELECT *

FROM db

WHERE db.user ='group2' ON DUPLICATE

KEY UPDATEuser.user = 'group2'

INSERT INTOmysql.db

SELECT *

FROM mysql.db

WHERE mysql.db.user= 'notice' ON DUPLICATE

KEY UPDATEmysql.db.user = 'noticea'

修改数据库权限后要重启mysql才能生效

/usr/local/bin/convertlifestyle_logo.gif -resize  90x90 out.gif

which php

which convert

查找命令的目录文件

/usr/local/bin/convert-mattecolor  "#000000"  -frame "3x3"lifestyle_logo.gif  remember.gif

为图片加边框,边框颜色是黑色,边框宽度和高度都是3px

/usr/local/bin/convert-fill green -pointsize 40 -draw 'text 10,50 "google"'lifestyle_logo.gif  fill.gif

为图片加文字,用green颜色字体大小40,距离左上角10*50位置,文字为google

/usr/local/bin/convertanimation.gif frmae%02d.gif

gif文件分解为一系列的单个图片

      - �h端登�

              [email protected]

      - �h端�绦�

              [email protected] 'command ...'

      - �h端�}制

              scp [email protected]:/remote/path/local/path

              scp /local/[email protected]:/remote/path

id username

last

df -h

显示所有磁盘系统的信息

show variables like'datadir'

显示mysql的数据库目录

mysqladmin -h127.0.0.1-uroot variables

如何修改mysql的默认帐号root

use mysql;

update user setpassword=password('passowrd') where user='root';

flush privileges; 刷新内存中的权限表

使用mysqladminset password,会自动重载该表

mysql>grant allon db.* to 'test'@'%' identified by 'test';

上例运行后的效果是,test用户可通过‘test’密码从任意计算机上访问db数据库。‘%’代表任意字符,‘_’代表一个任意字符。主机名部份还可以是IP地址

flush logs;

ALTER TABLEtable_name DISABLE KEYS;

禁用索引

ALTER TABLEtable_name ENABLE KEYS;

启用索引

% mysqldump --opttestdb | gzip > /data/backup/testdb.bak

#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩

% mysqldump --opttestdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak

#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔

delete fromtable_name;

or

truncate tabletable_name

delete fromtable_name where 1;区别

查看mysql运行以来连接计数

show status wherevariable_name = "Connections";

查看当前客户连接数量

show status wherevariable_name ="Threads_connected"

语法:

UNIQUE KEY `test`(`xref_key`,`xref_dbname`)

UNIQUE KEY`xref_key` (`xref_key`,`xref_dbname`)

上述语法检查xref_keyxref_dbname的组合是否是唯一值,可以设定多个字段的组合。其中,test是索引表中的字段名称。

该方法适合用来解决多个字段相互依赖,且必须满足唯一性的条件的情况。在经常新增或删除资料表中auto_incrementprimary key会造成大量的断层,这类易变动的资料表使用auto_increment并不是一个很适合的索引值,所以可以采取unique key来处理。

rm -fr clean*

SELECT count(1)

FROM group_members

WHERE date_join> '2008-08-22 09:14'

AND date_join <'2008-09-09 10:44'

mysql时间比较

加了新的apache vhost文件, 重启apache前请用apachectlconfigtest 测试配置文件.



你可能感兴趣的:(Shell常用命令)