简介

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

命令集合

批量备份文件

将名称为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. 【Think In Java笔记】第1章 对象导论

    1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...

  2. JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)

    当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 BigInteger bInt = new BigInteger("123123"); BigDecima ...

  3. 位运算上的小技巧 - AtCoder

    Problem Statement There is an integer sequence of length 2N: A0,A1,…,A2N−1. (Note that the sequence ...

  4. Oauth2的使用(第三方授权登录)

    例子: 京东商城 ,微博 ,用户三者之间的关系 第一方:用户 第二方:京东商城 第三方:微博 用户不希望在京东商城上注册,可以授权微博使用微博上的用户信息进行登录京东商城. 授权流程: 地址一:授权页 ...

  5. Jenkins-正则表达式提取Cookie

    场景描述:用户登录查询数据:登录时响应头返回Cookie,将Cookie使用正则表达式提取出来,在下一个请求“查询数据”时,在请求头中使用此Cookie 1.添加“登录”http请求 2.在后置处理器 ...

  6. spring boot的日常配置

    配置篇 #数据库连接配置msql spring.datasource.url:jdbc:mysql://127.0.0.1:3306/test spring.datasource.username: ...

  7. cocos2dx,Layer锚点与scale缩放

    最近写代码需要用到缩放,而且是Layer的,但是发现怎么设置位置都是错误,于是决定研究下. 首先,基础代码,代码上不错特殊处理,没有锚点设置和缩放 class TestLayer : public L ...

  8. SuperSocket Code解析

    SuperSocket1.6Code解析 Normal Socket System.Net.Sockets.dll程序集中使用socket类: 服务器: 创建socket:_socket = new ...

  9. 第一章001-003课程介绍、计算机网络概述、Internet概述

    计算机网络概述 课程安排: 第一章:概述 第二章:物理层 第三章:数据链路层 第四章:网络层 第五章:运输层 第六章:应用层 第七章:网络安全 第八章:因特网上的音频/视频服务 第九章:无线网络 第十 ...

  10. 关于 JavaSrcipt 前端开发的建议:模块化开发

    JavaScript 是一种优秀的脚本语言. 在 JavaScript 的诞生之初,便于 浏览器 密不可分,如今它更是到了服务器中大展身手. 但是这里不叙述服务端的开发建议. Script 翻译过来就 ...