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

来源:互联网 发布:windows qt 串口编程 编辑:程序博客网 时间:2024/05/19 12:38

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

服务器双网卡,双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.rpmrpm -ivh dsniff-2.4-0.1.b1.el5.rf.x86_64.rpmtcpkill -9 port ftp&>/dev/nulltcpkill -9 host 192.168.10.30 &>/dev/nulltcpkill -9 port 53 and port 8000&>/dev/nulltcpkill -9 net 192.168.10 &>/dev/nulltcpkill -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    

0 0
原创粉丝点击