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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:



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

服务器双网卡,双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

curl ifconfig.me 

或 

curl http://members.3322.org/dyndns/getip 

elinks www.123cha.com | awk -F '[][]' '/ip:/{print $4}'

------------
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
  5.X版本对比了图形模式安装与文本模式安装后/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


6.X版本

yum groupinstall  "Desktop" "Desktop Platform" "X Window System" "Chinese Support"

yum install xorg-x11-drivers

在text远程终端上,输入startx,还是会报错,估计是终端问题

如果不放心,可以再多安装一些包,如以下

yum groupinstall -y   "Desktop"   "Desktop Platform"   "Desktop Platform Development"  "Fonts"  "General Purpose Desktop"  "Graphical Administration Tools"  "Graphics Creation Tools"  "Input Methods"  "X Window System"  "Chinese Support [zh]" "Internet Browser"

----------
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    



     本文转自itwork 51CTO博客,原文链接:http://blog.51cto.com/369369/792732,如需转载请自行联系原作者




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
29 9
|
1天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
7 0
|
2天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
20 6
Linux 中的 Nslookup 命令怎么使用?
|
3天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
3天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
4天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
46 0
|
6天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
18 5
|
6天前
|
缓存 运维 监控
Linux系统监控利器:探索常用命令及数据保存技巧
Linux系统监控利器:探索常用命令及数据保存技巧
23 4
Linux系统监控利器:探索常用命令及数据保存技巧
|
9天前
|
Linux 索引
linux 文件查找 和文件管理常用命令
linux 文件查找 和文件管理常用命令
19 0
|
10天前
|
安全 Unix Linux
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
14 0