分类:Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux

Shell脚本:模糊搜索神器fzf, bash神器, fzf用法, fzf详解

前言 fzf是目前最快的fuzzy finder。使用golang编写。结合其他工具(比如ag和fasd)可以完成非常多的工作。 让你通过输入模糊的关键词就可以定位文件或文件夹。当你的思维也习惯了模糊匹配后,在工作中可以大幅提高你的工作效率。 模糊搜索的概念如下,你记得文件名含有con, te, go, 那么你只需要把所有文件送给fzf, 然后在窗口里输入con te go就可以了,不管实现名是test_continus_go还是go_cont_test都会匹配上。 安装 使用 git git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf… Read More

WP-CLI:使用命令行工具控制 WordPress, 命令行安装,更新,配置 WordPress

  如果直接想了解一键更新所有,请略过本文,直接移步到:WordPress: 一键更新所有(WordPress版本,插件,主题,翻译)   WP-CLI,它可以让我们在命令行工具里输入相应的命令,去控制 WordPress 的行为。比如去升级 WordPress,去安装个插件,多站点,去管理用户,评论,主题等等。这跟 Drupal 的 Drush 有点类似。在 WordPress 上面,我们就是去使用 WP-CLI 这个工具。 下面,我们还是在自己的 Linux 系统的服务器上,去安装一个 WP-CLI… Read More

Shell脚本:Shell 编码风格

Scripting with style 是少见的一篇介绍 Shell 编码风格 的文章,相信对大多数运维人员有用,现在将译文献上。 缩进准则 我一般使用2个空格来缩进(尽管大多人使用4个空格),原因是: 输入简单快速; 没有输入一个Tab键,避免不同环境下显示的差异问题; 缩进的效果已经足够,并且没有浪费太多的空间; 译者注:本人也是使用4个空格,如果你也与本文作者的风格不一样,下面说到2个空格的地方请自觉替换成你实际使用的空格数。个人认为,缩进只是一个个人的风格,只要不影响可读性即可。 顺便说一句,尽量不要使用Tab键,它们容易带来麻烦,我只能想到一种情况下它是有用的:here document中的缩进。 分隔长行 如果需要分隔过长的代码,你可以使用下面的任意一种方法: 1) 使用与命令宽度相同的缩进 activate… Read More

Shell脚本:浅谈 Shell 脚本配置文件格式

开发过程中为了减少 hardcode,不可避免的需要提供配置文件给用户定制。对于高级编程语言来说,因为有丰富的第三方库,可供选择的配置文件格式有很多,比如 xml、jsno、ini、yaml 等等。 key=value 文本格式配置 而对于 linux shell,基本上很难使用前面提到的各种格式。所以在 unix 系统上,很多 shell 脚本的配置文件都是纯粹的 key=value 文本格式,例如绝大多数的开机服务启动脚本、网络配置文件等。 例子 1:ntp 配置文件 $ cat… Read More

Shell脚本:实用 Shell 文档

ChinaUnix上大神網中人总结的Shell十三问?,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点。每一问都写得非常精彩。 同样是ChinaUnix上,wingger大神整理的Shell基础二十篇。这份文档涉及的内容比较多,我没记错的话应该有很多命令的用法,而且配备实际使用的例子,对初学者帮助甚大。 Shell脚本专家指南也是一本不可多得的好书,我是之前在学校的时候买的这本书。上面都是作者实际工作中的经验总结,你可以从中学到很多其它书上学不到的实践知识。千万不要被专家两个字吓住了,书名的意思是专家给你总结的学习指南。 注:mingxinglai也在他的博客文章shell脚本学习材料种整理了很多实用的资料。 正则表达式 我个人学习正则表达式是从正则表达式30分钟入门教程开始的,这份文档让我了解了正则表达式的一些基础术语和基本的用法。 Linux下的正则表达式学习相对资源比较丰富,但同样得,因为不同工具的正则表达式或多或少都有一些不同,所以初学起来也比较让人困扰,但是正则表达式的关键在于多学多用。多看看grep/sed/awk中正则的用法,慢慢得就熟悉了。 这里推荐一篇InfoQ上介绍Linux下正则表达式不同流派之前的区别的文章——Linux/Unix工具与正则表达式的POSIX规范,读了它之后你会让你有种豁然开朗的感觉。 Sed与awk 学习Sed和awk命令不得不看的一本书是sed and awk,我目前只看了sed的这部分,它几乎涵盖了sed所有相关的知识,并且将sed行处理的原理讲得很透彻。之前并没有去研讨后半部分,想必应该同前半部分一样精彩。 网上还有一份非常宝贵的sed学习资料——sed1line,我之前也看过这份并且作了篇笔记sed1line 笔记。个人认为这才是sed的精华所在。 最近我在写一系列关于sed&awk这本书的笔记文章,有兴趣的可以看一看Sed&awk笔记。 寻找帮助的社区或者论坛 国内就是ChinaUnix,国外就是StackOverflow和SuperUser等问答社区,当然善用谷歌搜索也是一项基本技能。 资料索引 为了方便,我把一些有用的网站和资料放在这当一个索引: ChinaUnix论坛Shell版… Read More

Shell脚本:Bash function 还能这么玩, Something you didn’t know about functions in bash

今天看到一篇讲 Bash function 的有意思的文章,原文在这里。 在 Bash 中一般我们这么定义一个函数: function name () { ... } 这是非常常见的写法,包括我自己在内,一直把他当做类似 Python、C 等语言一样的函数定义语法。实际上这里{ ... }并不代表函数体或者函数的作用域。它只是代表里面的内容是一组命令的集合。了解这点之后,接下来就有一些比较好玩的写法了。 比如下面的函数作用是测试文件是否存在,这里就没用大括号: function… Read More

MySQL: 修改默认编码, MySQL / MariaDB: Set Character Set and Collation to UTF8, Mysql2::Error: Incorrect string value: ‘\xE2\x80\xA8\x09

发现phpmyadmin默认是latin字符编码,导致某些特殊字符,或者乱码字符无法保存,常有的报错类似: Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09   1. 那么首先看一下我们的mysql默认字符是什么:   sudo mysql mysql> status -------------- mysql Ver 14.12 Distrib 5.0.45, for… Read More

Shell:验证json文件各式是否正确, Validate JSON from the command line on Linux, Format JSON with Python

  现在以json为数据传输格式的RESTful接口非常流行。为调试这样的接口,一个常用的办法是使用curl命令: curl http://somehost.com/some-restful-api 对于返回的json字符串,一般在服务端不加处理的情况下,都是没有任何’\t’和’\n’的。为了方便查看,在bash上可以简单地对它进行格式化: curl http://somehost.com/some-restful-api | python -m json.tool 当然这要求机器上安装了python,其实也就是利用了json.tool这个程序。   一旦json文件格式不对,或者文件内容缺失或者其他问题,就会导致 python -m 命令无法格式化,正是利用这一点,我们可以做一个json的验证! 方法: cat <json… Read More

Shell:AWK 简明教程, AWK 入门教程, AWK 格式化输出, AWK 过滤记录, AWK 符串匹配, AWK 折分文件, AWK 分割字符串等实例

awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。 awk命令格式和选项 awk的语法有两种形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 命令选项 选项… Read More