简介

本篇博客收集一些常用的复杂命令组合,这些命令组合能够高效的定位、分析、处理一些问题,希望对需要的小伙伴有所帮助。

命令集合

批量备份文件

将名称为config.xml的文件查找出来,并在原目录备份

find /var/lib/jenkins/jobs -name config.xml | xargs -t -I '{}' /usr/bin/cp '{}' '{}.bak'

删除最后一行

将名称为config.xml的文件查找出来,并将该文件的最后一行删除

find /var/lib/jenkins/jobs -name config.xml | xargs -t -I '{}' sed -i '$d' {}

追加内容到指定文件

将名称为config.xml的文件查找出来,并将/data/scripts/post文件内容

find /var/lib/jenkins/jobs -name config.xml -exec bash -c "cat /data/scripts/post >> {}" \;

压缩文件同时排除某些文件

tar -zcvf marketdata.tar.gz marketdata/ --exclude 20190323*

一个文件内容插入到另一个文件

将test文本的内容插入到demo的第6行

sed -i '6 r test' demo

如果不知道行号,但是知道模式可以用

sed -i '/regex/ r test' demo # regex是正则表达式

如下文本 zimu.txt

aaaaa
#bbbbbb
cccccc
dddddd

用sed在aaa前加#注释

sed 's/^aaa/#&/' zimu.txt # &的意思是匹配任意字符(就是说未知数,啥都行) 这条命令是 替换以aaa开头的

用sed取消bbb前面的注释

sed 's/^#\(bbb\)/\1/' zimu.txt #\1的意思 就类似于 前面的 (bbb\) \1就是复制这个位置的内容 如果有 第二个 那么久\2就是复制第二个位置的内容

sed 可以在匹配的模式之前(i)或之后(a)增加一行或多行;在匹配的模式之前(i):

# sed -e ‘/123/ a\solongg’ a.txt
1234569
solongg
abcABCabc
# sed -e ‘/123/ i\solongg’ a.txt
solongg
1234569
abcABCabc

不换行输出时间

echo -n `date +%Y-%m%d-%H:%M-`

打印分隔符

for i in `seq 1 $COLUMNS`; do echo -n "+"; done

循环输出docker信息

docker ps | awk -F' ' '{print $NF}' | xargs -I {} bash -c "docker top {}"

docker ps | awk -F' ' '{print $NF}' | xargs -t -I '{}' docker top '{}'

批量替换文本

替换当前目录下文本中文本

sed -ig 's/text1/text2/g' ./*

测试TCP或UDP连接

nc -v 192.168.30.100 1200

nc -uv 192.168.30.100 1200

查看该目录下文件夹大小

du -sh ./* | sort -nr

统计显示网络连接状态的个数

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

统计单个ip 80端口连接数量并排序,取前30名

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n30

杀掉服务

ps -ef |grep CtpTradeServe |grep -v grep | awk '{print $2}'|xargs kill -9

命令行ip查询:

UNIX/Linux: #curl cip.cc
Windows: >telnet cip.cc
\>ftp cip.cc
命令行查询(纯ip):
UNIX/Linux: #curl ip.cip.cc

监控到某一网站的网络状况

curl -o /dev/null -s -w %{http_code}-%{time_namelookup}-%{time_redirect}-%{time_pretransfer}-%{time_connect}-%{time_starttransfer}-%{time_total}-%{speed_download}"\n" https://www.glinux.top

ping监控

#!/bin/bash
while true; do
echo -n `date` "---> ">> /root/ping.txt; (ping 172.31.65.241 -c 1 -W 1|grep "from">> /root/ping.txt) && (echo -n "" >> /root/ping.txt) || (echo "Fail.">> /root/ping.txt)
sleep 1
done

web ip访问日志统计

tail -n 1000000 www.glinux.top-access.log|grep '06/Sep/2018:08:'|awk '{print $1}'| sort |uniq -c|sort -nr

grep -r 11/Oct/2018:04: ./www*.glinux.top-access.log | awk '{print $1}'| sort |uniq -c|sort -nr

cnetos 7查看服务报错日志

journalctl -u 服务名

wget请求网页,功能类似curl,请求数据不保存为文件,直接cosole输出

wget -O - -q https://www.glinux.top/index.html

docker容器含有默认命令,重写默认命令,快速启动,退出销毁容器命令

docker run --name temp --rm -it --network host --entrypoint "" nervos/ckb:v0.22.0-rc3 bash

docker run -v `pwd`:/root/.celo --entrypoint /bin/sh -it us.gcr.io/celo-testnet/celo-node:alfajores -c "geth account new"

iptables 端口转发

# 放行转发流量(默认安装docker,会关闭到eth0的转发)
iptables -A FORWARD -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# 放行指定端口的转发流量
iptables -A FORWARD -p tcp --dport 3000 -j ACCEPT
# 添加nat 转发,访问本主机2000端口会转发到172.16.131.35 的3000端口(:3000不加,默认会按dport 转发端口)
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2000 -j DNAT --to 172.16.131.35:3000
# 设置地址伪装,通过eth0转发出到172.16.131.35的流量会伪装原地址为本机(保证正常通信)
iptables -t nat -A POSTROUTING -d 172.16.131.35/32 -o eth0 -j MASQUERADE
# 端口重定向
iptables -t nat -A PREROUTING -p tcp -i ens4 --dport 18888 -j REDIRECT --to 8888

iptables 删除条目

查看iptables nat记录条目
iptables -L -n -t nat --line-number
删除iptables 条目
iptables -t nat -D PREROUTING 1
iptables -t nat -D POSTROUTING 20

tcpdump 使用

tcpdump -i eth0 tcp dst port 80 -nn -vvv #抓目的端口是80, 协议和端口数字化显示
tcpdump -i eth0 host 192.9.205.111 #抓取和该主机的通信
tcpdump -i eth0 -nn src host 192.9.205.111 # 抓取源为该主机的通信, 并数字化
tcpdump -i eth0 -nn host 192.9.205.111 and 125.118.218.177 #仅抓他们两个的通信
tcpdump -i eth0 -nn host 192.9.205.111 and \(125.118.218.177 or 192.9.205.115\) #抓取该主机和这两个IP的通信
tcpdump -i eth0 -nn -A tcp port 80 #抓取tcp 80的通信
tcpdump -i eth0 -nn -XX tcp port 80 #抓取通信, 并以ASCII显示链路层
tcpdump -i eth0 -nn -vv -XX tcp port 80 #更详细信息

nc 使用

# 测试端口是否通畅
~# nc -vz 172.31.44.178 30503
Connection to 172.31.44.178 30503 port [tcp/*] succeeded!
~# nc -vz 172.31.44.178 30504
nc: connect to 172.31.44.178 port 30504 (tcp) failed: Connection refused

参考文档

sed命令:

jq命令:

curl命令:

Ops: 高效组合命令集合的更多相关文章

  1. Linux系统-解压缩命令集合

    Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...

  2. linux常见命令集合(下)

    1. tar zcvf backup-$(date "+%Y-%m-%d").tar.gz demo01dir 常用命令集合 echo helloworld date “+%y-% ...

  3. 华为OPS,自定义命令,动态执行命令

     OPS     开放可编程系统OPS(Open Programmability System)是指设备通过提供统一的应用程序接口API(Application Programming Interfa ...

  4. 总结:liunx常见命令集合

    没有系统学习过liunx,把工作中遇到的liunx命令集合信息如下: 1.nc传送文件 之前总是用rsync, 今天遇到了一个从阿里云服务器传送文件到我们公司的内网服务器,这就不能传了,又想用一致的文 ...

  5. CENTOS7常用的基础命令集合(一)

    目录(?)[-] CentOS7 常用命令集合 常用命令 文件与目录操作 查看文件内容 文本内容处理 查询操作 压缩解压 yum安装器 网络相关 系统相关 系统服务启动相关 防火墙相关 RPM包管理 ...

  6. dos命令大全 黑客必知的DOS命令集合

    dos命令大全 黑客必知的DOS命令集合 一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进 ...

  7. [No0000175]maven常用命令集合(收藏大全)

    抽了点时间,整理了一些maven常用命令参数,以便参考:参考了maven官网和网上其他一些maven追随者的文件,不在此一一列举,但表示感谢! mvn命令参数 mvn -v, --version 显示 ...

  8. maven常用命令集合

    作者:ydlmlh 原文:http://ydlmlh.iteye.com/blog/2158973 抽了点时间,整理了一些maven常用命令参数,以便参考:参考了maven官网和网上其他一些maven ...

  9. CentOS7 常用命令集合

    CentOS7 常用命令集合 文件与目录操作 touch test.txt: 创建一个文本文件 文本内容处理 查询操作 压缩.解压 yum安装器 网络相关 系统相关 XSheel 5相关操作 窗体快捷 ...

随机推荐

  1. Java 发展简史:初生遇低谷,崛起于互联网

    Java 起源与诞生 20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度. SUN公司为了抢占市场先机,在1991年成立了一 ...

  2. Codeforces Round #609 (Div. 2)前五题题解

    Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...

  3. 【转】15个超炫的HTML5效果

    英文原文:http://www.hongkiat.com/blog/15-html5-experiments/     翻译:iteye 乔布斯没有给Flash任何机会,微软新推出的Windows 8 ...

  4. 【转】基于ArcGIS for javascript api 轨迹回放

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  5. TensorFlow——dropout和正则化的相关方法

    1.dropout dropout是一种常用的手段,用来防止过拟合的,dropout的意思是在训练过程中每次都随机选择一部分节点不要去学习,减少神经元的数量来降低模型的复杂度,同时增加模型的泛化能力. ...

  6. JSP九大内置对象之session以及eclispe如何关联源码

    一.session的特点及其实例 session:同一次会话共享 a.浏览网站:开始->关闭 b.购物:浏览.付款.退出 c.电子邮件:浏览.写邮件.退出  从一次开始到一次结束,是一次会话.  ...

  7. 一个命令解决linux重启nginx就丢失pid文件问题

    sudo nginx -c /etc/nginx/nginx.conf

  8. vs推送git失败,修改git下config的Log

    一开始写完程序套推送到Git中,然后就来了一下,下面的异常: 异常1 发布到远程存储库时遇到错误: Git failed with a fatal error. fatal: HttpRequestE ...

  9. 执行sql中的 函数,function

    CREATE FUNCTION [dbo].[GetWeight] ( ,)--重量/体积重 ) ,) as begin --顺丰重量/体积重以0.5kg为单位向上取值(小数点后两位4舍5入) ,) ...

  10. springcloud复习2

    Hystrix断路器 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时.异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导 ...