您的位置:首页 > 运维架构 > Shell

linux下超强命令(shell语句)组合

2014-01-13 18:02 375 查看
记性很差劲,经常在系统,网络之间转,没有专搞系统。时间一长,所以难免有些命令或组合式语句忘记了,今天把它们集合到一起,以后跑博客上找就是了,陆续更新中...

服务器双网卡,双IP,第二个网卡路由设置格式如下:

vi /etc/sysconfig/network-scripts/route-eth0

192.168.1.0/24 via 192.168.0.1

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

下载windows下的所有软件地址
http://msdn.itellyou.cn/
----------

windows7 添加硬件

在运行中输入hdwwiz.exe

-----------

linux中卸载vm workstation

#vmware-installer -u vmware-workstation

--------

开关外部ping自己

echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_all

将其值改为1后为禁止PING,0为解除禁止PING

ping 202.96.134.134 |awk '{print $0"\t" strftime("%H:%M:%S",systime())}'

--------

linux下查出口IP地址

curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'



wget http://members.3322.org/dyndns/getip
cat getip

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

mysql编译参数(5.5版查不出来):

# cat "/usr/local/mysql/bin/mysqlbug"|grep configure

php编译参数:

# /usr/local/php/bin/php -i |grep configure

apache编译参数:

# cat /usr/local/apache2/build/config.nice

nginx编译参数:

#/usr/local/nginx/sbin/nginx -V

--------

打开linux系统nat转发

echo "1" > /proc/sys/net/ipv4/ip_forward

--------

在数据库服务器是通过tcpdump抓sql语句

tcpdump -i em3 -s 0 -l -w out.log port 3306 | strings

strings out.log

--------

查看服务器并发数

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

netstat -an | awk '/^tcp/ {print $6}'|sort |uniq -c|sort -nr

ss -an | awk '{print $1}'|sort|uniq -c |sort

第一个命令语句解释

再来看看awk:

/^tcp/

滤出tcp开头的记录,屏蔽udp, socket等无关记录。

state[]

相当于定义了一个名叫state的数组

NF

表示记录的字段数,如上所示的记录,NF等于6

$NF

表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT

state[$NF]

表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数

++state[$NF]

表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一

END

表示在最后阶段要执行的命令

for(key in state)

遍历数组

print key,”\t”,state[key]

打印数组的键和值,中间用\t制表符分割,美化一下

--------

查看并发最多的独立IP,取其前10个

ss -an|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n 10

--------

windows下超出最大连接数,强制登录

mstsc /console /v:192.168.0.1:3389

----------

批量管理windwos服务器软件

Remote Administrator

Xmanager Enterprise

mremote

--------

windows下改3389为6666

打开注册表,进入以下路径:[HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp],看见PortNamber值了吗?其默认值是3389,修改成所希望的端口即可,例如6666。

  再打开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP\Tcp],将PortNumber的值(默认是3389)修改成端口6666。

--------

防火墙开放多端口

iptables -A INPUT -p tcp -m multiport --dports 80,20,21,22,8080 -j ACCEPT

---------

查看IO情况,需要安装sysstat软件,每3秒统计一次,共统计10次

iostat -x 3 10

---------

JVM虚拟机参数设置(linux 64bit 16G)

JAVA_OPTS="$JAVA_OPTS -server -Xms3G -Xmx3G -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/aaa/dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/usr/aaa/dump/heap_trace.txt
-XX:NewSize=1G -XX:MaxNewSize=1G"

---------

nginx平滑重载

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

/usr/local/nginx/sbin/nginx -s reload (0.7.53以上可用这命令)

停止操作

ps -ef | grep nginx

在进程列表里 面找master进程,它的编号就是主进程号了。

步骤2:发送信号

从容停止Nginx:

kill -QUIT 主进程号

快速停止Nginx:

kill -TERM 主进程号

强制停止Nginx:

pkill -9 nginx

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

linux只安装文本的情况下安装x-windows

对比了图形模式安装与文本模式安装后/root目录下的anaconda-ks.cfg文件,发现文本模式少组件gnome-desktop,base-x,少软件包vnc-server,xorg-x11-server-Xnest,xorg-x11-server-Xvfb,组件用groupinstall安装,软件包用install安装。

yum groupinstall gnome-desktop

yum groupinstall base-x

yum install vnc-server

yum install xorg-x11-server-Xnest

yum install xorg-x11-server-Xvfb

----------

linux下修改时间

date -s 03/14/2012

clock -w //很少人用过date后会用这个命令,如果你date后,马上重启服务器,服务器会取cmos上的时间,相当于你刚才的操作白干了,clock -w是把系统时间写入到cmos中去,当然不重启服务器,系统会隔11分钟左右,自动去执行clock -w命令。

date 查看一下服务器当前时间,时区为EDT,这是rhel默认的时区。

修改EDT为CST的过程,很简单。

1.mv /etc/localtime /etc/localtime-2013(先备份)

2.cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

3.date -s “2012-06-10 12:00”

4.hwclock -w --systohc (将系统时间同步到硬件上)

5.date 查看一下

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

查看服务器序列号

dmidecode |grep “Serial Number” (查看机器其他硬件信息也可用这个命令)

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

查看网卡是否有网线物理连接

/sbin/mii-tool

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

中国国家信息安全漏洞库:http://www.cnnvd.org.cn/

输入漏洞编号(CNNVD-200909-302),即可查到相应的解决方案

绿盟漏洞查询地址:http://www.nsfocus.net/index.php?act=sec_bug

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

lsof命令

lsof abc.txt 显示开启文件abc.txt的进程

lsof -i :22 知道22端口现在运行什么程序

lsof -c abc 显示abc进程现在打开的文件

lsof -p 12 看进程号为12的进程打开了哪些文件

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

web安全检测常用软件

IBM WEB APPSCAN(以下简称
AppScan)

Acunetix Web
Vulnerability Scanner(以下简称 WVS)

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

linux下远程注销一个用户

#who -a 查到pid

#kill pid号

-----------

linux下ll查看文件,显示完整的时间

ll --time-style=long-iso

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

重新挂载/目录(当/etc/fstab设置错误时)

mount -o remount,rw,auto /

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

dd测试磁盘读写速度

shell>dd if=/dev/zero of=/opt/test bs=1M,count=1000 oflag=direct

shell>dd if=/opt/test of=/dev/null bs=1M,count=1000

(if=/dev/zero不产生IO,所以可以用来测试磁盘写速度;of=dev/null.不产生IO,所以可以用来测试磁盘读速度,数据越大,测试越精确;bs表示块大小,count表示读写块数量)

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

查找zombie进程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

-A 参数列出所有进程

-o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数

因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程

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

linux 下查看文件个数及大小

ls -l |grep "^-"|wc -l 或 find ./company -type f | wc -l

查看某文件夹下文件的个数,包括子文件夹里的。

ls -lR|grep "^-"|wc -l

查看某文件夹下文件夹的个数,包括子文件夹里的。

ls -lR|grep "^d"|wc -l

说明:

ls -l

长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

grep "^-"

这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

wc -l

统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于

一行信息对应一个文件,所以也就是文件的个数。

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

Linux查看文件夹大小

du -sh 查看当前文件夹大小

du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序

du -sk filename 查看指定文件大小

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

linux挂载镜像文件

shell>mount -o loop /opt/centos6.2_x86_64.iso /mnt/cdrom

linux挂载带中文名的U盘

shell>mount -t vfat -o iocharset=cp950 /dev/sdc1 /mnt/flash

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

链接文件及打包命令

shell>ln -s 源文件 目标文件 //不带s,表示为硬链接

shell>tar zcvf 目标文件 源文件 //弄反这两个命令,否则会有数据丢失

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

vim显示颜色 //需要在secertCRT中将终端设置为ANSI

vim ~/.vimrc //在每用户下新建.vimrc,不要去修改/etc/vimrc文件

set hlsearch //高亮度反白

set backspace=2 //可随时用退格键删除

set autoindent //自动缩排

set ruler //可显示最后一行状态

set showmode //左下角那一行的最前面显示行号

set nu //可以在每一行最前面显示行号

set bg=dark //显示不同的底色色调

syntax on //进行语法检验,颜色显示

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

A服务器访问B服务器不要密码

[chenlb@A~]$
ssh-keygen -t
rsa

[chenlb@A~]$scp
.ssh/id_rsa.pub chenlb@19.16.1.1:/home/chenlb/id_rsa.pub

[chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys

[chenlb@B ~]$ chmod 600 .ssh/authorized_keys

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

linux cache内存释放(释放前最好sync一下):

echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

echo 3 > /proc/sys/vm/drop_caches

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

LINUX下启动程序时,如提示Address already in use,必须要等这连FIN_WAIT链接在系统清除后才可以,但清除时间是不定的,所以要通过工具来解决

在dsniff集成工具包中有一个tcpkill命令,可以解决这类问题:

下载地址:http://pkgs.repoforge.org/dsniff/ 此目录中可以找到相应系统的版本
wget  http://pkgs.repoforge.org/dsniff/dsniff-2.4-0.1.b1.el5.rf.x86_64.rpm
rpm -ivh dsniff-2.4-0.1.b1.el5.rf.x86_64.rpm
tcpkill -9 port ftp&>/dev/null
tcpkill -9 host 192.168.10.30 &>/dev/null
tcpkill -9 port 53 and port 8000&>/dev/null
tcpkill -9 net 192.168.10 &>/dev/null
tcpkill -9 net 192.168.10 and port 22&>/dev/null


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

利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问

python -m SimpleHTTPServer

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

nginx打开目录浏览功能

utoindex on;

autoindex_exact_size off;

默认为on,显示出文件的确切大小,单位是bytes。

改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime on;

默认为off,显示的文件时间为GMT时间。

改为on后,显示的文件时间为文件的服务器时间

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

rpm查询所有已安装的软件(组件),依照安装日期的先后顺序列出

# rpm -qa --last | less

yum查询已安装的相关软件(组件)

# yum list installed | grep xxx

rpm查询某个文件或命令属于哪个软件(包/组件)

# rpm -qf xxx /* xxx为文件的路径名+文件名 */

rpm查询某个软件(包)在本地所对应的全部文件

# rpm -ql xxx | less /* xxx为软件名,可由“rpm -qa|grep”查询获得 */

yum查询已安装或可供安装的相关软件

# yum list xxx /* xxx为通配符串 */

而如果我仅仅是想测试一下,安装某个软件包能否成功,或有无依赖关系,可以使用以下命令。执行以下命令后,该软件包不会被安装,只会返回测试安装成功或失败的信息,以及其依赖关系。

# rpm -ivh --test xxx

实际上,我们推荐每次使用“rpm -i”命令进行安装软件前都加上“–test”参数先行测试一下。然而,如果测试出错,或者安装出错时,我们希望忽略错误提醒,仍然无论如何都要安装该软件包的话,则可以加上“–force”这个参数,完整命令如下:

# rpm -ivh --force xxx

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

linux centos5 设置千兆网卡速度及模式

方法一:

ethtool -s eth1 autoneg off speed 1000 duplex full

方法二:

若要eth1启动时设置这些参数, 可以修改文件/etc/sysconfig/network-scripts/ifcfg-eth1 ,添加如下一行:

ETHTOOL_OPTS="speed 1000 duplex full autoneg off"

也可以将是面指令写入/etc/rc.local之中

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

修改mysql数据库root密码

mysql>update user set password=PASSWORD('my123456') where user='root' and host ='127.0.0.1';

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

我们用strace进行查看fastcgi在干吗

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

nginx,apache下,网页变灰

新增mod_ext_filer模块,nginx需要重新编译

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

1 YSlow
http://developer.yahoo.com/yslow/
2 PageSpeed
http://code.google.com/speed/page-speed/
3 Firebug
http://getfirebug.com/
------------------

php 5.3以下版本重启命令用

/usr/local/php/sbin/php-fpm (start|stop|reload)等命令

5.3以上版本用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止

QUIT 平滑终止

USR1 重新打开日志文件

USR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

php-fpm 重启:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

查看php-fpm进程数:

ps aux | grep -c php-fpm

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

1.Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大,已使用内存多大

dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range

2.Linux 查看内存支持的最大内存容量

dmidecode|grep -P 'Maximum\s+Capacity'

3.Linux 查看内存的频率

dmidecode|grep -A16 "MemoryDevice"

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

查看linux系统最消耗IO的进程脚本

#!/bin/sh

/etc/init.d/syslog stop

echo 1 > /proc/sys/vm/block_dump

sleep 60

dmesg | awk '/(READ|WRITE|dirtied)/ {process[$1]++} END {for (x in process) \

print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \

head -n 10

echo 0 > /proc/sys/vm/block_dump

/etc/init.d/syslog start

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

进程守护程序防止程序爆掉后不重启

abc.exe game%0*注:以上需要写在一个批处理bat 文件里面然后还需要将批处理文件放在程序所在的目录里面(或写上绝对路径),并用批处理来开启程序-----------------------使用Log Parser Lizard分析Windows日志前题条件:开启对象访问设置(文件夹属性-安全-高级-审核-添加对象访问设置

http://www.01happy.com/python-request-url-set-timeout/
http://blog.csdn.net/andoring/article/details/6445834
----------------

邮件服务器相关记录设置

A mail 202.96.54.65

mx @ mail.xxxx.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: