Linux给力的Shell命令


查看目录下面的所有目录

ls /dev/ -F |grep "/"   
bus/    
disk/    
input/  
说明: ls -F命令将文件和目录后面添加一个特定的符号;这样就可以通过这些特定的符号来判断改文件是目录,普通文件,链接文件等.目录后面是"/",链接文件后面是"@".

用Wget递归下载整个网站

wget -c -r -np -k -L -p -e robots=off -U Mozilla http://www.tianyabook.com  
说明: wget命令 -r 开启递归检索,-e robots=off忽略robots.txt -U Mozilla 设置User-Agent头为Mozilla;一些其它参数: -limit-rate=50k 限制下载速度为50k; -o logfile.txt记录下载日志; -l 0删除深度,默认为5;--random-wait等待0.5到1.5秒来进行下一次请求.

通过中间主机建立SSH连接

ssh -t hostA ssh hostB

ssh -t hostA ssh -t hostB ssh hostC
说明: 第一条命令,表示通过hostA来连接hostB.中间需要输入两次密码,分辨是hostA和hostB的密码; 第二条命令,最终连接hostC,需要先通过hostA连接到hostB,然后在由hostB来连接hostC.多台主机就像层层递进的关系.

mount挂载windows共享

mount -t cifs -o username=administrator,password=123456 //192.168.5.31/kuaipan/ /opt3/

说明: 使用mount挂载windows共享,必须指定文件系统为 "cifs" , 参数 -o username=用户名,password=密码;"//192.168.5.31/kuaipan/" 表示需要挂载的共享文件夹, "/opt3" 挂载的目标路径.

杀掉mysql处于Locked状态大于100s的所有进程

for i in `mysqladmin proc -v |grep -i Locked|awk '{if ($12 ~/[0-9]/ && $12 > 100) print $2}'`;domysqladmin kill $i;done;  
说明: 这条命令,杀掉sleep时间大于100s的所有Locked进程,如果要修改时间将"$12 > 100"中的"100"改成你所需要的时间即可.

ssh免密码登录

ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.5.32  

说明: 这条命令将本机的公钥拷贝到远程主机的"/root/.ssh/authorized_keys"中,如此实现无密码登录.
sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.1.15

ssh第一次连接面提示yes/no

ssh -o StrictHostKeyChecking=no 192.168.1.223

ssh翻墙命令

ssh -D 0.0.0.0:10080 root@27.177.135.235
proxychains4 ssh -Nf -D 192.168.200.111:11113 -p 33899 witeman@10.200.77.37 -i /root/.ssh/starsliao-gmt

显示消耗内存/CPU最多的10个进程

ps aux |sort -nk +4 |tail 

ps aux |sort -nk +3 |tail
说明: 第一条命令,显示消耗内存最多的十个进程;第二条命令,显示消耗CPU最多的十个进程.

查看TCP各种状态的连接数

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

说明: 这条命令输出结果分别是CLOSE_WAIT,ESTABLISHED,TIME_WAIT的连接数.

查看本机的外网IP

curl ifconfig.me

查看某端口的状况,详细信息

nmap 192.168.1.220 -A -p 37677
nmap -sS -Pn -A 192.168.1.220