好玩的Linux命令-1
Ag:比grep、ack更快的归递搜索文件内容
1:首先在linux创建个sh文件->ag.sh
2:在ag.sh里面输入如下内容并保存
#!/bin/bash set -x TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX) cd ${TEMP_DIR} wget https://github.com/ggreer/the_silver_searcher/archive/master.zip TAR_DIR=$(unzip *.zip) TAR_DIR=${TAR_DIR%%/*} TAR_DIR=${TAR_DIR##*:} cd ${TAR_DIR} apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev --force-yes ./build.sh && make install cd ../../ rm -rf ${TEMP_DIR} ag -V set +x
3:执行./ag.sh就会去安装了,完事后可以用ag "helloWord"命令去寻找所有文件中包含helloWord的文件并列出所在行数等。主要是带有颜色。
Tig:字符模式下交互查看git项目,可以代替git命令
安装
Ubuntu环境通过apt-get安装tig
sudo apt-get update sudo apt-get install tig
CentOS环境安装通过yum安装tig
sudo yum update sudo yum install tig
Mac环境安装通过brew安装tig
brew update brew install tig
使用
1、通过man查看tig命令
//CentOS、Ubuntu
man tig
//mac
man ls tig
2、tig中位置移动是vim命令
3、tig查看所有历史修改
yanmin:360tmk yanmin$ tig
4、tig show查看某次commit的所有修改
tig show 65a05ee92c83a5827449d62be42322e1b2a58e39
5、tig filename查看某个文件所有历史修改
yanmin:360tmk yanmin$ tig pom.xml
Mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令
我用的是centos7,版本如果7以下可能会存在问题,比如自带Python的原因。
安装:
# yum -y install epel-release
# yum -y install python-pip
# yum install python-devel
清除缓存
# yum clean all
安装mycli
# pip install mycli
中间如出现报错按照指引完成即可
测试
输入mysql命令即可进行补全
Jq:json文件处理以及格式化显示,支持高亮,可以替换python –m json.tool
简单介绍:JSON 数据的书写格式是: 名称/对象。 JSON的结构基于两点,“名称/值”的集合 ,在不同的语言中,它可以被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等 。值的有序列表 多数语言中被理解为数组(array)。
JSON的基础结构说明
对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。
值可以是字符串,数字,逻辑值,数组,对象,null。
数字:整数或浮点数
字符串:在双引号中
逻辑符:true和false
数组:在方括号中
对象:在花括号中
null: 代表空
安装:centos:#yum install jq
ubuntu:#apt-get install jq
格式:
jq [options] filter [files] **options:** --version:输出jq的版本信息并退出 --slurp/-s:读入整个输入流到一个数组。 --raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。 --null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。 --compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。 --colour-output / -C:打开颜色显示 --monochrome-output / -M:关闭颜色显示 --ascii-output /-a:指定输出格式为ASCII -raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)
filter
. : 默认输出
.foo: 输出指定属性,foo代表属性。
.[foo] :输出指定数组元素。foo代表数组下标。
.[]:输出指定数组中全部元素
, :指定多个属性作为过滤条件时,用逗号分隔
| : 将指定的数组元素中的某个属性作为过滤条件
files:示例文件 [{"hostCompany":"Beijing Autelan Technology","hostModel":"CS-VIC-2000-C","hostsn":"01010730b12014A00477","mac":"00:1F:64:CE:F3:8E","cpuModel":"MIPS 74Kc V4.12","cpuSN":"000000","memoryModel":"abcdefg","memorySN":"000000","boardSN":"01010730b12014A00477","networkCardMac":"00:1F:64:CE:F3:8F","lowFreModel":"AR9344","lowFreSN":"000000","hignFreModel":"AR9582","hignFreSN":"000000","gpsModel":"abcdefg","gpsSN":"000000","MEID_3g":"A000004E123ABD2","Company_3g":"ZTEMT INCORPORATED","modelOf3g":"MC271X","snOf3g":"A000004E123ABD2","iccid":"89860314400200885980","Operators":"CTCC","hardVersion":"1.20","firmwareVersion":"1.0.6.29"}]
示例:
$ jq . apinfo.json [ { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000" } ] jq '.[]' apinfo.json { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000" }
测试:
$ jq -r .[].mac apinfo.json 00:1F:64:CE:F3:8E $ jq -r '.[] | .mac' apinfo.json 00:1F:64:CE:F3:8E $ jq -r '.[] |.mac, .gpsSN' apinfo.json 00:1F:64:CE:F3:8E 000000 jq -r '.[].mac, .[].gpsSN' apinfo.json 00:1F:64:CE:F3:8E 000000
Shellcheck:shell脚本静态检查工具,能够识别语法错误和不规范的写法。
安装:
在ubuntu里直接apt install shellcheck
在centos里yum install -y epel-release
yum install -y shellcheck
查看某进程的网卡流量
yum install libpcap nethogs -y
另一种安装方式:
yum install cabal-install
指令安装目录:~/.cabal/bin
cabal update
cabal install cabal
cabal install shellcheck
这样就可以使用如下命令安装
cabal install shellcheck
Fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl+r历史命令搜索
具体使用方法可参考如下
https://www.cnblogs.com/harriszh/p/7616966.html
讲的很不错,可以多学学
Pathpicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合git非常好用
git diff HEAD-8 --stat| fpp
Htop:提供更美观,更方便的进程监控工具,替代top命令
用F2编辑配置,用F9发送信号,用F3搜索进程,用F5切换,通过空格设置颜色标注进程条目
- -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
- -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
- -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。
原文地址:https://www.cnblogs.com/john4415/p/11388365.html
- 01字典树贪心查询+建立+删除(个人模版)
- 优先队列(个人模版)
- Numpy教程第2部分 - 数据分析的重要功能
- 最小表示法(个人模版)
- 基于Python-ChatterBot搭建不同adapter的聊天机器人(使用NB进行场景分类)
- 并查集(个人模版)
- Markdown 语法和 MWeb 写作使用说明既然都整理了,捎带手把这个也整理了吧第一级标题<h1>
- 带权并查集(个人模版)
- 我的第一次Pascal程序
- Hive第二天学习内容总结Hive 第三天DDL特别注意一下,没事别删除数据DML
- Codeforces 791B Bear and Friendship Condition(DFS,有向图)
- Codeforces 791A Bear and Big Brother(暴力枚举,模拟)
- Selenium2+python自动化28-table定位
- POJ 2370 Democracy in danger(简单贪心)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【redis】01-redis简介
- 3000字详解四种常用的缺失值处理方法
- python学习笔记(7)——远程主机强迫关闭了一个现有的连接
- 【带你成为pyq最靓的仔】朋友圈九宫格(一)之图片切割篇
- Material Design Compoents 1.1.0
- 【第19期】HTTP请求头referer
- Sentinel流控日志与索引
- Next.js + TypeScript 搭建一个简易的博客系统
- 【redis】02-redis持久化存储以及对象存储
- Kubernetes 集群可视化监控之 Weave Scope 入门
- h5 与原生 app 交互的原理
- 怎么在Openresty中REST?
- 【redis】04-redis 根据监听key的失效事件实现订单超时关闭
- 搭建分布式任务调度平台
- 微信小程序根据线上版本 Source Map 文件定位错误代码